Copyright: Oracle Corporation(c) 1998


Benutzerregistrierung wurde von einem anderen Benutzer gesperrt. Registrierung wiederholen oder beenden?

 Ursache:	Während der Initialisierung hat Project Builder versucht, Ihre Benutzerregistrierung zu lesen. Dies war jedoch nicht möglich, wahrscheinlich, weil ein anderer Benutzer die Registrierung gerade geändert und während des Schreibvorgangs gesperrt hat.

 Maßnahme:	Wenn Sie erneut versuchen möchten, auf die Benutzerregistrierung zuzugreifen, klicken Sie auf Wiederholen. Klicken Sie auf Beenden, um Project Builder zu beenden und den Versuch zu einem späteren Zeitpunkt zu wiederholen.


Globale Registrierung wurde von einem anderen Benutzer gesperrt. Registrierung wiederholen oder beenden?

 Ursache:	Während der Initialisierung hat Project Builder versucht, die Globale Registrierung zu lesen. Dies war jedoch nicht möglich, wahrscheinlich, weil ein anderer Benutzer sie gerade geändert und während des Schreibvorgangs gesperrt hat.

 Maßnahme:	Wenn Sie erneut auf die Globale Registrierung zugreifen möchten, klicken Sie auf Wiederholen. Klicken Sie auf Beenden, um Project Builder zu beenden und den Versuch zu einem späteren Zeitpunkt zu wiederholen.


Projektregistrierung wurde von einem anderen Benutzer gesperrt:  <Name der Registrierungsdatei>. Registrierung wiederholen oder mit nächster fortfahren?

 Ursache:	Während der Initialisierung oder beim Öffnen eines Projekts hat Project Builder versucht, die oben aufgeführte Projektregistrierung zu lesen. Dies war jedoch nicht möglich, wahrscheinlich weil ein anderer Benutzer sie gerade geändert und während des Schreibvorgangs gesperrt hat.

 Maßnahme:	Wenn Sie erneut auf die Projektregistrierung zugreifen möchten, klicken Sie auf Wiederholen. Klicken Sie auf Weiter, um dieses Projekt zu überspringen und mit der Project Builder-Sitzung fortzufahren.


Benutzerregistrierung wurde von einem anderen Benutzer geändert. Ihre letzte Änderung wurde verworfen.

 Ursache:	Sie haben versucht, Ihre Benutzerregistrierung zu ändern, wurden jedoch daran gehindert, damit Ihre Änderungen keine vorherige Änderung überschreiben.

 Maßnahme:	Klicken Sie auf OK, um Ihre Kopie der Benutzerregistrierung abzugleichen und die neuesten Änderungen zu übernehmen. Danach können Sie Ihre Änderungen gegebenenfalls erneut vornehmen.


Globale Registrierung wurde von einem anderen Benutzer geändert. Ihre letzte Änderung wurde verworfen.

 Ursache:	Sie haben versucht, die Globale Registrierung zu ändern, wurden jedoch daran gehindert, damit Ihre Änderungen keine vorherige Änderung überschreiben.

 Maßnahme:	Klicken Sie auf OK, um Ihre Kopie der Globalen Registrierung abzugleichen und die letzten Änderungen zu übernehmen. Danach können Sie gegebenenfalls Ihre Änderungen erneut vornehmen.


Projektregistrierung wurde von einem anderen Benutzer geändert: <Name der Registrierungsdatei>. Ihre letzte Änderung wurde verworfen.

 Ursache:	Sie haben versucht, die Projektregistrierung zu ändern, wurden jedoch daran gehindert, damit Ihre Änderungen keine vorherige Änderung überschreiben.

 Maßnahme:	Klicken Sie auf OK, um Ihre Kopie der Globalen Registrierung abzugleichen und die letzten Änderungen zu übernehmen. Danach können Sie gegebenenfalls Ihre Änderungen erneut vornehmen.


Benutzerregistrierung beschädigt. Versuchen, Daten aus Registrierung wiederherzustellen oder beenden?

 Ursache:	Die Benutzerregistrierungsdatei wurde beschädigt.

 Maßnahme:	Klicken Sie auf Wiederherstellen, um so viele Informationen wie möglich wiederherzustellen, oder auf Beenden, um den Vorgang zu beenden. Wenn eine Sicherungskopie vorhanden ist, können Sie die Datei anhand der Sicherungskopie wiederherstellen.


Globale Registrierung beschädigt. Versuchen, Daten aus Registrierung wiederherzustellen oder beenden?

 Ursache:	Die globale Registrierungsdatei wurde beschädigt.

 Maßnahme:	Klicken Sie auf Wiederherstellen, um so viele Informationen wie möglich wiederherzustellen, oder auf Beenden, um den Vorgang zu beenden. Wenn eine Sicherungskopie vorhanden ist, können Sie die Datei anhand der Sicherungskopie wiederherstellen.


Projektregistrierung beschädigt. Daten aus Registrierung wiederherstellen oder beenden?

 Ursache:	Die Projektregistrierungsdatei wurde beschädigt.

 Maßnahme:	Klicken Sie auf Wiederherstellen, um so viele Informationen wie möglich wiederherzustellen, oder klicken Sie auf Abbrechen, um die Datei ungeöffnet zu belassen. Wenn eine Sicherungskopie vorhanden ist, können Sie die Datei anhand der Sicherungskopie wiederherstellen.


Benutzerregistrierung entspricht einer alten Version. Auf neue Version umstellen?

 Ursache:	Die Benutzerregistrierungsdatei entspricht einer alten Version.

 Maßnahme:	Klicken Sie auf OK, um die Datei auf die neueste Version umzustellen, oder auf Abbrechen, um sie unverändert zu belassen.

Hinweis: Wenn Sie diese Datei nicht umstellen, fehlen möglicherweise einige Funktionen.


Globale Registrierung entspricht einer alten Version. Auf neue Version umstellen?

 Ursache:	Die globale Registrierungsdatei entspricht einer alten Version.

 Maßnahme:	Klicken Sie auf OK, um sie auf die neueste Version umzustellen, oder auf Abbrechen, um sie unverändert zu belassen.

Hinweis: Wenn Sie diese Datei nicht umstellen, fehlen möglicherweise einige Funktionen.


Projektregistrierung entspricht einer alten Version. Auf neue Version umstellen?

 Ursache:	Die Projektregistrierungsdatei entspricht einer alten Version.

 Maßnahme:	Klicken Sie auf OK, um sie auf die neueste Version umzustellen, oder auf Abbrechen, um sie unverändert zu belassen.

Hinweis: Wenn Sie diese Datei nicht umstellen, fehlen möglicherweise einige Funktionen.


Benutzerregistrierung ist zu <Zahl> Prozent fragmentiert. Defragmentieren?

Ursache:	Sie haben im Dialogfeld Voreinstellungen (im Register Projekte) angegeben, daß Registrierungen komprimiert werden sollen, wenn ein bestimmter Fragmentierungsprozentsatz erreicht ist. Dieser Prozentsatz wurde für die angegebene Registrierung erreicht.

 Maßnahme:	Klicken Sie auf Ja, um die Benutzerregistrierung zu komprimieren, oder auf Nein, um die Komprimierung aufzuschieben. Wenn Sie auf Nein klicken, wird dieses Warnfenster bei jedem Starten von Project Builder angezeigt, bis Sie entweder die Registrierung komprimieren oder den Fragmentierungsprozentsatz erhöhen.


Globale Registrierung ist zu <Zahl> Prozent fragmentiert. Defragmentieren?

Ursache:	Sie haben im Dialogfeld Voreinstellungen (im Register Projekte) angegeben, daß Registrierungen komprimiert werden sollen, wenn ein bestimmter Fragmentierungsprozentsatz erreicht ist. Dieser Prozentsatz wurde für die angegebene Registrierung erreicht.

 Maßnahme:	Klicken Sie auf Ja, um die Benutzerregistrierung zu komprimieren, oder auf Nein, um die Komprimierung aufzuschieben. Wenn Sie auf Nein klicken, wird dieses Warnfenster bei jedem Starten von Project Builder angezeigt, bis Sie entweder die Registrierung komprimieren oder den Fragmentierungsprozentsatz erhöhen.


Projektregistrierung ist zu <Zahl> Prozent fragmentiert: Defragmentieren?

Ursache:	Sie haben im Dialogfeld Voreinstellungen (im Register Projekte) angegeben, daß Registrierungen komprimiert werden sollen, wenn ein bestimmter Fragmentierungsprozentsatz erreicht ist. Dieser Prozentsatz wurde für die angegebene Registrierung erreicht.

 Maßnahme:	Klicken Sie auf Ja, um die Benutzerregistrierung zu komprimieren, oder auf Nein, um die Komprimierung aufzuschieben. Wenn Sie auf Nein klicken, wird dieses Warnfenster bei jedem Starten von Project Builder angezeigt, bis Sie entweder die Registrierung komprimieren oder den Fragmentierungsprozentsatz erhöhen.


Drucker nicht gefunden. Prüfen Sie die Druckerkonfiguration.

 Ursache:	Project Builder konnte keinen Drucker finden, der in Ihrem System installiert ist.

 Maßnahme:	Prüfen Sie die Betriebssystemdokumentation, installieren Sie einen Drucker, und starten Sie die Project Builder-Anwendung neu.


Die folgende Aktion wird getestet: <Befehlszeile>

 Ursache:	Sie befinden sich im Modus Aktionen anzeigen und haben eine Aktion aufgerufen. Die Befehle, die an das Betriebssystem übergeben werden, um diese Aktion auszuführen, werden angezeigt, jedoch nicht ausgeführt.

 Maßnahme:	Klicken Sie auf OK, um mit dem Debuggen fortzufahren.


Datenbank ist ungültig oder beschädigt.

 Ursache:	Ihre Projektregistrierung ist ungültig oder beschädigt.

 Maßnahme:	Sie können möglicherweise die gesamte oder einen Teil der Projektregistrierung wiederherstellen, indem Sie sie in eine Textdatei exportieren und die Textdatei dann wieder in Project Builder importieren. Wählen Sie Datei [image] Projekt exportieren, um die Registrierung zu exportieren. Danach wählen Sie Datei [image] Projekt importieren, um die Textdatei zu importieren.


Projektkennwort ist ungültig.

 Ursache:	Sie haben ein ungültiges Kennwort eingegeben..

 Maßnahme:	Stellen Sie sicher, daß Sie das richtige Kennwort in der richtigen Schreibweise eingeben. Danach wiederholen Sie den Versuch.


Neue Launcher-Einträge wurden im globalen Bereich installiert. Sollen sie jetzt kopiert werden?

 Ursache:	Ein neues Produkt wurde installiert, und die Launcher-Informationen wurden in die Globale Registrierung kopiert.

 Maßnahme:	Klicken Sie auf Ja, um den Launcher mit den neuen Informationen zu aktualisieren. Klicken Sie auf Nein, um den Launcher im aktuellen Status zu belasssen.


Dadurch werden ausgewählte Einträge endgültig entfernt. Sind Sie sicher?

 Ursache:	Sie haben im Dialogfeld Voreinstellungen des Launchers auf Entfernen geklickt, während ein Eintrag ausgewählt war.

 Maßnahme:	Klicken Sie auf Ja, um den Eintrag endgültig aus dem Launcher zu entfernen. Klicken Sie auf Nein, um den Launcher im aktuellen Status zu belassen.


:	Fehler beim Analysieren: <Zeichenfolge>.

 Ursache:	Project Builder konnte die aufgeführte Zeichenfolge nicht analysieren.

 Maßnahme:	Debuggen Sie Ihren Befehl, und wiederholen Sie den Versuch.


Fehler beim Ausführen der Startzeichenkette (Betriebssystem-Fehlercode <nn>): <Betriebssystemmeldung>.

 Ursache:	Project Builder hat versucht, ein Werkzeug zu starten, dabei wurde jedoch der aufgeführte Betriebssystemfehler angezeigt.

 Maßnahme:	Weitere Informationen finden Sie in der Dokumentation für Ihre Plattform.


Kein Eintrag ausgewählt.

 Ursache:	Sie haben auf Entfernen oder Bearbeiten im Register Launcher des Dialogfeldes Voreinstellungen geklickt, während kein Launcher-Eintrag ausgewählt war.

 Maßnahme:	Sie müssen ein Werkzeug im Launcher-Navigator auswählen, bevor Sie es entfernen oder bearbeiten können.


Projekt konnte nicht erstellt werden.

 Ursache:	Project Builder konnte Ihr Projekt nicht erstellen. Die möglichen Ursachen sind:

A.	Sie haben keinen Schreibzugriff zu Ihrer Projektdatei.

B.	Ein anderer Benutzer hat Ihre Projektdatei geändert, während Sie sie erstellt haben.

C.	Sie haben keinen Speicherplatz mehr.

 Maßnahme:	Dieser Fehler kann wie folgt behoben werden:

Bei A.	Fragen Sie Ihren Administrator, ob Sie eine Zugriffsberechtigung zu dem Ordner haben, in dem Sie Ihr Projekt erstellen.

Bei B.	Aktualisieren Sie die Projektregistrierung (eine Methode besteht darin, die Ansichten zu wechseln).

Bei C.	Schließen Sie nicht benötigte Anwendungen.


Sie müssen einen Namen für die Aktion eingeben.

 Ursache:	Sie haben versucht, eine Aktion zu erstellen bzw. zu bearbeiten, ohne ihr einen Namen zu geben.

 Maßnahme:	Sie müssen einen Namen für die Aktion in das Textfeld Name eingeben, bevor Sie fortfahren können.


Sie müssen einen Dateinamen für die Stapelausgabedaten eingeben.

 Ursache:	Sie haben versucht, eine Stapelausgabedatei zu erstellen, ohne ihr einen Namen zu geben.

 Maßnahme:	Sie müssen einen Namen für die Stapelausgabedatei in das Textfeld Name eingeben, bevor Sie fortfahren können.


Sie müssen einen Namen für die Verbindung eingeben.

 Ursache:	Jede Verbindung muß einen Namen haben.

 Maßnahme:	Geben Sie einen Namen für die neue Verbindung in das Textfeld Titel ein. Danach geben Sie die Anmeldeinformationen ein.


Für dieses Objekt ist kein Ziel vorhanden.

 Ursache:	Für jede Datei in dem zugestellten Projekt muß ein Standard-Zielverzeichnis angegeben werden.

 Maßnahme:	Klicken Sie auf OK, um zu dem Zustellungs-Assistenten zurückzugehen. Danach geben Sie ein Standardverzeichnis in dem Feld Zielverzeichnis und Dateiname an.


Der Produktname muß weniger als oder genau 8 alphanumerische Zeichen ohne Leerzeichen enthalten.

 Ursache:	Sie haben einen Namen mit mehr als 8 Zeichen, einen Namen mit Sonderzeichen oder einen Namen mit Leerzeichen eingegeben.

 Maßnahme:	Klicken Sie auf OK, um zu dem Zustellungs-Assistenten zurückzugehen, und geben Sie dann einen Namen entsprechend den Benennungsregeln ein.


Bitte geben Sie ein temporäres Verzeichnis an.

 Ursache:	Der Zustellungs-Assistent kann Ihre Dateien nicht ohne einen temporären Speicherort kopieren oder mit FTP übertragen.

 Maßnahme:	Klicken Sie auf OK, um zu dem Zustellungs-Assistenten zurückzugehen. Danach geben Sie ein Verzeichnis als temporären Speicherort in dem entsprechenden Feld ein.


Bitte geben Sie einen Produktnamen an.

 Ursache:	Sie müssen einen Namen für das Produkt eingeben.

 Maßnahme:	Klicken Sie auf OK, um zu dem Zustellungs-Assistenten zurückzugehen. Danach geben Sie einen Produktnamen in das Textfeld Name ein. Der Name darf maximal 8 Zeichen umfassen, wobei keine Sonderzeichen oder Leerzeichen benutzt werden dürfen.


Bitte geben Sie den Namen der Umgebungsvariablen ein, oder löschen Sie diese Zeile.

 Ursache:	Um eine Zustellung abzuschließen, muß mindestens eine Datei in dem Bereich Dateien zur Zustellung vorhanden sein.

 Maßnahme:	Klicken Sie auf OK, um zu dem Zustellungs-Assistenten zurückzugehen. Danach verschieben Sie Dateien mit den Pfeiltasten aus dem Bereich Dateien zur Zustellung=Ja in den Bereich Zuzustellende Dateien.


Anmeldung nicht erfolgreich

 Ursache:	Der FTP-Vorgang konnte nicht ausgeführt werden, weil sich Project Builder nicht bei dem Host-Rechner anmelden konnte.

 Maßnahme:	Klicken Sie auf OK, um zu dem Zustellungs-Assistenten zurückzugehen. Prüfen Sie, ob Sie Benutzername, Kennwort, Host-Name und (gegebenenfalls) Account richtig angegeben haben. Danach wiederholen Sie den Zustellungsvorgang.


Mit den ausgewählten Objekten sind keine Dateien verknüpft. Sollen sie aus diesem Release weggelassen werden?

 Ursache:	Der Zustellungs-Assistent ist auf Objekte gestoßen, denen keine Dateien zugeordnet waren.

 Maßnahme:	Klicken Sie auf Ja, um die nicht zugeordneten Dateien aus diesem Release wegzulassen, oder auf Nein und brechen dann den Zustellungs-Assistenten ab, um das Projekt neu zu generieren und die fehlenden Dateien aufzunehmen.


Keine Objekte zur Zustellung.

 Ursache:	Um die Zustellung abzuschließen, muß mindestens eine Datei in dem Bereich Zuzustellende Dateien angezeigt werden.

 Maßnahme:	Klicken Sie auf OK, um zu dem Zustellungs-Assistenten zurückzugehen. Danach verschieben Sie Dateien aus dem Bereich Dateien in Projekt in den Bereich Zuzustellende Dateien.


Sie müssen einen Namen für die Verbindung eingeben.

Ursache:	Jede Verbindung muß einen Namen haben.

 Maßnahme:	Geben Sie einen Namen für die neue Verbindung in das Textfeld Titel ein, und geben Sie dann die Anmeldeinformationen ein.


Sie müssen einen Dateinamen für das Objekt eingeben.

 Ursache:	Sie haben den Dateinamen eines Objekts im Navigator oder der Attributpalette gelöscht.

 Maßnahme:	Sie müssen erneut einen Dateinamen für das Objekt eingeben, bevor Sie fortfahren.


Sie müssen einen Namen für das Objekt eingeben.

 Ursache:	Sie haben den Namen eines Objekts im Navigator oder der Attributpalette gelöscht.

 Maßnahme:	Sie müssen erneut einen Namen für das Objekt eingeben, bevor Sie fortfahren.


Sie müssen einen Namen für den Typ eingeben.

 Ursache:	Sie haben versucht, einen Typ zu erstellen/bearbeiten, ohne ihm einen Namen zu geben.

 Maßnahme:	Sie müssen einen Namen für den Typ in das Textfeld Typ eingeben, bevor Sie fortfahren.


Makronamen dürfen nur alphanumerische Zeichen und Unterstreichungszeichen enthalten.

 Ursache:	Sie haben ein unzulässiges Zeichen in einem Makronamen benutzt.

 Maßnahme:	Geben Sie den Makronamen erneut nur mit alphanumerischen Zeichen und Unterstreichungszeichen ein.


Sie müssen einen Namen für den Makro angeben.

 Ursache:	Sie haben versucht, einen Makro zu erstellen/bearbeiten, ohne ihm einen Namen zu geben.

 Maßnahme:	Sie müssen einen Namen für den Makro in das Textfeld Makroname eingeben, bevor Sie fortfahren.


Sie können den Namen eines vordefinierten Makros nicht benutzen.

 Ursache:	Bestimmte einzelne Buchstaben, wie z.B. b, n, d und f sind für vordefinierte Makros reserviert.

 Maßnahme:	Wählen Sie einen anderen Namen für den Makro.


Das neue und das bestätigte Kennwort stimmen nicht überein. Bitte geben Sie die Kennwörter erneut ein.

 Ursache:	Wahrscheinlich haben Sie das bestätigende Kennwort falsch eingegeben.

 Maßnahme:	Geben Sie das neue Kennwort und das bestätigende Kennwort erneut ein.


Warnung: Voreinstellungen konnten nicht gespeichert werden.

 Ursache:	Project Builder hat versucht, die Voreinstellungen in Ihre Voreinstellungsdatei zu schreiben, dies war jedoch nicht möglich.

 Maßnahme:	Stellen Sie sicher, daß Sie den Schreibzugriff zu dem Verzeichnis mit der Voreinstellungsdatei haben.


Warnung: Projektattribute konnten nicht eingestellt werden. (Prüfen Sie, ob Sie den Schreibzugriff für die Projektregistrierung haben.)

 Ursache:	Project Builder hat versucht, die Projektattribute in die Projektdefinitionsdatei zu schreiben, dies war jedoch nicht möglich.

 Maßnahme:	Stellen Sie sicher, daß Sie den Schreibzugriff für die Projektdefinitionsdatei und das Verzeichnis haben, in dem diese gespeichert ist.


Dadurch werden die im globalen Bereich installierten Launcher-Einträge in Ihren Launcher kopiert. Fortfahren?

 Ursache:	Sie haben im Register Launcher im Dialogfeld Voreinstellungen auf Standardwerte geklickt.

 Maßnahme:	Klicken Sie auf Ja, um Ihren Launcher mit Launcher-Informationen aus der Globalen Registrierung zu aktualisieren (dabei können Teile der Launcher-Informationen überschrieben werden). Klicken Sie auf Nein, um den Launcher im aktuellen Status zu belassen.


Sollen die Projektregistrierungsdateien sowie die Projektobjekte selbst gelöscht werden?

 Ursache:	Sie sind dabei, ein ganzes Projekt zu löschen. Sie können wählen, ob Sie die Projektregistrierungsdatei speichern oder zusammen mit den Projektobjekten löschen möchten.

 Maßnahme:	Klicken Sie auf Ja, um die Projektregistrierungsdatei zu löschen. Klicken Sie auf Nein, um die Projektregistrierungsdatei zu speichern und nur die Projektobjekte zu löschen. Klicken Sie auf Abbrechen, um das Löschen des Projekts abzubrechen.


Warnung: Attributpalette konnte nicht erstellt werden. Prüfen Sie, ob genügend Speicherplatz vorhanden ist.

 Ursache:	Project Builder konnte eine Attributpalette nicht auf Anforderung generieren, wahrscheinlich, weil nicht genügend Speicherplatz vorhanden war.

 Maßnahme:	Erhöhen Sie den verfügbaren Speicherplatz, indem Sie nicht benötigte Anwendungen schließen.


Der angeforderte Typ konnte nicht erstellt/geändert werden. Prüfen Sie, ob Sie den Schreibzugriff für die Registrierung des Typs haben und ob diese nicht gerade von einem anderen Benutzer geändert wird.

 Ursache:	Project Builder hat versucht, die Typattribute in die richtige Registrierung zu schreiben, dies war jedoch nicht möglich. Die möglichen Ursachen sind:

A.	Sie haben keinen Schreibzugriff zu Ihrer Projektdatei.

B.	Ein anderer Benutzer hat Ihre Projektdatei geändert.

 Maßnahme:	Sie können diesen Fehler wie folgt beheben:

Bei A.	Fragen Sie den Administrator, ob Sie die Zugriffsberechtigung zu dem Verzeichnis haben, in dem Sie Ihr Projekt erstellen.

Bei B.	Prüfen Sie, ob keine anderen Benutzer gerade in Ihr Projekt schreiben.


Bitte geben Sie einen Dateinamen für die Projektregistrierung ein.

 Ursache:	Sie haben im Projekt-Assistenten auf Weiter geklickt, ohne einen Dateinamen für das neue Projekt einzugeben.

 Maßnahme:	Sie müssen einen Dateinamen in das Textfeld Dateiname der Projektregistrierung eingeben, bevor Sie fortfahren können.


Bitte geben Sie einen Dateinamen ein.

 Ursache:	Sie haben versucht, zur nächsten Seite des Projekt-Assistenten zu gehen, ohne einen Dateinamen für die Projektdatei einzugeben.

 Maßnahme:	Geben Sie einen Namen für Ihr Projekt in das Textfeld für den Dateinamen der Projektdatenbank ein, oder suchen und wählen Sie einen Dateinamen aus, bevor Sie fortfahren.


Bitte geben Sie ein Verzeichnis ein.

 Ursache:	Sie haben versucht, zur nächsten Seite des Projekt-Assistenten zu gehen, ohne ein Standardverzeichnis für Ihre Projektdatei anzugeben.

 Maßnahme:	Geben Sie den Namen des Standardverzeichnisses für das Projekt in das Textfeld Projektverzeichnis ein, oder suchen und wählen Sie einen Verzeichnisnamen aus, bevor Sie fortfahren.


Launcher-Status kann nicht gespeichert werden.

 Ursache:	Project Builder hat versucht, Ihre Launcher-Voreinstellungen in Ihre Voreinstellungsdatei zu speichern, dies war jedoch nicht möglich.

 Maßnahme:	Prüfen Sie, ob Sie den Schreibzugriff zu dem Verzeichnis haben, in dem Ihre Voreinstellungsdatei gespeichert ist.


Verknüpfte Projektdateien sowie Verknüpfungen selbst löschen?

 Ursache:	Sie haben Ausschneiden oder Löschen ausgewählt, während ein Projekt im Projektnavigator ausgewählt war.

 Maßnahme:	Klicken Sie auf Ja, um nicht nur das Projekt aus dem Projektnavigator zu entfernen, sondern auch die Projektdefinitionsdatei aus Ihrem Dateisystem zu löschen. Klicken Sie auf Nein, um das Projekt zu behalten.


Dadurch werden das bzw. die ausgewählten Objekte aus dem Projekt entfernt. Sind Sie sicher?

 Ursache:	Sie haben Dateien entfernen gewählt, während Dateien im Projektnavigator ausgewählt waren.

 Maßnahme:	Klicken Sie auf Ja, um zu bestätigen, daß die ausgewählten Dateien aus dem Projekt entfernt werden sollen (diese Aktion löscht die Objekte aus Ihrem Dateisystem nicht). Klicken Sie auf Nein, um die ausgewählten Dateien zu behalten.


Bitte geben Sie einen Skriptnamen an.

 Ursache:	Der Zustellungs-Assistent benötigt einen Skriptnamen, um Oracle Installer-Skripts zu generieren. Der Skriptname wird intern benutzt, um Ihr Produkt zu verfolgen.

 Maßnahme:	Klicken Sie auf OK, um zu dem Zustellungs-Assistenten zurückzugehen. Danach geben Sie einen Namen in das Feld Skript ein.


Reservierte Wörter in PL/SQL und Form Builder 5.0

In der folgenden Tabelle werden die reservierten Wörter in Form Builder und in PL/SQL aufgeführt.  Reservierte PL/SQL-Wörter werden mit einem Sternchen (*) angezeigt.

_SELF

_PARENT

_TOP

_BLANK

ABORT*

ABORT_QUERY

ACCEPT*

ACCESS*

ACKNOWLEDGE

ACKNOWLEDGE_PREVIOUS

ACTIVATE

ADD*

ADD_GROUP_COLUMN

ADD_GROUP_ROW

ADD_LIST_ELEMENT

ADD_OLEARG

ADD_PARAMETER

ADJUST_TO_FIT

ALERT

ALERT_BUTTON1

ALERT_BUTTON2

ALERT_BUTTON3

ALERT_DEFAULT

ALERT_MESSAGE_TEXT

ALIGNMENT

ALL*

ALL_PARAMA

ALL_RECORDS

ALL_ROWS

ALTER*

ALTERABLE

ANCHOR_VIEW

AND*

ANY*

APPLICATION_CHARACTERISTIC

APPLICATION_INSTANCE

APPLICATION_MENU

APPLICATION_PARAMETER

ARRAY*

ARRAYLEN*

AS*

ASC*

ASK_COMMIT

ASSERT*

ASSIGN*

ASYNCHRONOUS

AT*

ATTR_OFF

ATTR_ON

AUTHORIZATION*

AUTOQUERY

AUTO_HELP

AUTO_HINT

AUTO_NAVIGATE

AUTO_REFRESH

AUTO_SKIP

AVG*

BACKGROUND_MENU1

BACKGROUND_MENU10

BACKGROUND_MENU2

BACKGROUND_MENU3

BACKGROUND_MENU4

BACKGROUND_MENU5

BACKGROUND_MENU6

BACKGROUND_MENU7

BACKGROUND_MENU8

BACKGROUND_MENU9

BALLOON_ATTRIBUTE

BALLOON_TEXT

BAR

BASE_TABLE*

BATCH

BEGIN*

BELL

BETWEEN*

BINARY_INTEGER*

BLOCK

BLOCK_CHARACTERISTIC

BLOCK_MENU

BLOCK_SCOPE

BODY*

BOOK

BOOK20

BOOLEAN*

BORDER_BEVEL

BREAK

BY*

CACHE

CALL

CALLING_FORM

CALLING_FORM_NAME

CALL_FORM

CALL_INPUT

CALL_OLE

CALL_OLE_CHAR

CALL_OLE_NUM

CALL_OLE_OBJ

CALL_OLE_VAR

CALL_QUERY

CANCEL_REPORT_OBJECT

CANVAS

CANVAS_SIZE

CASCADING

CASE*

CASE_INSENSITIVE_QUERY

CASE_RESTRICTION

CHANGED_STATUS

CHANGE_ALERT_MESSAGE

CHANGE_BLOCK

CHANGE_RECORD

CHAR*

CHARACTER_CELL_HEIGHT

CHARACTER_CELL_WIDTH

CHAR_BASE*

CHAR_COLUMN

CHECKBOX_CHECKED

CHECK*

CHECKED

CHECK_RECORD_UNIQUENESS

CLEAR_BLOCK

CLEAR_EOL

CLEAR_FIELD

CLEAR_FORM

CLEAR_ITEM

CLEAR_LIST

CLEAR_MESSAGE

CLEAR_RECORD

CLOSE*

CLOSE_AT_COMMIT

CLOSE_FORM

CLOSE_QUERY

CLUSTER*

CLUSTERS*

COLAUTH*

COLUMNS*

COLUMN_SECURITY

COMMIT*

COMMIT_FORM

COMPRESS*

COMPRESSION_OFF

COMPRESSION_ON

CONCEAL_DATA

CONNECT*

CONNECT_STRING

CONSTANT *

CONSTANTS

CONVERT_OTHER_VALUE

COORDINATED

COORDINATE_SYSTEM

COORDINATION_OPERATION

COORDINATION_STATUS

COPY

COPY_REGION

COPY_REPORT_OBJECT_OUTPUT

COPY_REPORT_OUTPUT

COUNT*

COUNT_QUERY

CRASH*

CREATE*

CREATE_GROUP

CREATE_GROUP_FROM_QUERY

CREATE_OLEOBJ

CREATE_PARAMETER_LIST

CREATE_QUERIED_RECORD

CREATE_RECORD

CREATE_TIMER

CREATE_VAR

CURRENT*

CURRENT_FORM

CURRENT_FORM_NAME

CURRENT_RECORD

CURRENT_RECORD_ATTRIBUTE

CURRVAL*

CURSOR*

CURSOR_MODE

CURSOR_STYLE

CUT_REGION

DATABASE*

DATA_BASE*

DATABASE_VALUE

DATASOURCE

DATATYPE

DATA_PARAMETER

DATE*

DATE_COLUMN

DB

DBA*

DBMS_ERROR_CODE

DBMS_ERROR_TEXT

DEBUGOFF*

DEBUGON*

DEBUG_MODE

DECIMAL*

DECLARE*

DEFAULT*

DEFAULT_SCOPE

DEFAULT_VALUE

DEFAULT_WHERE

DEFERRED_COORDINATION

DEFER_ON_VISIBILITY

DEFER_REQUIRED_ENFORCEMENT

DEFINITION*

DELAY*

DELAYED

DELETE*

DELETE_ALLOWED

DELETE_GROUP

DELETE_GROUP_ROW

DELETE_LIST_ELEMENT

DELETE_PARAMETER

DELETE_RECORD

DELETE_RECORDS

DELETE_SOURCE

DELETE_SOURCE_TYPE

DELETE_TIMER

DELTA*

DERIVED_COLUMN

DESC*

DESTROY_PARAMETER_LIST

DESTROY_VARIANT

DETAIL_NAME

DEVELOPER_NAMES

DIGITS*

DISABLED

DISABLE_ITEM

DISABLE_VALIDATION

DISPATCH_EVENT

DISPID_COLLECT

DISPID_CONSTRUCTOR

DISPID_DESTRUCTOR

DISPID_EVALUATE

DISPID_NEWENUM

DISPID_VALUE

DISPLAY

DISPLAYED

DISPLAY_ERROR

DISPLAY_FIELD

DISPLAY_HEIGHT

DISPLAY_ITEM

DISPLAY_LENGTH

DISPLAY_PAGE

DISPLAY_POSITION

DISPLAY_WIDTH

DISPLAY_X_POS

DISPLAY_Y_POS

DISPOSE*

DISTINCT*

DML_DATA_TARGET_NAME

DML_DATA_TARGET_TYPE

DOWN

DO*

DO_COMMIT

DO_KEY

DO_REPLACE

DROP*

DUMMY_REFERENCE

DUPLICATE_FIELD

DUPLICATE_ITEM

DUPLICATE_RECORD

ECHO

EDITOR

EDITOR_NAME

EDITOR_X_POS

EDITOR_Y_POS

EDIT_FIELD

EDIT_TEXTITEM

ELSE*

ELSIF*

ENABLED

ENABLE_ITEM

ENABLE_VALIDATION

END*

END_EDGE

END_OF_GROUP

ENFORCE_COLUMN_SECURITY

ENFORCE_KEY

ENTER

ENTERABLE

ENTER_QUERY

ENTRY*

ERASE

ERROR

ERROR_CODE

ERROR_NOTIFICATION

ERROR_TEXT

ERROR_TYPE

EXCEPTION*

EXCEPTION_INIT*

EXECUTE_QUERY

EXECUTE_TRIGGER

EXISTS*

EXIT*

EXIT_FORM

EXIT_MENU

FALSE*

FETCH*

FETCH_RECORDS

FIELD_CHARACTERISTIC

FIELD_LENGTH

FILE

FILESYSTEM

FILE_NAME

FIND_ALERT

FIND_BLOCK

FIND_CANVAS

FIND_COLUMN

FIND_EDITOR

FIND_FORM

FIND_GROUP

FIND_ITEM

FIND_LOV

FIND_MENU

FIND_MENU_ITEM

FIND_RELATION

FIND_REPORT_OBJECT

FIND_TAB_PAGE

FIND_TIMER

FIND_VIEW

FIND_WINDOW

FIRSTBLOCK

FIRSTFIELD

FIRST_BLOCK

FIRST_DETAIL_RELATION

FIRST_FIELD

FIRST_ITEM

FIRST_MASTER_RELATION

FIRST_NAVIGATION_BLOCK

FIRST_RECORD

FIRST_RELATION

FIXED_LENGTH

FLOAT*

FOR*

FORM*

FORMATTED_VALUE

FORMAT_MASK

FORMMODULE

FORMS

FORMS40

FORMS4C

FORMS4G

FORMS4W

FORMS_DDL

FORMS_OLE

FORM_CHARACTERISTIC

FORM_FAILURE

FORM_FATAL

FORM_NAME

FORM_OLE_FAILURE

FORM_SCOPE

FORM_SUCCESS

FOR_UPDATE

FROM*

FULL_ROLLBACK

FULL_SCREEN

FUNCTION*

GENERAL_EXCEPTION

GENERATE_SEQUENCE_NUMBER

GENERIC*

GET_APPLICATION_PROPERTY

GET_BLOCK_PROPERTY

GET_CANVAS_PROPERTY

GET_FILE_NAME

GET_FORM_PROPERTY

GET_GROUP_CHAR_CELL

GET_GROUP_DATE_CELL

GET_GROUP_NUMBER_CELL

GET_GROUP_ROW_COUNT

GET_GROUP_SELECTION

GET_GROUP_SELECTION_COUNT

GET_ITEM_INSTANCE_PROPERTY

GET_ITEM_PROPERTY

GET_LIST_ELEMENT_COUNT

GET_LIST_ELEMENT_LABEL

GET_LIST_ELEMENT_VALUE

GET_LOV_PROPERTY

GET_MENU_ITEM_PROPERTY

GET_MESSAGE

GET_OLEARG_CHAR

GET_OLEARG_NUM

GET_OLEARG_OBJ

GET_OLEARG_VAR

GET_OLE_CHAR

GET_OLE_MEMBERID

GET_OLE_NUM

GET_OLE_OBJ

GET_OLE_VAR

GET_PARAMETER_ATTR

GET_PARAMETER_LIST

GET_RADIO_BUTTON_PROPERTY

GET_RECORD_PROPERTY

GET_RELATION_PROPERTY

GET_REPORT_OBJECT_PROPERTY

GET_TAB_PAGE_PROPERTY

GET_VAR_BOUNDS

GET_VAR_DIMS

GET_VAR_TYPE

GET_VIEW_PROPERTY

GET_WINDOW_PROPERTY

GLOBAL_EVENT

GLOBAL_SCOPE

GOTO*

GO_BLOCK

GO_FIELD

GO_FORM

GO_ITEM

GO_RECORD

GRANT*

GRAPHICS

GRAYSCALE

GROUP*

GROUPCOLUMN

GROUP_NAME

HAVING*

HEIGHT

HELP

HIDDEN

HIDE

HIDE_MENU

HIDE_ON_EXIT

HIDE_PAGE

HIDE_VIEW

HIDE_WINDOW

HIGH_COMPRESSION

HIGHEST_SOUND_QUALITY

HIGH_SOUND_QUALITY

HINT_TEXT

HOLDER

HOST

ICONIC_BUTTON

ICON_NAME

IDENTIFIED*

IDENTIFIER

ID_NULL

IF*

IMAGE_ADD

IMAGE_AND

IMAGE_SCROLL

IMAGE_SUBTRACT

IMAGE_XOR

IMAGE_ZOOM

IMMEDIATE

IN*

INDEX*

INDEXES*

INDICATOR*

INITIAL_VALUE

INIT_OLEARGS

INSERT*

INSERT_ALLOWED

INSERT_RECORD

INSERT_RECORDS

INSERT_SOURCE

INSERT_SOURCE_TYPE

INSERT_STATUS

INTEGER*

INTERACTION_MODE

INTERSECT*

INTO*

INVALID_ARGUMENT

INVALID_TIMER_INTERVAL

IS*

ISNULL

ISOLATED

ISOLATION_MODE

ISSUE_ROLLBACK

ISSUE_SAVEPOINT

ITEM

ITEM_CANVAS

ITEM_DEFAULT_VALUE

ITEM_ENABLED

ITEM_IS_VALID

ITEM_LENGTH

ITEM_NAME

ITEM_SCOPE

ITEMS_IN_BLOCK

ITEM_SIZE

ITEM_TAB_PAGE

ITEM_TYPE

KEEP_POSITION

KEY_MODE

LABEL

LASTBLOCK

LASTFIELD

LAST_BLOCK

LAST_FIELD

LAST_ITEM

LAST_OLE_ERROR

LAST_OLE_EXCEPTION

LAST_QUERY

LAST_RECORD

LEVEL*

LIKE*

LIMITED*

LIST

LIST_VALUES

LOCATION

LOCKING_MODE

LOCK_RECORD

LOCK_RECORDS

LOCK_RECORD_ON_CHANGE

LOGON

LOGON_SCREEN

LOGOUT

LONG_COLUMN

LOOP*

LOV

LOV_NAME

LOV_SIZE

LOV_VALIDATION

LOV_X_POS

LOV_Y_POS

LOW_COMPRESSION

LOWEST_SOUND_QUALITY

LOW_SOUND_QUALITY

LOWERCASE

LOWERED

LUT

MACRO

MAIL

MAIN_MENU

MASTER_DELETES

MASTER_NAME

MAX*

MAXIMIZE

MAXIMIZE_COMPRESSION

MAX_LENGTH

MAX_QUERY_TIME

MAX_RECORDS_FETCHED

MEDIUM_COMPRESSION

MEDIUM_SOUND_QUALITY

MENU

MENUITEM

MENU_CLEAR_FIELD

MENU_FAILURE

MENU_HELP

MENU_MESSAGE

MENU_NEXT_FIELD

MENU_PARAMETER

MENU_PREVIOUS_FIELD

MENU_REDISPLAY

MENU_SHOW_KEYS

MENU_SUCCESS

MESSAGE

MESSAGE_CODE

MESSAGE_TEXT

MESSAGE_TYPE

MIN*

MINIMIZE

MINIMIZE_COMPRESSION

MINUS*

MLSLABEL*

MNEMONIC

MOD*

MODE

MODULE_NLS_CHARACTER_SET

MODULE_NLS_LANG

MODULE_NLS_LANGUAGE

MODULE_NLS_TERRITORY

MONOCHROME

MONOPHONIC

MOUSE_NAVIGABLE

MOUSE_NAVIGATE

MOVE_VIEW

MOVE_WINDOW

MULTI_LINE

MYTYPE

NAME_IN

NATURAL*

NAVIGABLE

NAVIGATION_STYLE

NEW*

NEW_APPLICATION

NEW_FORM

NEW_STATUS

NEW_USER

NEXTBLOCK

NEXTFIELD

NEXTITEM

NEXTVAL*

NEXT_BLOCK

NEXT_DETAIL_RELATION

NEXT_FIELD

NEXT_FORM

NEXT_ITEM

NEXT_KEY

NEXT_MASTER_RELATION

NEXT_MENU_ITEM

NEXT_NAVIGATION_BLOCK

NEXT_NAVIGATION_ITEM

NEXT_RECORD

NEXT_RELATION

NEXT_SET

NOCOMPRESS*

NO_COMPRESSION

NONE

NONE_PARAMA

NON_COORDINATED

NON_ISOLATED

NON_UPDATEABLE_PRIMARY_KEY

NORMAL

NO_SHARE_LIBRARY_DATA

NOT*

NO_ACKNOWLEDGE

NO_ACKNOWLEDGE_PREVIOUS

NO_ACTIVATE

NO_CHANGE

NO_COMMIT

NO_EXCEPTION

NO_HIDE

NO_OPERATION

NO_PROMPT

NO_QUERY_ONLY

NO_REMOVE_LIST

NO_REPEAT

NO_REPLACE

NO_RESTRICT

NO_ROLLBACK

NO_SCREEN

NO_SESSION

NO_SUCH_TIMER

NO_VALIDATE

NO_WAIT

NULL*

NULL_COMMAND

NUMBER*

NUMBER_BASE*

NUMBER_COLUMN

OF*

OHOST

OLEOBJ

OLEVAR

OLEVAR_NULL

OLE_SAFEARRAYBOUND

OLE_SAFEARRAYBOUNDS

OLE2_CLASSNAME

OLE2_FILENAME

ON*

OPEN*

OPEN_AT_COMMIT

OPEN_FILE

OPEN_FORM

OPERATING_SYSTEM

OPTIMIZER_HINT

OPTION*

OR*

ORDER*

ORDER_BY

ORIGINAL_DEPTH

ORIGINAL_QUALITY

ORIGINAL_SETTING

OS_COMMAND

OS_COMMAND1

OTHERS*

OUT *

PACKAGE*

PAGE

PARAMLIST

PARAMTYPE_PARAMA

PARAM_ATTR

PARTITION*

PASSWORD

PASTE_REGION

PAUSE

PCTFREE*

PECS

PLAY_SOUND

PLITBLM

PLSQL_TABLE

POPULATE_BLOCK

POPULATE_GROUP

POPULATE_GROUP_WITH_QUERY

POPULATE_LIST

POPULATE_TABLE

POPUPMENU_COPY_ITEM

POPUPMENU_CUT_ITEM

POPUPMENU_DELOBJ_ITEM

POPUPMENU_INSOBJ_ITEM

POPUPMENU_LINKS_ITEM

POPUPMENU_OBJECT_ITEM

POPUPMENU_PASTESPEC_ITEM

POPUPMENU_PASTE_ITEM

POSITION

POSITION_ON_CANVAS

POSITIVE*

POST

PRAGMA*

PREVENT_MASTERLESS_OPERATION

PREVIEW

PREVIOUSBLOCK

PREVIOUSFIELD

PREVIOUSITEM

PREVIOUS_BLOCK

PREVIOUS_FIELD

PREVIOUS_FORM

PREVIOUS_ITEM

PREVIOUS_MENU

PREVIOUS_MENU_ITEM

PREVIOUS_NAVIGATION_BLOCK

PREVIOUS_NAVIGATION_ITEM

PREVIOUS_RECORD

PRIMARY_KEY

PRINT

PRINTER

PRIOR*

PRIVATE*

PROCEDURE*

PROCEDURE_SOURCE

PROMPT_ALIGNMENT_OFFSET

PROMPT_ALL_RECORDS

PROMPT_DISPLAY_STYLE

PROMPT_EDGE

PROMPT_EDGE_ALIGNMENT

PROMPT_EDGE_OFFSET

PROMPT_FIRST_RECORD

PROMPT_HIDDEN

PROMPT_TEXT

PROMPT_TEXT_ALIGNMENT

PROMPT_VISUAL_ATTRIBUTE

PROPERTY_FALSE

PROPERTY_OFF

PROPERTY_ON

PROPERTY_TRUE

PTR_TO_VAR

PUBLIC *

PULL_DOWN

QUERYABLE

QUERY_ALLOWED

QUERY_DATA_SOURCE_NAME

QUERY_DATA_SOURCE_TYPE

QUERY_HITS

QUERY_LENGTH

QUERY_ONLY

QUERY_OPTIONS

QUERY_PARAMETER

QUERY_SOURCE

QUERY_SOURCE_TYPE

QUERY_STATUS

RAISE*

RAISED

RANGE*

RANGE_HIGH

RANGE_LOW

READ_IMAGE_FILE

READ_SOUND_FILE

REAL*

RECALCULATE

RECORD*

RECORDGROUP

RECORDS_DISPLAYED

RECORDS_TO_FETCH

RECORD_SCOPE

REDISPLAY

RELATION

RELEASE*

RELEASE_OBJ

REM*

REMOVE_LIST

REMOVE_ON_EXIT

RENAME*

REPEAT

REPLACE_CONTENT_VIEW

REPLACE_MENU

REPORT_COMM_MODE

REPORT_DESFORMAT

REPORT_DESNAME

REPORT_DESTYPE

REPORT_EXECUTION_MODE

REPORT_FILENAME

REPORT_OBJECT

REPORT_OBJECT_STATUS

REPORT_OTHER

REPORT_QUERY_NAME

REPORTS

REPORT_SERVER

REPORT_SOURCE_BLOCK

REQUIRED

RESET_GROUP_SELECTION

RESIZE_VIEW

RESIZE_WINDOW

RESOURCE*

RESTRICT

RESTRICTED

RESTRICTED_ALLOWED

RESTRICTED_FORBIDDEN

RETRIEVE_LIST

RETURN*

REVERSE*

REVOKE*

ROLLBACK*

ROLLBACK_FORM

ROLLBACK_NR

ROLLBACK_RL

ROLLBACK_SV

ROWID*

ROWLABEL*

ROWNUM*

ROWTYPE*

RUN*

RUN_PRODUCT

RUN_REPORT_OBJECT

RUNTIME

SAME_RECORD

SAVE_FILE

SAVEPOINT*

SAVEPOINT_MODE

SAVEPOINT_NAME

SCHEMA*

SCREEN

SCROLLBAR

SCROLL_DOWN

SCROLL_UP

SCROLL_VIEW

SECURE

SELECT*

SELECTION_RECTANGLE

SELECT_ALL

SELECT_RECORDS

SEPARATE*

SESSION

SET*

SET_ALERT_PROPERTY

SET_APPLICATION_PROPERTY

SET_BLOCK_PROPERTY

SET_CANVAS_PROPERTY

SET_FIELD

SET_FORM_PROPERTY

SET_GROUP_CHAR_CELL

SET_GROUP_DATE_CELL

SET_GROUP_NUMBER_CELL

SET_GROUP_SELECTION

SET_INPUT_FOCUS

SET_ITEM_INSTANCE_PROPERTY

SET_ITEM_PROPERTY

SET_LOV_PROPERTY

SET_MENU_ITEM_PROPERTY

SET_OLE

SET_PARAMETER_ATTR

SET_RADIO_BUTTON_PROPERTY

SET_RECORD_PROPERTY

SET_RELATION_PROPERTY

SET_REPORT_OBJECT_PROPERTY

SET_TAB_PAGE_PROPERTY

SET_TIMER

SET_VAR

SET_VIEW_PROPERTY

SET_WINDOW_PROPERTY

SHOWN

SHOW_ALERT

SHOW_BACKGROUND_MENU

SHOW_DOCUMENT

SHOW_EDITOR

SHOW_FAST_FORWARD_BUTTON

SHOW_KEYS

SHOW_LOV

SHOW_MENU

SHOW_PAGE

SHOW_PALETTE

SHOW_PLAY_BUTTON

SHOW_POPUPMENU

SHOW_RECORD_BUTTON

SHOW_REWIND_BUTTON

SHOW_SLIDER

SHOW_TIME_INDICATOR

SHOW_VIEW

SHOW_VOLUME_CONTROL

SHOW_WINDOW

SIZE*

SMALLINT*

SPACE*

SPECIFIC_EXCEPTION

SQL*

SQLCODE*

SQLERRM*

SQLFORMS

SQLMENU

STACKED

START*

START_EDGE

STATUS

STATEMENT*

STDDEV*

STEREOPHONIC

SUBTYPE*

SUM*

SYNCHRONIZE

SYNCHRONOUS

TABAUTH*

TABLE*

TABLE_FROM_BLOCK

TABLES*

TABLE_SOURCE

TAB_PAGE

TAB_PAGE_X_OFFSET

TAB_PAGE_Y_OFFSET

TAB_PLACEMENT

TASK*

TERMINATE*

TEXT_PARAMETER

THEN*

TIMER

TIMER_EXISTS

TIMER_NAME

TITLE

TO*

TOOLS

TOOLTIP_ATTRIBUTE

TOOLTIP_TEXT

TOP_EDGE

TOPMOST_TAB_PAGE

TOP_RECORD

TO_SAVEPOINT

TO_VARIANT

TRUE*

TYPE*

UNFORMATTED_VALUE

UNION*

UNIQUE*

UNIQUE_KEY

UNRESTRICTED

UNSET_GROUP_SELECTION

UP

UPDATE*

UPDATEABLE

UPDATEABLE_PRIMARY_KEY

UPDATE_ALLOWED

UPDATE_CHANGED_COLUMNS

UPDATE_CHART

UPDATE_COLUMN

UPDATE_NULL

UPDATE_PERMISSION

UPDATE_RECORD

UPDATE_RECORDS

UPDATE_SOURCE

UPDATE_SOURCE_TYPE

UPPERCASE

UPPER_CASE

USE*

USERNAME

USER_EXIT

USER_INTERFACE

USER_NLS_CHARACTER_SET

USER_NLS_LANG

USER_NLS_LANGUAGE

USER_NLS_TERRITORY

VALIDATE

VALIDATE_FROM_LIST

VALIDATION

VALIDATION_UNIT

VALUE

VALUES*

VALUE_PARAMA

VARCHAR*

VARCHAR2*

VARIANCE*

VARPTR_TO_VAR

VAR_TO_CHAR

VAR_TO_NUMBER

VAR_TO_OBJ

VAR_TO_TABLE

VAR_TO_VARPTR

VBX

VERSION

VIEW*

VIEWS*

VIEWPORT

VIEWPORT_X_POS

VIEWPORT_X_POS_ON_CANVAS

VIEWPORT_Y_POS

VIEWPORT_Y_POS_ON_CANVAS

VIEW_SIZE

VISIBLE

VISUAL_ATTRIBUTE

VT_BLOB

VT_BLOB_OBJECT

VT_BOOL

VT_BSTR

VT_BYREF

VT_CARRAY

VT_CF

VT_CLSID

VT_CY

VT_DATE

VT_DISPATCH

VT_EMPTY

VT_ERROR

VT_FILETIME

VT_HRESULT

VT_I1

VT_I2

VT_I4

VT_I8

VT_INT

VT_LPSTR

VT_LPWSTR

VT_NULL

VT_PTR

VT_R4

VT_R8

VT_SAFEARRAY

VT_STORAGE

VT_STORED_OBJECT

VT_STREAM

VT_STREAMED_OBJECT

VT_TYPE

VT_UI1

VT_UI2

VT_UI4

VT_UI8

VT_UINT

VT_UNKNOWN

VT_USERDEFINED

VT_VARIANT

VT_VOID

WHEN*

WHERE*

WHERE_DISPLAY

WHILE*

WIDTH

WINDOW

WINDOW_HANDLE

WINDOW_NAME

WINDOW_SIZE

WINDOW_STATE

WITH*

WORK*

WRAP_STYLE

WRITE_IMAGE_FILE

XOR*

X_POS

X_POS_ON_CANVAS

YES

Y_POS

Y_POS_ON_CANVAS

ZOOM_IN_FACTOR

ZOOM_OUT_FACTOR

ZOOM_PERCENT


Über AppletViewer

  Verwandte Themen

AppletViewer ist eine Oracle Developer-Komponente, mit der Client-Rechner Anwendungen anzeigen, die auf dem Forms Server ausgeführt werden. AppletViewer ist ein unterstütztes Produkt - Upgrade-Versionen können von der Oracle Developer Web-Site heruntergeladen werden.

Wenn Sie Ihre Anwendung in AppletViewer ausführen, werden Anforderungen zur Darstellung eines URL - d.h. web.showDocument und RUN_PRODUCT - von AppletViewer ignoriert. In diesem Fall müssen Sie die Schritte für das "Trusten" des Forms-Applet ausführen.

Hinweis: AppletViewer wird nur unter Windows 95 und Windows NT 4.0 unterstützt.


AppletViewer installieren

  Nächster Schritt	  Verwandte Themen

So installieren Sie AppletViewer:

1	Installieren Sie den JDK AppletViewer mit dem Oracle-Installationsprogramm:

•	Fahren Sie eventuell aktive Windows-Anwendungen herunter.

•	Wählen Sie in der Task-Leiste Start [image] Ausführen.

•	Im Dialogfeld Ausführen geben Sie folgendes ein (wobei D: der Buchstabe des CD-ROM-Laufwerks ist): D:\setup.exe, und klicken Sie auf OK.

•	Im Dialogfeld Sprache wählen Sie eine Sprache, und klicken Sie auf OK.

•	Wählen Sie im Dialogfeld für die Oracle-Installationseinstellungen die Standardwerte für Ihren Firmennamen und Ihr ORACLE_HOME-Verzeichnis. Akzeptieren oder ändern Sie die Werte, und klicken Sie auf OK.

•	Klicken Sie auf die Optionsschaltfläche Benutzerdefinierte Installation oder Entfernen, und klicken Sie dann auf OK.

•	Aus der Liste Verfügbare Produkte wählen Sie JDK AppletViewer.

•	Klicken Sie auf Installieren.

2	Wählen Sie aus der Task-Leiste Start [image] Programme [image] Oracle Developer [image] JDK AppletViewer installieren.

3	Geben Sie in dem Feld Unzip to Folder \ORACLE_HOME\JDK1.1 als Verzeichnis an, in dem die Dateien dekomprimiert werden sollen. Zum Beispiel:  C:\ORANT\JDK1.1.

4	Klicken Sie auf Unzip.

5	Kopieren Sie die Datei JDK_SETUP.BAT aus \ORACLE_HOME\FORMS60\JAVA in Ihr ORACLE_HOME-Verzeichnis (zum Beispiel C:\ORANT).

6	Ändern Sie die Datei JDK_SETUP.BAT in Ihrem ORACLE_HOME-Verzeichnis:

  Öffnen Sie JDK_SETUP.BAT in einem Texteditor.

  Ändern Sie die Umgebungsvariablen CLASSPATH und PATH so, daß das
ORACLE_HOME-Verzeichnis für Ihre Installation angegeben wird. Zum Beispiel:

SET CLASSPATH=C:\ORANT\JDK1.1\JDK\LIB\CLASSES.ZIP
PATH C:\ORANT\JDK1.1\JDK\BIN;%PATH%

  Speichern Sie die Änderungen in JDK_SETUP.BAT.


AppletViewer ausführen

  Nächster Schritt	  Verwandte Themen

So führen Sie AppletViewer aus:

1	Führen Sie JDK_SETUP.BAT aus:

•	Öffnen Sie eine DOS-Eingabeaufforderung, und gehen Sie in das ORACLE_HOME-Verzeichnis.

•	Geben Sie JDK_SETUP.BAT ein, und drücken Sie die Eingabetaste.

2	In demselben DOS-Fenster navigieren Sie zu der ausführbaren Datei von AppletViewer (appletviewer.exe). Zum Beispiel:  C:\ORANT\JDK1.1\JDK\BIN\.

3	Führen Sie die ausführbare AppletViewer-Datei aus, wobei Sie den Host-Namen, das virtuelle Verzeichnis der HTML-Datei und die HTML-Datei angeben. Geben Sie z.B. folgendes ein:

appletviewer http://myhost.com/web_html/start.html

Hinweis: Wenn Sie eine Cartridge-Implementierung verwenden, setzen Sie die HTTP-Anforderung in Anführungszeichen.

4	Drücken Sie die Eingabetaste.


Web-Browser aus AppletViewer aufrufen

  Nächster Schritt	  Verwandte Themen

So rufen Sie einen Web-Browser aus AppletViewer auf:

1	Tragen Sie Forms mit einer der beiden folgenden Methoden ein:

•	Registrieren Sie die Signatur des Forms-Applet.

•	Installieren Sie die Java-Klassendateien von Forms lokal.

2	Fügen Sie den Parameter clientBrowser zu der HTML-Basisdatei hinzu.


Über das Trusting

  Verwandte Themen

Um den Parameter clientBrowser benutzen zu können, benötigen Sie die Sicherheitsberechtigung zur Ausgabe eines Systemaufrufs, der die benannte Anwendung "ausführt". Beim Laden von Java-Klassendateien ist das Forms-Applet im allgemeinen nicht "trusted" und kann somit keine Systemaufrufe ausgeben. Wenn das Forms-Applet jedoch "trusted" ist, kann es diese Aufrufe ausgeben. Das Forms-Applet wird als "trusted" bezeichnet, wenn eine der folgenden Bedingungen erfüllt ist:

•	Die Signatur des Forms-Applet ist auf dem Client-Rechner "registriert", oder

•	Die Java-Klassendateien von Forms sind lokal auf dem Client-Rechner installiert, und die Umgebungsvariable CLASSPATH ist eingestellt.


Über das Registrieren der Forms Applet-Signatur

  Verwandte Themen

Mit einer Signatur können Client-Rechner prüfen, ob eine Datei von einer gültigen und "trusted" Entität (einem "Unterzeichner") heruntergeladen wurde, und sich somit vor schadhaften und nicht einwandfreien Java-Archivdateien (JAR) schützen. Damit eine JAR-Datei von einem Client validiert wird, muß die Signatur dieser Datei auf dem Client-Rechner registriert sein. Javakey ist das Befehlszeilen-Tool von Sun Microsystems, mit dem digitale Signaturen für JAR-Dateien generiert werden.

Das Forms-Applet ist selbst eine signierte JAR-Datei. Sie haben zwei Möglichkeiten für das Registrieren der Forms-Applet-Signatur:

•	Registrieren Sie die Signatur auf Ihrem Client-Rechner mit der von uns gelieferten Forms-Applet-Signatur, oder

•	Signieren Sie das Forms-Applet erneut mit Ihrer eigenen Signatur, und registrieren Sie diese Signatur auf Ihrem Client-Rechner. Wenn Sie diese Methode wählen, finden Sie unter http://java.sun.com/security/usingJavakey.html weitere Instruktionen für das Erstellen und Signieren von JAR-Dateien.


Trusting des Forms Applet durch Registrieren der Signatur

  Nächster Schritt	  Verwandte Themen

So "trusten" Sie das Forms-Applet durch Registrieren der Signatur:

1	Kopieren Sie die Oracle Developer-Zulassung in das Verzeichnis \ORACLE_HOME\FORMS60\JAVA auf dem Client-Rechner.

Die Zulassung besteht aus einer Datei mit der Bezeichnung Dev2K.x509. Sie ist im Verzeichnis \ORACLE_HOME\FORMS60\JAVA auf dem Server gespeichert.

2	Öffnen Sie eine DOS-Eingabeaufforderung, und gehen Sie zu \ORACLE_HOME\FORMS60\JAVA.

3	Geben Sie javakey -c Developer/2000 true ein.

Dieser Befehl erstellt eine Trusted Identity für AppletViewer in der Identitätsdatenbank auf dem Client-Rechner, wobei der genaue Name des Zulassungsberechtigten verwendet wird.

javakey -c Developer/2000 true

4	Drücken Sie die Eingabetaste.

5	Geben Sie javakey -ic Developer/2000 Dev2K.x509 ein.

Dieser Befehl importiert die Zulassung Dev2K.x509 in die JDK-Identitätsdatenbank des Client und verknüpft die Zulassung mit der Trusted Identity, die in Schritt 3 erstellt wurde.

6	Drücken Sie die Eingabetaste.


Trusting des Forms Applet durch lokales Installieren der Forms Java-Klassendateien

  Nächster Schritt	  Verwandte Themen

So trusten Sie das Forms-Applet, indem Sie die Java-Klassendateien lokal installieren:

1	Kopieren Sie das Verzeichnis \ORACLE_HOME\FORMS60\JAVA in ein neues Verzeichnis auf dem Client-Rechner.

Hinweis:  Kopieren Sie dieses Verzeichnis ganz genau; ändern Sie die Verzeichnisstruktur in keiner Weise.

2	Ändern Sie JDK_SETUP.BAT in Ihrem ORACLE_HOME-Verzeichnis:

•	Öffnen Sie JDK_SETUP.BAT in einem Texteditor.

•	Ändern Sie die Umgebungsvariable CLASSPATH so, daß sie das neue Verzeichnis referenziert.

•	Speichern Sie Ihre Änderungen in JDK_SETUP.BAT.


Parameter "clientBrowser" zu der HTML-Basisdatei hinzufügen
Parameter clientBrowser zu der HTML-Basisdatei hinzufügen

  Verwandte Themen

Sie haben zwei Möglichkeiten, den Parameter clientBrowser einzustellen:

•	Fügen Sie den Parameter clientBrowser zu Ihrer HTML-Datei hinzu, und ändern Sie die Datei JDK_SETUP.BAT auf jedem Client. Diese Option eignet sich am besten, wenn auf Client-Rechnern die ausführbaren Browser-Dateien möglicherweise in anderen physikalischen Verzeichnissen installiert sind. Bei dieser Option wird jedoch davon ausgegangen, daß alle Clients denselben Browser benutzen. Die HTML-Datei könnte z.B. folgendermaßen aussehen:

<APPLET CODEBASE="/web_code/"
CODE="oracle.forms.engine.Main"
ARCHIVE="/web_code/f60all.jar"
HEIGHT=20
WIDTH=20>
<PARAM NAME="serverArgs" VALUE="module=start.fmx userid=scott/tiger">
<PARAM NAME="clientBrowser" VALUE="netscape">
</APPLET>

Und JDK_SETUP.BAT würde wie folgt aussehen:

SET CLASSPATH=C:\ORANT\JDK1.1\JDK\LIB\CLASSES.ZIP
PATH C:\PROGRAM FILES\NETSCAPE\COMMUNICATOR\PROGRAM;
C:\ORANT\JDK1.1\JDK\BIN;%PATH%

•	Fügen Sie den Parameter clientBrowser zu Ihrer HTML-Datei hinzu. Bei dieser Option wird davon ausgegangen, daß die ausführbare Browser-Datei auf jedem Client in demselben physikalischen Verzeichnis installiert ist, da der physikalische Pfad des Browsers in der HTML-Datei fest codiert ist. Zum Beispiel:

<APPLET CODEBASE="/web_code/"
CODE="oracle.forms.engine.Main"
ARCHIVE="/web_code/f60all.jar"
HEIGHT=20
WIDTH=20>
<PARAM NAME="serverArgs"
VALUE="module=start.fmx userid=scott/tiger">
<PARAM NAME="clientBrowser"
VALUE="c:\program files\netscape\communicator\program\netscape.exe">
<APPLET>

Hinweis:  In diesen Beispielen für HTML-Dateien wird davon ausgegangen, daß Sie das Forms-Applet durch Registrieren der Signatur auf Ihrem Rechner berechtigt haben. Wenn Sie das Forms-Applet jedoch durch lokale Installation der Forms Java-Klassendateien berechtigt haben, sollten Sie die Datei F60ALL.JAR nicht herunterladen. Deshalb entfernen Sie das Applet-Tag ARCHIVE="/.../f60all.jar" aus Ihrer HTML-Datei.


http://www.oracle.com/products/tools/dev2k/index.html


appletviewer "http://myhost.com/web_html/start.html"


Über die Array-Verarbeitung

  Verwandte Themen

Die Array-Verarbeitung ist eine Option in Form Builder, mit der die Verarbeitungsweise von Datensätzen geändert wird. Standardmäßig verarbeitet Form Builder Datensätze nacheinander. Durch Aktivieren der Array-Verarbeitung können Sie Gruppen mit Datensätzen gleichzeitig verarbeiten, so daß der Netzwerkverkehr reduziert und somit die Leistung verbessert wird. Bei der Array-Verarbeitung wird eine Struktur (Array) mit mehreren Datensätzen an den Server zur Verarbeitung gesendet bzw. vom Server zurückgeschickt. Form Builder unterstützt sowohl die Array-Abrufen-Verarbeitung als auch die Array-DML-Verarbeitung. Sowohl bei Abfrage- als auch bei DML-Vorgängen können Sie die Array-Größe so festlegen, daß die Leistung entsprechend Ihren Anforderungen optimiert wird.

Die Array-Verarbeitung ist bei Abfrage- und DML-Vorgängen für Blöcke basierend auf Tabellen, Ansichten, Prozeduren und Unterabfragen verfügbar. Sie wird bei Blöcken, die auf Transaktionstriggern aufgebaut sind, nicht unterstützt.


Über die Trigger-Verarbeitung während der Array-DML-Verarbeitung

  Verwandte Themen

Alle Pre-Trigger werden vor der Ausführung von DML-Vorgängen für den Array mit Datensätzen ausgelöst. Alle Post-Trigger werden nach der Ausführung von DML-Vorgängen für den Array mit Datensätzen ausgelöst. So ist z.B. ein Pre-Insert- trigger und Post-Insert-Trigger für ein Objekt vorhanden, und das Attribut für die DML-Array-Größe ist 10. Wenn 25 Datensätze auf die Verarbeitung warten, werden zuerst alle 25 Pre-Insert-Trigger ausgelöst. Ein Array mit 10 Datensätzen wird eingefügt. Ein zweiter Array mit 10 Datensätzen und ein dritter Array, der die restlichen 5 Datensätze enthält, werden eingefügt. Schließlich werden alle 25 Post-Insert-Trigger ausgelöst.

Die Array-DML-Verarbeitung ist deaktiviert, wenn der On-Insert-, On-Update- oder On-Delete- Trigger vorhanden ist, da die On-Trigger die Standardverarbeitung, einschließlich der Funktion zur Array-Verarbeitung entfernen.


Array-Verarbeitung für Abfragen aktivieren

  Verwandte Themen

So aktivieren Sie die Array-Verarbeitung für Abfragen:

1	Wählen Sie Werkzeuge [image] Voreinstellungen.

2	Klicken Sie auf das Register Laufzeit.

3	Wählen Sie das Kontrollkästchen Array-Verarbeitung aus.

4	Klicken Sie auf OK.

5	Im Objektnavigator klicken Sie auf das Symbol für das Blockobjekt [image].

6	Doppelklicken Sie auf das Symbol für das Blockobjekt [image], um die Attributpalette anzuzeigen.

7	Unter dem Knoten Datensätze setzen Sie das Attribut Abfrage-Array-Größe auf eine Zahl, die der Anzahl von Datensätzen in dem Array für die Array-Verarbeitung entspricht.


Array-Verarbeitung für DML aktivieren

  Verwandte Themen

So aktivieren Sie die Array-Verarbeitung für DML:

1	Wählen Sie Werkzeuge [image] Voreinstellungen.

2	Klicken Sie auf das Register Laufzeit.

3	Wählen Sie das Kontrollkästchen Array-Verarbeitung aus.

4	Im Objektnavigator klicken Sie auf das Symbol für das Blockobjekt [image].

5	Doppelklicken Sie auf das Symbol für das Blockobjekt [image], um die Attributpalette anzuzeigen.

6	Unter dem Knoten Komplexe Datenbank stellen Sie das Attribut DML-Array-Größe auf eine Zahl ein, die der Anzahl von Datensätzen in dem Array für die Array-Verarbeitung entspricht.


Überblick über vordefinierte Prozeduren

  Verwandte Themen	 Alle vordefinierten Prozeduren

Form Builder enthält vordefinierte Prozeduren, die Sie aus Triggern und benutzerdefinierten Unterprogrammen aufrufen können, die Sie selbst schreiben. Mit vordefinierten Prozeduren erhalten Sie eine programmgesteuerte Kontrolle über Standard-Anwendungsfunktionen, einschließlich Navigation, Schnittstellensteuerung und Transaktionsverarbeitung.

Dieser Abschnitt enthält folgende Informationen:

•	Syntax von vordefinierten Prozeduren

•	Benannte Parameter von vordefinierten Prozeduren

•	Beispiele für Code von vordefinierten Prozeduren

•	Objekt-IDs von vordefinierten Prozeduren

•	Eingeschränkte vordefinierte Prozeduren

•	Konstanten von vordefinierten Prozeduren


Syntax von vordefinierten Prozeduren

 Alle vordefinierten Prozeduren

Benannte Parameter werden in einer Festschritt-Schriftart kursiv dargestellt. Sie können jeden benannten Parameter durch den tatsächlichen Parameter ersetzen, bei dem es sich um eine Konstante, ein Literal, eine Bindevariable oder eine Zahl handeln kann.

SET_TIMER(timer_name, milliseconds, iterate);

In diesem Beispiel muß der angegebene Timername in einfachen Anführungszeichen stehen, da es sich bei timername um einen CHAR-Wert handelt. Der Parameter milliseconds wird als Zahl übergeben und muß demzufolge nicht in einfachen Anführungszeichen stehen. Der Parameter iterate wird als Konstante übergeben und muß deshalb genauso eingegeben werden, wie in der Parameterbeschreibung dargestellt, d.h. ohne einfache Anführungszeichen. Die Groß- oder Kleinschreibung spielt keine Rolle.

In den Fällen, in denen eine Reihe von optionalen Elementen zur Verfügung steht, werden verschiedene Syntax-Anweisungen dargestellt. Diese Alternativen werden aufgeführt, damit Sie nicht viele verschiedene komplizierte syntaktische Regeln entziffern müssen.

Beachten Sie, daß Sie gelegentlich Variablen anstelle bestimmter Objektnamen verwenden. In diesen Fällen dürfen die Variablen nicht in einfachen Anführungszeichen stehen. In dem folgenden Beispiel wird ein When-Timer-Expired-Trigger dargestellt, der die vordefinierte Prozedur SET_TIMER aufruft und eine Variable referenziert, die einen gültigen Timernamen enthält.

DECLARE
   the_timer  CHAR := GET_APPLICATION_PROPERTY(TIMER_NAME);
BEGIN
   SET_TIMER(the_timer, 60000, REPEAT);
END;


Benannte Parameter von vordefinierten Prozeduren

 Alle vordefinierten Prozeduren

Auf den benannten Parameter müssen die Gleichheits-/Größer-als-Zeichen (=>) folgen, die auf den tatsächlichen Parameter zeigen, der auf den benannten Parameter folgt. Wenn Sie z.B. die Millisekunden in der vordefinierten Prozedur SET_TIMER ändern möchten, können Sie diesen Parameter direkt mit der folgenden Syntax benutzen:

SET_TIMER(timer_name => 'my_timer', milliseconds => 12000,
                 iterate => NO_REPEAT);

Außerdem können Sie die vordefinierte Prozedur mit folgender Syntax aufrufen:

SET_TIMER('my_timer', 12000, NO_REPEAT);


Beispiele für Code von vordefinierten Prozeduren

Für die vordefinierten Prozeduren wurden Beispiele aufgenommen. Einige Beispiele sind einfache Darstellungen der Syntax. Andere sind komplexere Darstellungen für die Benutzung der vordefinierten Prozedur alleine oder in Verbindung mit anderen vordefinierten Prozeduren. Hier einige Richlinien, die bei der Syntax für die Beispiele berücksichtigt werden müssen:

•	Beispiele werden genauso dargestellt, wie sie eingegeben werden können.

•	Die Groß-/Kleinschreibung und die Benutzung der Kursivschrift kann ignoriert werden und wird nur aus Gründen der besseren Leserlichkeit verwendet.

•	Die Namen der vordefinierten Prozeduren und anderer reservierter PL/SQL-Wörter, wie z.B. IF, THEN, ELSE, BEGIN und END werden aus Gründen der Leserlichkeit in Großbuchstaben dargestellt.

•	Benannte Parameter werden kursiv dargestellt. Wenn Sie benannte Parameter benutzen möchten, geben Sie diese Parameternamen genau wie dargestellt in einfachen Anführungszeichen ein, und setzen Sie hinter die Parameternamen die Gleichheits-/Größer-als-Symbole (=>).

•	Argumente vom Typ CHAR müssen in einfachen Anführungszeichen stehen.

•	Argumente eines anderen Datentyps müssen nicht in Anführungszeichen stehen.

•	Sonderzeichen, mit Ausnahme von einfachen Anführungszeichen ('), Kommas (,), Klammern, Unterstreichungszeichen (_) und Semikolon (;), sollten ignoriert werden.


Objekt-IDs von vordefinierten Prozeduren

 Alle vordefinierten Prozeduren

Einige vordefinierte Prozeduren akzeptieren Objekt-IDs als konkrete Parameter. Eine Objekt-ID ist ein internes, deckendes Handle, das jedem Objekt beim Erstellen im Form Builder zugewiesen wird. Objekt-IDs werden intern verwaltet und können nicht extern vom Benutzer angezeigt werden. Die einzige Methode für das Abrufen der ID besteht darin, eine lokale oder globale Variable zu definieren und den Rückgabewert des Objektes der Variablen zuzuweisen.

Die Zuweisung erfolgt über vordefinierte FIND_-Funktionen. Nachdem Sie FIND_ innerhalb eines PL/SQL-Blocks benutzt haben, können Sie die Variable als Objekt-ID benutzen, während Sie noch in dem Block arbeiten. Der gültige PL/SQL-Typ für jedes Objekt wird in der Syntaxbeschreibung für jeden Parameter aufgenommen. Die Beschreibung der vordefinierten Prozedur FIND_BLOCK enthält ein Beispiel für das Abrufen einer Objekt-ID.


Koordinateneinheiten von vordefinierten Prozeduren

 Alle vordefinierten Prozeduren

Bei vielen vordefinierten Prozeduren können Sie Größen- und Positionskoordinaten mit Attributen wie den folgenden angeben:

•	HEIGHT

•	WIDTH

•	DISPLAY_POSITION

•	VIEWPORT_X_POS

•	VIEWPORT_Y_POS

•	VIEW_SIZE

•	VIEWPORT_X_POS_ON_CANVAS

•	VIEWPORT_Y_POS_ON_CANVAS

Wenn Sie Koordinaten bzw. Breite und Höhe angeben, geben Sie diese Maße in Einheiten des aktuellen Form-Koordinatensystems an, die im Attributblatt Formmodul angegeben werden. Das Form-Koordinatensystem definiert die Einheiten zur Angabe von Größen- und Positionskoordinaten für Objekte im Form Builder. Mit dem Attributblatt für das Koordinatensystem bestimmen Sie die Koordinateneinheiten der Form:

•	Zeicheneinheiten oder

•	Reelle Einheiten

•	Zoll

•	Zentimeter

•	Pixel

•	Punkt

Wenn Sie den Entwurf im Zeicheneinheiten-Koordinatensystem vornehmen, werden alle Abmessungs- und Positionskoordinaten des Objekts in Zeicheneinheiten ausgedrückt, so daß Form Builder nur ganze Zahlen für Größen- und Positionsattribute akzeptiert.

Wenn der Entwurf mit reellen Einheiten vorgenommen wird (Zoll, Zentimeter oder Punkt), werden alle Abmessungs- und Positionskoordinaten für die Objekte in den von Ihnen angegebenen Einheiten ausgedrückt, so daß Form Builder sowohl Dezimalzahlen als auch Ganzzahlen für Größen- und Positionsattribute akzeptiert. Die Genauigkeit der reellen Einheiten beläuft sich auf drei Ziffern, so daß Sie Koordinaten in Tausendstel angeben können. Wenn Sie Pixel oder Zeicheneinheiten verwenden, werden die Koordinaten auf ganze Zahlen abgeschnitten.


Rückgabewerte in Großbuchstaben von vordefinierten Prozedurn

 Alle vordefinierten Prozeduren

Die vordefinierten Prozeduren GET_X_PROPERTY, wie z.B. GET_FORM_PROPERTY, geben CHAR-Argumente als Werte in Großbuchstaben zurück. Dies wirkt sich auf den Vergleich von Ergebnissen in IF-Anweisungen aus.


Eingeschränkte vordefinierte Prozeduren

 Alle vordefinierten Prozeduren

Eingeschränkte vordefinierte Prozeduren wirken sich auf die Navigation in Ihrer Form aus, entweder externe Bildschirmnavigation oder interne Navigation. Sie können diese vordefinierten Prozeduren nur aus Triggern aufrufen, während keine interne Navigation stattfindet.

Eingeschränkte vordefinierte Prozeduren können nicht aus den Pre- und Post-Triggern aufgerufen werden, die ausgelöst werden, wenn Form Builder von einem Objekt zum anderen navigiert.

Eingeschränkte vordefinierte Prozeduren können aus den When-Triggern aufgerufen werden, die für Schnittstellenobjekte spezifisch sind, wie z.B. When-Button-Pressed oder When-Checkbox-Changed. Eingeschränkte vordefinierte Prozeduren können auch aus beliebigen When-New-"Objekt"-Instance-Triggern und Schlüsseltriggern aufgerufen werden.

Uneingeschränkte vordefinierte Prozeduren wirken sich nicht auf die logische oder physikalische Navigation aus und können aus jedem beliebigen Trigger aufgerufen werden.

Die Beschreibungen der vordefinierten Prozeduren umfassen eine Überschrift sowie den Typ der vordefinierten Prozedur, mit dem angegeben wird, ob die vordefinierte Prozedur eingeschränkt oder nicht eingeschränkt ist.


Konstanten von vordefinierten Prozeduren

 Alle vordefinierten Prozeduren

Viele der vordefinierten Prozeduren verwenden numerische Werte als Argumente. Häufig wurden Konstanten für diese numerischen Argumente definiert. Eine Konstante ist ein benannter numerischer Wert. Wenn eine Kontante an eine vordefinierte Prozedur übergeben wird, darf der Wert der Konstanten nicht in Anführungszeichen stehen.

Konstanten können immer nur auf der rechten Seite eines Operators in einem Ausdruck stehen.

In einigen Fällen verwenden vordefinierte Prozeduren eine Anzahl möglicher Konstanten als Argumente. Mögliche Konstanten werden in der Beschreibung für jeden Parameter aufgeführt.

Im folgenden Beispiel ist BLOCK_SCOPE eine Konstante, die für die Parameterkonstante VALIDATION_UNIT angegeben werden kann. Andere in der Beschreibung aufgeführte Konstanten sind FORM, RECORD und ITEM.

SET_FORM_PROPERTY('my_form', VALIDATION_UNIT, BLOCK_SCOPE);


Beschreibung der einzelnen vordefinierten Prozeduren

 Beispiele	 Einschränkungen	 Alle vordefinierten Prozeduren

Im weiteren Verlauf dieses Kapitels werden die einzelnen vordefinierten Prozeduren im Detail beschrieben. Jede vordefinierte Prozedur wird in folgendem Format bzw. Teil eines Formats dargestellt:

Syntax

Beschreibt die Syntax der vordefinierten Prozedur. Wenn mehrere Formate für eine vordefinierte Prozedur vorhanden sind, werden alle Formate dargestellt. Wenn z.B. das Zielobjekt einer vordefinierten Prozedur nach Name oder Objekt-ID aufgerufen werden kann, werden beide Syntaxformen dargestellt.

Prozedurtyp  Gibt an, ob die vordefinierte Prozedur eingeschränkt oder nicht eingeschränkt ist.

Rückgabewert  Gibt den Rückgabewert oder Datentyp einer vordefinierten Funktion an.

Abfragemodus  Gibt an, ob die vordefinierte Prozedur im Abfragemodus aufgerufen werden kann.

Beschreibung

Gibt den allgemeinen Zweck und die allgemeine Verwendung der vordefinierten Prozedur an.

Parameter

Beschreibt die Parameter, die in den Syntaxdiagrammen enthalten sind. Unterstrichene Parameter sind im allgemeinen der Standard.


Einschränkungen bei den einzelnen vordefinierten Prozeduren

Hier werden eventuelle Einschränkungen angegeben.


Beispiele für die einzelnen vordefinierten Prozeduren

Enthalten ein konkretes Beispiel, das zusammen mit der Syntax bei der Entwicklung eines realistischen Aufrufs der vordefinierten Prozedur benutzt werden kann.


Vordefinierte Prozedur ABORT_QUERY

 Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

Schließt eine Abfrage, die im aktuellen Block geöffnet ist.

Eine Abfrage ist zwischen dem Zeitpunkt geöffnet, an dem die SELECT-Anweisung ausgegeben wird, und dem Zeitpunkt, nach dem alle Zeilen aus der Datenbank abgerufen wurden. Eine Abfrage ist besonders dann nicht geöffnet, wenn sich die Form im Abfragemodus befindet, da die SELECT-Anweisung noch nicht ausgegeben wurde.

Syntax

PROCEDURE ABORT_QUERY;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Eine Abfrage ist zwischen dem Zeitpunkt geöffnet, an dem die SELECT-Anweisung ausgegeben wird, und dem Zeitpunkt, nach dem alle Zeilen aus der Datenbank abgerufen wurden. Eine Abfrage ist besonders dann nicht geöffnet, wenn sich die Form im Abfragemodus befindet, da die SELECT-Anweisung noch nicht ausgegeben wurde.

Parameter

Keine

Verwendungshinweise

ABORT_QUERY ist kein Äquivalent für den Laufzeit-Menübefehl Abfrage, Abbrechen. Diese Prozedur verhindert den anfänglichen Abruf aus der Datenbank nicht, sondern unterbricht die Verarbeitung des Abrufs und verhindert somit weitere Abrufenvorgänge.


Einschränkungen bei ABORT_QUERY

Verwenden Sie ABORT_QUERY in den folgenden Triggern nicht:

•	On-Fetch.  Der On-Fetch-Trigger wird für Anwendungen benutzt, die Standardfunktionen von Form Builder bei der Ausführung mit fremden Datenquellen durch Transaktionstrigger ersetzen. Um zu signalisieren, daß der On-Fetch-Trigger das Abrufen der Zeilen abgeschlossen hat, beenden Sie den On-Fetch-Trigger, ohne die vordefinierte Prozedur CREATE_QUERIED_RECORD auszugeben.

•	Pre-Query.  Der Pre-Query-Trigger wird ausgelöst, bevor die Abfrage geöffnet wird. Deshalb gibt es keine geöffnete Abfrage, die geschlossen werden muß, und ABORT_QUERY wird ignoriert. Um den Abfragemodus programmgesteuert abzubrechen, rufen Sie die vordefinierte Prozedur EXIT_FORM auf, wobei Sie einen When-New-Record-Instance-Trigger zur Überprüfung einer Marke wie folgt verwenden:

IF (:global.cancel_query = 'Y'
      and :system.mode = 'ENTER-QUERY')
THEN
     Exit_Form;
     :global.cancel_query = 'N';
END IF;

•	Danach setzen Sie die Marke entweder aus einem Pre-Query-Trigger oder einem On-Error-Trigger, der den Fehler FRM-40301 abfängt, auf 'TRUE'.


ACTIVATE_SERVER

 Beispiele	 Einschränkungen	  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Aktiviert einen OLE-Server, der mit einem OLE-Container verknüpft ist, und bereitet den OLE-Server für den Empfang von OLE-Automationsereignissen vom OLE-Container vor.

Syntax

PROCEDURE ACTIVATE_SERVER
  (item_id  Item);

PROCEDURE ACTIVATE_SERVER
  (item_name  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Nein

Parameter

item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist Item.

item_name	Gibt den Namen des beim Entwurf erstellten Objekts an. Der Datentyp des Namens ist VARCHAR2.

Verwendungshinweise

•	Der OLE-Container muß ein OLE-Objekt enthalten, und der OLE-Server muß zur Aktivierung verfügbar sein..


Einschränkungen bei ACTIVATE_SERVER

Nur bei Microsoft Windows und Macintosh gültig.


Beispiele für ACTIVATE_SERVER

/*
** Built-in: ACTIVATE_SERVER
** Example:  Activates the OLE server associated with the object
**           in the OLE container.
** Trigger:  When-Button-Pressed
*/
DECLARE
 item_id  ITEM;
 item_name VARCHAR(25) := 'OLEITM';
BEGIN
 item_id := Find_Item(item_name);
 IF Id_Null(item_id) THEN
  message('No such item: '||item_name);
 ELSE
  Forms_OLE.Activate_Server(item_id);
 END IF;
END;


Vordefinierte Prozedur ADD_GROUP_COLUMN

 Beispiele	 Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

Fügt eine Spalte des angegebenen Typs zu der angegebenen Gruppe mit Datensätzen hinzu.

Syntax

FUNCTION ADD_GROUP_COLUMN
  (recordgroup_id    RecordGroup,
   groupcolumn_name  VARCHAR2,
   column_type       NUMBER);

FUNCTION ADD_GROUP_COLUMN
  (recordgroup_name  VARCHAR2,
   groupcolumn_name  VARCHAR2,
   column_type       NUMBER);
FUNCTION ADD_GROUP_COLUMN
  (recordgroup_id,   RecordGroup
   groupcolumn_name  VARCHAR2,
   column_type       NUMBER,
   column_width      NUMBER);
FUNCTION ADD_GROUP_COLUMN
  (recordgroup_name  VARCHAR2,
   groupcolumn_name  VARCHAR2,
   column_type       NUMBER,
   column_width      NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Abfragemodus  Ja

Rückgabewert  GroupColumn

Parameter

recordgroup_id	Die eindeutige ID, die Form Builder der Gruppe beim Erstellen zugewiesen hat. Der Datentyp der ID ist RecordGroup.

recordgroup_name	Der Name, den Sie der Datensatzgruppe beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

groupcolumn_name 	Gibt den Namen der Spalte an. Der Datentyp des Spaltennamens ist VARCHAR2.

column_type	Gibt den Datentyp der Spalte an. Die folgenden Konstanten sind zulässige Werte:

CHAR_COLUMN  Gibt an, daß die Spalte nur Daten vom Typ CHAR akzeptiert.

DATE_COLUMN  Gibt an, daß die Spalte nur Daten vom Typ DATE akzeptiert.

LONG_COLUMN  Gibt an, daß die Spalte nur Daten vom Typ LONG akzeptiert.

NUMBER_COLUMN  Gibt an, daß die Spalte nur Daten vom Typ NUMBER akzeptiert.

column_width_	Wenn Sie CHAR_COLUMN als Spaltentyp angeben, müssen Sie die maximale Länge der Daten angeben. COLUMN_WIDTH darf 2000 nicht überschreiten und muß als Ganzzahl übergeben werden.

Fehlerbedingungen:

Unter folgenden Bedingungen wird ein Fehler zurückgegeben:

•	Sie geben den Namen einer nicht vorhandenen Datensatzgruppe ein.

•	Sie geben den Namen einer Gruppe oder Spalte ein, der den Standardbenennungsregeln von Oracle nicht entspricht.

•	Sie geben einen anderen Spaltentyp als CHAR, NUMBER, DATE oder LONG ein.


Einschränkungen bei ADD_GROUP_COLUMN

•	Sie müssen Spalten zu einer Gruppe hinzufügen, bevor Sie Zeilen hinzufügen.

•	Sie können keine Spalte zu einer Gruppe hinzufügen, die schon Zeilen enthält. In diesem Fall müssen Sie zuerst die Zeilen mit DELETE_GROUP_ROW löschen und dann die Spalte hinzufügen.

•	Sie können nur Spalten zu einer Gruppe hinzufügen, nachdem diese mit einem Aufruf von CREATE_GROUP erstellt wurde.

•	Wenn die Spalte einer Datenbankspalte entspricht, darf die Breite von Spalten vom Typ CHAR_COLUMN nicht kleiner sein als die Breite der entsprechenden Datenbankspalte.

•	Wenn die Spalte einer Datenbankspalte entspricht, kann die Breite von Spalten vom Typ CHAR_COLUMN größer sein als die Breite der entsprechenden Datenbankspalte.

•	Nur Spalten vom Typ CHAR_COLUMN erfordern den Breite-Parameter.

•	Die Leistung wird beeinträchtigt, wenn eine Datensatzgruppe eine große Anzahl von Spalten enthält.

•	Es kann nur eine LONG-Spalte pro Datensatzgruppe vorhanden sein.


Beispiele für ADD_GROUP_COLUMN

/*

** Built-in:  ADD_GROUP_COLUMN
** Example:   Add one Number and one Char column to a new
**            record group.
*/
PROCEDURE Create_My_Group IS
  rg_name VARCHAR2(15) := 'My_Group';
  rg_id   RecordGroup;
  gc_id   GroupColumn;
BEGIN
  /*
  ** Check to see if Record Group already exists
  */
  rg_id := Find_Group( rg_name );
  /*
  ** If Not, then create it with one number column and one           ** Char column
  */
  IF Id_Null(rg_id) THEN
    rg_id := Create_Group( rg_name );
    gc_id := Add_Group_Column(rg_id, 'NumCol',NUMBER_COLUMN);
    gc_id := Add_Group_Column(rg_id, 'CharCol',CHAR_COLUMN,15);
  END IF;
END;


Vordefinierte Prozedur ADD_GROUP_ROW

 Beispiele	 Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

Fügt eine Zeile zu der angegebenen Datensatzgruppe hinzu.

Syntax

PROCEDURE ADD_GROUP_ROW
  (recordgroup_id  RecordGroup,
   row_number      NUMBER);

PROCEDURE ADD_GROUP_ROW
  (recordgroup_name  VARCHAR2,
   row_number        NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

recordgroup_id	Die eindeutige ID, die Form Builder der Gruppe beim Erstellen zugewiesen hat. Der Datentyp der ID ist RecordGroup.

recordgroup_name	Der Name, den Sie der Datensatzgruppe beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

row_number	Eine Ganzzahl, die eine Zeile in der Gruppe angibt. Wenn Sie eine Zeile bei einer beliebigen Position mit Ausnahme der letzten Position in einer Gruppe hinzufügen, werden alle nachfolgenden Zeilen logisch neu numeriert. Um eine Zeile am Ende einer Gruppe hinzuzufügen, verwenden Sie die Konstante END_OF_GROUP.

Fehlerbedingungen:

Form Builder gibt einen Laufzeitfehler bei einer der folgenden Bedingungen zurück:

•	Wenn Sie den Namen einer nicht vorhandenen Datensatzgruppe eingeben.

•	Wenn Sie eine Zeilennummer angeben, die außerhalb des zulässigen Bereichs liegt oder ungültig ist (z.B. einen Buchstaben).


Einschränkungen bei ADD_GROUP_ROW

•	Eine Gruppe kann aus 0 oder mehr Zeilen bestehen.

•	Sie können Zeilen nur zu einer Gruppe hinzufügen, nachdem diese erstellt wurde und nachdem Spalten hinzugefügt wurden.

•	Wenn Sie eine Zeilennummer angeben, die größer ist als die Anzahl von schon in der Gruppe vorhandenen Zeilen (oder einer negativen Zahl entspricht), wird die Zeile am Ende der Gruppe eingefügt.

•	Sie können keine Zeilen ohne eine Abfrage zu einer statischen Gruppe hinzufügen.


Beispiele für ADD_GROUP_ROW

/*

** Built-in:  ADD_GROUP_ROW
** Example:   Add ten rows to a new record group and populate.
*/
PROCEDURE Populate_My_Group IS
  rg_name  VARCHAR2(20) := 'My_Group';
  rg_col1  VARCHAR2(20) := rg_name||'.NumCol';
  rg_col2  VARCHAR2(20) := rg_name||'.CharCol';
  rg_id    RecordGroup;
  gc_id    GroupColumn;
  in_words VARCHAR2(15);
BEGIN
  /*
  ** Check to see if Record Group already exists
  */
  rg_id := Find_Group( rg_name );
  /*
  ** If it does, then clear all the rows from the group and
  ** populate ten rows with the numbers from 1..10 along
  ** with the equivalent number in words.
  **
  **    Row#    NumCol    CharCol
  **    ----    ------    -------
  **      1        1        one
  **      2        2        two
  **      :        :         :
  **     10       10        ten
  */
  IF NOT Id_Null(rg_id) THEN
    Delete_Group_Row( rg_id, ALL_ROWS );
    FOR i IN 1..10 LOOP
      /*
      ** Add the i-th Row to the end (bottom) of the
      ** record group, and set the values of the two cells
      */
      in_words := TO_CHAR(TO_DATE(i,'YYYY'),'year');
      Add_Group_Row( rg_id, END_OF_GROUP );
      Set_Group_Number_Cell( rg_col1, i, i);
      Set_Group_Char_Cell( rg_col2, i, in_words);
    END LOOP;
  END IF;
END;


Vordefinierte Prozedur ADD_LIST_ELEMENT

 Beispiele	 Einschränkungen	  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Fügt ein einzelnes Element zu einem Listenobjekt hinzu.

Syntax

PROCEDURE ADD_LIST_ELEMENT
  (list_name   VARCHAR2,
   list_index, NUMBER
   list_label  VARCHAR2,
   list_value  NUMBER);

PROCEDURE ADD_LIST_ELEMENT
  (list_id     ITEM,
   list_index  VARCHAR2,
   list_label  VARCHAR2,
   list_value  NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

list_id	Gibt die eindeutige ID an, die Form Builder dem Listenobjekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.

list_name	Der Name, den Sie dem Listenobjekt beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

list_index	Gibt den Wert des Listenindex an. Der Listenindex wird zur Basis 1 generiert.

list_label	Gibt die VARCHAR2-Zeichenfolge an, die als Beschriftung des Listenelements angezeigt werden soll.

list_value	Der konkrete Wert des Listenelements, das Sie zu dem Listenobjekt hinzufügen möchten.


Einschränkungen bei ADD_LIST_ELEMENT

Bei einer Basistabellenliste, für die bei dem Attribut für den Listenstil Popup-Liste oder T-Liste angegeben wurde, läßt Form Builder nicht zu, daß Sie ein weiteres Werteelement hinzufügen, wenn der Block abgefragte oder geänderte Datensätze enthält.Sonst kommt es zu einem Fehler. Diese Situation kann eintreten, wenn Sie vorher DELETE_LIST_ELEMENT oder CLEAR_LIST benutzt haben, um das andere Werteelement zu entfernen, das beim Entwurf mit dem Listenobjektattribut Zuordnung anderer Werte angegeben wurde.

Hinweis:  Der Blockstatus ist QUERY, wenn ein Block abgefragte Datensätze enthält. Der Blockstatus ist CHANGED, wenn ein Block Datensätze enthält, die eingefügt oder aktualisiert wurden.


Beispiele für ADD_LIST_ELEMENT

/*

**  Built-in:  ADD_LIST_ELEMENT
**  Example:  Deletes index value 1 and adds the value "1994" to
**            the list item called years when a button is pressed.
**  Trigger:  When-Button-Pressed
*/
BEGIN
   Delete_List_Element('years',1);
   Add_List_Element('years', 1, '1994', '1994');
END;


ADD_OLEARGS

 Alle vordefinierten Prozeduren

Beschreibung

Bestimmt Typ und Wert eines Arguments, das an die Methode des OLE-Objekts übergeben wird.

Syntax

PROCEDURE ADD_OLEARG
  (newvar NUMBER, vtype VT_TYPE := VT_R8);

...or...

PROCEDURE ADD_OLEARG
  (newvar VARCHAR2, vtype VT_TYPE := VT_BSTR);

...or...

PROCEDURE ADD_OLEARG
  (newvar OLEVAR, vtype VT_TYPE := VT_VARIANT);

Prozedurtyp   Uneingeschränkte Prozedur

Parameter

newvar	Der Wert dieses Arguments. Der Typ (NUMBER, VARCHAR2, oder OLEVAR) entspricht dem FORMS- oder PL/SQL-Datentyp.
Vtype	Der Typ des Arguments, wie von der OLE-Methode verstanden. Bei einem NUMBER-Argument ist der Standardwert VT_TYPE := VT_R8. Bei einem VARCHAR2-Argument ist der Standardwert VT_TYPE := VT_BSTR. Bei einem OLEVAR-Argument ist der Standardwert VT_TYPE := VT_VARIANT.
Verwendungshinweise

Ein separater ADD_OLEARG-Aufruf ist für jedes zu übergebende Argument erforderlich. Die Aufrufe müssen folgerichtig ab dem ersten Argument erfolgen.

Eine Liste der unterstützten OLE VT_TYPEs finden Sie unter OLE Variantentypen.


Vordefinierte Prozedur ADD_PARAMETER

 Beispiele	 Einschränkungen	  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Fügt Parameter zu einer Parameterliste hinzu. Jeder Parameter besteht aus einem Schlüssel, dessen Typ und einem zugeordneten Wert.

Syntax

PROCEDURE ADD_PARAMETER
  (list       VARCHAR2,
   key        VARCHAR2,
   paramtype  VARCHAR2,
   value      VARCHAR2);

PROCEDURE ADD_PARAMETER
  (name       VARCHAR2,
   key        VARCHAR2,
   paramtype  VARCHAR2,
   value      VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

list oder name	Gibt die Parameterliste an, der der Parameter zugewiesen ist. Der aktuelle Parameter kann entweder eine Parameterlisten-ID vom Typ PARAMLIST oder der VARCHAR2-Name der Parameterliste sein.

Key	Der Name des Parameters. Der Datentyp von Key ist VARCHAR2.

Paramtype	Gibt einen der beiden folgenden Typen an:

TEXT_PARAMETER  Ein VARCHAR2-Zeichenfolgenliteral.

DATA_PARAMETER  Eine VARCHAR2-Zeichenfolge, die den Namen einer Datensatzgruppe angibt, die in der aktuellen Form definiert ist. Wenn Form Builder einen Datenparameter an Report Builder oder Graphics Builder übergibt, können die Daten in der angegebenen Datensatzgruppe anstelle einer Abfrage benutzt werden, die Report Builder oder Graphis Builder normalerweise zur Ausführung des Berichts oder der grafischen Anwendung ausführen würde.

Value	Der konkrete Wert, den Sie an das aufgerufene Modul übergeben möchten. Wenn Sie einen Textparameter übergeben, beläuft sich die maximale Länge auf 64 K Zeichen. Der Wert hat den Datentyp VARCHAR2.


Einschränkungen bei ADD_PARAMETER

•	Eine Parameterliste kann aus 0 (null) oder mehr Parametern bestehen.

•	Sie können keine Parameterliste erstellen, wenn schon eine Parameterliste vorhanden ist, sonst kommt es zu einem Fehler. Um diesen Fehler zu vermeiden, prüfen Sie mit ID_NULL, ob schon eine Parameterliste vorhanden ist, bevor Sie eine Parameterliste erstellen. Wenn ja, löschen Sie die Parameterliste mit DESTROY_PARAMETER_LIST, bevor Sie eine neue Liste erstellen.

•	Sie können keinen Parameter vom Typ DATA_PARAMETER hinzufügen, wenn die Parameterliste einer anderen Form übergeben wird.


Beispiele für ADD_PARAMETER

/*

** Built-in:  ADD_PARAMETER
** Example:   Add a value parameter to an existing Parameter
**            List 'TEMPDATA', then add a data parameter to
**            the list to associate named query 'DEPT_QUERY'
**            with record group 'DEPT_RECORDGROUP'.
*/
DECLARE
  pl_id ParamList;
BEGIN
  pl_id := Get_Parameter_List('tempdata');
  IF NOT Id_Null(pl_id) THEN
    Add_Parameter(pl_id,'number_of_copies',TEXT_PARAMETER,'19');

    Add_Parameter(pl_id, 'dept_query', DATA_PARAMETER,
         'dept_recordgroup');
  END IF;
END;


Vordefinierte Prozedur ADD_TREE_DATA

 Beispiele 	 Alle vordefinierten Prozeduren

Beschreibung

Fügt eine Datengruppe unter dem angegebenen Knoten eines hierarchischen Baumobjekts hinzu.

Syntax

PROCEDURE ADD_TREE_DATA

  (item_id ITEM,

   node FTREE.NODE,

   offset_type NUMBER,

   offset NUMBER,

   data_source NUMBER,

   data VARCHAR2);

PROCEDURE ADD_TREE_DATA

  (item_name VARCHAR2,

   node FTREE.NODE,

   offset_type NUMBER,

   offset NUMBER,

   data_source NUMBER,

   data VARCHAR2);

PROCEDURE ADD_TREE_DATA

  (item_name VARCHAR2,

   node FTREE.NODE,

   offset_type NUMBER,

   offset NUMBER,

   data_source NUMBER,

   data RECORDGROUP);

PROCEDURE ADD_TREE_DATA

  (item_id ITEM,

   node FTREE.NODE,

   offset_type NUMBER,

   offset NUMBER,

   data_source NUMBER,

   data RECORDGROUP);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Nein

Parameter

item_name	Gibt den Namen des Objekts an, das beim Entwurf erstellt wurde. Der Datentyp des Namens ist VARCHAR2-Folge.
Item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.
Node	Gibt einen gültigen Knoten an.
Offset_type	Gibt den Offset-Typ für den Knoten an. Mögliche Werte sind: PARENT_OFFSET SIBLING_OFFSET Wenn offset_type PARENT_OFFSET ist, wird eine Datenteilmenge unmittelbar unter dem angegebenen Knoten bei dem Speicherort unter den untergeordneten Objekten hinzugefügt, wie mit offset angegeben. Wenn offset_type SIBLING_OFFSET ist, werden die neuen Daten als gleichrangige Daten zu dem angegebenen Knoten hinzugefügt.
offset	Gibt die Position des neuen Knotens an. Wenn offset_type PARENT_OFFSET ist, kann offset 1-n oder LAST_CHILD sein. Wenn offset_type SIBLING_OFFSET ist, kann offset NEXT_NODE oder PREVIOUS_NODE sein.
data_source	Gibt den Typ der Datenquelle an. Mögliche Werte sind: RECORD_GROUP QUERY_TEXT
data	Gibt die hinzuzufügenden Daten an. Wenn die Datenquelle QUERY_TEXT ist, entsprechen die Daten dem Text der Abfrage. Wenn die Datenquelle RECORD_GROUP ist, handelt es sich bei den Daten um ein Objekt vom Typ RECORDGROUP oder um den Namen einer Datensatzgruppe.


Beispiele für ADD_TREE_DATA

/*

** Built-in:  ADD_TREE_DATA
*/

-- This code copies a set of values from a record group

-- and adds them as a top level node with any children

-- nodes specified by the structure of the record group.

-- The new top level node will be inserted as the last

-- top level node.

DECLARE

   htree         ITEM;

   rg_data       RECORDGROUP;

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Find the record group.

   rg_data := FIND_GROUP('new_data_rg');

   -- Add the new node at the top level and children.

   Ftree.Add_Tree_Data(htree,

                       Ftree.ROOT_NODE,

                       Ftree.PARENT_OFFSET,

                       Ftree.LAST_CHILD,

                       Ftree.RECORD_GROUP,

                       rg_data);

END;


Vordefinierte Prozedur ADD_TREE_NODE

 Beispiele 	 Alle vordefinierten Prozeduren

Beschreibung

Fügt ein Datenelement zu einem hierarchischen Baumobjekt hinzu.

Syntax

FUNCTION ADD_TREE_NODE

  (item_name VARCHAR2,

   node FTREE.NODE,

   offset_type NUMBER,

   offset NUMBER,

   state NUMBER,

   label VARCHAR2,

   icon VARCHAR2,

   value VARCHAR2);

FUNCTION ADD_TREE_NODE

  (item_id ITEM,

   node FTREE.NODE,

   offset_type NUMBER,

   offset NUMBER,

   state NUMBER,

   label VARCHAR2,

   icon VARCHAR2,

   value VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Rückgabewert  NODE

Abfragemodus  Nein

Parameter

item_name	Gibt den Namen des Objekts an, das beim Entwurf erstellt wurde. Der Datentyp des Namens ist VARCHAR2-Folge.
Item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.
Node	Gibt einen gültigen Knoten an.
Offset_type	Gibt den Offset-Typ für den Knoten an. Mögliche Werte sind: PARENT_OFFSET SIBLING_OFFSET
offset	Gibt die Position des neuen Knotens an. Wenn offset_type PARENT_OFFSET ist, kann offset 1-n oder LAST_CHILD sein. Wenn offset_type SIBLING_OFFSET ist, kann offset NEXT_NODE oder PREVIOUS_NODE sein.
State	Gibt den Status des Knotens an. Mögliche Werte sind: COLLAPSED_NODE EXPANDED_NODE LEAF_NODE
label	Der angezeigte Text für den Knoten.
Symbol	Der Dateiname für das Symbol des Knotens.
value	Gibt den VARCHAR2-Wert des Knotens an.


Beispiele für ADD_TREE_NODE

/*

** Built-in:  ADD_TREE_NODE
*/

-- This code copies a value from a Form item and

-- adds it to the tree as a top level node.  The

-- value is set to be the same as the label.

DECLARE

   htree         ITEM;

   top_node      FTREE.NODE;

   new_node      FTREE.NODE;

   item_value    VARCHAR2(30);

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Copy the item value to a local variable.

   item_value := :wizard_block.new_node_data;

   -- Add an expanded top level node to the tree

   -- with no icon.

   new_node := Ftree.Add_Tree_Node(htree,

                                   Ftree.ROOT_NODE,

                                   Ftree.PARENT_OFFSET,

                                   Ftree.LAST_CHILD,

                                   Ftree.EXPANDED_NODE,

                                   item_value,

                                   NULL,

                                   item_value);

END;


Vordefinierte Prozedur APPLICATION_PARAMETER

  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Zeigt alle mit dem aktuellen Menü verknüpften Parameter und deren aktuelle Werte im Dialogfeld Parameterwerte eingeben an.

Syntax

PROCEDURE APPLICATION_PARAMETER;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Fehler:

Wenn keine Parameter für das aktuelle Menü definiert werden, gibt Form Builder die Fehlermeldung FRM-10201: Keine Parameter benötigt aus.


Vordefinierte Prozedur BELL

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Legt fest, daß das Akustiksignal des Terminals ausgelöst wird, wenn der Terminalbildschirm das nächste Mal mit dem internen Status der Form synchron ist. Diese Synchronisation kann das Ergebnis einer internen Verarbeitung oder das Ergebnis eines Aufrufs der vordefinierten Prozedur SYNCHRONIZE sein.

Syntax

PROCEDURE BELL;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Beispiele für BELL

Mit dem folgenden Beispiel wird das Akustiksignal dreimal ausgelöst.

FOR i in 1..3 LOOP
  BELL;
  SYNCHRONIZE;
END LOOP;


Vordefinierte Prozedur BLOCK_MENU

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Zeigt eine Werteliste an, die die Sequenznummer und die Namen von gültigen Blöcken in Ihrer Form enthält. Form Builder setzt den Eingabefokus auf das erste Enterable-Objekt in dem Block, das Sie aus der Werteliste auswählen.

Syntax

PROCEDURE BLOCK_MENU;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja; allerdings kann im Abfragemodus nicht aus dem aktuellen Block navigiert werden.

Parameter

Keine


Beispiele für BLOCK_MENU

/*

** Built-in:  BLOCK_MENU
** Example:   Calls up the list of blocks in the form when the
**            user clicks a button, and prints a message if
**            the user chooses a new block out of the list to
**            which to navigate.
*/
DECLARE
  prev_blk  VARCHAR2(40) := :System.Cursor_Block;
BEGIN
  BLOCK_MENU;
  IF :System.Cursor_Block <> prev_blk THEN
    Message('You successfully navigated to a new block!');
  END IF;
END;


Vordefinierte Prozedur BREAK

 Beispiele	   Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

Hält die Ausführung der Form an und zeigt den Debugger an, während die aktuelle Form im Debug-Modus ausgeführt wird. Aus dem Debugger können Sie Auswahlen treffen, um die Werte der globalen und Systemvariablen anzuzeigen. Die vordefinierte Prozedur BREAK ist besonders dann von Nutzen, wenn Sie den Status einer Form während der Ausführung des Triggers überprüfen müssen.

Syntax

PROCEDURE BREAK;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Einschränkungen bei BREAK

Wenn die aktuelle Form nicht im Debug-Modus ausgeführt wird, bleibt die Ausgabe eines Aufrufs der vordefinierten Prozedur BREAK wirkungslos.


Beispiele für BREAK

/*

** Built-in:  BREAK
** Example:   Brings up the debugging window for a particular
**            value of the 'JOB' item anytime the user
**            changes records.
** Trigger:   When-New-Record-Instance
*/
BEGIN
  IF :Emp.Job = 'CLERK' THEN
    Break;
    Call_Form('clerk_timesheet');
    Break;
  END IF;
END;


Vordefinierte Prozedur CALL_FORM

 Beispiele	 Einschränkungen	  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Führt eine angegebene Form aus, während die übergeordnete Form aktiv bleibt. Form Builder führt die aufgerufene Form mit denselben Runform-Voreinstellungen wie bei der übergeordneten Form aus. Wenn die aufgerufene Form beendet wird, wird die Verarbeitung von Form Builder in der aufrufenden Form an der Stelle wiederaufgenommen, an der Sie den Aufruf von CALL_FORM ausgegeben haben.

Syntax

PROCEDURE CALL_FORM
  (formmodule_name  VARCHAR2);

PROCEDURE CALL_FORM
  (formmodule_name  VARCHAR2,
   display          NUMBER);
PROCEDURE CALL_FORM
  (formmodule_name  VARCHAR2,
   display          NUMBER,
   switch_menu      NUMBER);
PROCEDURE CALL_FORM
  (formmodule_name  VARCHAR2,
   display          NUMBER,
   switch_menu      NUMBER,
   query_mode       NUMBER);
PROCEDURE CALL_FORM
  (formmodule_name  VARCHAR2,
   display          NUMBER,
   switch_menu      NUMBER,
   query_mode       NUMBER,
   data_mode        NUMBER);
PROCEDURE CALL_FORM
  (formmodule_name  VARCHAR2,
   display          NUMBER,
   switch_menu      NUMBER,
   query_mode       NUMBER,
   paramlist_id     PARAMLIST);
PROCEDURE CALL_FORM
  (formmodule_name  VARCHAR2,
   display          NUMBER,
   switch_menu      NUMBER,
   query_mode       NUMBER,
   paramlist_name   VARCHAR2);
PROCEDURE CALL_FORM
  (formmodule_name  VARCHAR2,
   display          NUMBER,
   switch_menu      NUMBER,
   query_mode       NUMBER,
   data_mode        NUMBER,
   paramlist_id     PARAMLIST);
PROCEDURE CALL_FORM
  (formmodule_name  VARCHAR2,
   display          NUMBER,
   switch_menu      NUMBER,
   query_mode       NUMBER,
   data_mode        NUMBER,
   paramlist_name   VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

formmodule_name	Der Name der aufgerufenen Form (muß in einfachen Anführungszeichen stehen). Der Datentyp ist VARCHAR2.

display	HIDE  (Standard)  Form Builder verbirgt die aufrufende Form, bevor die aufgerufene Form gezeichnet wird.

NO_HIDE  Form Builder zeigt die aufgerufene Form an, ohne die aufrufende Form zu verbergen.

switch_menu	 NO_REPLACE  (Standard)  Form Builder läßt das Standard-Menümodul der aufrufenden Form für die aufgerufene Form aktiv.

DO_REPLACE  Form Builder ersetzt das Standard-Menümodul der aufrufenden Form durch das Standard-Menümodul der aufgerufenen Form.

query_mode	NO_QUERY_ONLY  (Standard)  Form Builder führt die angegebene Form im normalen Modus aus, so daß der Endbenutzer Datensätze in der aufgerufenen Form einfügen, aktualisieren und löschen kann.

QUERY_ONLY  Form Builder führt die angegebene Form im Nur-Abfragemodus aus, so daß der Endbenutzer Datensätze abfragen, jedoch nicht einfügen, aktualisieren oder löschen kann.

data_mode	NO_SHARE_LIBRARY_DATA  (Standard) Zur Laufzeit benutzt Form Builder bei Forms, denen (beim Entwurf) identische Bibliotheken zugeordnet wurden, keine Daten gemeinsam.

SHARE_LIBRARY_DATA  Zur Laufzeit benutzt Form Builder bei Forms, denen (beim Entwurf) identische Bibliotheken zugeordnet wurden, Daten gemeinsam.

paramlist_id	Die eindeutige ID, die Form Builder beim Erstellen der Parameterliste zuweist. Sie können optional eine Parameterliste als anfängliche Eingabe zu der aufgerufenen Form hinzufügen. Der Datentyp ist PARAMLIST.

paramlist_name	Der Name, den Sie dem Parameterlistenobjekt bei der Definition zugewiesen haben. Der Datentyp ist VARCHAR2.


Einschränkungen bei CALL_FORM

•	Form Builder ignoriert den Parameter query_mode, wenn die aufrufende Form im QUERY_ONLY-Modus ausgeführt wird. Form Builder führt jede Form, die aus einer QUERY_ONLY-Form aufgerufen wird, als QUERY_ONLY-Form aus, selbst wenn die CALL_FORM-Syntax angibt, daß die aufgerufene Form im NO_QUERY_ONLY- (Normal-) Modus ausgeführt werden soll.

•	Eine Parameterliste, die über CALL_FORM an eine Form übergeben wird, darf keine Parameter vom Typ DATA_PARAMETER enthalten. Nur Textparameter können mit CALL_FORM übergeben werden.

•	Ein Teil des für CALL_FORM zugewiesenen Speicherplatzes wird erst nach Beendigung der Runform-Sitzung freigegeben. Beim Erstellen eines großen Stapels mit aufgerufenen Forms muß also vorsichtig vorgegangen werden.

•	Wenn Sie CALL_FORM in einem Pre-Logon-, On-Logon- oder Post-Logon-Trigger ausführen, geben Sie immer den Parameter DO_REPLACE an, um das Menü der aufrufenden Form durch das Menü der aufgerufenen Form zu ersetzen. Wenn Sie DO_REPLACE nicht angeben, wird kein Menü für die aufgerufene Form angezeigt. (Alternativ können Sie auch die vordefinierte Prozedur REPLACE_MENU aus einem When-New-Form-Instance-Trigger in der aufgerufenen Form aufrufen.)


Beispiele für CALL_FORM

/* Example 1:

** Call a form in query-only mode.
*/
BEGIN
  CALL_FORM('empbrowser', no_hide, no_replace, query_only);
END;

/* Example 2:
** Call a form, pass a parameter list (if it exists)
*/
DECLARE
  pl_id        PARAMLIST;
  theformname  VARCHAR2(20);
BEGIN
  theformname := 'addcust';

  /* Try to lookup the 'TEMPDATA' parameter list */
  pl_id := GET_PARAMETER_LIST('tempdata');
  IF ID_NULL(pl_id) THEN
    CALL_FORM(theformname);
  ELSE
    CALL_FORM(theformname,
              hide,
              no_replace,
              no_query_only,
              pl_id);
  END IF;

  CALL_FORM('lookcust', no_hide, do_replace, query_only);
END;


Vordefinierte Prozedur CALL_INPUT

 Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

Akzeptiert und verarbeitet eine Funktionstasteneingabe vom Endbenutzer. Wenn CALL_INPUT beendet ist, nimmt Form Builder die Verarbeitung an der Stelle wieder auf, an der CALL_INPUT aufgerufen wurde.

Syntax

PROCEDURE CALL_INPUT;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Keine


Einschränkungen bei CALL_INPUT

CALL_INPUT wurde aus Kompatibilitätsgründen mit früheren Versionen aufgenommen. Sie sollten diese vordefinierte Prozedur nicht in neuen Anwendungen integrieren.


CALL_OLE

 Alle vordefinierten Prozeduren

Beschreibung

Übergibt die Kontrolle an die Methode des identifizierten OLE-Objekts.

Syntax

PROCEDURE CALL_OLE

  (obj OLEOBJ, memberid PLS_INTEGER);

Prozedurtyp   Uneingeschränkte Prozedur

Parameter

obj	Name des OLE-Objekts.
Memberid	Member-ID der auszuführenden Methode.
Verwendungshinweise

•	Bevor dieser Aufruf ausgegeben wird, müssen Anzahl, Typ und Wert der Argumente mit den Prozeduren INIT_OLEARGS und ADD_OLEARGS festgelegt worden sein.

•	Als Prozeduraufruf werden keine Werte zurückgegeben. Um einen Rückgabewert aus der Methode zu erhalten, benutzen Sie eine der Funktionsversionen dieses Aufrufs (CALL_OLE_CHAR, _NUM, _OBJ oder _VAR).

•	Die Methode kann eine Exception FORM_OLE_FAILURE auslösen. In diesem Fall benutzen Sie die Funktion LAST_OLE_EXCEPTION, um weitere Informationen zu erhalten.


CALL_OLE_returnTyp;
CALL_OLE_<returntype>

 Alle vordefinierten Prozeduren

Beschreibung

Übergibt die Kontrolle an die Methode des identifizierten OLE-Objekts. Empfängt einen Rückgabewert des angegebenen Typs.

Es gibt vier Versionen der Funktion (die mit dem Wert in returntype angegeben werden), eine für jeden der Argumenttypen CHAR, NUM, OBJ und VAR.

Syntax

FUNCTION CALL_OLE_CHAR
  (obj OLEOBJ, memberid PLS_INTEGER)
RETURN returnval VARCHAR2;

...or...

FUNCTION CALL_OLE_NUM
  (obj OLEOBJ, memberid PLS_INTEGER)
RETURN returnval NUMBER;

...or...

FUNCTION CALL_OLE_OBJ
  (obj OLEOBJ, memberid PLS_INTEGER)
RETURN returnval OLEOBJ;

...or...

FUNCTION CALL_OLE_VAR
  (obj OLEOBJ, memberid PLS_INTEGER)
RETURN returnval OLEVAR;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Der Rückgabewert der Methode im angegebenen Format

Parameter

obj	Name des OLE-Objekts.
Memberid	Member-ID der Objektmethode.
Verwendungshinweise

•	Bevor dieser Aufruf ausgegeben wird, müssen Anzahl, Typ und Wert der Argumente mit den Prozeduren INIT-OLEARGS und ADD-OLEARGS festgelegt worden sein.

•	Die Methode kann eine Exception FORM_OLE_FAILURE auslösen. In diesem Fall benutzen Sie die Funktion LAST_OLE_EXCEPTION, um weitere Informationen zu erhalten.


Vordefinierte Prozedur CANCEL_REPORT_OBJECT

 Alle vordefinierten Prozeduren

Beschreibung

Bricht einen lang andauernden, asynchronen Bericht ab. Sie sollten prüfen, ob der Bericht abgebrochen wurde, indem Sie den Status des Berichts mit REPORT_OBJECT_STATUS prüfen.

Syntax

PROCEDURE CANCEL_REPORT_OBJECT
  (report_id VARCHAR2
);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

report_id	Der VARCHAR2-Wert, der von der vordefinierten Prozedur RUN_REPORT_OBJECT zurückgegeben wird. Dieser Wert kennzeichnet den Bericht eindeutig, der momentan lokal oder auf einem entfernten Report Server ausgeführt wird.

Verwendungshinweise

•	CANCEL_REPORT_OBJECT sollte nur benutzt werden, wenn ein Bericht asynchron ausgeführt wird. Sie können einen synchron ausgeführten Bericht nicht abbrechen.


Vordefinierte Prozedur CHECKBOX_CHECKED

 Beispiele	 Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

Ein Aufruf der Funktion CHECKBOX_CHECKED gibt einen BOOLESCHEN Wert zurück, mit dem der Status des jeweiligen Kontrollkästchens angegeben wird. Wenn es sich bei dem Objekt nicht um ein Kontrollkästchen handelt, gibt Form Builder folgende Fehlermeldung zurück:

FRM-41038:  Objekt <Objektname> ist kein Kontrollkästchen.

Syntax

FUNCTION CHECKBOX_CHECKED
  (item_id  ITEM);

FUNCTION CHECKBOX_CHECKED
  (item_name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Returns  BOOLEAN

Abfragemodus  Ja

Mit einem Aufruf von GET_ITEM_PROPERTY(item_name, ITEM_TYPE) können Sie den Objekttyp überprüfen, bevor Sie CHECKBOX_CHECKED aufrufen.

Um den Wert eines Kontrollkästchens programmgesteuert zu setzen, weisen Sie dem Kontrollkästchen mit der Standardsyntax für Bindevariablen einen gültigen Wert zu.

Parameter

item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Der Datentyp der ID ist ITEM.

item_name	Gibt die Zeichenfolge an, die Sie beim Entwurf als Namen des Objekts definiert haben. Der Datentyp des Namens ist VARCHAR2.


Einschränkungen bei CHECKBOX_CHECKED

Die vordefinierte Prozedur CHECKBOX_CHECKED gibt einen BOOLESCHEN Wert bezüglich des Status des jeweiligen Kontrollkästchens an. Die Prozedur gibt nicht den tatsächlichen Wert des Kontrollkästchens an und gibt auch keinen Wert zurück, den Sie möglicherweise für das Attribut Zuordnung anderer Werte angegeben haben.


Beispiele für CHECKBOX_CHECKED

/*

** Built-in:  CHECKBOX_CHECKED
** Example:   Sets the query case-sensitivity of the item
**            whose name is passed as an argument, depending
**            on an indicator checkbox item.
*/
PROCEDURE Set_Case_Sensitivity( it_name VARCHAR2) IS
  indicator_name VARCHAR2(80) := 'control.case_indicator';
  it_id          Item;
BEGIN
  it_id := Find_Item(it_name);

  IF Checkbox_Checked(indicator_name) THEN
    /*
    ** Set the item whose name was passed in to query case-
    ** sensitively (i.e., Case Insensitive is False)
    */
    Set_Item_Property(it_id, CASE_INSENSITIVE_QUERY,
                      PROPERTY_FALSE );
ELSE
    /*
    ** Set the item whose name was passed in to query case-
    ** insensitively (ie Case Insensitive True)
    */
    Set_Item_Property(it_id,CASE_INSENSITIVE_QUERY,PROPERTY_TRUE);
  END IF;
END;


Vordefinierte Prozedur CHECK_RECORD_UNIQUENESS

 Beispiele	 Einschränkungen	  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Wenn diese Prozedur aus einem On-Check-Unique-Trigger aufgerufen wird, wird die Standardverarbeitung von Form Builder für die Überprüfung der Eindeutigkeit des Primärschlüssels eines Datensatzes ausgelöst.

Diese vordefinierte Prozedur ist im wesentlichen für Anwendungen gedacht, die mit einer fremden Datenquelle ausgeführt werden.

Syntax

PROCEDURE CHECK_RECORD_UNIQUENESS;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Einschränkungen bei CHECK_RECORD_UNIQUENESS

Ist nur bei einem On-Check-Unique-Trigger gültig.


Beispiele für CHECK_RECORD_UNIQUENESS

/*

** Built-in:  CHECK_RECORD_UNIQUENESS
** Example:   Perform Form Builder record uniqueness checking
**            from the fields in the block that are marked as
**            primary keys based on a global flag setup at
**            startup by the form, perhaps based on a
**            parameter.
** Trigger:  On-Check-Unique
*/
BEGIN
  /*
  ** Check the global flag we set during form startup
  */
  IF :Global.Using_Transactional_Triggers = 'TRUE' THEN
    User_Exit('chkuniq block=EMP');
  /*
  ** Otherwise, do the right thing.
  */
  ELSE
    Check_Record_Uniqueness;
  END IF;
END;


Vordefinierte Prozedur CLEAR_BLOCK

 Beispiele	  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Führt dazu, daß Form Builder alle Datensätze aus dem aktuellen Block entfernt.

Syntax

PROCEDURE CLEAR_BLOCK;

PROCEDURE CLEAR_BLOCK
  (commit_mode  NUMBER);

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Wenn der Endbenutzer Änderungen an Datensätzen im aktuellen Block vorgenommen hat, die nicht abgeschickt oder gespeichert wurden, verarbeitet Form Builder die Datensätze entsprechend den Anweisungen, die von dem Argument angegeben werden, das für den Parameter commit_mode geliefert wurde.

commit_mode	Der optionale Aktionsparameter verwendet die folgenden möglichen Konstanten als Argumente:

ASK_COMMIT  Form Builder fordert den Endbenutzer auf, die Änderungen bei der Verarbeitung von CLEAR_BLOCK zu speichern.

DO_COMMIT  Form Builder validiert die Änderungen, führt einen Speichervorgang aus und leert den aktuellen Block ohne eine Prompt an den   Endbenutzer.

NO_COMMIT  Form Builder validiert die Änderungen und leert den aktuellen Block, ohne zu speichern oder einen Prompt an den Endbenutzer auszugeben.

NO_VALIDATE  Form Builder leert den aktuellen Block, ohne die Änderungen zu validieren, zu speichern oder einen Prompt an den Benutzer zu schicken.


Beispiele für CLEAR_BLOCK

/*

** Built-in:  CLEAR_BLOCK
** Example:   Clears the current block without validation, and
**            deposits the primary key value which the user
**            has typed into a global variable which a
**            Pre-Query trigger will use to include it as a
**            query criterion.
** Trigger:   When-New-Item-Instance
*/
BEGIN
  IF :Emp.Empno IS NOT NULL THEN
    :Global.Employee_Id := :Emp.Empno;
    Clear_Block(No_Validate);
  END IF;
END;
/*
** Trigger:  Pre-Query
*/
BEGIN
  Default_Value(NULL, 'Global.Employee_Id');
  IF :Global.Employee_Id IS NOT NULL THEN
    :Emp.Empno := :Global.Employee_Id;
  END IF;
END;


Vordefinierte Prozedur CLEAR_EOL

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Löscht den Wert des aktuellen Textobjekts ab der aktuellen Cursorposition bis zum Zeilenende.

Syntax

PROCEDURE CLEAR_EOL;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja


Beispiele für CLEAR_EOL

/*

** Built-in:  CLEAR_EOL
** Example:   Clears out the contents of any number field when
**            the end user navigates to it.
** Trigger:   When-New-Item-Instance
*/
BEGIN
  IF Get_Item_Property(:System.Trigger_Item, DATATYPE) = 'NUMBER' THEN
      Clear_Eol;
  END IF;
END;


Vordefinierte Prozedur CLEAR_FORM

 Beispiele	 Einschränkungen	  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Veranlaßt, daß Form Builder alle Datensätze aus der aktuellen Form entfernt bzw. leert, und setzt den Eingabefokus auf das erste Objekt des ersten Blocks.

Syntax

POROCEDURE CLEAR_FORM;

PROCEDURE CLEAR_FORM
  (commit_mode  NUMBER);
PROCEDURE CLEAR_FORM
  (commit_mode    NUMBER,
   rollback_mode  NUMBER);

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Wenn der Endbenutzer Änderungen an Datensätzen in der aktuellen Form oder einer aufgerufenen Form vorgenommen hat und diese Datensätze nicht abgeschickt oder gespeichert wurden, verarbeitet Form Builder die Datensätze entsprechend den Anweisungen, die von dem Argument angegeben werden, das für den folgenden Parameter geliefert wird:

commit_mode	ASK_COMMIT  Form Builder fordert den Endbenutzer auf, die Änderungen während der Verarbeitung von CLEAR_FORM zu speichern.

DO_COMMIT  Form Builder validiert die Änderungen, führt einen Speichervorgang aus und leert die aktuelle Form, ohne einen Prompt an den Benutzer zu senden.

NO_COMMIT  Form Builder validiert die Änderungen und leert die aktuelle Form, ohne die Änderungen zu speichern bzw. einen Prompt an den Endbenutzer zu senden.

NO_VALIDATE  Form Builder leert die aktuelle Form, ohne die Änderungen zu validieren bzw. zu speichern oder einen Prompt an den Endbenutzer zu senden.

rollback_mode	TO_SAVEPOINT  Form Builder setzt alle nicht gespeicherten Änderungen (einschließlich abgeschickter Änderungen) auf den Savepoint der aktuellen Form zurück.

FULL_ROLLBACK  Form Builder setzt alle nicht gespeicherten Änderungen (einschließlich verschickter Änderungen) zurück, die während der aktuellen Runform-Sitzung vorgenommen wurden. Sie können keinen FULL_ROLLBACK aus einer Form angeben, die im Abschickmodus ausgeführt wird. (Der Abschickmodus wird aktiviert, wenn Ihre Form eine andere Form aufruft, während nicht abgeschickte Datensätze in der aufrufenden Form vorhanden sind. Um zu verhindern, daß die von der aufrufenden Form ausgegebenen Sperren verlorengehen, verhindert Form Builder einen Speichervorgang in der aufgerufenen Form.)


Einschränkungen bei CLEAR_FORM

Wenn Sie eine PL/SQL-Anweisung ROLLBACK in einem anonymen Block oder einem benutzerdefinierten Unterprogramm verwenden, interpretiert Form Builder diese Anweisung als vordefinierte Prozedur CLEAR_FORM ohne Parameter.


Beispiele für CLEAR_FORM

/*

** Built-in:  CLEAR_FORM
** Example:   Clear any changes made in the current form,
**            without prompting to commit.
*/
BEGIN
  Clear_Form(No_Validate);
END;


Vordefinierte Prozedur CLEAR_ITEM

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Löscht den Wert aus dem aktuellen Textobjekt, unabhängig von der aktuellen Cursorposition, und ändert den Wert des Textobjektes in NULL.

Syntax

PROCEDURE CLEAR_ITEM;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja


Beispiele für CLEAR_ITEM

/*

** Built-in:  CLEAR_ITEM
** Example:   Clear the current item if it does not represent
**            the first day of a month.
** Trigger:   When-New-Item-Instance
*/
BEGIN
  IF TO_CHAR(:Emp.Hiredate,'DD') <> '01' THEN
    Clear_Item;
    Message('This date must be of the form 01-MON-YY');
  END IF;
END;


Vordefinierte Prozedur CLEAR_LIST

 Beispiele	 Einschränkungen	  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Löscht alle Elemente aus einem Listenobjekt. Nachdem Form Builder die Liste gelöscht hat, enthält die Liste nur ein Element (das Null-Element), unabhängig von dem Attribut Obligatorisch für das Objekt.

Syntax

PROCEDURE CLEAR_LIST
  (list_id  ITEM);

PROCEDURE CLEAR_LIST
  (list_name  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

list_id	Gibt die eindeutige ID an, die Form Builder dem Listenobjekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.

list_name	Der Name, den Sie dem Listenobjekt beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

Verwendungshinweise

•	Benutzen Sie die vordefinierte Prozedur CLEAR_LIST nicht, wenn das Attribut Zuordnung anderer Werte definiert ist und abgefragte Datensätze in dem Block vorhanden sind. Sonst kann Form Builder die Datensätze nicht anzeigen, die schon abgerufen wurden.

Angenommen, ein Listenobjekt enthält die Werte A, B und C, und das Attribut Zuordnung anderer Werte ist definiert. Außerdem wird davon ausgegangen, daß diese Werte aus der Datenbank abgerufen wurden (eine Abfrage ist geöffnet). Wenn Sie an dieser Stelle die Liste mit CLEAR_LIST löschen, kommt es zu einem Fehler, weil Form Builder versucht, die vorher abgerufenen Werte anzuzeigen (A, B und C), dies jedoch nicht kann, weil die Liste gelöscht wurde.

Bevor Sie eine Liste löschen, schließen Sie eventuell geöffnete Abfragen. Benutzen Sie die vordefinierte Prozedur ABORT_QUERY, um eine geöffnete Abfrage zu schließen.

Hinweis:  Der Blockstatus ist QUERY, wenn ein Block abgefragte Datensätze enthält. Der Blockstatus ist CHANGED, wenn ein Block Datensätze enthält, die entweder eingefügt oder aktualisiert wurden (abgefragte Datensätze wurden geändert).


Einschränkungen bei CLEAR_LIST

•	Bei einem Listenobjekt vom Typ Popup-Liste oder T-Liste löscht CLEAR_LIST das Standard-Werteelement oder die anderen Werteelemente aus der Liste nicht, wenn diese die für das Löschen dieser Elemente mit DELETE_LIST_ELEMENT angegebenen Kriterien nicht erfüllt.

Wenn der Standardwert oder ein anderes Werteelement nicht gelöscht werden kann, beläßt CLEAR_LIST diese Elemente in der Liste und löscht alle anderen Elemente. Weitere Informationen finden Sie in der Beschreibung der Einschränkungen bei DELETE_LIST_ELEMENT.


Beispiele für CLEAR_LIST

/*

**  Built-in:  CLEAR_LIST
**  Example:   See POPULATE_LIST
*/


Vordefinierte Prozedur CLEAR_MESSAGE

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Entfernt die aktuelle Meldung aus dem Meldungsbereich des Bildschirms.

Syntax

PROCEDURE CLEAR_MESSAGE;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja


Beispiele für CLEAR_MESSAGE

/*

** Built-in:  CLEAR_MESSAGE
** Example:   Clear the message from the message line.
*/
BEGIN
  Message('Working...',No_Acknowledge);
  SELECT current_tax
    INTO :Emp.Tax_Rate
    FROM tax_table
   WHERE state_abbrev = :Emp.State;
  Clear_Message;
END;


Vordefinierte Prozedur CLEAR_RECORD

 Beispiele	  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Veranlaßt Form Builder, den aktuellen Datensatz aus dem Block zu entfernen bzw. zu leeren, ohne eine Validierung durchzuführen. Wenn eine Abfrage im Block geöffnet ist, ruft Form Builder den nächsten Datensatz ab, um den Block wieder aufzufüllen, wenn der Platz im Datensatz nicht mehr ausgefüllt ist, nachdem der aktuelle Datensatz entfernt wurde.

Ein Datenbank-Datensatz, der entfernt wurde, wird von dem nächsten Post- und Commit-Transactions-Prozeß nicht als Löschvorgang verarbeitet.

In einer Standard-Master-/Detail-Blockbeziehung führt das Löschen des Master-Datensatzes dazu, daß alle entsprechenden Detail-Datensätze ohne Validierung gelöscht werden.

Syntax

PROCEDURE CLEAR_RECORD;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja


Beispiele für CLEAR_RECORD

/*

** Built-in:  CLEAR_RECORD
** Example:   Clear the current record if it's not the last
**            record in the block.
*/
BEGIN
  IF :System.Last_Record = 'TRUE' AND :System.Cursor_Record = '1' THEN
    Message('You cannot clear the only remaining entry.');
    Bell;
  ELSE
    Clear_Record;
  END IF;
END;


Vordefinierte Prozedur CLOSE_FORM

 Einschränkungen	  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

In einer Anwendung mit mehreren Forms schließt diese Prozedur die angegebene Form. Wenn es sich bei der angegebenen Form um die aktuelle Form handelt, ist CLOSE_FORM gleichbedeutend mit EXIT_FORM.

Syntax

PROCEDURE CLOSE_FORM
  (form_name  VARCHAR2);

PROCEDURE CLOSE_FORM
  (form_id  FORMMODULE);

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

form_name	Gibt den Namen der zu schließenden Form als VARCHAR2 an.

form_id	Die eindeutige ID, die der Form dynamisch zugewiesen wird, wenn sie zur Laufzeit in eine Instance eingebracht wird. Verwenden Sie die vordefinierte Prozedur FIND_FORM für eine entsprechend eingegebene Variable. Der Datentyp der Form-ID ist FORMMODULE.


Einschränkungen bei CLOSE_FORM

•	Sie können keine Form schließen, die im Augenblick deaktiviert ist, nachdem CALL_FORM ausgegeben wurde, um eine modale aufgerufene Form aufzurufen.

•	Sie können keine Form schließen, von der der Aufruf stammt. Wenn also beispielsweise Form_B von Form_A aufgerufen wird, kann Form_B nicht Form_A schließen.


CLOSE_SERVER

 Beispiele	 Einschränkungen	  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Deaktiviert den OLE-Server, der mit einem OLE-Container verknüpft ist. Beendet die Verbindung zwischen einem OLE-Server und dem OLE-Container.

Syntax

PROCEDURE CLOSE_SERVER
  (item_id  Item);

PROCEDURE CLOSE_SERVER
  (item_name  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Nein

Parameter

item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist Item.

item_name	Gibt den Namen des beim Entwurf erstellten Objekts an. Der Datentyp des Namens ist VARCHAR2.


Einschränkungen bei CLOSE_SERVER

Nur bei Microsoft Windows und Macintosh gültig.


Beispiele für CLOSE_SERVER

/*

** Built-in: CLOSE_SERVER
** Example:  Deactivates the OLE server associated with the object
**           in the OLE container.
** Trigger:  When-Button-Pressed
*/
DECLARE
 item_id  ITEM;
 item_name VARCHAR(25) := 'OLEITM';
BEGIN
 item_id := Find_Item(item_name);
 IF Id_Null(item_id) THEN
  message('No such item: '||item_name);
 ELSE
  Forms_OLE.Close_Server(item_id);
 END IF;
END;


Vordefinierte Prozedur COMMIT_FORM

 Beispiele	 Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

Veranlaßt Form Builder, Daten in der Datenbank so zu aktualisieren, daß sie den Daten in der Form entsprechen. Form Builder validiert zuerst die Form. Danach wird die Datenbank für jeden Block in der Form aktualisiert, werden Elemente gelöscht und eingefügt. Schließlich wird die Datenbank festgeschrieben. Durch das Festschreiben der Datenbank gibt die Datenbank alle Zeilen- und Tabellensperren frei.

Wenn der Endbenutzer während der laufenden Runform-Sitzung Daten an die Datenbank abgeschickt hat, speichert ein Aufruf der vordefinierten Prozedur COMMIT_FORM diese Daten in der Datenbank.

Im Anschluß an einen Speichervorgang behandelt Form Builder alle Datensätze in allen Basistabellenblöcken so, als wären sie abgefragte Datensätze aus der Datenbank. Form Builder erkennt keine Änderungen in Triggern, die während dem Speichervorgang ausgelöst werden.

Syntax

PROCEDURE COMMIT_FORM;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein


Einschränkungen bei COMMIT_FORM

Wenn Sie eine PL/SQL-Anweisung COMMIT in einem anonymen Block oder einer Prozedur auf Formebene verwenden, interpretiert Form Builder diese Anweisung als Aufruf der vordefinierten Prozedur COMMIT_FORM.


Beispiele für COMMIT_FORM

Beispiel 1

/*

** Built-in:  COMMIT_FORM
** Example:   If there are records in the form to be
**            committed, then do so. Raise an error if the
**            commit was not successful.
*/
BEGIN
  /*
  ** Force validation to happen first
  */
  Enter;
  IF NOT Form_Success THEN
    RAISE Form_Trigger_Failure;
  END IF;
  /*
  ** Commit if anything is changed
  */
  IF :System.Form_Status = 'CHANGED' THEN
    Commit_Form;
    /*
    ** A successful commit operation sets Form_Status back
    ** to 'QUERY'.
    */
    IF :System.Form_Status <> 'QUERY' THEN
      Message('An error prevented your changes from being
               committed.');
      Bell;
      RAISE Form_Trigger_Failure;
    END IF;
  END IF;
END;

Beispiel 2

/*

** Built-in:  COMMIT_FORM
** Example:   Perform Form Builder database commit during commit
**            processing. Decide whether to use this Built-in
**            or a user exit based on a global flag setup at
**            startup by the form, perhaps based on a
**
** Trigger:   On-Commit
*/
BEGIN
  /*
  ** Check the global flag we set during form startup
  */
  IF :Global.Using_Transactional_Triggers = 'TRUE' THEN
    User_Exit('my_commit');
  /*
  ** Otherwise, do the right thing.
  */
  ELSE
    Commit_Form;
  END IF;
END;


Vordefinierte Prozedur CONVERT_OTHER_VALUE

 Beispiele	 Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

Wandelt den aktuellen Wert eines Kontrollkästchens, einer Optionsgruppe oder eines Listenobjekts in den Wert um, der mit dem aktuellen Status des Kontrollkästchens (Ausgewählt/Nicht ausgewählt) bzw. mit der aktuellen Optionsschaltfläche bzw. dem aktuellen Listenobjektelement verknüpft ist.

Syntax

PROCEDURE CONVERT_OTHER_VALUE
  (item_id  ITEM);

PROCEDURE CONVERT_OTHER_VALUE
  (item_name  VARCHAR2);

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja

Parameter

item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Der Datentyp der ID ist ITEM.

item_name	Gibt die VARCHAR2-Zeichenfolge an, die Sie beim Entwurf als Name des Objekts definiert haben.


Einschränkungen bei CONVERT_OTHER_VALUE

Wenn es sich bei dem Objekt nicht um ein Kontrollkästchen, eine Optionsgruppe oder ein Listenobjekt handelt, gibt Form Builder die folgende Fehlermeldung aus: FRM-41026:  Das Feld versteht den Vorgang nicht. Um diesen Fehler zu vermeiden, bestimmten Sie den Objekttyp, indem Sie GET_ITEM_PROPERTY(item_name, ITEM_TYPE) aufrufen, bevor Sie CONVERT_OTHER_VALUE aufrufen.


Beispiele für CONVERT_OTHER_VALUE

/*

** Built-in:  CONVERT_OTHER_VALUE
** Example:   Ensure that a particular checkbox's value
**            represents either the checked or unchecked
**            value before updating the record.
** Trigger:   Pre-Update
*/
BEGIN
  Convert_Other_Value('Emp.Marital_Status');
END;


Vordefinierte Prozedur COPY

 Beispiele	 Einschränkungen	  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Kopiert einen Wert aus einem Objekt bzw. einer Variablen in ein anderes Objekt bzw. eine globale Variable. Wird besonders benutzt, um einen Wert in ein Objekt zu schreiben, das über die vordefinierte Prozedur NAME_IN referenziert wird. COPY ist aus zwei Gründen vorhanden:

•	Sie können die PL/SQL-Standardsyntax nicht benutzen, um ein referenziertes Objekt auf einen bestimmten Wert zu setzen.

•	Möglicherweise möchten Sie Zeichen, wie z.B. relationale Operatoren in den Feldern NUMBER und DATE programmgesteuert setzen, während eine Form sich im Abfragemodus befindet.

Syntax

PROCEDURE COPY
  (source       VARCHAR2,
   destination  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

source	Source ist ein literaler Wert.

Destination	Destination kann entweder ein Textobjekt oder eine andere globale Variable sein.

Verwendungshinweise

•	Wenn COPY mit Datumswerten verwendet wird, wird das Attribut BUILTIN_DATE_FORMAT verwendet, insofern das Attribut DATE_FORMAT_COMPATIBILITY_MODE auf 5.0 eingestellt ist. Wenn das Attribut auf 4.5 eingestellt ist, erwartet COPY Datumsangaben im amerikanischen Standardformat.

•	Um ein Textobjekt als Quellreferenz zu benutzen, können Sie den folgenden Code verwenden:

COPY(NAME_IN(source), destination);


Einschränkungen bei COPY

Bei einem Wert, der in ein Textobjekt kopiert wird, wird keine Validierung durchgeführt. Bei allen anderen Objekttypen werden jedoch Standardvalidierungen für den kopierten Wert vorgenommen.


Beispiele für COPY

Beispiel 1

/*

** Built-in:  COPY
** Example:   Force a wildcard search on the EmpNo item during
**            query.
** Trigger:   Pre-Query
*/
DECLARE
  cur_val VARCHAR2(40);
BEGIN
  /*
  ** Get the value of EMP.EMPNO as a string
  */
  cur_val := Name_In('Emp.Empno');
  /*
  ** Add a percent to the end of the string.
  */
  cur_val := cur_val || '%';
  /*
  ** Copy the new value back into the item so Form Builder
  ** will use it as a query criterion.
  */
  Copy( cur_val, 'Emp.Empno' );
END;

Beispiel 2

/*

** Built-in:  COPY
** Example:   Set the value of a global variable whose name is
**            dynamically constructed.
*/
DECLARE
  global_var_name  VARCHAR2(80);
BEGIN
  IF :Selection.Choice = 5 THEN
    global_var_name := 'Storage_1';
  ELSE
    global_var_name := 'Storage_2';
  END IF;
  /*
  ** Use the name in the 'global_var_name' variable as the
  ** name of the global variable in which to copy the
  ** current 'Yes' value.
  */
  COPY( 'Yes', 'GLOBAL.'||global_var_name );
END;


Vordefinierte Prozedur COPY_REGION

  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Kopiert den ausgewählte Bereich eines Text- oder Bildobjekts vom Bildschirm und speichert ihn im Einfügenpuffer, bis Sie einen anderen ausgewählten Bereich ausschneiden oder kopieren.

Syntax

PROCEDURE COPY_REGION;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine

Verwendungshinweise

Benutzen Sie COPY_REGION sowie andere Editierfunktionen nur für Text- und Bildobjekte. Die Ausschneiden- und Kopieren-Funktionen übertragen den ausgewählten Bereich in die Zwischenablage, bis Sie das Ziel für den Einfügenvorgang angeben. Dann werden der ausgeschnittene oder kopierte Inhalt bei dem Zielort eingefügt.


Vordefinierte Prozedur COPY_REPORT_OBJECT_OUTPUT

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Kopiert die Ausgabe eines Berichts in eine Datei.

Syntax

PROCEDURE COPY_REPORT_OBJECT_OUTPUT
  (report_id VARCHAR2(20),
   output_file VARCHAR2
);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

report_id	Der VARCHAR2-Wert, der von der vordefinierten Prozedur RUN_REPORT_OBJECT zurückgegeben wird. Dieser Wert kennzeichnet den Bericht eindeutig, der momentan lokal oder auf einem entfernten Report Server ausgeführt wird.

output_file	Der Name der Datei, in die die Berichtausgabe kopiert wird.

Verwendungshinweise

•	Mit dem Attribut Bericht-Zieltyp geben Sie das Format der Ausgabedatei an.

•	Um die Kopie der Ausgabe eines Berichts von einem entfernten Rechner zu kopieren, müssen Sie das Attribut Bericht-Zieltyp auf Cache einstellen.


Beispiele für COPY_REPORT_OBJECT_OUTPUT

DECLARE

repid REPORT_OBJECT;

v_rep  VARCHAR2(100);

rep_status varchar2(20);

BEGIN

repid := find_report_object('report4');

v_rep := RUN_REPORT_OBJECT(repid);

rep_status := report_object_status(v_rep);

if rep_status = 'FINISHED' then

message('Report Completed');

copy_report_object_output(v_rep,'d:\temp\local.pdf');

host('netscape d:\temp\local.pdf');

else

message('Error when running report.');

end if;

END;


Vordefinierte Prozedur COUNT_QUERY

 Beispiele	 Einschränkungen	  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Führt in einem On-Count-Trigger die Standardverarbeitung von Form Builder zur Kennzeichnung der Anzahl von Zeilen durch, die eine Abfrage für den aktuellen Block abruft, und löscht den aktuellen Block. Wenn Änderungen in dem Block zu speichern sind, fordert Form Builder den Endbenutzer während der Verarbeitung von COUNT_QUERY auf, diese zu speichern. Form Builder gibt folgende Meldung bei einem gültigen Aufruf von COUNT_QUERY zurück:

FRM-40355:  Die Abfrage wird <Anzahl> Datensätze liefern.

Diese vordefinierte Prozedur ist im wesentlichen für Anwendungen gedacht, die mit einer fremden Datenquelle ausgeführt werden.

Syntax

PROCEDURE COUNT_QUERY;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Einschränkungen bei COUNT_QUERY

Diese Prozedur ist nur in Triggern gültig, die eingeschränkte vordefinierte Prozeduren erlauben.


Beispiele für COUNT_QUERY

Beispiel 1

/*

** Built-in:  COUNT_QUERY
** Example:   Display the number of records that will be retrieved
**            by the current query.
*/
BEGIN
  Count_Query;
END;

Beispiel 2

/*

** Built-in:  COUNT_QUERY
** Example:   Perform Form Builder count query hits processing.
**            Decide whether to use this Built-in or a user
**            exit based on a global flag setup at startup by
**            the form, perhaps based on a parameter.
** Trigger:   On-Count
*/
BEGIN
  /*
  ** Check the global flag we set during form startup
  */
  IF :Global.Using_Transactional_Triggers = 'TRUE' THEN
    /*
    ** User exit returns query hits count back into the
    ** CONTROL.HITS item.
    */
    User_Exit('my_count');
    /*
    ** Deposit the number of query hits in the appropriate
    ** block property so Form Builder can display its normal
    ** status message.
    */
    Set_Block_Property(:System.Trigger_Block,QUERY_HITS,
                     :control.hits);
  /*
  ** Otherwise, do the right thing.
  */
  ELSE
    Count_Query;
  END IF;
END;


Vordefinierte Prozedur CREATE_GROUP

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Erstellt eine Nicht-Abfrage-Datensatzgruppe mit dem angegebenen Namen. Die neue Datensatzgruppe hat keine Spalten und Zeilen, bis Sie diese ausdrücklich mit den vordefinierten Prozeduren ADD_GROUP_COLUMN, ADD_GROUP_ROW und POPULATE_GROUP_WITH_QUERY hinzufügen.

Syntax

FUNCTION CREATE_GROUP
  (recordgroup_name  VARCHAR2,
   scope             NUMBER,
   array_fetch_size  NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  RecordGroup

Abfragemodus  Ja

Parameter

recordgroup_name	Die Zeichenfolge, die Sie als Name der Datensatzgruppe beim Entwurf angeben. Wenn Form Builder das Datensatzgruppenobjekt erstellt, weist es dem Objekt gleichzeitig eine eindeutige ID vom Typ RecordGroup zu. Sie können die Datensatzgruppe in späteren Aufrufen von vordefinierten Prozeduren für Datensatzgruppen- oder Datensatzgruppenspalten nach Name oder ID aufrufen.

Scope	Gibt an, ob die Datensatzgruppe nur innerhalb der aktuellen Form oder innerhalb jeder Form in einer Anwendung mit mehreren Forms benutzt werden kann. Die folgenden Konstanten werden als Argumente benutzt:

	FORM_SCOPE  Gibt an, daß die Datensatzgruppe nur innerhalb der aktuellen Form benutzt werden kann. Standard.
	GLOBAL_SCOPE  Gibt an, daß es sich bei der Datensatzgruppe um eine globale Datensatzgruppe handelt, d.h. in allen Forms in der Anwendung benutzt werden kann. Nachdem eine globale Datensatzgruppe erstellt wurde, bleibt diese während der restlichen Laufzeitsitzung bestehen.
array_fetch_size	Gibt die Array-Abruf-Größe an. Die Standard-Array-Größe ist 20.


Beispiele für CREATE_GROUP

/*

** Built-in: CREATE_GROUP
** Example:  Creates a record group and populates its values
**           from a query.
*/
DECLARE
  rg_name  VARCHAR2(40) := 'Salary_Range';
  rg_id    RecordGroup;
  gc_id    GroupColumn;
  errcode  NUMBER;
BEGIN
  /*
  ** Make sure the record group does not already exist.
  */
  rg_id := Find_Group(rg_name);
  /*
  ** If it does not exist, create it and add the two
  ** necessary columns to it.
  */
  IF Id_Null(rg_id) THEN
    rg_id := Create_Group(rg_name);
    /* Add two number columns to the record group */
    gc_id := Add_Group_Column(rg_id, 'Base_Sal_Range',
                              NUMBER_COLUMN);
    gc_id := Add_Group_Column(rg_id, 'Emps_In_Range',
                              NUMBER_COLUMN);
  END IF;
  /*
  ** Populate group with a query
  */
  errcode := Populate_Group_With_Query( rg_id,
                  'SELECT SAL-MOD(SAL,1000),COUNT(EMPNO) '
                ||'FROM EMP '
                ||'GROUP BY SAL-MOD(SAL,1000) '
                ||'ORDER BY 1');
END;


Vordefinierte Prozedur CREATE_GROUP_FROM_QUERY

 Beispiele	 Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

Erstellt eine Datensatzgruppe mit dem angegebenen Namen. Die Datensatzgruppe verfügt über Spalten, die jede Spalte darstellen, die Sie in der ausgewählten Liste der Abfrage aufnehmen. Mit der vordefinierten Prozedur POPULATE_GROUP werden Zeilen zu der Datensatzgruppe hinzugefügt.

Hinweis:  Wenn Sie keinen formalen Spaltennamen oder Alias für eine Spalte in der SELECT-Anweisung übergeben, erstellt Form Builder ICRGGQ mit einem Dummy-Zähler <NUM>. Dies geschieht jedesmal, wenn der Spaltenname ungültig gewesen wäre. Der erste Dummy-Zähler für den Namen hat immer die Nummer eins. So würde z.B. die Abfrage SELECT 1 + 1 FROM DUAL eine Spalte namens ICRGGQ_1 ergeben.

Syntax

FUNCTION CREATE_GROUP_FROM_QUERY
  (recordgroup_name  VARCHAR2,
   query             VARCHAR2,
   scope             NUMBER,
   array_fetch_size  NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  RecordGroup

Abfragemodus  Ja

Parameter

recordgroup_name	Der Name der Datensatzgruppe. Wenn Form Builder das Datensatzgruppenobjekt erstellt, weist es dem Objekt gleichzeitig eine eindeutige ID vom Typ RecordGroup zu.

Query	Eine gültige SQL SELECT-Anweisung in einfachen Anführungszeichen. Spalten, die als Ergebnis der Abfrage abgerufen werden, übernehmen den Datentyp der Spalten in der Tabelle. Wenn Sie die Abfrage auf eine Teilmenge der Spalten in der Tabelle beschränken, erstellt Form Builder nur diese Spalten in der Datensatzgruppe.

Scope	Gibt an, ob die Datensatzgruppe nur innerhalb der aktuellen Form oder innerhalb jeder Form in einer Anwendung mit mehreren Forms benutzt werden kann. Die folgenden Konstanten werden als Argumente benutzt:

	FORM_SCOPE  Gibt an, daß die Datensatzgruppe nur innerhalb der aktuellen Form benutzt werden kann. Standard.
	GLOBAL_SCOPE  Gibt an, daß es sich bei der Datensatzgruppe um eine globale Datensatzgruppe handelt, d.h. in allen Forms in der Anwendung benutzt werden kann. Nachdem eine globale Datensatzgruppe erstellt wurde, bleibt diese während der restlichen Laufzeitsitzung bestehen.
array_fetch_size	Gibt die Array-Abruf-Größe an. Die Standard-Array-Größe ist 20.


Einschränkungen bei CREATE_GROUP_FROM_QUERY

•	 Wenn eine globale Datensatzgruppe aus einer Abfrage während der Ausführung von Form A erstellt (oder aufgefüllt) wird und die Abfragefolge Bindevariablen-Referenzen enthält, die in A lokal sind (:block.item oder :PARAMETER.param), wird die globale Abfrage-Datensatzgruppe nach Abschluß der Ausführung von Form A in eine globale Nicht-Abfrage-Datensatzgruppe umgewandelt (die Daten bleiben bestehen, ein nachfolgender Aufruf von POPULATE_GROUP wird jedoch als Fehler betrachtet).


Beispiele für CREATE_GROUP_FROM_QUERY

/*

** Built-in:  CREATE_GROUP_FROM_QUERY
** Example:   Create a record group from a query, and populate it.
*/
DECLARE
  rg_name  VARCHAR2(40) := 'Salary_Range';
  rg_id    RecordGroup;
  errcode  NUMBER;
BEGIN
  /*
  ** Make sure group doesn't already exist
  */
  rg_id := Find_Group( rg_name );
  /*
  ** If it does not exist, create it and add the two
  ** necessary columns to it.
  */
  IF Id_Null(rg_id) THEN
    rg_id := Create_Group_From_Query( rg_name,
                'SELECT SAL-MOD(SAL,1000) BASE_SAL_RANGE,'
               ||'COUNT(EMPNO) EMPS_IN_RANGE '
               ||'FROM EMP '
               ||'GROUP BY SAL-MOD(SAL,1000) '
               ||'ORDER BY 1');
  END IF;
  /*
  ** Populate the record group
  */
  errcode := Populate_Group( rg_id );
END;


CREATE_OLEOBJ

  Verwandte Themen 	 Alle vordefinierten Prozeduren

Beschreibung

In der ersten Form erstellt diese vordefinierte Prozedur ein OLE-Objekt und legt die Persistenz des Objekts fest. In der zweiten Form wird die Persistenz eines vorher instantiierten OLE-Objekts geändert.

Syntax

FUNCTION CREATE_OLEOBJ
  (name OLEOBJ, persistence_boolean := TRUE)
RETURN objpointer OLEOBJ;

...or...

FUNCTION CREATE_OLEOBJ
  (localobject VARCHAR2,
   persistence_boolean := TRUE)
RETURN objpointer OLEOBJ;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Pointer auf das OLE-Objekt

Parameter

Name	Programm-ID des Servers für das OLE-Objekt.
Localobject	Ein Pointer zu dem OLE-Objekt, dessen Status von nicht-persistent in persistent geändert werden muß.
Persistence_boolean	Mit einem Booleschen Wert von TRUE wird das Objekt als persistent festgelegt. Dies ist ein optionaler Parameter. Wenn er nicht angegeben wird, ist der Standardwert persistent.
Verwendungshinweise

Ein persistentes Objekt ist über Trigger-Aufrufe hinaus vorhanden. Ein nicht-persistentes Objekt ist nur so lange vorhanden, wie der Trigger, der den Aufruf ausgelöst hat, ausgeführt wird.


Vordefinierte Prozedur CREATE_PARAMETER_LIST

 Beispiele	 Einschränkungen	  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Erstellt eine Parameterliste mit dem angegebenen Namen. Die Parameterliste hat keine Parameter, wenn sie erstellt wird. Diese müssen mit der vordefinierten Prozedur ADD_PARAMETER hinzugefügt werden. Eine Parameterliste kann als Argument an die vordefinierten Prozeduren CALL_FORM, NEW_FORM, OPEN_FORM und RUN_PRODUCT übergeben werden.

Syntax

FUNCTION CREATE_PARAMETER_LIST
  (name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  ParamList

Abfragemodus  Ja

Parameter

name	Gibt den VARCHAR2-Namen des Parameterlistenobjekts an.

Wenn Form Builder das Objekt erstellt, weist es eine eindeutige ID vom Typ PARAMLIST zu. Sie können die Parameterliste in späteren Aufrufen von parameterlisten-orientierten vordefinierten Unterprogrammen nach Name oder ID aufrufen.


Einschränkungen bei CREATE_PARAMETER_LIST

•	Sie können keine Parameterliste namens DEFAULT erstellen. DEFAULT ist für die Parameterliste reserviert, die Form Builder beim Initiieren einer Laufzeitsitzung erstellt.

•	Sie können keine Parameterliste erstellen, wenn schon eine Parameterliste vorhanden ist. Sonst kommt es zu einem Fehler. Um diesen Fehler zu umgehen, prüfen Sie mit ID_NULL, ob schon eine Parameterliste vorhanden ist, bevor Sie eine Parameterliste erstellen. Wenn schon eine Parameterliste vorhanden ist, löschen Sie diese, bevor Sie eine neue Liste erstellen.


Beispiele für CREATE_PARAMETER_LIST

/*

** Built-in:  CREATE_PARAMETER_LIST
** Example:   Create a parameter list named 'TEMPDATA'. First
**            make sure the list does not already exist, then
**            attempt to create a new list. Signal an error
**            if the list already exists or if creating the
**            list fails.
*/
DECLARE
  pl_id   ParamList;
  pl_name VARCHAR2(10) := 'tempdata';
BEGIN
  pl_id := Get_Parameter_List(pl_name);
  IF Id_Null(pl_id) THEN
    pl_id := Create_Parameter_List(pl_name);
    IF Id_Null(pl_id) THEN
      Message('Error creating parameter list '||pl_name);
      RAISE Form_Trigger_Failure;
    END IF;
  ELSE
    Message('Parameter list '||pl_name||' already exists!');
    RAISE Form_Trigger_Failure;
  END IF;
END;


Vordefinierte Prozedur CREATE_QUERIED_RECORD

 Beispiele	 Einschränkungen	  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Wenn diese Prozedur von einem On-Fetch-Trigger aufgerufen wird, wird ein Datensatz in der Warteliste des Blocks erstellt. Die Warteliste ist ein Zwischen-Datensatzpuffer, der Datensätze enthält, die aus der Datenquelle abgerufen wurden, jedoch noch nicht in die Liste der aktiven Datensätze des Blocks gesetzt wurden. Diese vordefinierte Prozedur ist im wesentlichen für Anwendungen gedacht, die Transaktionstrigger bei einer Ausführung mit einer Nicht-ORACLE-Datenquelle verwenden.

Beachten Sie, daß es keine Möglichkeit gibt, einen Datensatz aus der Warteliste zu entfernen. Deshalb muß die Anwendung sicherstellen, daß Daten verfügbar sind, mit denen der Datensatz programmgesteuert aufgefüllt werden kann.

Syntax

PROCEDURE CREATE_QUERIED_RECORD;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Keine


Einschränkungen bei CREATE_QUERIED_RECORD

•	In Blöcken mit einer großen Anzahl von Datensätzen kann diese Prozedur Auswirkungen auf die Platten-E/A und/oder die Zuweisung von Speicherplatz haben.


Beispiele für CREATE_QUERIED_RECORD

/*

** Built-in:  CREATE_QUERIED_RECORD
** Example:   Fetch the next N records into this block. Record
**            count kept in Global.Record_Count.
** Trigger:   On-Fetch
*/
DECLARE
  fetch_count NUMBER;
  FUNCTION The_Next_Seq
  RETURN NUMBER IS
    CURSOR next_seq IS SELECT uniq_seq.NEXTVAL FROM DUAL;
    tmp NUMBER;
  BEGIN
    OPEN next_seq;
    FETCH next_seq INTO tmp;
    CLOSE next_seq;
    RETURN tmp;
  END;
BEGIN
  /*
  ** Determine how many records Form Builder is expecting us to
  ** fetch
  */
  fetch_count := Get_Block_Property('MYBLOCK',RECORDS_TO_FETCH);
  FOR i IN 1..fetch_count LOOP
    /*
    ** Create the Queried Record into which we'll deposit
    ** the values we're about to fetch;
    */
    Create_Queried_Record;
    :Global.Record_Count := NVL(:Global.Record_Count,0)+1;
    /*
    ** Populate the item in the queried record with a
    ** sequence function we declared above
    */
   :myblock.numbercol := the_next_seq;
  END LOOP;
END;


Vordefinierte Prozedur CREATE_RECORD

 Beispiele	  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Erstellt einen neuen Datensatz im aktuellen Block im Anschluß an den aktuellen Datensatz. Form Builder geht dann zu dem neuen Datensatz.

Syntax

PROCEDURE CREATE_RECORD;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Keine


Beispiele für CREATE_RECORD

/*

** Built-in:  CREATE_RECORD
** Example:   Populate new records in a block based on return
**            values from a query
*/
PROCEDURE Populate_Rows_Into_Block( projid NUMBER)  IS
  CURSOR tempcur( cp_projid NUMBER ) IS
    SELECT milestone_name, due_date
      FROM milestone
     WHERE project_id = cp_projid
    ORDER BY due_date;
BEGIN
  /* Add these records to the bottom of the block */
  Last_Record;
  /* Loop thru the records in the cursor */
  FOR rec IN tempcur( projid ) LOOP
    /*
    ** Create an empty record and set the current row's
    ** Milestone_Name and Due_Date items.
    */
    Create_Record;
  : Milestone.Milestone_Name := rec.milestone_name;
  : Milestone.Due_Date       := rec.due_date;
  END LOOP;
  First_Record;
END;


Vordefinierte Prozedur CREATE_TIMER

  Beispiele	  Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

Erstellt einen neuen Timer mit dem angegebenen Namen. Sie können das Intervall angeben und festlegen, ob der Timer nach dem Ablauf wiederholt oder nur einmal ausgeführt werden soll. Wenn der Timer abläuft, löst Form Builder den When-Timer-Expired-Trigger aus.

Syntax

FUNCTION CREATE_TIMER
  (timer_name    VARCHAR2,
   milliseconds  NUMBER,
   iterate       NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Timer

Abfragemodus  Ja

Parameter

timer_name	Gibt den Timernamen mit maximal 30 alphanumerischen Zeichen an. Der Name muß mit einem Buchstaben beginnen. Der Datentyp des Namens ist VARCHAR2.

milliseconds	Gibt die Dauer des Timers in Millisekunden an. Der für diesen Parameter zulässige Wertebereich beträgt 1 bis 2147483648 Millisekunden. Werte, die größer sind als 2147483648 werden auf 2147483648 abgerundet. Beachten Sie, daß nur positive Zahlen zulässig sind. Der Datentyp des Parameters ist NUMBER. Weitere Informationen finden Sie in dem folgenden Abschnitt mit den Einschränkungen.

Iterate	Gibt an, ob der Timer nach Ablauf wiederholt werden soll oder nicht. Folgende Konstanten werden als Argumente verwendet:

REPEAT  Gibt an, daß der Timer beim Ablauf wiederholt werden soll. Standardwert

NO_REPEAT  Gibt an, daß der Timer beim Ablauf nicht wiederholt werden soll, sondern nur einmal verwendet wird, bis er explizit erneut aufgerufen wird.


Einschränkungen bei CREATE_TIMER

•	Werte größer als 2147483648 werden auf 2147483648 abgerundet.

•	Millisekunden können nicht in Dezimalform ausgedrückt werden.

•	Zwei Timer dürfen in derselben Forminstanz nicht denselben Namen haben, unabhängig von der Groß-/Kleinschreibung.

•	Wenn bei der Ausführung eines Timers kein When-Timer-Expired-Trigger definiert ist, gibt Form Builder einen Fehler zurück.

•	Wenn bei der Ausführung eines Timers kein When-Timer-Expired-Trigger definiert ist und der Timer ein Wiederholungstimer ist, werden die nachfolgenden Wiederholungen abgebrochen, der Timer bleibt jedoch bestehen.

•	Wenn kein When-Timer-Expired-Trigger bei der Ausführung eines Timers definiert ist und der Timer kein sich wiederholender Timer ist, wird der Timer gelöscht.


Beispiele für CREATE_TIMER

Das folgende Beispiel erstellt einen Timer namens EMP_TIMER, setzt diesen auf eine Dauer von 60 Sekunden und einen Iterationswert von NO_REPEAT:

DECLARE
    timer_id Timer;
    one_minute NUMBER(5) := 60000;
BEGIN
    timer_id := CREATE_TIMER('emp_timer', one_minute, NO_REPEAT);
END;


CREATE_VAR

  Verwandte Themen 	 Alle vordefinierten Prozeduren

Beschreibung

Erstellt eine leere, unbenannte Variante.

Es gibt zwei Versionen der Funktion, eine für Einzelwerte und die andere für Arrays.

Syntax

FUNCTION CREATE_VAR
  (persistence BOOLEAN)
RETURN newvar OLEVAR;

...or...

FUNCTION CREATE_VAR
  (bounds OLE_SAFEARRAYBOUNDS,
   vtype VT_TYPE,
   persistence BOOLEAN)
RETURN newvar OLEVAR;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Die erstellte OLE-Variante

Parameter

Persistence	Steuert die Persistenz der Varianten nach dem Erstellen. Ein Boolescher Wert von TRUE legt die Variante als persistente Variante fest. Ein Wert von FALSE legt die Variante als nicht-persistent fest. Dies ist ein optionaler Parameter. Wenn er nicht angegeben wird, ist der Standardwert nicht-persistent.
bounds	Eine PL/SQL-Tabelle, die die Dimensionen angibt, die dem erstellten Array zugewiesen werden sollen. Weitere Informationen über Inhalt und Layout dieses Parameters und den Typ von OLE_SAFEARRAYBOUNDS finden Sie unter Array-Typen zur OLE-Unterstützung.
Vtype	Der OLE-Variantentyp (VT_TYPE) der Elemente in dem erstellten Array. Wenn das Array gemischte Elementtypen enthält, geben Sie VT_VARIANT an.
Verwendungshinweise

•	Die erstellte Variante hat keinen Typ, es sei denn, es handelt sich um ein Array - in diesem Fall haben die Elemente den von Ihnen angegebenen Typ.

•	Die erstellte Variante hat ebenfalls keinen Wert. Benutzen Sie die Funktion SET_VAR, um der Varianten einen Ausgangswert und einen Typ zuzuweisen.

•	Eine persistente Variante ist über Triggeraufrufe hinaus vorhanden. Eine nicht-persistente Variante ist nur so lange vorhanden, wie der Trigger, der den Aufruf ausgelöst hat, läuft. Siehe auch DESTROY_VARIANT.


Vordefinierte Prozedur CUT_REGION

  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Entfernt einen ausgewählten Bereich eines Text- oder Bildobjekts vom Bildschirm und speichert diesen im Einfügenpuffer, bis Sie einen weiteren ausgewählten Bereich ausschneiden oder kopieren.

Syntax

PROCEDURE CUT_REGION;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine

Verwendungshinweise

CUT_REGION sowie andere Editierfunktionen können nur für Text benutzt werden. Die Ausschneiden- und Kopieren-Funktionen übertragen den ausgewählten Textbereich in die System-Zwischenablage, bis Sie ein Ziel für das Einfügen angeben. Danach wird der ausgeschnittene oder kopierte Inhalt beim Zielort eingefügt.


Vordefinierte Prozedur DBMS_ERROR_CODE

 Beispiele	  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt die Fehlernummer des letzten entdeckten Datenbankfehlers zurück.

Syntax

FUNCTION DBMS_ERROR_CODE;

Prozedurtyp  Uneingeschränkte Funktion

Abfragemodus  Ja

Parameter

Keine

Verwendungshinweise

Bei rekursiven Fehlern gibt diese vordefinierte Prozedur den Code der ersten Meldung in dem Stapel zurück, so daß der Fehlertext auf Nummern der nachfolgenden Meldungen analysiert werden muß.


Beispiele für DBMS_ERROR_CODE

/*

** Built-in:  DBMS_ERROR_CODE,DBMS_ERROR_TEXT
** Example:   Reword certain Form Builder error messages by
**            evaluating the DBMS error code that caused them
** Trigger:   On-Error
*/
DECLARE
  errcode     NUMBER        := ERROR_CODE;
  dbmserrcode NUMBER;
  dbmserrtext VARCHAR2(200);
BEGIN
  IF errcode = 40508 THEN
    /*
    ** Form Builder had a problem INSERTing, so
    ** look at the Database error which
    ** caused the problem.
    */
    dbmserrcode := DBMS_ERROR_CODE;
    dbmserrtext := DBMS_ERROR_TEXT;

    IF dbmserrcode = -1438 THEN
      /*
      ** ORA-01438 is "value too large for column"
      */
      Message('Your number is too large. Try again.');
    ELSIF dbmserrcode = -1400 THEN
      /*
      ** ORA-01400 is "Mandatory column is NULL"
      */
      Message('You forgot to provide a value. Try again.');
    ELSE
      /*
      ** Printout a generic message with the database
      ** error string in it.
      */
      Message('Insert failed because of '||dbmserrtext);
    END IF;
  END IF;
END;


Vordefinierte Prozedur DBMS_ERROR_TEXT

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt die Meldungsnummer (wie z.B. ORA-01438) und den Meldungstext des Datenbankfehlers zurück.

Syntax

FUNCTION DBMS_ERROR_TEXT;

Prozedurtyp  Uneingeschränkte Funktion

Abfragemodus  Ja

Parameter

Keine

Verwendungshinweise

Sie können diese Funktion benutzen, um Datenbank-Fehlermeldungen während der Ausführung von Routinen zur Behandlung von Exceptions zu testen.

DBMS_ERROR_TEXT gibt die ganze Folge rekursiver Fehler zurück.


Beispiele für DBMS_ERROR_TEXT

/*

** Built-in:  DBMS_ERROR_CODE,DBMS_ERROR_TEXT
** Example:   Reword certain Form Builder error messages by
**            evaluating the DBMS error code that caused them
** Trigger:   On-Error
*/
DECLARE
  errcode     NUMBER        := ERROR_CODE;
  dbmserrcode NUMBER;
  dbmserrtext VARCHAR2(200);
BEGIN
  IF errcode = 40508 THEN
    /*
    ** Form Builder had a problem INSERTing, so
    ** look at the Database error which
    ** caused the problem.
    */
    dbmserrcode := DBMS_ERROR_CODE;
    dbmserrtext := DBMS_ERROR_TEXT;

    IF dbmserrcode = -1438 THEN
      /*
      ** ORA-01438 is "value too large for column"
      */
      Message('Your number is too large. Try again.');
    ELSIF dbmserrcode = -1400 THEN
      /*
      ** ORA-01400 is "Mandatory column is NULL"
      */
      Message('You forgot to provide a value. Try again.');
    ELSE
      /*
      ** Printout a generic message with the database
      ** error string in it.
      */
      Message('Insert failed because of '||dbmserrtext);
    END IF;
  END IF;
END;


Vordefinierte Prozedur DEBUG_MODE

 Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

Schaltet den Debug-Modus in einem Menü ein und aus. Wenn der Debug-Modus in einem Menü eingeschaltet ist, gibt Form Builder eine entsprechende Meldung aus, wenn ein Menübefehl ausgeführt wird.

Syntax

PROCEDURE DEBUG_MODE;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Einschränkungen bei DEBUG_MODE

Die Prozedur DEBUG_MODE kann nur für ein Menümodul angewendet werden. Mit dieser Prozedur wird die Form nicht in den Debug-Modus versetzt.


Vordefinierte Prozedur DEFAULT_VALUE

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Kopiert einen angegebenen Wert in eine angegebene Variable, wenn der aktuelle Wert der Variablen NULL ist. Wenn der aktuelle Wert der Variablen nicht NULL ist, führt DEFAULT_VALUE keine Aktion aus. Bei Textobjekten wird diese vordefinierte Prozedur also genau wie die vordefinierte Prozedur COPY bei einem NULL-Objekt verwendet. Wenn es sich bei der Variablen um eine nicht definierte globale Variable handelt, erstellt Form Builder die Variable.

Syntax

PROCEDURE DEFAULT_VALUE
  (value_string  VARCHAR2,
   variable_name  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

value_string	Eine gültige VARCHAR2-Zeichenfolge, Variable oder ein Textobjekt, das eine gültige Zeichenfolge enthält.

variable_name	Eine gültige Variable, globale Variable oder der Name eines Textobjekts. Der Datentyp von variable_name ist VARCHAR2. Jedes Objekt, das als Argument an diese vordefinierte Prozedur übergeben wird, muß in einfachen Anführungszeichen stehen.


Einschränkungen bei DEFAULT_VALUE

Die vordefinierte Prozedur DEFAULT_VALUE ist nicht mit dem Attribut Ausgangswert verbunden.


Beispiele für DEFAULT_VALUE

/*

** Built-in:  DEFAULT_VALUE
** Example:   Make sure a Global variable is defined by
**           assigning some value to it with Default_Value
*/
BEGIN
  /*
  ** Default the value of GLOBAL.Command_Indicator if it is
  ** NULL or does not exist.
  */
  Default_Value('***','global.command_indicator');
  /*
  ** If the global variable equals the string we defaulted
  ** it to above, then it must have not existed before
  */
  IF :Global.Command_Indicator = '***' THEN
    Message('You must call this screen from the Main Menu');
    RAISE Form_Trigger_Failure;
  END IF;
END;


Vordefinierte Prozedur DELETE_GROUP

  Beispiele	    Einschränkungen	  Alle vordefinierten Prozeduren

Beschreibung

Löscht eine programmgesteuert erstellte Datensatzgruppe.

Syntax

PROCEDURE DELETE_GROUP
  (recordgroup_id  RecordGroup);

PROCEDURE DELETE_GROUP
  (recordgroup_name  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

recordgroup_id	Die eindeutige ID, die Form Builder der Gruppe beim Erstellen zugewiesen hat. Der Datentyp der ID ist RecordGroup.

recordgroup_name	Der Name, den Sie der Datensatzgruppe beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.


Einschränkungen bei DELETE_GROUP

Diese vordefinierte Prozedur kann nicht dazu benutzt werden, eine Datensatzgruppe zu löschen, die beim Entwurf erstellt wurde.


Beispiele für DELETE_GROUP

/*

** Built-in:  DELETE_GROUP
** Example:   Delete a programmatically created record group
*/
PROCEDURE Remove_Record_Group( rg_name VARCHAR2 ) IS
  rg_id RecordGroup;
BEGIN
  /*
  ** Make sure the Record Group exists before trying to
  ** delete it.
  */
  rg_id := Find_Group( rg_name );
  IF NOT Id_Null(rg_id) THEN
    Delete_Group( rg_id );
  END IF;
END;


Vordefinierte Prozedur DELETE_GROUP_ROW

  Beispiele	    Einschränkungen	  Alle vordefinierten Prozeduren

Beschreibung

Löscht die angegebene Zeile bzw. alle Zeilen der angegebenen Datensatzgruppe. Form Builder verringert die Zeilennummer aller Zeilen automatisch, die auf eine gelöschte Zeile folgen. Wenn Zeilen gelöscht werden, wird der entsprechende Speicherplatz freigegeben und ist wieder für Form Builder verfügbar.

Wenn Sie alle Zeilen der Gruppe löschen möchten, indem Sie die Konstante ALL_ROWS angeben, löscht Form Builder die Zeilen. Die Gruppe ist jedoch immer noch vorhanden, bis Sie das Unterprogramm DELETE_GROUP ausführen.

Wenn eine einzelne Zeile gelöscht wird, werden nachfolgende Zeilen neu numeriert, so daß die Zeilennummern fortlaufend bleiben.

Syntax

PROCEDURE DELETE_GROUP_ROW
  (recordgroup_id  RecordGroup,
   row_number      NUMBER);

PROCEDURE DELETE_GROUP_ROW
  (recordgroup_name  VARCHAR2,
   row_number        NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

recordgroup_id	Die eindeutige ID, die Form Builder der Gruppe beim Erstellen zuweist. Der Datentyp der ID ist RecordGroup.

recordgroup_name	Der Name, den Sie der Datensatzgruppe beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

row_number	Gibt die Zeile an, die aus der Datensatzgruppe gelöscht werden soll. Zeilen werden automatisch von 1 bis n numeriert. Der Datentyp des Zeilennummern-Parameters ist NUMBER.

ALL_ROWS  Gibt an, daß Form Builder alle Zeilen löschen soll, ohne die Datensatzgruppe zu löschen. ALL_ROWS ist eine Konstante.


Einschränkungen bei DELETE_GROUP_ROW

Diese vordefinierte Prozedur kann nicht für das Löschen von Zeilen aus einer statischen Datensatzgruppe benutzt werden.


Beispiele für DELETE_GROUP_ROW

/*

** Built-in:  DELETE_GROUP_ROW
** Example:   Delete certain number of records from the tail
**            of the specified record group.
*/
PROCEDURE Delete_Tail_Records( recs_to_del NUMBER,
                               rg_name VARCHAR2 ) IS
  rg_id     RecordGroup;
  rec_count NUMBER;
BEGIN
  /*
  ** Check to see if Record Group exists
  */
  rg_id := Find_Group( rg_name );
  /*
  ** Get a count of the records in the record group
  */
  rec_Count := Get_Group_Row_Count( rg_id );
  IF rec_Count < recs_to_del THEN
    Message('There are only '||TO_CHAR(rec_Count)||
           ' records in the group.');
    RAISE Form_Trigger_Failure;
  END IF;
  /*
  ** Loop thru and delete the last 'recs_to_del' records
  */
  FOR j IN 1..recs_to_del LOOP
    Delete_Group_Row( rg_id, rec_Count - j + 1 );
  END LOOP;
END;


Vordefinierte Prozedur DELETE_LIST_ELEMENT

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Löscht ein bestimmtes Listenelement aus einem Listenobjekt.

Syntax

PROCEDURE DELETE_LIST_ELEMENT
  (list_name   VARCHAR2,
   list_index  NUMBER);

PROCEDURE DELETE_LIST_ELEMENT
  (list_id,    ITEM
   list_index  NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

list_id	Gibt die eindeutige ID an, die Form Builder dem Listenobjekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.

list_name	Der Name, den Sie dem Listenobjekt beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

list_index	Gibt den Wert des Listenindex an. Der Listenindex wird zur Basis 1 generiert.

Verwendungshinweise

•	Verwenden Sie die vordefinierte Prozedur DELETE_LIST_ELEMENT nicht, wenn das Attribut Zuordnung anderer Werte definiert ist und abgefragte Datensätze in dem Block vorhanden sind. Sonst kann Form Builder möglicherweise die Datensätze nicht anzeigen, die schon abgerufen wurden.

Angenommen, ein Listenobjekt enthält die Werte A, B und C, und das Attribut Zuordnung anderer Werte ist definiert. Außerdem wird angenommen, daß diese Werte aus der Datenbank abgerufen wurden (eine Abfrage ist geöffnet). Wenn Sie nun B mit DELETE_LIST_ELEMENT aus der Liste löschen, kommt es zu einem Fehler, weil Form Builder versucht, die vorher abgerufenen Werte (A, B und C) anzuzeigen, dies jedoch nicht kann, weil B aus der Liste gelöscht wurde.

Bevor Sie ein Listenelement löschen, schließen Sie geöffnete Abfragen. Mit der vordefinierten Prozedur ABORT_QUERY schließen Sie eine geöffnete Abfrage.

Hinweis:  Eine Liste enthält kein weiteres Werteelement, wenn beim Entwurf kein Werteelement angegeben wurde oder wenn das Werteelement programmgesteuert zur Laufzeit aus der Liste gelöscht wurde.


Einschränkungen bei DELETE_LIST_ELEMENT

Bei einem Listenobjekt vom Typ Popup-Liste oder T-Liste gibt Form Builder die Fehlermeldung FRM-41331: Konnte Element von <Listenobjekt> nicht löschen aus, wenn Sie versuchen, das Standard-Werteelement zu löschen.

Das Standard-Werteelement ist das Element, dessen Label oder Wert beim Entwurf für das Attribut Ausgangswert angegeben wurde.

Bei einem Listenobjekt in Form eines Kombinationsfeldes können Sie das Standard-Werteelement nur löschen, wenn für das Attribut Ausgangswert ein tatsächlicher Wert und keine Elementbeschriftung angegeben wurde.

Bei einem Basistabellen-Listenobjekt vom Typ Popup-Liste oder T-Liste gibt Form Builder die Fehlermeldung FRM-41331: Konnte Element von <Listenelement> nicht löschen aus, wenn Sie:

•	versuchen, das andere Werteelement zu löschen, wenn der Block abgefragte oder geänderte Datensätze enthält.

•	versuchen, ein Element aus einer Liste zu löschen, die kein weiteres Werteelement enthält, wenn der Block abgefragte oder geänderte Datensätze enthält.

Hinweis:  Der Blockstatus ist QUERY, wenn ein Block abgefragte Datensätze enthält. Der Blockstatus ist CHANGED, wenn ein Block Datensätze enthält, die entweder eingefügt oder aktualisiert wurden (abgefragte Datensätze wurden geändert).


Beispiele für DELETE_LIST_ELEMENT

/*

**  Built-in:  DELETE_LIST_ELEMENT
**  Example:   See ADD_LIST_ELEMENT
*/


Vordefinierte Prozedur DELETE_PARAMETER

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Löscht den Parameter mit dem angegebenen Schlüssel aus der Parameterliste.

Syntax

PROCEDURE DELETE_PARAMETER
  (list  VARCHAR2,
   key   VARCHAR2);

PROCEDURE DELETE_PARAMETER
  (name  VARCHAR2,
   key   VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

list oder name	Gibt die Parameterliste nach Listen-ID oder Name an. Bei dem eigentlichen Parameter kann es sich entweder um eine Parameterlisten-ID vom Typ PARAMLIST oder den VARCHAR2-Namen der Parameterliste handeln.

Key	Der Name des Parameters. Der Datentyp von Key ist VARCHAR2.


Einschränkungen bei DELETE_PARAMETER

•	Wenn Sie den letzten Parameter aus einer Liste löschen, wird die Liste selbst nicht automatisch gelöscht. Um die Parameterliste zu löschen, rufen Sie die vordefinierte Prozedur DESTROY_PARAMETER_LIST auf.


Beispiele für DELETE_PARAMETER

/*

** Built-in:  DELETE_PARAMETER
** Example:   Remove the 'NUMBER_OF_COPIES' parameter from the
**            already existing 'TEMPDATA' parameter list.
*/
BEGIN
  Delete_Parameter('tempdata','number_of_copies');
END;


Vordefinierte Prozedur DELETE_RECORD

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Wenn diese vordefinierte Prozedur außerhalb eines On-Delete-Triggers benutzt wird, wird der aktuelle Datensatz aus dem Block entfernt und der Datensatz als gelöscht markiert. Mit dieser vordefinierten Prozedur entfernte Datensätze werden nicht nacheinander entfernt, sondern zu einer Liste mit Datensätzen hinzugefügt, die beim nächsten verfügbaren Commit-Prozeß gelöscht werden.

Wenn der Datensatz einer Zeile in der Datenbank entspricht, sperrt Form Builder den Datensatz, bevor er entfernt und als gelöscht markiert wird.

Wenn eine Abfrage in dem Block geöffnet ist, ruft Form Builder einen Datensatz ab, um den Block gegebenenfalls wieder aufzufüllen. Außerdem wird auf die Beschreibung der vordefinierten Prozedur CLEAR_RECORD verwiesen.

In einem On-Delete-Trigger löst DELETE_RECORD die Standardverarbeitung von Form Builder für das Löschen eines Datensatzes während des Post- und Commit-Transaction-Prozesses aus, wie in Beispiel 2 unten dargestellt.

Syntax

PROCEDURE DELETE_RECORD;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Keine


Beispiele für DELETE_RECORD

Beispiel 1

/*

** Built-in:  DELETE_RECORD
** Example:   Mark the current record in the current block for
**            deletion.
*/
BEGIN
  Delete_Record;
END;

Beispiel 2

/*

** Built-in:  DELETE_RECORD
** Example:   Perform Form Builder delete record processing
**            during commit-time. Decide whether to use this
**            Built-in or a user exit based on a global flag
**            setup at startup by the form, perhaps based on
**            a parameter.
** Trigger:   On-Delete
*/
BEGIN
  /*
  ** Check the global flag we set during form startup
  */
  IF :Global.Using_Transactional_Triggers = 'TRUE' THEN
    User_Exit('my_delrec block=EMP');
  /*
  ** Otherwise, do the right thing.
  */
  ELSE
    Delete_Record;
  END IF;
END;


Vordefinierte Prozedur DELETE_TIMER

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Löscht den angegebenen Timer aus der Form.

Syntax

PROCEDURE DELETE_TIMER
  (timer_id  Timer);

PROCEDURE DELETE_TIMER
  (timer_name  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

timer_id	Gibt die eindeutige ID an, die Form Builder beim Erstellen des Timers zuweist, insbesondere als Antwort auf einen erfolgreichen Aufruf der vordefinierten Prozedur CREATE_TIMER. Benutzen Sie die vordefinierte Prozedur FIND_TIMER, um die ID an eine entsprechend eingegebene Variable zurückzugeben. Der Datentyp der ID ist Timer.

timer_name	Gibt den Namen an, den Sie dem Timer bei der Definition gegeben haben. Der Datentyp von timer_name ist VARCHAR2.


Einschränkungen bei DELETE_TIMER

•	Wenn Sie einen Timer löschen, müssen Sie einen FIND_TIMER-Aufruf ausgeben, bevor Sie versuchen, ID_NULL aufzurufen, um zu prüfen, ob das Timer-Objekt verfügbar ist. Das folgende Beispiel ist z.B. falsch, da der Aufruf von DELETE_TIMER den Wert der ID nicht setzt. Anders ausgedrückt, der Timer wird gelöscht, die ID ist jedoch weiter vorhanden, zeigt jedoch auf einen nicht vorhandenen Timer und ist somit nicht null.

-- Invalid Example
   timer_id := Find_Timer('my_timer');
   Delete_Timer(timer_id);
   IF (ID_Null(timer_id))...


Beispiele für DELETE_TIMER

/*

** Built-in:  DELETE_TIMER
** Example:   Remove a timer after first checking to see if
**            it exists
*/
PROCEDURE Cancel_Timer( tm_name VARCHAR2 ) IS
  tm_id Timer;
BEGIN
  tm_id := Find_Timer( tm_name );

  IF NOT Id_Null(tm_id) THEN
    Delete_Timer(tm_id);
  ELSE
    Message('Timer '||tm_name||' has already been cancelled.');
  END IF;
END;


Vordefinierte Prozedur DELETE_TREE_NODE

 Beispiele 	 Alle vordefinierten Prozeduren

Beschreibung

Entfernt das Datenelement aus dem Baum.

Syntax

PROCEDURE DELETE_TREE_NODE

  (item_name VARCHAR2,

   node NODE);

PROCEDURE DELETE_TREE_NODE

  (item_id ITEM,

   node NODE);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Nein

Parameter

item_name	Gibt den Namen des Objekts an, das beim Entwurf erstellt wurde. Der Datentyp des Namens ist VARCHAR2-Folge.
Item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Verwenden Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.
Node	Gibt einen gültigen Knoten an.
Verwendungshinweise

Wenn Sie einen Zweigknoten entfernen, werden alle untergeordneten Knoten ebenfalls entfernt.


Beispiele für DELETE_TREE_NODE

/*

** Built-in:  DELETE_TREE_NODE
*/

-- This code finds a node with the label "Zetie"

-- and deletes it and all of its children.

DECLARE

   htree         ITEM;

   delete_node   FTREE.NODE;

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Find the node with a label of "Zetie".

   -- Start searching from the root of the tree.

   delete_node := Ftree.Find_Tree_Node(htree,

                                       'Zetie',

                                       Ftree.FIND_NEXT,

                                       Ftree.NODE_LABEL,

                                       Ftree.ROOT_NODE,

                                       Ftree.ROOT_NODE);

   -- Delete the node and all of its children.

   IF NOT Ftree.ID_NULL(delete_node) then

      Ftree.Delete_Tree_Node(htree, delete_node);

   END IF;

END;


Vordefinierte Prozedur DESTROY_PARAMETER_LIST

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Löscht eine dynamisch erstellte Parameterliste und alle in ihr enthaltenen Parameter.

Syntax

PROCEDURE DESTROY_PARAMETER_LIST
  (list  VARCHAR2);

PROCEDURE DESTROY_PARAMETER_LIST
  (name  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

list oder name	Gibt die Parameterliste nach Listen-ID oder Name an. Bei dem eigentlichen Parameter kann es sich entweder um eine Parameterlisten-ID vom Typ PARAMLIST oder den VARCHAR2-Namen der Parameterliste handeln.

Verwendungshinweise:

Beim Löschen einer Parameterliste mit Hilfe von DESTROY_PARAMETER_LIST wird das Handle der Parameterliste NICHT auf NULL eingestellt.

Verwenden Sie die vordefinierte Prozedur GET_PARAMETER_LIST, um die ID an eine Variable vom Typ PARAMLIST zurückzugeben.


Beispiele für DESTROY_PARAMETER_LIST

/*

** Built-in:  DESTROY_PARAMETER_LIST
** Example:   Remove the parameter list 'tempdata' after first
**            checking to see if it exists
*/
DECLARE
  pl_id ParamList;
BEGIN
  pl_id := Get_Parameter_List('tempdata');
  IF NOT Id_Null(pl_id) THEN
    Destroy_Parameter_List(pl_id);
  END IF;
END;


DESTROY_VARIANT

 Alle vordefinierten Prozeduren

Beschreibung

Zerstört eine Variante, die mit der Funktion CREATE_VAR erstellt wurde.

Syntax

PROCEDURE DESTROY_VARIANT (variant OLEVAR);

Prozedurtyp   Uneingeschränkte Prozedur

Parameter

variant	Die zu zerstörende OLE-Variante.


Vordefinierte Prozedur DISPATCH_EVENT

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Gibt den Dispatch-Modus für Ereignisse von ActiveX-Steuerelementen an. Standardmäßig sind alle PL/SQL-Ereignisprozeduren, die mit ActiveX-Ereignissen verknüpft sind, eingeschränkt. Dies bedeutet, daß go_item nicht aus dem Prozedurcode aufgerufen wird und daß OUT-Parameter nicht beobachtet werden. Es gibt jedoch Fälle, in denen dasselbe Ereignis für mehrere Objekte gilt und ein go_item erforderlich ist. Dies setzt voraus, daß das Ereignis als nicht eingeschränkt verschickt wird. Mit dem On-Dispatch-Event-Trigger können Sie DISPATCH_EVENT aufrufen, um den Dispatch-Modus als eingeschränkt oder nicht eingeschränkt anzugeben. Weitere Informationen über die Arbeit mit Ereignissen von ActiveX-Steuerelementen finden Sie im Hilfethema Auf Ereignisse von ActiveX-Steuerelementen reagieren im Online-Hilfesystem.

Syntax

PROCEDURE DISPATCH_EVENT
  (sync NUMBER,
);

PROCEDURE DISPATCH_EVENT
);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

sync	Gibt den Dispatch-Modus als eingeschränkt (RESTRICTED) oder nicht eingeschränkt (RESTRICTED_ALLOWED) an.


Beispiele für DISPATCH_EVENT

/*

ON-DISPATCH-EVENT trigger
*/
BEGIN
IF :SYSTEM.CUSTOM_ITEM_EVENT = 4294966696 THEN
/*when event occurs, allow it to apply to different items */
FORMS4W.DISPATCH_EVENT(RESTRICTED_ALLOWED);
ELSE
/*run the default, that does not allow applying any other 	item */
FORMS4W.DISPATCH_EVENT(RESTRICTED);
END IF;
END;


Vordefinierte Prozedur DISPLAY_ERROR

 Alle vordefinierten Prozeduren

Beschreibung

Zeigt den Bildschirm Fehler anzeigen an, wenn ein Fehler protokolliert ist. Wenn der Operator während der Anzeige des Bildschirms Fehler anzeigen eine Funktionstaste drückt, zeigt Form Builder die Form erneut an. Wenn beim Aufruf dieser vordefinierten Prozedur kein Fehler zur Anzeige vorhanden ist, ignoriert Form Builder den Aufruf und zeigt den Bildschirm Fehler anzeigen nicht an.

Syntax

PROCEDURE DISPLAY_ERROR;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Vordefinierte Prozedur DISPLAY_ITEM

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Wird nur aus Gründen der Abwärtskompatibilität beibehalten. Bei neuen Anwendungen sollten Sie die vordefinierte Prozedur SET_ITEM_INSTANCE_PROPERTY verwenden. Mit DISPLAY_ITEM wird das Erscheinungsbild eines Objekts geändert, indem ein bestimmtes Anzeigeattribut dem Objekt zugewiesen wird. Mit DISPLAY_ITEM wird außerdem das Erscheinungsbild von Objekten geändert, die die geänderte Instanz spiegeln. SET_ITEM_INSTANCE_PROPERTY ändert keine Spiegelobjekte.

Sie können jedes Objekt in der aktuellen Form referenzieren.

Änderungen, die mit einer vordefinierten Prozedur DISPLAY_ITEM vorgenommen werden, bleiben wirksam, bis

•	dieselbe Objektinstanz von einer anderen vordefinierten Prozedur DISPLAY_ITEM referenziert wird, oder

•	dieselbe Objektinstanz von der vordefinierten Prozedur SET_ITEM_INSTANCE_PROPERTY (mit dem Attribut VISUAL_ATTRIBUTE) referenziert wird, oder

•	die Instanz des Objekts entfernt wird (z.B. mit CLEAR_RECORD oder einer Abfrage), oder

•	Sie einen Datensatz ändern (dessen Status NEW ist), aus dem Datensatz heraus navigieren und den Datensatz dann erneut aufrufen, oder

•	die aktuelle Form beendet wird.

Syntax

PROCEDURE DISPLAY_ITEM
  (item_id    ITEM,
   attribute  VARCHAR2);

PROCEDURE DISPLAY_ITEM
  (item_name  VARCHAR2,
   attribute  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

 Parameter

item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Der Datentyp der ID ist ITEM.

item_name	Gibt die VARCHAR2-Zeichenfolge an, die Sie dem Objekt beim Erstellen zugewiesen haben.

Attribute	Gibt ein benanntes visuelles Attribut an, das vorhanden sein sollte. Sie können auch ein gültiges Attribut aus Ihrer Resource-Datei von Oracle*Terminal angeben. Form Builder sucht zuerst nach benannten visuellen Attributen. Hinweis:  Sie können Normal als Methode für die Anwendung der Standardattribute für ein Objekt angeben, jedoch nur, wenn Ihre Form kein visuelles Attribut oder logisch (Zeichenmodus oder anderweitig) aufgerufenes Attribut Normal enthält. Sie können auch NULL als Methode angeben, um für ein Objekt wieder die anfänglichen visuellen Attribute zu verwenden (Standard, Benutzerdefiniert oder Benannt).


Beispiele für DISPLAY_ITEM

/*

** Built-in:  DISPLAY_ITEM
** Example:   Change the visual attribute of each item in the
**            current record.
*/
DECLARE
  cur_itm   VARCHAR2(80);
  cur_block VARCHAR2(80) := :System.Cursor_Block;
BEGIN
  cur_itm   := Get_Block_Property( cur_block, FIRST_ITEM );
  WHILE ( cur_itm IS NOT NULL ) LOOP
    cur_itm := cur_block||'.'||cur_itm;
    Display_Item( cur_itm, 'My_Favorite_Named_Attribute');
    cur_itm := Get_Item_Property( cur_itm, NEXTITEM );
  END LOOP;
END;


Vordefinierte Prozedur DOWN

  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Navigiert zu der Instanz des aktuellen Objekts in dem Datensatz mit der nächsthöheren Sequenznummer. Gegebenenfalls ruft Form Builder einen Datensatz ab. Wenn Form Builder einen Datensatz erstellen muß, navigiert DOWN zu dem ersten navigierbaren Objekt in dem Datensatz.

Syntax

PROCEDURE DOWN;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Keine


Vordefinierte Prozedur DO_KEY

 Beispiele	   Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

Führt den Tastentrigger aus, der der angegebenen vordefinierten Prozedur entspricht. Wenn kein derartiger Tastentrigger vorhanden ist, wird die angegebene Prozedur ausgeführt. Dieses Verhalten entspricht dem Drücken der entsprechenden Funktionstaste.

Syntax

PROCEDURE DO_KEY
  (built-in_subprogram_name  VARCHAR2);

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja

Parameter

built-in_subprogram_name	Gibt den Namen einer gültigen vordefinierten Prozedur an.

Vordefinierte Prozedur	Tastentrigger	Zugehörige Funktionstaste
BLOCK_MENU	Key-MENU	[Blockmenü]
CLEAR_BLOCK	Key-CLRBLK	[Daten aus Block entfernen]
CLEAR_FORM	Key-CLRFRM	[Daten aus Form entfernen]
CLEAR_RECORD	Key-CLRREC	[Datensatz entfernen]
COMMIT_FORM	Key-COMMIT	[Commit]
COUNT_QUERY	Key-CQUERY	[Treffer zählen]
CREATE_RECORD	Key-CREREC	[Datensatz einfügen]
DELETE_RECORD	Key-DELREC	[Datensatz löschen]
DOWN	Key-DOWN	[Nach unten]
DUPLICATE_ITEM	Key-DUP-ITEM	[Objekt duplizieren]
DUPLICATE_RECORD	Key-DUPREC	[Datensatz duplizieren]
EDIT_TEXTITEM	Key-EDIT	[Bearbeiten]
ENTER	Key-ENTER	[Eingabe]
ENTER_QUERY	Key-ENTQRY	[Abfragemodus]
EXECUTE_QUERY	Key-EXEQRY	[Abfrage ausführen]
EXIT_FORM	Key-EXIT	[Beenden/Abbrechen]
HELP	Key-HELP	[Hilfe]
LIST_VALUES	Key-LISTVAL	[Auflisten]
LOCK_RECORD	Key-UPDREC	[Datensatz sperren]
NEXT_BLOCK	Key-NXTBLK	[Nächster Block]
NEXT_ITEM	Key-NEXT-ITEM	[Nächstes Objekt]
NEXT_KEY	Key-NXTKEY	[Nächster Primärschlüssel]
NEXT_RECORD	Key-NXTREC	[Nächster Datensatz]
NEXT_SET	Key-NXTSET	[Nächste Gruppe mit Datensätzen]
PREVIOUS_BLOCK	Key-PRVBLK	[Vorheriger Block]
PREVIOUS_ITEM	Key-PREV-ITEM	[Vorheriges Objekt]
PREVIOUS_RECORD	Key-PRVREC	[Vorheriger Datensatz]
PRINT	Key-PRINT	[Drucken]
SCROLL_DOWN	Key-SCRDOWN	[Bild-ab]
SCROLL_UP	Key-SCRUP	[Bild-auf]
UP	Key-UP	[Nach oben]


Einschränkungen bei DO_KEY

DO_KEY akzeptiert nur Namen von vordefinierten Prozeduren und keine Tastennamen: DO_KEY(ENTER_QUERY). Wenn ein bestimmter Tastenname akzeptiert werden soll, verwenden Sie die vordefinierte Prozedur EXECUTE_TRIGGER: EXECUTE_TRIGGER('KEY_F11').


Beispiele für DO_KEY

/*

** Built-in:  DO_KEY
** Example:   Simulate pressing the [Execute Query] key.
*/
BEGIN
  Do_Key('Execute_Query');
END;


Vordefinierte Prozedur DUMMY_REFERENCE

 Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Bietet einen Mechanismus für das Codieren einer expliziten Referenz auf eine Bindevariable, die sonst nur indirekt in einer Formel (oder in einer Funktion bzw. Prozedur, die von einer Formel aufgerufen wird) referenziert würde. Benutzen Sie DUMMY_REFERENCE, um zu gewährleisten, daß ein mit einer Formel berechnetes Objekt (das indirekte Referenzen auf Bindevariablen enthält) zur Neuberechnung durch Form Builder markiert wird.

Bei dem Ausdruck kann es sich um einen willkürlichen Ausdruck vom Typ Char, Number oder Date handeln. Typischerweise besteht der Ausdruck aus einer einzigen Referenz auf eine Bindevariable.

Hinweis:  DUMMY_REFERENCE muß nicht ausgeführt werden, damit die referenzierte Bindevariable von Form Builder erkannt wird (und somit das entsprechende von der Formel berechnete Objekt zur Neuberechnung markiert wird).

Syntax

PROCEDURE DUMMY_REFERENCE(expression);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Einschränkungen bei DUMMY_REFERENCE

Keine


Vordefinierte Prozedur DUPLICATE_ITEM

 Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Weist dem aktuellen Objekt denselben Wert wie der Instanz dieses Objekts im vorherigen Datensatz zu.

Syntax

PROCEDURE DUPLICATE_ITEM;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Keine


Einschränkungen bei DUPLICATE_ITEM

Ein vorheriger Datensatz muß in der aktuellen Sitzung vorhanden sein, sonst gibt Form Builder folgende Fehlermeldung zurück: FRM-41803: Kein vorheriger Datensatz vorhanden, von dem kopiert werden kann.


Vordefinierte Prozedur DUPLICATE_RECORD

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Kopiert den Wert jedes Objekts in dem Datensatz mit der nächstniedrigeren Sequenznummer in die entsprechenden Objekte im aktuellen Datensatz. Der aktuelle Datensatz darf keiner Zeile in der Datenbank entsprechen. Sonst kommt es zu einem Fehler.

Hinweis:  Der doppelte Datensatz übernimmt nicht den Datensatzstatus des Quelldatensatzes. Statt dessen ist der Datensatzstatus INSERT.

Syntax

PROCEDURE DUPLICATE_RECORD;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Keine


Einschränkungen bei DUPLICATE_RECORD

Ein vorheriger Datensatz muß in der aktuellen Sitzung vorhanden sein.


Beispiele für DUPLICATE_RECORD

/*

** Built-in:  DUPLICATE_RECORD;
** Example:   Make a copy of the current record and increment
**            the "line_sequence" item by one.
*/
DECLARE
  n NUMBER;
BEGIN
  /*
  ** Remember the value of the 'line_sequence' from the
  ** current record
  */
  n := :my_block.line_sequence;
  /*
  ** Create a new record, and copy all the values from the
  ** previous record into it.
  */
  Create_Record;
  Duplicate_Record;
  /*
  ** Set the new record's 'line_sequence' to one more than
  ** the last record's.
  */
  :my_block.line_sequence := n + 1;
END;


Vordefinierte Prozedur EDIT_TEXTITEM

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Ruft den Runform-Objekteditor für das aktuelle Textobjekt auf und versetzt die Form in den Bearbeiten-Modus.

Syntax

PROCEDURE EDIT_TEXTITEM;

PROCEDURE EDIT_TEXTITEM
  (x  NUMBER,
   y  NUMBER);
PROCEDURE EDIT_TEXTITEM
  (x       NUMBER,
   y       NUMBER,
   width,  NUMBER
   height  NUMBER);

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja

Parameter

x	Gibt die x-Koordinate auf dem Bildschirm an, bei der die obere linke Ecke des Popup-Objekteditors stehen soll.

Y	Gibt die y-Koordinate auf dem Bildschirm an, bei der die obere linke Ecke des Popup-Objekteditors stehen soll.

Width	Gibt die Breite des ganzen Editorfensters an, einschließlich Schaltflächen.

Height	Gibt die Höhe des ganzen Editorfensters an, einschließlich Schaltflächen.

Wenn Sie eine Höhe von weniger als 6 Zeicheneinheiten oder dem entsprechenden Äquivalent angeben, legt Form Builder eine Höhe von 6 fest.

Sie können die wahlweisen Parameter von EDIT_TEXTITEM verwenden, um Position und Abmessungen des Popup-Fensters anzugeben, mit dem der Objekteditor verknüpft ist. Wenn Sie diese Parameter nicht verwenden, ruft Form Builder den Objekteditor mit der Standardposition und den Standardabmessungen auf.


Einschränkungen bei EDIT_TEXTITEM

•	Die Breite muß mindestens groß genug zur Anzeige der Schaltflächen am unteren Ende des Editorfensters sein.


Beispiele für EDIT_TEXTITEM

/*

** Built-in:  EDIT_TEXTITEM
** Example:   Determine the x-position of the current item
**            then bring up the editor either on the left
**            side or right side of the screen so as to not
**            cover the item on the screen.
*/
DECLARE
  itm_x_pos NUMBER;
BEGIN
  itm_x_pos := Get_Item_Property(:System.Cursor_Item,X_POS);
  IF itm_x_pos > 40 THEN
    Edit_TextItem(1,1,20,8);
  ELSE
    Edit_TextItem(60,1,20,8);
  END IF;
END;


Vordefinierte Prozedur ENFORCE_COLUMN_SECURITY

 Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Führt die Standardverarbeitung zur Überprüfung der Spaltensicherheit bei einer Datenbankspalte durch. Diese vordefinierte Prozedur ist im wesentlichen für Anwendungen gedacht, die mit einer fremden Datenquelle ausgeführt werden und Transaktions-Trigger verwenden, um die Standardtransaktionsverarbeitung von Form Builder zu ersetzen.

Die Standardüberprüfung der Spaltensicherheit bezieht sich auf die Folge von Ereignissen, die eintritt, wenn Form Builder die Sicherheit auf Spaltenebene für jeden Block in Kraft setzt, für den das Attribut Spaltensicherheit durchsetzen auf Ja gesetzt ist. Um die Spaltensicherheit durchzusetzen, fragt Form Builder die Datenbank ab, um die Basistabellenspalten zu ermitteln, für die der aktuelle Form-Operator die Aktualisierungsberechtigung hat. Bei Spalten, für die der Operator keine Aktualisierungsberechtigung hat, macht Form Builder die entsprechenden Objekte der Basistabelle in der Form nicht aktualisierbar, indem das Attribut Aktualisieren erlaubt auf Nein eingestellt wird. Standardmäßig führt Form Builder diesen Vorgang beim Hochfahren der Form aus, wobei die einzelnen Blöcke nacheinander verarbeitet werden.

Weitere Informationen finden Sie in Form Builder Advanced Techniques, Kapitel 4, "Connecting to Non-Oracle Data Sources".

Syntax

PROCEDURE ENFORCE_COLUMN_SECURITY

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Verwendungshinweise

Sie können diese vordefinierte Prozedur in dem Trigger On-Column-Security aufnehmen, wenn Sie das Verhalten dieses Triggers verbessern und diesen nicht vollständig ersetzen möchten. Weitere Informationen finden Sie in Kapitel , "Trigger", in diesem Handbuch.


Einschränkungen bei ENFORCE_COLUMN_SECURITY

Ist nur bei einem On-Column-Security-Trigger gültig.


Vordefinierte Prozedur ENTER

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Validiert Daten in der aktuellen Validierungseinheit. (Die Standard-Validierungseinheit ist Objekt.)

Syntax

PROCEDURE ENTER;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Beispiele für ENTER

/*

** Built-in:  ENTER
** Example:   Force Validation to occur before calling another
**            form
*/
BEGIN
  Enter;
  IF NOT Form_Success THEN
    RAISE Form_Trigger_Failure;
  END IF;
  Call_Form('newcust');
END;


Vordefinierte Prozedur ENTER_QUERY

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Das Verhalten von ENTER_QUERY variiert je nach den angegebenen Parametern.

Syntax

PROCEDURE ENTER_QUERY;

PROCEDURE ENTER_QUERY
  (keyword_one  VARCHAR2);
PROCEDURE ENTER_QUERY
  (keyword_two  VARCHAR2);
PROCEDURE ENTER_QUERY
  (keyword_one  VARCHAR2,
   keyword_two  VARCHAR2);
PROCEDURE ENTER_QUERY
  (keyword_one  VARCHAR2,
   keyword_two  VARCHAR2,
   locking      VARCHAR2);

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja (um den Beispieldatensatz aus der letzten in dem Block ausgeführten Abfrage erneut anzuzeigen)

Parameter

no parameters	ENTER_QUERY leert den aktuellen Block und versetzt die Form in den Abfragemodus. Wenn Änderungen festzuschreiben sind, fordert Form Builder den Operator auf, diese während des Vorgangs ENTER_QUERY zu speichern.

keyword_one	ENTER_QUERY(ALL_RECORDS) führt dieselben Aktionen wie ENTER_QUERY aus, nur ruft Form Builder  bei Aufruf von EXECUTE_QUERY alle ausgewählten Datensätze ab.

keyword_two	ENTER_QUERY(FOR_UPDATE) führt dieselben Aktionen wie ENTER_QUERY aus,  nur versucht Form Builder  bei Aufruf von EXECUTE_QUERY, alle ausgewählten Datensätze sofort zu sperren.

keyword_one/ keyword_two	ENTER_QUERY(ALL_RECORDS, FOR_UPDATE) führt dieselben Aktionen wie ENTER_QUERY aus, nur versucht Form Builder bei Aufruf von EXECUTE_QUERY, alle ausgewählten Datensätze sofort zu sperren, und ruft alle ausgewählten Datensätze auf.

Locking	Kann jederzeit auf NO_WAIT eingestellt werden, wenn Sie den Parameter FOR_UPDATE verwenden. Wenn Sie NO_WAIT benutzen, zeigt Form Builder ein Dialogfeld an, mit dem der Operator unterrichtet wird, wenn ein Datensatz nicht zur sofortigen Aktualisierung reserviert werden kann.

Ohne den Parameter NO_WAIT versucht Form Builder kontinuierlich, eine Sperre zu erhalten, ohne daß der Operator den Vorgang abbrechen kann.

Benutzen Sie den Parameter NO_WAIT nur, wenn Sie mit einer Datenquelle arbeiten, die diese Funktionalität unterstützt.


Einschränkungen bei ENTER_QUERY

Verwenden Sie die Parameter ALL_RECORDS und FOR_UPDATE mit Vorsicht. Wenn Sie eine große Anzahl von Zeilen sperren und abrufen, kann dies zu beträchtlichen Verzögerungen führen, da viele Ressourcen zur Ausführung der Task belegt werden.


Beispiele für ENTER_QUERY

/*

** Built-in:  ENTER_QUERY
** Example:   Go Into Enter-Query mode, and exit the form if
**            the user cancels out of enter-query mode.
*/
BEGIN
  Enter_Query;
  /*
  ** Check to see if the record status of the first record
  ** is 'NEW' immediately after returning from enter-query
  ** mode.  It should be 'QUERY' if at least one row was
  ** returned.
  */

  IF :System.Record_Status = 'NEW' THEN
    Exit_Form(No_Validate);
  END IF;
END;


Vordefinierte Prozedur ERASE

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Entfernt eine angegebene globale Variable, so daß diese nicht mehr vorhanden ist, und gibt den mit der globalen Variablen verknüpften Speicherplatz frei. Globale Variablen belegen immer 255 Byte im Speicher. Um sicherzustellen, daß die Leistung nicht mehr als unbedingt erforderlich beeinträchtigt wird, löschen Sie eine globale Variable immer dann, wenn sie nicht mehr benötigt wird.

Syntax

PROCEDURE ERASE
  (global_variable_name  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

global_variable_name	Gibt den Namen einer gültigen globalen Variablen an.


Beispiele für ERASE

ERASE('global.var');


Vordefinierte Prozedur ERROR_CODE

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt die Fehlernummer des Form Builder-Fehlers zurück.

Syntax

PROCEDURE ERROR_CODE;

Prozedurtyp  Uneingeschränkte Funktion

Abfragemodus  Ja

Parameter

Keine


Beispiele für ERROR_CODE

/*

** Built-in:  ERROR_CODE,ERROR_TEXT,ERROR_TYPE
** Example:   Reword certain FRM error messages by checking
**            the Error_Code in an ON-ERROR trigger
** Trigger:   On-Error
*/
DECLARE
  errnum NUMBER       := ERROR_CODE;
  errtxt VARCHAR2(80) := ERROR_TEXT;
  errtyp VARCHAR2(3)  := ERROR_TYPE;
BEGIN
  IF errnum = 40301 THEN
    Message('Your search criteria identified no matches...
              Try Again.');
  ELSIF errnum = 40350 THEN
    Message('Your selection does not correspond to an employee.');
  ELSE
    /*
    ** Print the Normal Message that would have appeared
    **
    ** Default Error Message Text Goes Here
    */
    Message(errtyp||'-'||TO_CHAR(errnum)||': '||errtxt);
    RAISE Form_Trigger_Failure;
  END IF;
END;


Vordefinierte Prozedur ERROR_TEXT

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt den Meldungstext des Form Builder-Fehlers zurück.

Syntax

FUNCTION ERROR_TEXT;

Prozedurtyp  Uneingeschränkte Funktion

Abfragemodus  Ja

Beschreibung

Gibt den Meldungstext des Form Builder-Fehlers zurück.

Parameter

Keine

Verwendungshinweise

Mit dieser Funktion können Sie Fehlermeldungen während der Ausführung von Unterprogrammen zur Fehlerverarbeitung testen.


Beispiele für ERROR_TEXT

/*

** Built-in:  ERROR_CODE,ERROR_TEXT,ERROR_TYPE
** Example:   Reword certain FRM error messages by checking
**            the Error_Code in an ON-ERROR trigger
** Trigger:   On-Error
*/
DECLARE
  errnum NUMBER       := ERROR_CODE;
  errtxt VARCHAR2(80) := ERROR_TEXT;
  errtyp VARCHAR2(3)  := ERROR_TYPE;
BEGIN
  IF errnum = 40301 THEN
    Message('Your search criteria identified no matches...
             Try Again.');
  ELSIF errnum = 40350 THEN
    Message('Your selection does not correspond to an employee.');
  ELSE
    /*
    ** Print the Normal Message that would have appeared
    **
    ** Default Error Message Text Goes Here
    */
    Message(errtyp||'-'||TO_CHAR(errnum)||': '||errtxt);
    RAISE Form_Trigger_Failure;
  END IF;


Vordefinierte Prozedur ERROR_TYPE

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt den Fehlermeldungstyp für die Aktion zurück, die als letztes während der laufenden Runform-Sitzung ausgeführt wurde.

Syntax

FUNCTION ERROR_TYPE;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  ERROR_TYPE gibt einen der folgenden Werte für den Fehlermeldungstyp zurück:

FRM.	Gibt einen Form Builder-Fehler an.

ORA	Gibt einen ORACLE-Fehler an.

Abfragemodus  Ja

Parameter

Keine

Verwendungshinweise

Mit dieser Funktion können Sie folgendes ausführen:

•	Testen des Ergebnisses einer Benutzeraktion, wie z.B. das Drücken einer Taste, um die Verarbeitung in einem On-Error-Trigger zu bestimmen.

•	Testen des Ergebnisses einer vordefinierten Prozedur, um die weitere Verarbeitung innerhalb eines beliebigen Triggers zu bestimmen.

Um die richtigen Ergebnisse bei beiden Testarten zu erhalten, müssen Sie den Test unmittelbar nach Ausführung der Aktion durchführen, bevor eine weitere Aktion durchgeführt wird.


Beispiele für ERROR_TYPE

/*

** Built-in:  ERROR_CODE,ERROR_TEXT,ERROR_TYPE
** Example:   Reword certain FRM error messages by checking
**            the Error_Code in an ON-ERROR trigger
** Trigger:   On-Error
*/
DECLARE
  errnum NUMBER       := ERROR_CODE;
  errtxt VARCHAR2(80) := ERROR_TEXT;
  errtyp VARCHAR2(3)  := ERROR_TYPE;
BEGIN
  IF errnum = 40107 THEN
    Message('You cannot navigate to this non-displayed item...
          Try again.');
  ELSIF errnum = 40109 THEN
    Message('If you want to leave this block,
          you must first cancel Enter Query mode.');
  ELSE
    /*
    ** Print the Normal Message that would have appeared
    **
    ** Default Error Message Text Goes Here
    */
    Message(errtyp||'-'||TO_CHAR(errnum)||': '||errtxt);
    RAISE Form_Trigger_Failure;
  END IF;
END;


EXEC_VERB

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Veranlaßt den OLE-Server, das mit dem Verbnamen oder Verbindex angegebene Verb auszuführen. Ein OLE-Verb gibt die Aktion an, die Sie mit einem OLE-Objekt ausführen können.

Syntax

PROCEDURE EXEC_VERB
  (item_id     Item,
   verb_index  VARCHAR2);

PROCEDURE EXEC_VERB
  (item_id    Item,
   verb_name  VARCHAR2);
PROCEDURE EXEC_VERB
  (item_name   VARCHAR2,
   verb_index  VARCHAR2);
PROCEDURE EXEC_VERB
  (item_name  VARCHAR2,
   verb_name  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Nein

Parameter

item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist Item.

item_name	Gibt den Namen des beim Entwurf erstellten Objekts an. Der Datentyp des Namens ist VARCHAR2.

verb_index	Gibt den numerischen Index eines Verbs an. Benutzen Sie die vordefinierte Prozedur Forms_OLE.Find_OLE_Verb, um diesen Wert abzurufen. Der Datentyp des Index ist VARCHAR2.

verb_name	Gibt den Namen eines Verbs an. Benutzen Sie die vordefinierte Prozedur Forms_OLE.Get_Verb_Name, um diesen Wert abzurufen. Der Datentyp des Namens ist VARCHAR2.


Einschränkungen bei EXEC_VERB

Nur bei Microsoft Windows und Macintosh gültig.


Beispiele für EXEC_VERB

/*

** Built-in: EXEC_VERB
** Example:  Deactivates the OLE server associated with the object
**           in the OLE container.
** Trigger:  When-Button-Pressed
*/
DECLARE
 item_id  ITEM;
 item_name VARCHAR(25) := 'OLEITM';
 verb_cnt_str VARCHAR(20);
 verb_cnt NUMBER;
 verb_name VARCHAR(20);
 loop_cntr NUMBER;
BEGIN
 item_id := Find_Item(item_name);
 IF Id_Null(item_id) THEN
  message('No such item: '||item_name);
 ELSE
  verb_cnt_str := Forms_OLE.Get_Verb_Count(item_id);
  verb_cnt := TO_NUMBER(verb_cnt_str);
  FOR loop_cntr in 1..verb_cnt LOOP
    verb_name := Forms_OLE.Get_Verb_Name(item_id,loop_cntr);
    IF verb_name = 'Edit' THEN
   EXEC_VERB(item_id,verb_name);
    END IF;
  END LOOP;
 END IF;
END;


Vordefinierte Prozedur EXECUTE_QUERY

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Schreibt den aktuellen Block weg, öffnet eine Abfrage und ruft eine Anzahl von ausgewählten Datensätzen ab. Wenn Änderungen gespeichert werden müssen, fordert Form Builder den Operator auf, diese zu speichern, bevor mit der Verarbeitung von EXECUTE_QUERY fortgefahren wird.

Syntax

PROCEDURE EXECUTE_QUERY;

PROCEDURE EXECUTE_QUERY
  (keyword_one  VARCHAR2);
PROCEDURE EXECUTE_QUERY
  (keyword_two  VARCHAR2);
PROCEDURE EXECUTE_QUERY
  (keyword_one  VARCHAR2,
   keyword_two  VARCHAR2);
PROCEDURE EXECUTE_QUERY
  (keyword_one  VARCHAR2,
   keyword_two  VARCHAR2,
   locking      VARCHAR2);

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja

Parameter

no parameters	EXECUTE_QUERY schreibt den aktuellen Block weg, öffnet eine Abfrage und ruft eine Anzahl von ausgewählten Datensätzen ab.

keyword_one	EXECUTE_QUERY(ALL_RECORDS) führt dieselben Aktionen wie EXECUTE_QUERY aus, nur ruft Form Builder alle ausgewählten Datensätze ab.

keyword_two	EXECUTE_QUERY(FOR_UPDATE) führt dieselben Aktionen wie EXECUTE_QUERY aus, nur versucht Form Builder, alle ausgewählten Datensätze sofort zu sperren.

keyword_one/ keyword_two	EXECUTE_QUERY(ALL_RECORDS, FOR_UPDATE) führt dieselben Aktionen wie EXECUTE_QUERY aus, nur versucht Form Builder, alle ausgewählten Datensätze sofort zu sperren, und ruft alle ausgewählten Datensätze ab.

Locking	Kann jederzeit auf NO_WAIT eingestellt werden, wenn Sie den Parameter FOR_UPDATE verwenden. Wenn Sie NO_WAIT benutzen, zeigt Form Builder ein Dialogfeld an, mit dem der Operator unterrichtet wird, wenn ein Datensatz nicht zur sofortigen Aktualisierung reserviert werden kann.

Ohne den Parameter NO_WAIT versucht Form Builder kontinuierlich, eine Sperre zu erhalten, ohne daß der Operator den Vorgang abbrechen kann.

Benutzen Sie den Parameter NO_WAIT nur, wenn Sie mit einer Datenquelle arbeiten, die diese Funktionalität unterstützt.


Einschränkungen bei EXECUTE_QUERY

Oracle Corporation empfiehlt, daß Sie die Parameter ALL_RECORDS und FOR_UPDATE mit Vorsicht benutzen. Das Abrufen einer großen Anzahl von Zeilen könnte zu einer beträchtlichen Verzögerung führen. Wenn Sie eine große Anzahl von Zeilen gleichzeitig sperren, werden viele Ressourcen belegt.


Beispiele für EXECUTE_QUERY

/*

** Built-in:  EXECUTE_QUERY
** Example:   Visit several blocks and query their contents,
**            then go back to the block where original block.
*/
DECLARE
  block_before VARCHAR2(80) := :System.Cursor_Block;
BEGIN
  Go_Block('Exceptions_List');
  Execute_Query;
  Go_Block('User_Profile');
  Execute_Query;
  Go_Block('Tasks_Competed');
  Execute_Query;
  Go_Block( block_before );
END;


Vordefinierte Prozedur EXECUTE_TRIGGER

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

EXECUTE_TRIGGER führt einen angegebenen Trigger aus.

Syntax

PROCEDURE EXECUTE_TRIGGER
  (trigger_name  VARCHAR2);

Prozedurtyp   Eingeschränkte Prozedur (wenn der benutzerdefinierte Trigger eingeschränkte vordefinierte Unterprogramme aufruft)

Abfragemodus  Ja

Hinweis:  EXECUTE_TRIGGER wird nicht unbedingt zur Ausführung eines vom Benutzer benannten Triggers empfohlen. Hierzu sollten eher benutzerdefinierte Unterprogramms geschrieben werden.

Parameter

trigger_name	Gibt den Namen eines gültigen benutzerdefinierten Triggers an.

Verwendungshinweise

Da Sie den Geltungsbereich für diese vordefinierte Prozedur nicht angeben können, sucht Form Builder immer nach dem Trigger, der auf der niedrigsten Ebene beginnt, und geht von dort nach oben.

Um eine vordefinierte Prozedur auszuführen, die mit einer Taste verknüpft ist, verwenden Sie die vordefinierte Prozedur DO_KEY anstelle von EXECUTE_TRIGGER. Anstatt zum Beispiel

Execute_Trigger ('KEY-NEXT-ITEM');

zu benutzen, verwenden Sie eher:

Do_Key('NEXT_ITEM');


Einschränkungen bei EXECUTE_TRIGGER

Auch wenn Sie EXECUTE_TRIGGER verwenden können, um einen vordefinierten Trigger sowie einen benutzerdefinierten Trigger auszuführen, wird diese Verwendung nicht empfohlen, da das standardmäßige Fehlerverhalten einem anderen Schema unterliegt, als beim direkten Aufruf durch Form Builder im Rahmen der Standardverarbeitung. Wenn z.B. bei der Standardverarbeitung der When-Validate-Item-Trigger einen Fehler aufweist, wird eine Exception ausgelöst und die Verarbeitung der Form beendet. Wenn jedoch der When-Validate-Item-Trigger von EXECUTE_TRIGGER aufgerufen wird und es zu einem Fehler kommt, stoppt dieser Fehler die Verarbeitung der Form nicht, sondern setzt nur Form_Failure beim Rücksprung aus der vordefinierten Prozedur EXECUTE_TRIGGER auf FALSE.


Beispiele für EXECUTE_TRIGGER

/*

** Built-in:  EXECUTE_TRIGGER
** Example:   Execute a trigger dynamically from the PL/SQL
**            code of a Menu item, depending on a menu
**            checkbox.
*/
DECLARE
  Cur_Setting   VARCHAR2(5);
  Advanced_Mode BOOLEAN;
BEGIN
  /*
  ** Check whether the 'Advanced' menu item under the
  ** 'Preferences' submenu is checked on or not.
  */
  Cur_Setting :=  Get_Menu_Item_Property
                    ('Preferences.Advanced',CHECKED);
  /*
  ** If it is checked on, then Advanced_Mode is boolean
  ** true.
  */
  Advanced_Mode := (Cur_Setting = 'TRUE');
  /*
  ** Run the appropriate trigger from the underlying form
  **
  */
  IF Advanced_Mode THEN
    Execute_Trigger('Launch_Advanced_Help');
  ELSE
    Execute_Trigger('Launch_Beginner_Help');
  END IF;
END;


Vordefinierte Prozedur EXIT_FORM

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Mit dieser vordefinierten Prozedur kann eine Form beendet werden, wobei Commit-Vorgänge bestätigt und Rollback-Ationen angegeben werden.

•	In den meisten Kontexten navigiert EXIT_FORM an eine Stelle "außerhalb" der Form. Wenn Änderungen in der aktuellen Form vorhanden sind, die nicht abgeschickt oder gespeichert wurden, fordert Form Builder den Operator auf, die Änderungen zu speichern, bevor mit der Verarbeitung von EXIT_FORM fortgefahren wird.

•	Wenn der Operator im Abfragemodus arbeitet, geht EXIT_FORM aus dem Abfragemodus und nicht aus der Form heraus.

•	Während eines CALL_INPUT beendet EXIT_FORM die CALL_INPUT-Funktion.

Syntax

PROCEDURE EXIT_FORM;

PROCEDURE EXIT_FORM
  (commit_mode  NUMBER);
PROCEDURE EXIT_FORM
  (commit_mode   NUMBER,
   rollback_mode NUMBER);

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja

Parameter

commit_mode	ASK_COMMIT  Form Builder fordert den Operator auf, die Änderungen während der Verarbeitung von EXIT_FORM zu speichern.

Wenn jedoch RECORD_STATUS gleich INSERT ist, der Datensatz aber nicht gültig ist, fragt Form Builder statt dessen den Operator, ob die Form geschlossen werden soll. Wenn der Operator dies bejaht, werden die Änderungen zurückgesetzt, bevor die Form geschlossen wird.

DO_COMMIT  Form Builder validiert die Änderungen, führt einen Speichervorgang durch und beendet die aktuelle Form, ohne den Operator entsprechend zu unterrichten.

NO_COMMIT  Form Builder validiert die Änderungen und beendet die aktuelle Form, ohne einen Speichervorgang durchzuführen oder den Operator entsprechend zu unterrichten.

NO_VALIDATE  Form Builder beendet die aktuelle Form, ohne die Änderungen zu validieren, die Änderungen zu speichern oder den Operator entsprechend zu unterrichten.

rollback_mode	TO_SAVEPOINT  Form Builder setzt alle nicht gespeicherten Änderungen (einschließlich abgeschickter Änderungen) auf den Savepoint der aktuellen Form zurück.

FULL_ROLLBACK  Form Builder setzt alle nicht gespeicherten Änderungen (einschließlich abgeschickter Änderungen) zurück, die während der aktuellen Runform-Sitzung vorgenommen wurden. Sie können keinen FULL_ROLLBACK aus einer Form angeben, die im Abschickmodus ausgeführt wird. (Der Abschickmodus wird aktiviert, wenn Ihre Form eine andere Form aufruft, während nicht abgeschickte Datensätze in der aufrufenden Form vorhanden sind. Um einen Verlust der Sperren zu verhindern, die von der aufrufenden Form ausgegeben werden, verhindert Form Builder jeden Speichervorgang in der aufgerufenen Form.)

NO_ROLLBACK  Form Builder beendet die aktuelle Form, ohne auf einen Savepoint zurückzusetzen. Sie können die Form der obersten Ebene verlassen, ohne zurückzusetzen, d.h., daß Sie die Sperren über einen NEW_FORM-Vorgang beibehalten können. Diese Sperren können auch auftreten, wenn Form Builder aus einem externen 3GL-Programm ausgeführt wird. Die Sperren bleiben wirksam, wenn Form Builder die Kontrolle wieder an das Programm zurückgibt.

Verwendungshinweise

Da die Standardparameter von EXIT_FORM ASK_COMMIT beim commit_mode und TO_SAVEPOINT beim rollback_mode sind, kann der Aufruf von EXIT_FORM ohne Angabe von Parametern in einigen Kontexten zu unerwünschten Ergebnissen führen. Wenn sich die Form z.B. im Abschickmodus befindet und EXIT_FORM ohne Parameter aufgerufen wird, wird der Benutzer aufgefordert, die Änderungen festzuschreiben. Unabhängig von der Benutzereingabe bei diesem Prompt setzt jedoch der standardmäßige rollback_mode von TO_SAVEPOINT die Änderungen an der Form zurück, ungeachtet einer Meldung, mit der bestätigt wird, daß Änderungen vorgenommen wurden. Um Konflikte zu vermeiden, geben Sie explizit Parameter an.


Beispiele für EXIT_FORM

/*

** Built-in:  EXIT_FORM and POST
** Example:   Leave the called form, without rolling back the
**            posted changes so they may be posted and
**            committed by the calling form as part of the
**            same transaction.
*/
BEGIN
  Post;

  /*
  ** Form_Status should be 'QUERY' if all records were
  ** successfully posted.
  */
  IF :System.Form_Status <> 'QUERY' THEN
    Message('An error prevented the system from posting changes');
    RAISE Form_Trigger_Failure;
  END IF;
  /*
  ** By default, Exit_Form asks to commit and performs a
  ** rollback to savepoint. We've already posted, so we do
  ** not need to commit, and we don't want the posted changes
  ** to be rolled back.
  */
  Exit_Form(NO_COMMIT, NO_ROLLBACK);
END;


Vordefinierte Prozedur FETCH_RECORDS

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Wenn diese vordefinierte Prozedur aus einem On-Fetch-Trigger aufgerufen wird, wird die Standardverarbeitung von Form Builder für das Abrufen von Datensätzen ausgelöst, die mit der SELECT-Verarbeitung gekennzeichnet wurden.

Syntax

PROCEDURE FETCH_RECORDS;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Nein

Diese vordefinierte Prozedur ist im wesentlichen für Anwendungen gedacht, die mit einer fremden Datenquelle ausgeführt werden.

Parameter

Keine


Beispiele für FETCH_RECORDS

/*

** Built-in:  FETCH_RECORDS
** Example:   Perform Form Builder record fetch processing during
**            query time. Decide whether to use this built-in
**            or a user exit based on a global flag setup at
**            startup by the form, perhaps based on a
**            parameter. The block property RECORDS_TO_FETCH
**            allows you to know how many records Form Builder
**            is expecting.
** Trigger:   On-Fetch
*/
DECLARE
  numrecs NUMBER;
BEGIN
  /*
  ** Check the global flag we set during form startup
  */
  IF :Global.Using_Transactional_Triggers = 'TRUE' THEN
    /*
    ** How many records is the form expecting us to
    ** fetch?
    */
    numrecs := Get_Block_Property('EMP',RECORDS_TO_FETCH);
    /*
    ** Call user exit to determine if there are any
    ** more records to fetch from its cursor. User Exit
    ** will return failure if there are no more
    ** records to fetch.
    */
    User_Exit('my_fetch block=EMP remaining_records');
    /*
    ** If there ARE more records, then loop thru
    ** and create/populate the proper number of queried
    ** records. If there are no more records, we drop through
    ** and do nothing. Form Builder takes this as a signal that
    ** we are done.
    */
    IF Form_Success THEN
      /* Create and Populate 'numrecs' records */
      FOR j IN 1..numrecs LOOP
        Create_Queried_Record;
        /*
        ** User exit returns false if there are no more
        ** records left to fetch. We break out of the
        ** if we've hit the last record.
        */
        User_Exit('my_fetch block=EMP get_next_record');
        IF NOT Form_Success THEN
          EXIT;
        END IF;
      END LOOP;
    END IF;
  /*
  ** Otherwise, do the right thing.
  */
  ELSE
    Fetch_Records;
  END IF;
END;


Vordefinierte Prozedur FIND_ALERT

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Sucht die Liste mit gültigen Warnfenstern in Form Builder. Wenn das entsprechende Warnfenster gefunden wurde, gibt das Unterprogramm eine Warnfenster-ID zurück. Sie müssen die ID an eine Variable des entsprechenden Typs zurückgeben. Die Variable hat den Datentyp Alert.

Syntax

FUNCTION FIND_ALERT
  (alert_name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Warnfenster

Abfragemodus  Ja

Parameter

alert_name	Gibt den VARCHAR2-Warnfensternamen an.


Beispiele für FIND_ALERT

/*

** Built-in:  FIND_ALERT
** Example:   Show a user-warning alert. If the user presses
**            the OK button, then make REALLY sure they want
**            to continue with another alert.
*/
DECLARE
  al_id     Alert;
  al_button NUMBER;
BEGIN
  al_id := Find_Alert('User_Warning');
  IF Id_Null(al_id) THEN
    Message('User_Warning alert does not exist');
    RAISE Form_Trigger_Failure;
  ELSE
   /*
   ** Show the warning alert
   */
   al_button := Show_Alert(al_id);
   /*
   ** If user pressed OK (button 1) then bring up another
   ** alert to confirm -- button mappings are specified
   ** in the alert design
   */
   IF al_button = ALERT_BUTTON1 THEN
      al_id := Find_Alert('Are_You_Sure');

      IF Id_Null(al_id) THEN
        Message('The alert named: Are you sure? does not exist');
        RAISE Form_Trigger_Failure;
       ELSE
         al_button := Show_Alert(al_id);
         IF al_button = ALERT_BUTTON2 THEN
           Erase_All_Employee_Records;
         END IF;
       END IF;
     END IF;
   END IF;
END;


Vordefinierte Prozedur FIND_BLOCK

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Durchsucht die Liste mit gültigen Blöcken und gibt eine eindeutige Block-ID zurück. Sie müssen eine Variable des entsprechenden Typs definieren, um den Rückgabewert zu akzeptieren. Definieren Sie die Variable mit dem Typ Block.

Syntax

FUNCTION FIND_BLOCK
  (block_name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Block

Abfragemodus  Ja

Parameter

block_name	Gibt den VARCHAR2-Blocknamen an.


Beispiele für FIND_BLOCK

/*

** Built-in:  FIND_BLOCK
** Example:  Return true if a certain blockname exists
*/
FUNCTION Does_Block_Exist( bk_name VARCHAR2 )
RETURN BOOLEAN IS
  bk_id Block;
BEGIN
  /*
  ** Try to locate the block by name
  */
  bk_id := Find_Block( bk_name );
  /*
  ** Return the boolean result of whether we found it.
  ** Finding the block means that its bk_id will NOT be NULL
  */
  RETURN (NOT Id_Null(bk_id));
END;


Vordefinierte Prozedur FIND_CANVAS

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Durchsucht die Liste mit Leinwänden und gibt eine Leinwand-ID zurück, wenn eine gültige Leinwand mit dem angegebenen Namen gefunden wird. Sie müssen eine Variable des entsprechenden Typs definieren, um den Rückgabewert zu akzeptieren. Definieren Sie die Variable mit dem Typ Canvas.

Syntax

FUNCTION FIND_CANVAS
  (canvas_name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Canvas

Abfragemodus  Ja

Parameter

canvas_name_Gibt den VARCHAR2-Leinwandnamen an, den Sie der Leinwand bei der Definition zugewiesen haben.


Beispiele für FIND_CANVAS

DECLARE
  my_canvas Canvas;
BEGIN
  my_canvas := Find_Canvas('my_canvas');
END;


Vordefinierte Prozedur FIND_COLUMN

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Durchsucht die Liste mit Datensatzgruppen-Spalten und gibt eine GroupColumn-ID zurück, wenn eine gültige Spalte mit dem angegebenen Namen gefunden wird. Sie müssen eine Variable des entsprechenden Typs definieren, um den Rückgabewert zu akzeptieren. Definieren Sie die Variable mit dem Typ GroupColumn.

Syntax

FUNCTION FIND_COLUMN
  (recordgroup.groupcolumn_name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  GroupColumn

Abfragemodus  Ja

Parameter

recordgroup. groupcolumn_name	Gibt den vollständigen Namen der VARCHAR2-Datensatzgruppen-Spalte an.


Beispiele für FIND_COLUMN

/*

** Built-in:  FIND_COLUMN
** Example:   Get column IDs for three columns in a record
**            group before performing multiple Get's or Set's
**            of the record group's column values
*/
PROCEDURE Record_Machine_Stats( mach_number NUMBER,
                          pph         NUMBER,
                          temperature NUMBER) IS
  rg_id  RecordGroup;
  col1   GroupColumn;
  col2   GroupColumn;
  col3   GroupColumn;
  row_no NUMBER;
BEGIN
  rg_id := Find_Group('machine');
  col1  := Find_Column('machine.machine_no');
  col2  := Find_Column('machine.parts_per_hour');
  col3  := Find_Column('machine.current_temp');
  /*
  ** Add a new row at the bottom of the 'machine' record
  ** group, and make a note of what row number we just
  ** added.
  */
  Add_Group_Row( rg_id, END_OF_GROUP);
  row_no := Get_Group_Row_Count(rg_id);
  Set_Group_Number_Cell(col1, row_no, mach_number);
  Set_Group_Number_Cell(col2, row_no, pph);
  Set_Group_Number_Cell(col3, row_no, temperature);
END;


Vordefinierte Prozedur FIND_EDITOR

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Durchsucht die Liste mit Editoren und gibt eine Editor-ID zurück, wenn ein gültiger Editor mit dem angegebenen Namen gefunden wird. Sie müssen eine Variable des entsprechenden Typs definieren, um den Rückgabewert zu akzeptieren. Definieren Sie die Variable mit dem Typ Editor.

Syntax

FUNCTION FIND_EDITOR
  (editor_name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Editor

Abfragemodus  Ja

Parameter

editor_name_Gibt einen gültigen VARCHAR2-Editornamen an.


Beispiele für FIND_EDITOR

/*

** Built-in:  FIND_EDITOR
** Example:   Find and show a user-defined editor
*/
DECLARE
  ed_id  Editor;
  status BOOLEAN;
BEGIN
  ed_id := Find_Editor('Happy_Edit_Window');

  IF NOT Id_Null(ed_id) THEN
    Show_Editor(ed_id, NULL, :emp.comments, status);
  ELSE
    Message('Editor "Happy_Edit_Window" not found');
    RAISE Form_Trigger_Failure;
  END IF;
END;


Vordefinierte Prozedur FIND_FORM

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Durchsucht die Liste mit Forms und gibt eine Formmodul-ID zurück, wenn eine gültige Form mit dem angegebenen Namen gefunden wird. Sie müssen eine Variable des entsprechenden Typs definieren, um den Rückgabewert zu akzeptieren. Definieren Sie die Variable mit dem Typ FormModule.

Syntax

FUNCTION FIND_FORM
  (formmodule_name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  FormModule

Abfragemodus  Ja

Parameter

formmodule_name	Gibt einen gültigen VARCHAR2-Formnamen an.


Beispiele für FIND_FORM

/*

** Built-in:  FIND_FORM
** Example:   Find a form's Id before inquiring about several
**            of its properties
*/
DECLARE
  fm_id  FormModule;
  tmpstr VARCHAR2(80);
BEGIN
  fm_id := Find_Form(:System.Current_Form);
  tmpstr := Get_Form_Property(fm_id,CURSOR_MODE);
  tmpstr := tmpstr||','||Get_Form_Property(fm_id,SAVEPOINT_MODE);
  Message('Form is configured as: '||tmpstr);
END;


Vordefinierte Prozedur FIND_GROUP

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Durchsucht die Liste mit Datensatzgruppen und gibt eine Datensatzgruppen-ID zurück, wenn eine gültige Gruppe mit dem angegebenen Namen gefunden wird. Sie müssen eine Variable des entsprechenden Typs definieren, um den Rückgabewert zu akzeptieren. Definieren Sie die Variable mit dem Typ RecordGroup.

Syntax

FUNCTION FIND_GROUP
  (recordgroup_name VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  RecordGroup

Abfragemodus  Ja

Parameter

recordgroup_name	Gibt den gültigen VARCHAR2-Datensatzgruppennamen an.


Einschränkungen bei FIND_GROUP

Die Leistung dieser Funktion hängt von der Anzahl von Datensatzgruppen ab.


Beispiele für FIND_GROUP

/*

** Built-in:  FIND_GROUP
** Example:  See CREATE_GROUP and DELETE_GROUP_ROW
*/


Vordefinierte Prozedur FIND_ITEM

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Durchsucht die Liste mit Objekten in einem bestimmten Block und gibt eine Objekt-ID zurück, wenn ein gültiges Objekt mit dem angegebenen Namen gefunden wird. Sie müssen eine Variable des entsprechenden Typs definieren, um den Rückgabewert zu akzeptieren. Definieren Sie die Variable mit dem Typ Item.

Syntax

FUNCTION FIND_ITEM
  (block.item_name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Objekt

Abfragemodus  Ja

Parameter

block_name. item_name	Gibt den vollständigen Objektnamen an. Der Datentyp des Namens ist VARCHAR2.


Beispiele für FIND_ITEM

/*

** Built-in:  FIND_ITEM
** Example:   Find an item's Id before setting several
**            of its properties.
*/
PROCEDURE Hide_an_Item( item_name VARCHAR2, hide_it BOOLEAN) IS
  it_id   Item;
BEGIN
  it_id := Find_Item(item_name);
  IF Id_Null(it_id) THEN
    Message('No such item: '||item_name);
    RAISE Form_Trigger_Failure;
  ELSE
    IF hide_it THEN
      Set_Item_Property(it_id,VISIBLE,PROPERTY_FALSE);
    ELSE
      Set_Item_Property(it_id,VISIBLE,PROPERTY_TRUE);
      Set_Item_Property(it_id,ENABLED,PROPERTY_TRUE);
      Set_Item_Property(it_id,NAVIGABLE,PROPERTY_TRUE);
    END IF;
  END IF;
END;


Vordefinierte Prozedur FIND_LOV

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Durchsucht die Liste mit Wertelisten und gibt eine LOV-ID zurück, wenn eine gültige Werteliste mit dem angegebenen Namen gefunden wird. Sie müssen eine Variable des entsprechenden Typs definieren, um den Rückgabewert zu akzeptieren. Definieren Sie die Variable mit dem Typ LOV.

Syntax

FUNCTION FIND_LOV
  (LOV_name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  LOV

Abfragemodus  Ja

Parameter

LOV_name	Gibt den gültigen VARCHAR2 LOV-Namen an.


Beispiele für FIND_LOV

/*

** Built-in:  FIND_LOV
** Example:   Determine if an LOV exists before showing it.
*/
DECLARE
  lv_id  LOV;
  status BOOLEAN;
BEGIN
  lv_id := Find_LOV('My_Shared_LOV');
  /*
  ** If the 'My_Shared_LOV' is not part of the current form,
  ** then use the 'My_Private_LOV' instead.
  */
  IF Id_Null(lv_id) THEN
    lv_id := Find_LOV('My_Private_LOV');
  END IF;
  status := Show_LOV(lv_id,10,20);
END;


Vordefinierte Prozedur FIND_MENU_ITEM

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Durchsucht die Liste mit Menüpunkten und gibt eine Menüpunkt-ID zurück, wenn ein gültiger Menüpunkt mit dem angegebenen Namen gefunden wird. Sie müssen eine Variable des entsprechenden Typs definieren, um den Rückgabewert zu akzeptieren. Definieren Sie die Variable mit dem Typ MenuItem.

Syntax

FUNCTION FIND_MENU_ITEM
  (menu_name.menu_item_name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  MenuItem

Abfragemodus  Ja

Parameter

menu_name. menu_item_name	Gibt einen vollständigen VARCHAR2-Menüpunktnamen an.


Beispiele für FIND_MENU_ITEM

/*

** Built-in:  FIND_MENU_ITEM
** Example:   Find the id of a menu item before setting
**            multiple properties
*/
PROCEDURE Toggle_AutoCommit_Mode IS
  mi_id MenuItem;
  val   VARCHAR2(10);
BEGIN
  mi_id := Find_Menu_Item('Preferences.AutoCommit');
  /*
  ** Determine the current checked state of the AutoCommit
  ** menu checkbox item
  */
  val := Get_Menu_Item_Property(mi_id,CHECKED);
  /*
  ** Toggle the checked state
  */
  IF val = 'TRUE' THEN
    Set_Menu_Item_Property(mi_id,CHECKED,PROPERTY_FALSE);
  ELSE
    Set_Menu_Item_Property(mi_id,CHECKED,PROPERTY_TRUE);
  END IF;
END;


FIND_OLE_VERB

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt einen OLE-Verbindex zurück. Ein OLE-Verb gibt die Aktion an, die Sie mit einem OLE-Objekt ausführen können. Jedes OLE-Verb hat einen entsprechenden OLE-Verbindex. Der OLE-Verbindex wird als VARCHAR2-Zeichenfolge zurückgegeben und muß in NUMBER konvertiert werden, wenn er in FORMS_OLE.EXE_VERB benutzt wird. Sie müssen eine Variable des entsprechenden Typs definieren, um den Rückgabewert zu akzeptieren.

Syntax

FUNCTION FIND_OLE_VERB
  (item_id    Item,
   verb_name  VARCHAR2);

FUNCTION FIND_OLE_VERB
  (item_name  VARCHAR2,
   verb_name  VARCHAR2);

Rückgabewert  VARCHAR2

Prozedurtyp  Uneingeschränkte Funktion

Abfragemodus  Nein

Parameter

item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist Item.

item_name	Gibt den Namen des beim Entwurf erstellten Objekts an. Der Datentyp des Namens ist VARCHAR2.

verb_name	Gibt den Namen eines OLE-Verbs an. Ein OLE-Verb gibt die Aktion an, die Sie mit einem OLE-Objekt ausführen können. Benutzen Sie die vordefinierte Prozedur Forms_OLE.Get_Verb_Name, um diesen Wert abzurufen. Der Datentyp des Namens ist VARCHAR2.


Einschränkungen bei FIND_OLE_VERB

Nur bei Microsoft Windows und Macintosh gültig.


Beispiele für FIND_OLE_VERB

/*

** Built-in: EXEC_VERB
** Example:  Finds an OLE verb index for use with the
**           Forms_OLE.Exec_Verb built-in.
** Trigger:  When-Button-Pressed
*/
DECLARE
 item_id  ITEM;
 item_name VARCHAR(25) := 'OLEITM';
 verb_index_str VARCHAR(20);
 verb_index NUMBER;
BEGIN
 item_id := Find_Item(item_name);
 IF Id_Null(item_id) THEN
  message('No such item: '||item_name);
 ELSE
  verb_index_str := Forms_OLE.Find_OLE_Verb(item_id,'Edit');
  verb_index := TO_NUMBER(verb_index_str);
  Forms_OLE.Exec_Verb(item_id,verb_index);
 END IF;
END;


Vordefinierte Prozedur FIND_RELATION

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Durchsucht die Liste mit Beziehungen und gibt eine Beziehungs-ID zurück, wenn eine gültige Beziehung mit dem angegebenen Namen gefunden wird. Sie müssen eine Variable des entsprechenden Typs definieren, um den Rückgabewert zu akzeptieren. Definieren Sie die Variable mit dem Typ Relation.

Syntax

FUNCTION FIND_RELATION
  (relation_name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Relation

Abfragemodus  Ja

Parameter

relation_name	Gibt einen gültigen VARCHAR2-Beziehungsnamen an.


Beispiele für FIND_RELATION

/*

** Built-in:  FIND_RELATION
** Example:   Find the id of a relation before inquiring about
**            multiple properties
*/
FUNCTION Detail_of( Relation_Name VARCHAR2 )
RETURN VARCHAR2 IS
  rl_id Relation;
BEGIN
  rl_id := Find_Relation( Relation_Name );

  /*
  ** Signal error if relation does not exist
  */
  IF Id_Null(rl_id) THEN
    Message('Relation '||Relation_Name||' does not exist.');
    RAISE Form_Trigger_Failure;
  ELSE
    RETURN Get_Relation_Property(rl_id,DETAIL_NAME);
  END IF;
END;


Vordefinierte Prozedur FIND_REPORT_OBJECT

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Gibt die Bericht-ID für einen angegebenen Bericht zurück. Sie können diese ID als Parameter für andere vordefinierte Prozeduren verwenden, wie z.B. RUN_REPORT_OBJECT.

Syntax

FUNCTION FIND_REPORT_OBJECT
  (report_name VARCHAR2
);

Prozedurtyp   Uneingeschränkte Prozedur

Rückgabewert	   report_id mit dem Datentyp REPORT

Abfragemodus  Ja

Parameter

report_name	Gibt den eindeutigen Namen des zu suchenden Berichts an.


Beispiele für FIND_REPORT_OBJECT

DECLARE

repid REPORT_OBJECT;

v_rep  VARCHAR2(100);

BEGIN

repid := find_report_object('report4');

v_rep := RUN_REPORT_OBJECT(repid);

....

END;


Vordefinierte Prozedur FIND_TAB_PAGE

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Durchsucht die Liste mit Registerseiten in einer bestimmten Registerleinwand und gibt die ID der Registerseite zurück, wenn eine gültige Registerseite mit dem angegebenen Namen gefunden wird. Sie müssen eine Variable vom Typ TAB_PAGE angeben, um den Rückgabewert zu akzeptieren.

Syntax

FUNCTION FIND_TAB_PAGE
  (tab_page_name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  tab_page

Abfragemodus  Ja

Parameter

tab_page_name	Der eindeutige Name der Registerseite. Der Datentyp ist VARCHAR2. (Hinweis: Wenn mehrere Registerleinwände Registerseiten mit identischen Namen haben, müssen Sie einen vollständigen Namen für die Registerseite angeben (d.h. MY_TAB_CVS.TAB_PAGE_1)).


Beispiele für FIND_TAB_PAGE

/* Use FIND_TAB_PAGE to find the ID of the top-most tab

** page on tab canvas TAB_PAGE_1, then use the ID to set
** properties of the tab page:
*/
DECLARE
  tp_nm   VARCHAR2(30);
  tp_id   TAB_PAGE;

BEGIN
  tp_nm := GET_CANVAS_PROPERTY('tab_page_1', topmost_tab_page);
  tp_id := FIND_TAB_PAGE(tp_nm);
  SET_TAB_PAGE_PROPERTY(tp_id, visible, property_true);
  SET_TAB_PAGE_PROPERTY(tp_id, label, 'Order Info');
END;


Vordefinierte Prozedur FIND_TIMER

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Durchsucht die Liste mit Timern und gibt eine Timer-ID zurück, wenn ein gültiger Timer mit dem angegebenen Namen gefunden wird. Sie müssen eine Variable des entsprechenden Typs definieren, um den Rückgabewert zu akzeptieren. Definieren Sie die Variable mit dem Typ Timer.

Syntax

FUNCTION FIND_TIMER
  (timer_name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Timer

Abfragemodus  Ja

Parameter

timer_name	Gibt einen gültigen VARCHAR2-Timernamen an.


Beispiele für FIND_TIMER

/*

** Built-in:  FIND_TIMER
** Example:   If the timer exists, reset it. Otherwise create
**            it.
*/
PROCEDURE Reset_Timer_Interval( Timer_Name VARCHAR2,
                          Timer_Intv NUMBER ) IS
  tm_id       Timer;
  tm_interval NUMBER;
BEGIN
  /*
  ** User gives the interval in seconds, the timer subprograms
  ** expect milliseconds
  */
  tm_interval := 1000 * Timer_Intv;
  /* Lookup the timer by name */
  tm_id := Find_Timer(Timer_Name);
  /* If timer does not exist, create it */
  IF Id_Null(tm_id) THEN
    tm_id := Create_Timer(Timer_Name,tm_interval,NO_REPEAT);
  /*
  ** Otherwise, just restart the timer with the new interval
  */
  ELSE
    Set_Timer(tm_id,tm_interval,NO_REPEAT);
  END IF;
END;


Vordefinierte Prozedur FIND_TREE_NODE

 Beispiele 	 Alle vordefinierten Prozeduren

Beschreibung

Sucht den nächsten Knoten in dem Baum, dessen Beschriftung oder Wert der Suchfolge entspricht.

Syntax

FUNCTION FIND_TREE_NODE

  (item_name VARCHAR2,

   search_string VARCHAR2,

   search_type NUMBER,

   search_by NUMBER,

   search_root NODE,

   start_point NODE);

FUNCTION FIND_TREE_NODE

  (item_id ITEM,

   search_string VARCHAR2,

   search_type NUMBER,

   search_by NUMBER,

   search_root NODE,

   start_point NODE);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  NODE

Abfragemodus  Nein

Parameter

item_name	Gibt den Namen des Objekts an, das beim Entwurf erstellt wurde. Der Datentyp des Namens ist VARCHAR2-Folge.
Item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.
Search_string	Gibt die VARCHAR2-Suchfolge an.
Search_type	Gibt den NUMBER-Suchtyp an. Mögliche Werte sind: FIND_NEXT FIND_NEXT_CHILD  Durchsucht nur die untergeordneten Knoten des Knotens search_root.
Search_by	Gibt die Nummer an, nach der gesucht werden soll. Mögliche Werte sind: NODE_LABEL NODE_VALUE
search_root	Gibt die Wurzel des Suchbaums an.
Start_point	Gibt den Anfangspunkt in der NODE-Suche an.


Beispiele für FIND_TREE_NODE

/*

** Built-in:  FIND_TREE_NODE
*/

-- This code finds a node with a label of "Doran"

-- within the subtree beginning with the a node

-- with a label of "Zetie".

DECLARE

   htree         ITEM;

   find_node     Ftree.NODE;

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Find the node with a label "Zetie".

   find_node := Ftree.Find_Tree_Node(htree, 'Zetie', Ftree.FIND_NEXT,

                 Ftree.NODE_LABEL, Ftree.ROOT_NODE, Ftree.ROOT_NODE);

   -- Find the node with a label "Doran"

   -- starting at the first occurance of "Zetie".

   find_node := Ftree.Find_Tree_Node(htree, 'Doran', Ftree.FIND_NEXT,

                Ftree.NODE_LABEL, find_node, find_node);

   IF NOT Ftree.ID_NULL(find_node) then

      ...

   END IF;

END;


Vordefinierte Prozedur FIND_VA

 Alle vordefinierten Prozeduren

Beschreibung

Sucht nach den visuellen Attributen eines Objekts in einem bestimmten Block und gibt den Wert dieses Attributs als Textfolge zurück.

Syntax

FUNCTION FIND_VA

  (va_name PROPERTY);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Visuelles Attribut

Abfragemodus  Ja

Parameter

va_name	Der Name, den Sie dem visuellen Attribut beim Erstellen zugewiesen haben. Der Datentyp ist VARCHAR2.


Vordefinierte Prozedur FIND_VIEW

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Durchsucht die Liste mit Leinwänden und gibt eine Ansicht-ID zurück, wenn eine gültige Leinwand mit dem angegebenen Namen gefunden wurde. Sie müssen eine Variable des entsprechenden Typs definieren, um den Rückgabewert zu akzeptieren. Definieren Sie die Variable mit dem Typ ViewPort.

Syntax

FUNCTION FIND_VIEW
  (viewcanvas_name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  ViewPort

Abfragemodus  Ja

Parameter

viewcanvas_name	Gibt den VARCHAR2-Namen der Leinwand an.


Beispiele für FIND_VIEW

/*

** Built-in:  FIND_VIEW
** Example:  Change the visual attribute and display position
**           of a stacked view before making it visible to
**           the user.
*/
DECLARE
  vw_id ViewPort;
BEGIN
  vw_id := Find_View('Sales_Summary');
  Set_Canvas_Property('Sales_Summary', VISUAL_ATTRIBUTE,
              'Salmon_On_Yellow');
  Set_View_Property(vw_id, VIEWPORT_X_POS, 30);
  Set_View_Property(vw_id, VIEWPORT_Y_POS, 5);
  Set_View_Property(vw_id, VISIBLE, PROPERTY_TRUE);
END;


Vordefinierte Prozedur FIND_WINDOW

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Durchsucht die Liste mit Fenstern und gibt eine Fenster-ID zurück, wenn ein gültiges Fenster mit dem angegebenen Namen gefunden wird. Sie müssen eine Variable des entsprechenden Typs definieren, um den Rückgabewert zu akzeptieren. Definieren Sie die Variable mit dem Typ Window.

Syntax

FUNCTION FIND_WINDOW
  (window_name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Window

Abfragemodus  Ja

Parameter

window_name	Gibt den gültigen VARCHAR2-Fensternamen an.


Beispiele für FIND_WINDOW

/*

** Built-in:  FIND_WINDOW
** Example:   Anchor the upper left corner of window2 at the
**            bottom right corner of window1.
*/
PROCEDURE Anchor_Bottom_Right( Window2 VARCHAR2, Window1
VARCHAR2) IS
  wn_id1 Window;
  wn_id2 Window;
  x      NUMBER;
  y      NUMBER;
  w      NUMBER;
  h      NUMBER;
BEGIN
  /*   ** Find Window1 and get its (x,y) position, width,
       ** and height.
  */
  wn_id1 := Find_Window(Window1);
  x      := Get_Window_Property(wn_id1,X_POS);
  y      := Get_Window_Property(wn_id1,Y_POS);
  w      := Get_Window_Property(wn_id1,WIDTH);
  h      := Get_Window_Property(wn_id1,HEIGHT);
  /*
  ** Anchor Window2 at (x+w,y+h)
  */
  wn_id2 := Find_Window(Window2);
  Set_Window_Property(wn_id2,X_POS, x+w );
  Set_Window_Property(wn_id2,Y_POS, y+h );
END;


Vordefinierte Prozedur FIRST_RECORD

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Navigiert zum ersten Datensatz in der Liste mit Datensätzen für den Block.

Syntax

PROCEDURE FIRST_RECORD;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Keine


Beispiele für FIRST_RECORD

/*

** Built-in:  FIRST_RECORD
** Example:   Have a button toggle between the first and last
**            records in a block.
** Trigger:  When-Button-Pressed
*/
BEGIN
  /*
  ** If we're not at the bottom, then go to the last record
  */
  IF :System.Last_Record <> 'TRUE' THEN
    Last_Record;
  ELSE
    First_Record;
  END IF;
END;


Vordefinierte Prozedur FORM_FAILURE

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt einen Wert zurück, der das Ergebnis der Aktion angibt, die als letztes während der laufenden Runform-Sitzung ausgeführt wurde.

Ergebnis	Rückgabewert
Erfolgreich	FALSE
Fehler	TRUE
Abbruchfehler	FALSE

 Wenn in der aktuellen Runform-Sitzung keine Aktion ausgeführt wurde, ergibt FORM_FAILURE den Wert FALSE.

Benutzen Sie FORM_FAILURE, um das Ergebnis einer vordefinierten Prozedur zu testen, damit die weitere Verarbeitung innerhalb eines Triggers bestimmt werden kann. Um die richtigen Ergebnisse zu erhalten, müssen Sie den Test sofort nach Ausführung der Aktion durchführen. Das heißt vor dem Test darf keine weitere Aktion ausgeführt werden.

Hinweis:  "Eine weitere Aktion" umfaßt sowohl vordefinierte Prozeduren als auch PL/SQL-Zuweisungsanweisungen. Wenn eine andere Aktion ausgeführt wird, gibt FORM_FAILURE möglicherweise nicht den Status der getesteten vordefinierten Prozedur, sondern den Status der anderen, als letztes ausgeführten Aktion zurück. Eine präzisere Technik besteht z.B. darin, während der Ausführung von COMMIT_FORM zu überprüfen, ob die Variable SYSTEM.FORM_STATUS auf 'QUERY' eingestellt ist, nachdem der Vorgang abgeschlossen ist.

Syntax

FUNCTION FORM_FAILURE;

Prozedurtyp  Uneingeschränkte Funktion

Returns  BOOLEAN

Abfragemodus  Ja

Parameter

Keine


Beispiele für FORM_FAILURE

/*

** Built-in:  FORM_FAILURE
** Example:   Determine if the most recently executed built-in
**            failed.
*/
BEGIN
  GO_BLOCK('Success_Factor');
  /*
  ** If some validation failed and prevented us from leaving
  ** the current block, then stop executing this trigger.
  **
  ** Generally it is recommended to test
  **     IF NOT Form_Success THEN ...
  ** Rather than explicitly testing for FORM_FAILURE
  */
  IF Form_Failure THEN
    RAISE Form_Trigger_Failure;
  END IF;
END;


Vordefinierte Prozedur FORM_FATAL

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt das Ergebnis der Aktion zurück, die als letztes während der laufenden Runform-Sitzung ausgeführt wurde.

Ergebnis	Rückgabewert
Erfolgreich	FALSE
Fehler	FALSE
Abbruchfehler	TRUE

 Benutzen Sie FORM_FATAL, um das Ergebnis einer vordefinierten Prozedur zu testen, um die weitere Verarbeitung innerhalb des Triggers zu bestimmen. Um die richtigen Ergebnisse zu erhalten, müssen Sie den Test sofort nach Ausführung der Aktion durchführen. Das heißt, vor dem Test darf keine weitere Aktion ausgeführt werden.

Hinweis:  "Eine weitere Aktion" umfaßt sowohl vordefinierte Prozeduren als auch PL/SQL-Zuweisungsanweisungen. Wenn eine andere Aktion ausgeführt wird, gibt FORM_FAILURE möglicherweise nicht den Status der getesteten vordefinierten Prozedur, sondern den Status der anderen, als letztes ausgeführten Aktion zurück. Eine präzisere Technik besteht z.B. darin, während der Ausführung von COMMIT_FORM zu überprüfen, ob die Variable SYSTEM.FORM_STATUS auf 'QUERY' gesetzt ist, nachdem der Vorgang abgeschlossen ist.

Syntax

FUNCTION FORM_FATAL;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert

BOOLEAN

Abfragemodus  Ja

Parameter

Keine


Beispiele für FORM_FATAL

/*

** Built-in:  FORM_FATAL
** Example:   Check whether the most-recently executed built-in
**            had a fatal error.
*/
BEGIN
  User_Exit('Calculate_Line_Integral control.start control.stop');
  /*
  ** If the user exit code returned a fatal error, print a
  ** message and stop executing this trigger.
  **
  ** Generally it is recommended to test   **
  **     IF NOT FORM_SUCCESS THEN ...   **
  ** Rather than explicitly testing for FORM_FATAL
  */

  IF Form_Fatal THEN
    Message('Cannot calculate the Line Integral due to internal
             error.');
    RAISE Form_Trigger_Failure;
  END IF;
END;


Vordefinierte Prozedur FORM_SUCCESS

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt das Ergebnis der Aktion zurück, die als letztes während der laufenden Runform-Sitzung ausgeführt wurde.

Ergebnis	Rückgabewert
Erfolgreich	TRUE
Fehler	FALSE
Abbruchfehler	FALSE
Syntax

FUNCTION FORM_SUCCESS;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert

BOOLEAN

Abfragemodus  Ja

Parameter

Keine

Verwendungshinweise

•	Benutzen Sie FORM_SUCCESS, um das Ergebnis einer vordefinierten Prozedur zu testen, damit die weitere Verarbeitung innerhalb eines Triggers bestimmt werden kann. Um die richtigen Ergebnisse zu erhalten, müssen Sie den Test unmittelbar nach Ausführung der Aktion durchführen. Das heißt, vor dem Test darf keine weitere Aktion ausgeführt werden. "Eine weitere Aktion" umfaßt sowohl vordefinierte Prozeduren als auch PL/SQL-Zuweisungsanweisungen. Wenn eine andere Aktion ausgeführt wird, gibt FORM_SUCCESS möglicherweise nicht den Status der getesteten vordefinierten Prozedur, sondern den Status der anderen als letztes ausgeführten Aktion zurück.

•	Verwenden Sie FORM_SUCCESS nicht, um zu testen, ob eine vordefinierte Prozedur COMMIT_FORM oder POST erfolgreich ausgeführt wurde. Da COMMIT_FORM das Auslösen vieler anderer Trigger verursachen kann, wenn Sie FORM_SUCCESS auswerten, reflektiert diese Prozedur möglicherweise nicht den Status von COMMIT_FORM, sondern den Status einer anderen, als letztes ausgeführten vordefinierten Prozedur. Eine präzisere Technik besteht darin, zu überprüfen, ob die Variable SYSTEM.FORM_STATUS auf 'QUERY' gesetzt ist, nachdem der Vorgang abgeschlossen ist.

•	Bei der Verwendung von HOST zum Ausführen einer 16-Bit-Anwendung unter Microsoft Windows NT gibt die vordefinierte Prozedur FORM_SUCCESS den Wert TRUE wieder, unabhängig davon, ob die Anwendung erfolgreich ausgeführt werden kann. Hierbei handelt es sich um ein Win32-Problem. 32-Bit-Anwendungen und BS-Befehle geben TRUE bei erfolgreicher Ausführung zurück und FALSE, wenn diese nicht erfolgreich ausgeführt wurden. Ungültige Befehle geben FALSE zurück.

•	Unter Windows 95 gibt die vordefinierte Prozedur FORM_SUCCESS immer den Wert TRUE für HOST-Befehle, die nicht erfolgreich ausgeführt wurden, zurück. Dies beinhaltet den Aufruf von COMMAND.COM- oder BS-Funktionen, beliebigen 16-Bit-DOS- oder GUI-Anwendungen sowie eines ungültigen Befehls. FORM_SUCCESS gibt TRUE für 32-Bit-Anwendungen, die erfolgreich ausgeführt wurden, und FALSE für Anwendungen, die nicht erfolgreich ausgeführt wurden, zurück.


Beispiele für FORM_SUCCESS

/*

** Built-in:  FORM_SUCCESS
** Example:   Check whether the most-recently executed built-in
**            succeeded.
*/
BEGIN
  /*
  ** Force validation to occur
  */
  Enter;
  /*
  ** If the validation succeeded, then Commit the data.
  **

  */
  IF Form_Success THEN
    Commit;
    IF :System.Form_Status <> 'QUERY' THEN
      Message('Error prevented Commit');
      RAISE Form_Trigger_Failure;
    END IF;
  END IF;
END;


Vordefinierte Prozedur FORMS_DDL

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt dynamische SQL-Anweisungen zur Laufzeit aus, einschließlich serverseitiger PL/SQL- und DDL-Anweisungen.

Hinweis:  Alle DDL-Vorgänge geben eine implizite COMMIT-Anweisung aus und beenden die aktuelle Transaktion, ohne daß Form Builder ausstehende Änderungen verarbeiten kann.

Syntax

FUNCTION FORMS_DDL
  (statement  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Abfragemodus  Ja

Parameter

statement	Zeichenfolgenausdruck mit maximal 32 K:

•	Ein Literal

•	Ein Ausdruck oder eine Variable, die den Text eines Blocks mit einem dynamisch erstellten PL/SQL_Code darstellt

•	Eine DML-Anweisung oder

•	Eine DDL-Anweisung

Verwendungshinweise

Speichern oder setzen Sie alle ausstehenden Änderungen zurück, bevor Sie den Befehl FORMS_DDL ausgeben. Alle DDL-Vorgänge geben eine implizite COMMIT-Anweisung aus und beenden die aktuelle Transaktion, ohne daß Form Builder ausstehende Änderungen verarbeiten kann. Außerdem sind alle Sperren verloren, die Form Builder möglicherweise festgelegt hat.

Einige der gespeicherten Prozeduren geben COMMIT- oder ROLLBACK-Befehle als Bestandteil ihrer Logik aus. Prüfen Sie, ob alle ausstehenden Änderungen in der Form festgeschrieben oder zurückgesetzt wurden, bevor Sie diese vordefinierten Prozeduren aufrufen. Verwenden Sie die Variable SYSTEM.FORM_STATUS, um zu prüfen, ob ausstehende Änderungen in der aktuellen Form vorhanden sind, bevor Sie den Befehl FORMS_DDL ausgeben.  (Siehe Beispiel 4.)

Wenn Sie FORMS_DDL zur Ausführung eines gültigen PL/SQL-Blocks verwenden:

•	Benutzen Sie Semikolons, wo erforderlich.

•	Setzen Sie den PL/SQL-Block in eine gültige BEGIN/END-Blockstruktur.

•	Beenden Sie den PL/SQL-Block nicht mit einem Schrägstrich.

•	Zeilenumbrüche sind zwar zulässig, aber nicht erforderlich.

Wenn Sie FORMS_DDL zur Ausführung einer einzelnen DML- oder DDL-Anweisung benutzen,

•	Lassen Sie das abschließende Semikolon weg, um einen Fehler wegen eines ungültigen Zeichens zu vermeiden.

Um zu prüfen, ob die mit FORMS_DDL ausgegebene Anweisung richtig ausgeführt wurde, verwenden Sie die Funktionen FORM_SUCCESS oder FORM_FAILURE Boolean. Wenn die Anweisung nicht richtig ausgeführt wurde, prüfen Sie den Fehlercode und den Fehlertext mit DBMS_ERROR_CODE und DBMS_ERROR_TEXT. Beachten Sie, daß die Werte von DBMS_ERROR_CODE und DBMS_ERROR_TEXT nicht automatisch im Anschluß an eine erfolgreiche Ausführung zurückgesetzt werden, so daß ihre Werte nur überprüft werden müssen, nachdem ein Fehler durch einen Aufruf von FORM_SUCCESS oder FORM_FAILURE entdeckt wurde.


Einschränkungen bei FORMS_DDL

Die Anweisung, die Sie an FORMS_DDL übergeben, enthält möglicherweise keine Referenzen auf Bindevariablen in der Zeichenfolge, die Werte von Bindevariablen können jedoch in der Zeichenfolge verkettet werden, bevor das Ergebnis an FORMS_DDL übergeben wird. Diese Anweisung ist z.B. nicht gültig:

Forms_DDL ('Begin Update_Employee (:emp.empno); End;');

Diese Anweisung hingegen ist gültig und hätte den gewünschten Effekt:

Forms_DDL ('Begin Update_Employee ('||TO_CHAR(:emp.empno)
      ||');End;');

Sie könnten jedoch auch eine gespeicherte Prozedur direkt aufrufen, indem Sie den gemeinsam benutzen SQL-Bereich von Oracle8 bei mehreren Ausführungen mit verschiedenen Werten für emp.empno verwenden:

Update_Employee (:emp.empno);

SQL-Anweisungen und PL/SQL-Blöcke, die mit FORMS_DDL ausgeführt werden, können keine Ergebnisse direkt an Form Builder zurückgeben. (Siehe Beispiel 4.)

Außerdem können einige DDL-Vorgänge nicht mit FORMS_DDL ausgeführt werden, wie z.B. das Löschen einer Tabelle oder eines Datenbank-Links, wenn Form Builder einen Cursor für das Objekt geöffnet läßt, das gerade bearbeitet wird.


Beispiele für FORMS_DDL

Beispiel 1

/*

** Built-in:  FORMS_DDL
** Example:   The expression can be a string literal.
*/
BEGIN
  Forms_DDL('create table temp(n NUMBER)');
  IF NOT Form_Success THEN
    Message ('Table Creation Failed');
  ELSE
    Message ('Table Created');
  END IF;
END;

Beispiel 2

/*

** Built-in:  FORMS_DDL
** Example:   The string can be an expression or variable.
**            Create a table with n Number columns.
**            TEMP(COL1, COL2, ..., COLn).
*/
PROCEDURE Create_N_Column_Number_Table (n NUMBER) IS
  my_stmt VARCHAR2(2000);
BEGIN
  my_stmt := 'create table tmp(COL1 NUMBER';
  FOR I in 2..N LOOP
    my_stmt := my_stmt||',COL'||TO_CHAR(i)||' NUMBER';
  END LOOP;
  my_stmt := my_stmt||')';
  /*
  ** Now, create the table...
  */
  Forms_DDL(my_stmt);
  IF NOT Form_Success THEN
    Message ('Table Creation Failed');
  ELSE
    Message ('Table Created');
  END IF;
END;

Beispiel  3:

/*

** Built-in:  FORMS_DDL
** Example:   The statement parameter can be a block
**            of dynamically created PL/SQL code.
*/
DECLARE
  procname VARCHAR2(30);
BEGIN
  IF :global.flag = 'TRUE' THEN
    procname := 'Assign_New_Employer';
  ELSE
    procname := 'Update_New_Employer';
  END IF;
  Forms_DDL('Begin '|| procname ||'; End;');
  IF NOT Form_Success THEN
    Message ('Employee Maintenance Failed');
  ELSE
    Message ('Employee Maintenance Successful');
  END IF;
END;

Beispiel  4:

/*

** Built-in:  FORMS_DDL
** Example:  Issue the SQL statement passed in as an argument,
**           and return a number representing the outcome of
**           executing the SQL statement.
**           A result of zero represents success.
*/
FUNCTION Do_Sql (stmt VARCHAR2, check_for_locks BOOLEAN := TRUE)
RETURN NUMBER
IS
  SQL_SUCCESS CONSTANT NUMBER := 0;
BEGIN
  IF stmt IS NULL THEN
    Message ('DO_SQL: Passed a null statement.');
    RETURN SQL_SUCCESS;
  END IF;
  IF Check_For_Locks AND :System.Form_Status = 'CHANGED' THEN
    Message ('DO_SQL: Form has outstanding locks pending.');
    RETURN SQL_SUCCESS;
  END IF;
    Forms_DDL(stmt);
  IF Form_Success THEN
    RETURN SQL_SUCCESS;
  ELSE
    RETURN Dbms_Error_Code;
  END IF;
END;


Vordefinierte Prozedur GENERATE_SEQUENCE_NUMBER

 Beispiele	   Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

Löst die Standardverarbeitung von Form Builder zur Generierung einer eindeutigen Sequenznummer aus, wenn ein Datensatz erstellt wird. Wenn ein Sequenzobjekt in der Datenbank definiert ist, können Sie dieses als Standardwert für ein Objekt referenzieren, indem Sie das Attribut Ausgangswert auf SEQUENCE.my_seq.NEXTVAL einstellen. Standardmäßig liest Form Builder den nächsten Wert aus der Sequenz ein, wenn ein Datensatz erstellt wird. Wenn Sie mit einer fremden Datenquelle verbunden sind, können Sie einen Aufruf dieser vordefinierten Prozedur im Trigger On-Sequence-Number aufnehmen.

Syntax

PROCEDURE GENERATE_SEQUENCE_NUMBER;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Einschränkungen bei GENERATE_SEQUENCE_NUMBER

Ist nur in einem On-Sequence-Number-Trigger gültig.


Beispiele für GENERATE_SEQUENCE_NUMBER

/*

** Built-in:  GENERATE_SEQUENCE_NUMBER
** Example:   Perform Form Builder standard sequence number
**            processing based on a global flag setup at
**            startup by the form, perhaps based on a
**            parameter.
** Trigger:   On-Sequence-Number
*/
BEGIN
  /*
  ** Check the global flag we setup at form startup
  */
  IF :Global.Using_Transactional_Triggers = 'TRUE' THEN
    User_Exit('my_seqnum seq=EMPNO_SEQ');
  /*
  ** Otherwise, do the right thing.
  */
  ELSE
    Generate_Sequence_Number;
  END IF;
END;


Vordefinierte Prozedur GET_APPLICATION_PROPERTY

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt Informationen über die aktuelle Form Builder-Anwendung zurück. Sie müssen die vordefinierte Prozedur einmal für jeden Wert aufrufen, der abgerufen werden soll.

Syntax

FUNCTION GET_APPLICATION_PROPERTY
  (property  NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

property	Geben Sie eine der folgenden Konstanten zur Rückgabe von Informationen über Ihre Anwendung an:

APPLICATION_INSTANCE  Gibt den Zeigerwert eines Instance-Handles zurück. Gilt nur auf der Microsoft Windows-Plattform. Bei allen anderen Plattformen gibt Form Builder NULL zurück.

BUILTIN_DATE_FORMAT   Gibt den aktuellen Wert der vordefinierten Datumsformatmaske zurück (die im Attribut Builtin_Date_Format enthalten ist).

CALLING_FORM  Gibt den Namen der aufrufenden Form zurück, wenn die aktuelle Form mit der vordefinierten Prozedur CALL_FORM aufgerufen wurde. Wenn es sich bei der aktuellen Form nicht um eine aufgerufene Form handelt, gibt Form Builder NULL zurück.

CONNECT_STRING   Gibt die DB-Adresse des aktuellen Operators zurück. Wenn der aktuelle Operator keine DB-Adresse hat, gibt Form Builder NULL zurück.

CURRENT_FORM  Gibt den .FMX-Dateinamen der gerade ausgeführten Form zurück.

CURRENT_FORM_NAME  Gibt den Namen der aktuellen Form zurück, wie mit dem Attribut Name des Formmoduls angegeben.

CURSOR_STYLE  Gibt den Namen des aktuellen Attributs für den Cursorstil zurück. Gültige VARCHAR2-Rückgabewerte sind BUSY, CROSSHAIR, DEFAULT, HELP und INSERTION.

DATASOURCE  Gibt den Namen der gerade benutzten Datenbank zurück. Gültige Rückgabewerte sind NULL, ORACLE, DB2, NONSTOP, TERADATA, NCR/3600/NCR/3700 und SQLSERVER. Dieser Aufruf gibt den Datenbanknamen nur für Verbindungen zurück, die mit Form Builder erstellt wurden, und nicht für Verbindungen, die mit On-Logon-Triggern erstellt wurden.

DATE_FORMAT_COMPATIBILITY_MODE  Gibt die in diesem Attribut enthaltenen Kompatibilitätseinstellungen zurück.

DISPLAY_HEIGHT  Gibt die Höhe der Anzeige zurück. Die Größe jeder Einheit hängt davon ab, wie das Attribut Koordinatensystem für das Formmodul definiert wurde.

DISPLAY_WIDTH  Gibt die Breite der Anzeige zurück. Die Größe jeder Einheit hängt davon ab, wie das Attribut Koordinatensystem für das Formmodul definiert wurde.

ERROR_DATE/DATETIME_FORMAT  Gibt den aktuellen Wert der Formatmaske für Fehlerdatum oder Datum/Zeit zurück (die in der Umgebungsvariable FORMSnn_Error_Date/Datetime_Format festgelegt wurde).

FLAG_USER_VALUE_TOO_LONG   Gibt den aktuellen Wert für dieses Attribut wieder, TRUE oder FALSE, mit dem gesteuert wird, ob die vom Benutzer eingegebenen Werte, die das Attribut Maximale Länge des Objekts übersteigen, abgeschnitten werden.

OPERATING_SYSTEM  Gibt den Namen des Betriebssystems zurück, das gerade benutzt wird. Gültige Rückgabewerte sind MSWINDOWS, , MSWINDOWS32, WIN32COMMON, UNIX, SunOS, MACINTOSH, VMS und HP-UX.

OUTPUT_DATE/DATETIME_FORMAT  Gibt den aktuellen Wert der Formatmaske für Ausgabedatum oder Datum/Zeit wieder (die in der Umgebungsvariable FORMSnn_Output_Date/Datetime_Format festgelegt wurde).

PASSWORD  Gibt das Kennwort des aktuellen Operators zurück.

PLSQL_DATE_FORMAT  Gibt den aktuellen Wert der PL/SQL-Datumsformatmaske wieder (die im Attribut PLSQL_Date_Format enthalten ist).

RUNTIME_COMPATIBILITY_MODE Gibt die in diesem Attribut enthaltenen Kompatibilitätseinstellungen zurück.

SAVEPOINT_NAME  Gibt den Namen des letzten Savepoint zurück, den Form Builder ausgegeben hat. Dieser Aufruf ist nur bei einem On-Savepoint- oder On-Rollback-Trigger gültig. Er ist im wesentlichen für Entwickler gedacht, die Transaktionstrigger für den Aufruf einer fremden Datenquelle verwenden.

TIMER_NAME  Gibt den Namen des zuletzt abgelaufenen Timers zurück. Form Builder gibt NULL als Antwort auf diese Konstante zurück, wenn kein Timer vorhanden ist.

USER_DATE/DATETIME_FORMAT Gibt den aktuellen Wert der Formatmaske für Benutzerdatum oder Datum/Zeit wieder (die in der Umgebungsvariable FORMSnn_User_Date/Datetime_Format festgelegt wurde).

USER_INTERFACE  Gibt den Namen der Benutzeroberfläche zurück, die gerade benutzt wird. Gültige Werte sind MOTIF, MACINTOSH, MSWINDOWS, MSWINDOWS32, WIN32COMMON, WEB, PM, CHARMODE, BLOCKMODE, X und UNKNOWN.

USER_NLS_CHARACTER_SET  Gibt nur den aktuellen Wert des CHARACTER-Teils der Umgebungsvariablen USER_NLS_LANG zurück, die für den Formoperator definiert ist. Wenn USER_NLS_LANG nicht explizit eingestellt ist, wird standardmäßig die Einstellung von NLS_LANG benutzt.

USER_NLS_LANG  Gibt den vollständigen aktuellen Wert der Umgebungsvariablen USER_NLS_LANG für den Formoperator zur Unterstützung nationaler Sprachen zurück. Wenn USER_NLS_LANG nicht explizit eingestellt ist, wird standardmäßig die Einstellung von NLS_LANG benutzt. USER_NLS_LANG ist gleichbedeutend mit der Verkettung von USER_NLS_LANGUAGE, USER_NLS_TERRITORY und USER_NLS_CHARACTER_SET.

USER_NLS_LANGUAGE  Gibt nur den aktuellen Wert des Sprachteils der Umgebungsvariablen USER_NLS_LANG zurück, die für den Formoperator definiert ist. Wenn USER_NLS_LANG nicht explizit eingestellt ist, wird standardmäßig die Einstellung von NLS_LANG benutzt.

USER_NLS_TERRITORY   Gibt nur den aktuellen Wert des Gebietteils der Umgebungsvariablen USER_NLS_LANG zurück, die für den Formoperator definiert ist. Wenn USER_NLS_LANG nicht explizit eingestellt ist, wird standardmäßig die Einstellung von NLS_LANG benutzt.

USERNAME  Gibt den Namen des aktuellen Operators zurück. Hinweis: Wenn sich der Benutzer mit einem Account OPS$ anmeldet, gibt GET_APPLICATION_PROPERTY(USERNAME) nicht den eigentlichen Benutzernamen zurück. In diesem Fall sollten Sie GET_APPLICATION_PROPERTY(CONNECT_STRING) verwenden, um die Informationen über den Benutzernamen abzurufen.

Verwendungshinweise

Um eine vollständige Anmeldung anzufordern, einschließlich einer angehängten DB-Adresse, verwenden Sie die Attribute Username, Password und Connect_String. Angenommen, der Benutzer hat die Microsoft Windows Runform-Sitzung mit folgender DB-Adresse ausgelöst:

ifrun60 my_form scott/tiger@corpDB1

Form Builder gibt die folgende Zeichenfolge nach Aufruf von GET_APPLICATION_PROPERTY(USERNAME) zurück:

scott

Form Builder gibt die folgende Zeichenfolge nach Aufruf von GET_APPLICATION_PROPERTY(PASSWORD) zurück:

tiger

Form Builder gibt die folgende Zeichenfolge nach Aufruf von GET_APPLICATION_PROPERTY(CONNECT_STRING) zurück:

corpDB1


Einschränkungen bei GET_APPLICATION_PROPERTY

Um den Timer-Namen des zuletzt ausgeführten Timers abzurufen, müssen Sie aus einem When-Timer-Expired-Trigger einen Aufruf von GET_APPLICATION_PROPERTY absetzen. Sonst sind die Ergebnisse der vordefinierten Prozedur undefiniert.


Beispiele für GET_APPLICATION_PROPERTY

Beispiel 1

/*

** Built-in:  GET_APPLICATION_PROPERTY
** Example:   Determine the name of the timer that just
**            expired, and based on the username perform a
**            task.
** Trigger:   When-Timer-Expired
*/
DECLARE
  tm_name  VARCHAR2(40);
BEGIN
  tm_name  := Get_Application_Property(TIMER_NAME);

  IF tm_name = 'MY_ONCE_EVERY_FIVE_MINUTES_TIMER' THEN

  :control.onscreen_clock := SYSDATE;

  ELSIF tm_name = 'MY_ONCE_PER_HOUR_TIMER' THEN

    Go_Block('connected_users');
    Execute_Query;

  END IF;
END;

Beispiel 2

/*

** Built-in:  GET_APPLICATION_PROPERTY
** Example:   Capture the username and password of the
**            currently logged-on user, for use in calling
**            another Tool.
*/
PROCEDURE Get_Connect_Info( the_username IN OUT VARCHAR2,
              the_password IN OUT VARCHAR2,
              the_connect  IN OUT VARCHAR2) IS
BEGIN
  the_username := Get_Application_Property(USERNAME);
  the_password := Get_Application_Property(PASSWORD);
  the_connect  := Get_Application_Property(CONNECT_STRING);
END;


Vordefinierte Prozedur GET_BLOCK_PROPERTY

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt Informationen über einen angegebenen Block zurück. Sie müssen die vordefinierte Prozedur einmal für jeden Attributwert aufrufen, der abgerufen werden soll.

Syntax

FUNCTION GET_BLOCK_PROPERTY
  (block_id  Block,
   property  NUMBER);

FUNCTION GET_BLOCK_PROPERTY
  (block_name  VARCHAR2,
   property    NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

block_id	Die eindeutige ID, die Form Builder dem Block beim Erstellen zugewiesen hat. Der Datentyp ist BLOCK.

block_name	Der Name, den Sie dem Block beim Erstellen zugewiesen haben. Der Datentyp ist VARCHAR2.

property	Geben Sie eine der folgenden Konstanten zur Rückgabe von Informationen über den angegebenen Block an:

ALL_RECORDS  Gibt an, ob alle Datensätze, die mit den Abfragekriterien übereinstimmen, in den Datenblock abgerufen werden sollen, wenn eine Abfrage ausgeführt wird.

BLOCKSCROLLBAR_X_POS  Gibt die x-Position der Bildlaufleiste des Blocks in Form einer Zahl zurück, die in den Form-Koordinateneinheiten angegeben ist, die mit dem Formattribut Koordinatensystem festgelegt wurden.

BLOCKSCROLLBAR_Y_POS  Gibt die y-Position der Bildlaufleiste des Blocks in Form einer Zahl zurück, die in den Form-Koordinateneinheiten angegeben ist, die mit dem Formattribut Koordinatensystem festgelegt wurden.

COLUMN_SECURITY  Gibt den VARCHAR2-Wert TRUE zurück, wenn für die Spaltensicherheit Ja angegeben wurde, und die VARCHAR2-Zeichenfolge FALSE, wenn Nein angegeben wurde.

COORDINATION_STATUS  Dieses Attribut gibt bei einem Block, bei dem es sich um einen Detail-Block in einer Master-Detail-Blockbeziehung handelt, den Koordinationsstatus des Blocks bezogen auf den bzw. die Master-Blöcke zurück. Gibt den VARCHAR2-Wert COORDINATED zurück, wenn der Block mit allen Master-Blöcken koordiniert ist. Wenn er nicht mit allen Master-Blöcken koordiniert ist, gibt die vordefinierte Prozedur den VARCHAR2-Wert NON_COORDINATED zurück. Unmittelbar nachdem Datensätze in den Detail-Block abgerufen wurden, ist der Status des Detail-Blocks COORDINATED. Wenn ein anderer Datensatz zum aktuellen Datensatz in dem Master-Block wird, wird der Status des Detail-Blocks wieder zu NON_COORDINATED.

CURRENT_RECORD  Gibt die Nummer des aktuellen Datensatzes zurück.

CURRENT_RECORD_ATTRIBUTE  Gibt den VARCHAR2-Namen des benannten visuellen Attributs des gegebenen Blocks zurück. .

CURRENT_ROW_BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts.

CURRENT_ROW_FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden.

CURRENT_ROW_FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

CURRENT_ROW_FONT_SIZE  Schriftgrad in Punkt.

CURRENT_ROW_FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning).

CURRENT_ROW_FONT_STYLE  Schriftstil.

CURRENT_ROW_FONT_WEIGHT Schriftstärke.

CURRENT_ROW_FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

CURRENT_ROW_WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

DEFAULT_WHERE Gibt die WHERE-Standardklausel für den Block zurück, wie mit der aktuellen Einstellung des Blockattributs WHERE angegeben.

DELETE_ALLOWED  Gibt den VARCHAR2-Wert TRUE zurück, wenn das Attribut Löschen zulässig auf Ja eingestellt ist. Sonst wird FALSE zurückgegeben. Dieses Attribut bestimmt, ob der Operator oder die Anwendung Datensätze in dem Block löschen darf.

DML_DATA_TARGET_NAME  Gibt den VARCHAR2-Namen der DML-Datenquelle des Blocks zurück.

DML_DATA_TARGET_TYPE  Gibt den VARCHAR2-Wert zurück, der die aktuelle Einstellung des Attributs DML-Datenzieltyp angibt. Rückgabewerte für dieses Attribut sind NONE, TABLE, STORED PROCEDURE oder TRANSACTIONAL TRIGGER.

ENFORCE_PRIMARY_KEY  Gibt den VARCHAR2-Wert TRUE zurück, wenn das Attribut Primärschlüssel durchsetzen für den Block auf Ja eingestellt ist. Wenn das Attribut Primärschlüssel durchsetzen auf Nein eingestellt ist, gibt dieser Parameter den VARCHAR2-Wert FALSE zurück.

ENTERABLE   Gibt den VARCHAR2-Wert TRUE zurück, wenn der Block eingegeben werden kann, d.h. wenn die Attribute Aktiviert und Tastatur-Navigierbar für ein Objekt in dem Block auf Ja eingestellt sind. Gibt den VARCHAR2-Wert FALSE zurück, wenn der Block nicht eingegeben werden kann.

FIRST_DETAIL_RELATION  Gibt den VARCHAR2-Namen der ersten Beziehung an, in der der gegebene Block ein Detail ist. Gibt NULL zurück, wenn kein Detail vorhanden ist.

FIRST_ITEM  Gibt den VARCHAR2-Namen des ersten Elements im gegebenen Block zurück.

FIRST_MASTER_RELATION  Gibt den VARCHAR2-Namen der ersten Beziehung an, in der der gegebene Block ein Master-Block ist. Gibt NULL zurück, wenn kein Master vorhanden ist.

INSERT_ALLOWED  Gibt den VARCHAR2-Wert TRUE zurück, wenn das Blockattribut Einsetzen zulässig auf Ja eingestellt ist. Sonst wird FALSE zurückgegeben. Dieses Attribut bestimmt, ob der Operator oder die Anwendung Datensätze in den Block einsetzen darf.

KEY_MODE  Gibt den VARCHAR2-Wert zurück, mit dem die aktuelle Einstellung des Blockattributs Schlüsselmodus angegeben wird. Die Rückgabewerte für dieses Attribut sind UNIQUE_KEY, UPDATEABLE_PRIMARY_KEY oder NON_UPDATEABLE_PRIMARY_KEY.

LAST_ITEM  Gibt den Namen des letzten Elements in dem gegebenen Block zurück.

LAST_QUERY  Gibt die SQL-Anweisung der letzten Abfrage im angegebenen Block zurück.

LOCKING_MODE  Gibt den VARCHAR2-Wert IMMEDIATE zurück, wenn Zeilen sofort bei einer Änderung an einem Objekt in der Basistabelle gesperrt werden sollen. Sonst wird der VARCHAR2-Wert DELAYED zurückgegeben, wenn vor einem Commit-Vorgang Zeilen gesperrt werden sollen.

MAX_QUERY_TIME Gibt den VARCHAR2-Wert zurück, der die aktuelle Einstellung des Attributs Max. Abfragezeit angibt. Dieses Attribut bestimmt, ob der Operator eine Abfrage abbrechen kann, wenn die abgelaufene Zeit der Abfrage den Wert dieses Attributs überschreitet.

MAX_RECORDS_FETCHED  Gibt eine Zahl zurück, die die Höchstzahl von Datensätzen darstellt, die abgerufen werden können. Dieses Attribut kann nur benutzt werden, wenn das Attribut Alle Datensätze abfragen auf Ja eingestellt ist.

NAVIGATION_STYLE  Gibt den VARCHAR2-Wert zurück, der die aktuelle Einstellung des Blockattributs NAVIGATION_STYLE angibt, d.h. SAME_RECORD, CHANGE_RECORD oder CHANGE_BLOCK.

NEXTBLOCK  Gibt den Namen des nächsten Blocks zurück. Gibt NULL zurück, wenn der angegebene Block der letzte Block in der Form ist. Beachten Sie, daß die Einstellung des Blockattributs NEXT_NAVIGATION_BLOCK keine Auswirkung auf den Wert von NEXTBLOCK hat.

NEXT_NAVIGATION_BLOCK  Gibt den VARCHAR2-Namen des nächsten Navigationsblocks des Blocks zurück. Standardmäßig ist der nächste Navigationsblock der nächste Block, wie mit der Reihenfolge der Blöcke im Objektnavigator definiert. Allerdings kann das Attribut NEXT_NAVIGATION_BLOCK so eingestellt werden, daß die vorgegebene Navigationsfolge des Blocks außer Kraft gesetzt wird.

OPTIMIZER_HINT  Gibt einen Hinweis in Form einer VARCHAR2-Zeichenfolge zurück, die Form Builder beim Erzeugen von Abfragen an den RDBMS-Optimizer zurückgibt.

ORDER_BY  Gibt die standardmäßige ORDER BY-Klausel zurück, die für den Block gilt, wie mit der aktuellen Einstellung des Blockattributs ORDER BY angegeben.

PRECOMPUTE_SUMMARIES[Under Construction]

PREVIOUSBLOCK  Gibt den Namen des Blocks zurück, der die nächstniedrigere Sequenznummer in der Form hat, wie mit der Reihenfolge der Blöcke im Objektnavigator angegeben. Gibt NULL zurück, wenn es sich bei dem angegebenen Block um den ersten Block in der Form handelt. Beachten Sie, daß die Einstellung des Blockattributs PREVIOUS_NAVIGATION_BLOCK keine Auswirkung auf den Wert von PREVIOUSBLOCK hat.

PREVIOUS_NAVIGATION_BLOCK  Gibt den VARCHAR2-Namen des vorherigen Navigationsblocks des Blocks zurück. Standardmäßig ist der vorherige Navigationsblock der Block mit der nächstniedrigeren Sequenznummer, wie mit der Reihenfolge der Blöcke im Objektnavigator angegeben. Allerdings kann das Blockattribut NEXT_NAVIGATION_BLOCK so eingestellt werden, daß die vorgegebene Navigationsfolge des Blocks außer Kraft gesetzt wird.

QUERY_ALLOWED  Gibt den VARCHAR2-Wert TRUE zurück, wenn das Blockattribut Abfrage erlaubt auf Ja eingestellt ist. Sonst wird FALSE zurückgegeben. Mit diesem Attribut wird festgelegt, ob der Operator oder die Anwendung Datensätze in dem Block abfragen darf.

QUERY_DATA_SOURCE_NAME  Gibt den VARCHAR2-Namen der Abfrage-Datenquelle des Blocks zurück.

QUERY_DATA_SOURCE_TYPE  Gibt den VARCHAR2-Wert zurück, der die aktuelle Einstellung des Attributs Abfrage-Datenquelltyp angibt. Die Rückgabewerte für dieses Attribut sind NONE, TABLE, STORED PROCEDURE, TRANSACTIONAL TRIGGER oder SUB-QUERY.

QUERY_HITS  Gibt den VARCHAR2-Wert zurück, der die Anzahl von Datensätzen angibt, die mit dem Vorgang COUNT_QUERY identifiziert werden. Wenn dieser Wert überprüft wird, während Datensätze aus einer Abfrage abgerufen werden, gibt QUERY_HITS die Anzahl von Datensätzen an, die abgerufen wurden.

QUERY_OPTIONS  Gibt die VARCHAR2-Werte VIEW, FOR_UPDATE, COUNT_QUERY oder einen Nullwert zurück, wenn keine Optionen vorhanden sind. Sie können GET_BLOCK_PROPERTY mit diesem Parameter aus einem Transaktionstrigger aufrufen, wenn der User Exit wissen muß, welche Art von Abfragevorgang Form Builder standardmäßig ausführen würde, wenn Sie die Standardverarbeitung nicht umgangen hätten.

RECORDS_DISPLAYED  Gibt die Anzahl von Datensätzen zurück, die der angegebene Block anzeigen kann. Entspricht dem Blockattribut Anzahl angezeigter Datensätze.

RECORDS_TO_FETCH  Gibt die Anzahl von Datensätzen zurück, die ein On-Fetch-Trigger abrufen und als abgefragte Datensätze erstellen soll.

STATUS  Gibt den VARCHAR2-Wert NEW zurück, wenn der Block nur neue Datensätze enthält, den Wert CHANGED, wenn der Block mindestens einen geänderten Datensatz enthält, und den Wert QUERY, wenn der Block nur gültige Datensätze enthält, die aus der Datenbank abgerufen wurden.

TOP_RECORD  Gibt die Nummer des obersten sichtbaren Datensatzes im angegebenen Block an.

UPDATE_ALLOWED  Gibt den VARCHAR2-Wert TRUE zurück, wenn das Blockattribut Aktualisieren erlaubt Ja ist. Sonst wird FALSE zurückgegeben. Mit diesem Attribut wird festgelegt, ob der Operator oder die Anwendung Datensätze in dem Block aktualisieren kann.

UPDATE_CHANGED_COLUMNS  Gibt an, daß nur die Spalten, die von einem Operator aktualisiert wurden, an die Datenbank gesendet werden. Wenn für Nur geänderte Spalten aktualisieren Nein angegeben wurde, werden alle Spalten unabhängig davon gesendet, ob sie aktualisiert wurden oder nicht. Dies kann zu einem starken Netzwerkverkehr führen, insbesondere, wenn der Block einen Datentyp LONG enthält.


Beispiele für GET_BLOCK_PROPERTY

/*

** Built-in:  GET_BLOCK_PROPERTY
** Example:   Return the screen line of the current record in
**            a multi-record block. Could be used to
**            dynamically position LOV to a place on the
**            screen above or below the current line so as to
**            not obscure the current record in question.
*/
FUNCTION Current_Screen_Line
RETURN NUMBER IS
  cur_blk VARCHAR2(40) := :System.Cursor_Block;
  cur_rec NUMBER;
  top_rec NUMBER;
  itm_lin NUMBER;
  cur_lin NUMBER;
  bk_id   Block;
BEGIN
  /*
  ** Get the block id since we'll be doing multiple
  ** Get_Block_Property operations for the same block
  */
  bk_id := Find_Block( cur_blk );
  /*
  ** Determine the (1) Current Record the cursor is in,
  **               (2) Current Record which is visible at the
  **                   first (top) line of the multirecord
  **                   block.
  */
  cur_rec := Get_Block_Property( bk_id, CURRENT_RECORD);
  top_rec := Get_Block_Property( bk_id, TOP_RECORD);
  /*
  ** Determine the position on the screen the first field in
  ** the multirecord block
  */
  itm_lin := Get_Item_Property( Get_Block_Property
                     (bk_id,FIRST_ITEM),Y_POS);
  /*
  ** Add the difference between the current record and the
  ** top record visible in the block to the screen position
  ** of the first item in the block to get the screen
  ** position of the current record:
  */
  cur_lin := itm_lin + (cur_rec - top_rec);
  RETURN cur_lin;
END;


Vordefinierte Prozedur GET_CANVAS_PROPERTY

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt das angegebene Leinwandattribut für die angegebene Leinwand zurück.

Syntax

FUNCTION GET_CANVAS_PROPERTY
  (canvas_id  Canvas,
   property   NUMBER);

FUNCTION GET_CANVAS_PROPERTY
  (canvas_name  VARCHAR2,
   property     NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

canvas_id	Die eindeutige ID, die Form Builder dem Leinwandobjekt beim Erstellen zuweist. Verwenden Sie die vordefinierte Prozedur FIND_CANVAS, um die ID an eine Variable mit dem Datentyp CANVAS zurückzugeben.

canvas_name	Der Name, den Sie dem Leinwandobjekt bei der Definition zugewiesen haben.

property	Das Attribut, für das Sie einen Wert für die gegebene Leinwand einlesen möchten. Sie können die folgenden Konstanten für Rückgabewerte eingeben:

BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts.

FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden.

FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

FONT_SIZE  Schriftgrad in Punkt.

FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning).

FONT_STYLE  Schriftstil.

FONT_WEIGHT  Schriftstärke.

FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

HEIGHT Gibt die Höhe der Leinwand in den Koordinateneinheiten der Form zurück, die mit dem Formattribut Koordinatensystem festgelegt wurden.

TAB_PAGE_X_OFFSET  Gibt den Abstand zwischen dem linken Rand der Registerleinwand und dem linken Rand der Registerseite zurück. Der zurückgegebene Wert hängt von dem Koordinatensystem der Form ab - Pixel, Zentimeter, Zoll oder Punkt.

TAB_PAGE_Y_OFFSET  Gibt den Abstand zwischen dem oberen Rand der Registerleinwand und dem oberen Rand der Registerseite zurück. Der zurückgegebene Wert hängt von dem Koordinatensystem der Form ab - Pixel, Zentimeter, Zoll oder Punkt.

TOPMOST_TAB_PAGE  Gibt den Namen der Registerseite zurück, die momentan die oberste Registerseite auf der benannten Registerleinwand ist.

WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

WIDTH  Gibt die Breite der Leinwand in den Koordinateneinheiten der Form zurück, die mit dem Formattribut Koordinatensystem festgelegt wurden.

VISUAL_ATTRIBUTE   Gibt den Namen des gerade gültigen visuellen Attributs zurück. Wenn der Leinwand kein benanntes visuelles Attribut zugewiesen ist, wird CUSTOM für ein benutzerdefiniertes visuelles Attribut oder DEFAULT für ein standardmäßiges visuelles Attribut zurückgegeben.


Beispiele für GET_CANVAS_PROPERTY

/*

** Built-in:  GET_CANVAS_PROPERTY
** Example:   Can get the width/height of the canvas.
*/
DECLARE
  the_width  NUMBER;
  the_height NUMBER;
  cn_id      CANVAS;
BEGIN
  cn_id      := FIND_CANVAS('my_canvas_1');
  the_width  := GET_CANVAS_PROPERTY(cn_id, WIDTH);
  the_height := GET_CANVAS_PROPERTY(cn_id,HEIGHT);
END;


Vordefinierte Prozedur GET_CUSTOM_PROPERTY

  Verwandte Themen

Beschreibung

Liest den Wert eines benutzerdefinierten Attributs in einer Java-Plugin-Komponente.

Syntax

Die vordefinierte Prozedur gibt einen VARCHAR2-Wert zurück, der Zeichenfolgen-, numerische oder Boolesche Daten enthält.

GET_CUSTOM_PROPERTY
  (item,
   row-number,
   prop-name);

Prozedurtyp   Uneingeschränkte Prozedur

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

item	Der Name oder die ID des Objekts, das mit der Ziel-Java-Plugin-Komponente vernüpft ist. Der Name kann in Form eines Varchar2-Literals oder einer auf den Wert des Namens eingestellten Variable angegeben werden.

row-number	Die Zeilennummer für die Instanz des zu lesenden Objekts. (Die Zeilennummern beginnen mit 1.)

prop-name	Das bestimmte Attribut der zu lesenden Java-Komponente.

Verwendungshinweise

•	In der Java-Plugin-Komponente muß jeder benutzerdefinierte Attributtyp durch eine einzelne Instanz der ID-Klasse dargestellt werden, die mit Hilfe von ID.registerProperty erstellt wurde.

•	Für jede in der Form ausgeführte vordefinierte Prozedur Get_Custom_Property wird die Methode getProperty der Java-Komponente aufgerufen.

•	Der Name des Objekts kann entweder über Find_Item(‘Item_Name’) oder über ‘Item_Name’ angezeigt werden.


Vordefinierte Prozedur GET_FILE_NAME

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Zeigt das standardmäßige Öffnen-Dialogfeld an, in dem der Benutzer eine bestehende Datei auswählen oder eine neue Datei angeben kann.

Syntax

FUNCTION GET_FILE_NAME
  (directory_name   VARCHAR2,
   file_name        VARCHAR2,
   file_filter      VARCHAR2,
   message          VARCHAR2,
   dialog_type      NUMBER,
   select_file      BOOLEAN;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

directory_name	Gibt den Namen des Ordners an, in dem die zu öffnende Datei gespeichert ist. Der Standardwert ist NULL. Wenn directory_name NULL ist, kann bei einem späteren Aufruf des Dialogfeldes der als letztes geöffnete Ordner geöffnet werden.

file_name	Gibt den Namen der zu öffnenden Datei an. Der Standardwert ist NULL.

file_filter	Gibt an, daß nur bestimmte Dateien angezeigt werden sollen. Der Standardwert ist NULL. Datei-Filter weisen verschiedene Formen auf. Sie werden momentan auf den Motif- und Zeichenmodus-Plattformen ignoriert. Bei Windows haben sie die Form "Write-Dateien (*.WRI)|*.WRI ", wobei bei NULL standardmäßig "Alle Dateien (*.*)|*.*|" benutzt wird. Bei Macintosh akzeptiert das Attribut momentan eine Zeichenfolge wie "Text".

message	Gibt den auszuwählenden Dateityp an. Der Standardwert ist NULL.

dialog_type	Gibt das Dialogfeld an, das für OPEN_FILE oder SAVE_FILE gedacht ist. Der Standardwert ist OPEN_FILE.

select_file	Gibt an, ob der Benutzer Dateien oder Ordner auswählt. Der Standardwert ist TRUE. Wenn dialog_type auf SAVE_FILE eingestellt ist, wird select_file intern auf TRUE eingestellt.


Beispiele für GET_FILE_NAME

/*

** Built-in:  GET_FILE_NAME
** Example:   Can get an image of type TIFF.
*/
DECLARE
  filename VARCHAR2(256)
BEGIN
  filename := GET_FILE_NAME(File_Filter=> 'TIFF Files (*.tif)|*.tif|');
  READ_IMAGE_FILE(filename, 'TIFF', 'block5.imagefld);
END;


Vordefinierte Prozedur GET_FORM_PROPERTY

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt Informationen über die angegebene Form zurück. Wenn es sich bei Ihrer Anwendung um eine Anwendung mit mehreren Forms handelt, können Sie diese vordefinierte Prozedur aufrufen, um Informationen über die aufrufende Form sowie über die aktuelle oder aufgerufene Form zurückzugeben.

Syntax

FUNCTION GET_FORM_PROPERTY
  (formmodule_id  FormModule,
   property       NUMBER);

FUNCTION GET_FORM_PROPERTY
  (formmodule_name  VARCHAR2,
   property         NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

formmodule_id	Gibt die eindeutige ID an, die Form Builder beim Erstellen des Formmoduls zuweist. Benutzen Sie die vordefinierte Prozedur FIND_FORM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist FormModule.

formmodule_name	Gibt den VARCHAR2-Namen an, den Sie dem Formmodul bei der Definition zugewiesen haben.

property	Gibt Informationen über spezifische Elemente der Form zurück, je nachdem welche der folgenden Konstanten für die vordefinierte Prozedur angegeben werden:

CHARACTER_CELL_HEIGHT Gibt die Abmessungen der Zeicheneinheit in den Formeinheiten zurück, die mit dem Attribut Koordinatensystem angegeben werden. Wenn für das Koordinatensystem Zeicheneinheit angegeben wurden, wird der Wert in Pixel zurückgegeben.

CHARACTER_CELL_WIDTH Gibt die Abmessungen der Zeicheneinheit in den Formeinheiten zurück, die mit dem Attribut Koordinatensystem angegeben werden. Wenn das Koordinatensystem Zeicheneinheiten entspricht, wird der Wert in Pixel zurückgegeben.

COORDINATE_SYSTEM  Gibt eine VARCHAR2-Zeichenfolge zurück, die das in dem Formmodul benutzte Koordinatensystem angibt.

•	CHARACTER_CELL, wenn das aktuelle Koordinatensystem für die Form auf Zeicheneinheiten beruht.

•	POINTS, wenn das aktuelle Koordinatensystem für die Form Punkt ist.

•	CENTIMETERS, wenn das aktuelle Koordinatensystem für die Form Zentimeter ist.

•	INCHES, wenn das aktuelle Koordinatensystem für die Form Zoll ist.

•	PIXELS, wenn das aktuelle Koordinatensystem für die Form Pixel ist.

CURRENT_RECORD_ATTRIBUTE  Gibt den VARCHAR2-Namen des benannten visuellen Attributs zurück, das für die aktuelle Zeile benutzt werden soll.

CURRENT_ROW_BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts.

CURRENT_ROW_FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden.

CURRENT_ROW_FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

CURRENT_ROW_FONT_SIZE  Schriftgrad in Punkt.

CURRENT_ROW_FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning).

CURRENT_ROW_FONT_STYLE  Schriftstil.

CURRENT_ROW_FONT_WEIGHT Schriftstärke.

CURRENT_ROW_FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

CURRENT_ROW_WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

CURSOR_MODE  Gibt die Einstellung zurück, die die gewünschte Auswirkung eines Commit-Vorgangs für bestehende Cursor angibt.

DEFER_REQUIRED_ENFORCEMENT  Gibt die Einstellung zurück, mit der angegeben wird, ob die Durchsetzung der obligatorischen Felder von der Objektvalidierung zur Datensatzvalidierung verschoben wurde. Gültige Rückgabewerte sind TRUE, 4.5 und FALSE.

DIRECTION  Gibt die Layout-Richtung für bidirektionale Objekte an. Gültige Rückgabewerte sind RIGHT_TO_LEFT, LEFT_TO_RIGHT.

FILE_NAME  Gibt den Namen der Datei zurück, in der die benannte Form gespeichert ist.

FIRST_BLOCK  Gibt den Namen des Blocks mit der niedrigsten Sequenznummer in der angegebenen Form zurück.

FIRST_NAVIGATION_BLOCK  Gibt den Namen des Blocks zurück, in den Form Builder beim Starten der Form navigieren soll. Standardmäßig ist der erste Navigationsblock der erste im Objektnavigator definierte Block. Allerdings kann das Blockattribut FIRST_NAVIGATION_BLOCK so eingestellt werden, daß ein anderer Block als erster Block beim Starten der Form angegeben wird.

FORM_NAME Gibt den Namen der Form zurück.

INTERACTION_MODE Gibt den Interaktionsmodus für die Form zurück. Gültige Rückgabewerte sind BLOCKING oder NONBLOCKING.

ISOLATION_MODE Gibt die Einstellung für den Isolationsmodus der Form zurück, READ_COMMITTED oder SERIALIZABLE

LAST_BLOCK  Gibt den Namen des Blocks mit der höchsten Sequenznummer in der angegebenen Form zurück.

MAX_QUERY_TIME Gibt den VARCHAR2-Wert zurück, der die aktuelle Einstellung des Attributs Max. Abfragezeit angibt. Dieses Attribut bestimmt, ob der Operator eine Abfrage abbrechen kann, wenn die abgelaufene Zeit der Abfrage den Wert dieses Attributs überschreitet.

MAX_RECORDS_FETCHED  Gibt eine Zahl zurück, die die Höchstzahl von Datensätzen darstellt, die abgerufen werden können. Dieses Attribut kann nur benutzt werden, wenn das Attribut Alle Datensätze abfragen auf Ja eingestellt ist.

MODULE_NLS_CHARACTER_SET  Gibt den aktuellen Wert des CHARACTER-Teils der für die Form definierten Umgebungsvariablen DEVELOPER_NLS_LANG zurück. Wenn DEVELOPER_NLS_LANG nicht angegeben ist, wird standardmäßig die Einstellung von NLS_LANG benutzt.

MODULE_NLS_LANG  Gibt den vollständigen aktuellen Wert der für die Form definierten Umgebungsvariablen DEVELOPER_NLS_LANG zur Unterstützung von Landessprachen zurück. Wenn DEVELOPER_NLS_LANG nicht angegeben ist, wird standardmäßig die Einstellung von NLS_LANG benutzt. MODULE_NLS_LANG ist gleichbedeutend mit der Verkettung von MODULE_NLS_LANGUAGE, MODULE_NLS_TERRITORY und MODULE_NLS_CHARACTER_SET.

MODULE_NLS_LANGUAGE  Gibt den aktuellen Wert des Sprachteils der für die Form definierten Umgebungsvariablen DEVELOPER_NLS_LANG zurück. Wenn DEVELOPER_NLS_LANG nicht angegeben ist, wird standardmäßig die Einstellung von NLS_LANG benutzt.

MODULE_NLS_TERRITORY  Gibt den aktuellen Wert des Gebietsteils der für die Form definierten Umgebungsvariablen DEVELOPER_NLS_LANG zurück. Wenn DEVELOPER_NLS_LANG nicht angegeben ist, wird standardmäßig die Einstellung von NLS_LANG benutzt.

SAVEPOINT_MODE  Gibt PROPERTY_ON oder PROPERTY_OFF zurück, um anzugeben, ob Savepoints in der Datenquelle unterstützt werden.

VALIDATION   Gibt TRUE oder FALSE zurück, um anzugeben, ob die Standardvalidierung von Form Builder aktiviert ist.

VALIDATION_UNIT   Gibt eine VARCHAR2-Zeichenfolge zurück, die die aktuelle Validierungseinheit für die Form angibt:

•	FORM_SCOPE, wenn die aktuelle Validierungseinheit die Form ist.

•	BLOCK_SCOPE, wenn die aktuelle Validierungseinheit der Block ist.

•	RECORD_SCOPE, wenn die aktuelle Validierungseinheit der Datensatz ist.

•	ITEM_SCOPE, wenn die aktuelle Validierungseinheit das Objekt ist, oder wenn die aktuelle Validierungseinheit auf DEFAULT eingestellt ist.


Beispiele für GET_FORM_PROPERTY

Beispiel 1

/*

** Built-in:  GET_FORM_PROPERTY
** Example:   Determine the name of the first block in the form.
*/
DECLARE
  curform VARCHAR2(40);
  blkname VARCHAR2(40);
BEGIN
  curform := :System.Current_Form;
  blkname := Get_Form_Property(curform,FIRST_BLOCK);
END;

Beispiel 2

/*

** Built-in:  GET_FORM_PROPERTY
** Example:   Evaluate the current setting of the
**            Validate property.
*/
BEGIN
  IF Get_Form_Property('curform', VALIDATION) = 'FALSE'
  THEN
    Message ('Form currently has Validation turned OFF');
  END IF;
END;


Vordefinierte Prozedur GET_GROUP_CHAR_CELL

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt den VARCHAR2- oder LONG-Wert für eine Zelle einer Datensatzgruppe zurück, die von der angegebenen Zeile und Spalte identifiziert wird. Eine Zelle besteht aus dem Schnittpunkt einer Zeile und einer Spalte.

Syntax

FUNCTION GET_GROUP_CHAR_CELL
  (groupcolumn_id  GroupColumn,
   row_number      NUMBER);

FUNCTION GET_GROUP_CHAR_CELL
  (groupcolumn_name  VARCHAR2,
   row_number        NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

groupcolumn_id	Gibt die eindeutige ID an, die Form Builder beim Erstellen der Spalte der Datensatzgruppe zuweist. Benutzen Sie die vordefinierte Prozedur FIND_COLUMN, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist GroupColumn.

groupcolumn_name	Gibt den vollständigen VARCHAR2-Spaltennamen der Datensatzgruppe an, den Sie der Spalte bei der Definition zugewiesen haben, wobei der Datensatzgruppenname und ein Punkt vorangestellt werden, wie bei recordgroup_name.groupcolumn_name. Wenn die Spalte als Folge einer Abfrage definiert wurde, entspricht ihr Name dem Namen der Datenbankspalte.

row_number	Gibt die Zeile an, aus der der Wert der Zelle abgerufen werden soll.


Einschränkungen bei GET_GROUP_CHAR_CELL

Die angegebene row_number muß innerhalb der Grenzwerte liegen, die von der Anzahl von Zeilen in der Datensatzgruppe bestimmt werden. Eine nicht vorhandene row_number führt zu einer Fehlermeldung, daß der Index außerhalb der zulässigen Grenzen liegt.


Beispiele für GET_GROUP_CHAR_CELL

/*

** Built-in:  GET_GROUP_CHAR_CELL
** Example:   Search thru names in a static record group to
**            determine if the value passed into this subprogram
**            exists in the list. Gibt den row number
**            where the record was first located, or zero (0)
**            if no match was found.
*/
FUNCTION Is_Value_In_List( the_value     VARCHAR2,
               the_rg_name   VARCHAR2,
               the_rg_column VARCHAR2)
RETURN NUMBER IS
  the_Rowcount   NUMBER;
  rg_id          RecordGroup;
  gc_id          GroupColumn;
  col_val        VARCHAR2(80);
  Exit_Function  Exception;
BEGIN
  /*
  ** Determine if record group exists, and if so get its ID.
  */
  rg_id := Find_Group( the_rg_name );

  IF Id_Null(rg_id) THEN
    Message('Record Group '||the_rg_name||' does not exist.');
    RAISE Exit_Function;
  END IF;

  /*
  ** Make sure the column name specified exists in the
  ** record Group.
  */
  gc_id := Find_Column( the_rg_name||'.'||the_rg_column );

  IF Id_Null(gc_id) THEN
    Message('Column '||the_rg_column||' does not exist.');
    RAISE Exit_Function;
  END IF;
  /*
  ** Get a count of the number of records in the record
  ** group
  */
  the_Rowcount := Get_Group_Row_Count( rg_id );

  /*
  ** Loop through the records, getting the specified column's
  ** value at each iteration and comparing it to 'the_value'
  ** passed in.  Compare the values in a case insensitive
  ** manner.
  */
  FOR j IN 1..the_Rowcount LOOP
    col_val := GET_GROUP_CHAR_CELL( gc_id, j );
    /*
    ** If we find a match, stop and return the
    ** current row number.
    */
    IF UPPER(col_val) = UPPER(the_value) THEN
      RETURN j;
    END IF;
  END LOOP;

  /*
  ** If we get here, we didn't find any matches.
  */
  RAISE Exit_Function;
EXCEPTION
  WHEN Exit_Function THEN
    RETURN 0;
END;


Vordefinierte Prozedur GET_GROUP_DATE_CELL

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt den DATE-Wert für die Zelle einer Datensatzgruppe zurück, die von der angegebenen Zeile und Spalte identifiziert wird. Eine Zelle besteht aus dem Schnittpunkt einer Zeile und einer Spalte.

Syntax

FUNCTION GET_GROUP_DATE_CELL
  (groupcolumn_id  GroupColumn,
   row_number      NUMBER);

FUNCTION GET_GROUP_DATE_CELL
  (groupcolumn_name  VARCHAR2,
   row_number        NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  DATE

Abfragemodus  Ja

Parameter

groupcolumn_id	Gibt die eindeutige ID an, die Form Builder beim Erstellen der Spalte der Datensatzgruppe zuweist. Benutzen Sie die vordefinierte Prozedur FIND_COLUMN, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist GroupColumn.

groupcolumn_name	Gibt den vollständigen VARCHAR2-Spaltennamen der Datensatzgruppe an, den Sie der Spalte bei der Definition zugewiesen haben, wobei der Datensatzgruppenname und ein Punkt vorangestellt werden, wie bei recordgroup_name.groupcolumn_name. Wenn die Spalte als Folge einer Abfrage definiert wurde, entspricht ihr Name dem Namen der Datenbankspalte.

row_number	Gibt die Zeile an, aus der der Wert der Zelle abgerufen werden soll.


Einschränkungen bei GET_GROUP_DATE_CELL

Die angegebene row_number muß innerhalb der Grenzwerte liegen, die von der Anzahl von Zeilen in der Datensatzgruppe bestimmt werden. Eine nicht vorhandene row_number führt zu einer Fehlermeldung, daß der Index außerhalb der zulässigen Grenzen liegt.


Beispiele für GET_GROUP_DATE_CELL

/*

** Built-in:  GET_GROUP_DATE_CELL
** Example:   Lookup a row in a record group, and return the
**            minimum order date associated with that row in
**            the record group. Uses the 'is_value_in_list'
**            function from the GET_GROUP_CHAR_CELL example.
*/
FUNCTION Max_Order_Date_Of( part_no VARCHAR2 )
RETURN DATE IS
  fnd_row NUMBER;
BEGIN
  /*
  ** Try to lookup the part number among the temporary part
  ** list record group named 'TMPPART' in its 'PARTNO'
  ** column.
  */
  fnd_row := Is_Value_In_List( part_no, 'TMPPART', 'PARTNO');
  IF fnd_row = 0 THEN
    Message('Part Number '||part_no||' not found.');
    RETURN NULL;
  ELSE
    /*
    ** Get the corresponding Date cell value from the
    ** matching row.
    */
    RETURN Get_Group_Date_Cell( 'TMPPART.MAXORDDATE', fnd_row );
 END IF;
END;


Vordefinierte Prozedur GET_GROUP_NUMBER_CELL

 Beispiele	   Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt den NUMBER-Wert für eine Zelle einer Datensatzgruppe zurück, die von der angegebenen Zeile und Spalte identifiziert wird. Eine Zelle besteht aus dem Schnittpunkt einer Zeile und einer Spalte.

Syntax

FUNCTION GET_GROUP_NUMBER_CELL
  (groupcolumn_id  GroupColumn,
   row_number      NUMBER);

FUNCTION GET_GROUP_NUMBER_CELL
  (groupcolumn_name  VARCHAR2,
   row_number        NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  NUMBER

Abfragemodus  Ja

Parameter

groupcolumn_id	Gibt die eindeutige ID an, die Form Builder beim Erstellen der Spalte der Datensatzgruppe zuweist. Benutzen Sie die vordefinierte Prozedur FIND_COLUMN, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist GroupColumn.

groupcolumn_name	Gibt den vollständigen VARCHAR2-Spaltennamen der Datensatzgruppe an, den Sie der Spalte bei der Definition zugewiesen haben, wobei der Datensatzgruppenname und ein Punkt vorangestellt werden, wie bei recordgroup_name.groupcolumn_name. Wenn die Spalte als Folge einer Abfrage definiert wurde, entspricht ihr Name dem Namen der Datenbankspalte.

row_number	Gibt die Zeile an, aus der der Wert der Zelle abgerufen werden soll.


Einschränkungen bei GET_GROUP_NUMBER_CELL

Die angegebene row_number muß innerhalb der Grenzwerte liegen, die von der Anzahl von Zeilen in der Datensatzgruppe bestimmt werden. Eine nicht vorhandene row_number führt zu einer Fehlermeldung, daß der Index außerhalb der zulässigen Grenzen liegt.


Beispiele für GET_GROUP_NUMBER_CELL

/*

** Built-in:  GET_GROUP_NUMBER_CELL
** Example:   Lookup a row in a record group, and return the
**            minimum order quantity associated with that row
**            in the record group. Uses the
**            'is_value_in_list' function from the
**            GET_GROUP_CHAR_CELL example.
*/
FUNCTION Min_Order_Qty_Of( part_no VARCHAR2 )
RETURN NUMBER IS
  fnd_row NUMBER;
BEGIN
  /*
  ** Try to lookup the part number among the temporary part
  ** list record group named 'TMPPART' in its 'PARTNO'
  ** column.
  */
  fnd_row := Is_Value_In_List( part_no, 'TMPPART', 'PARTNO');

  IF fnd_row = 0 THEN
    Message('Part Number '||part_no||' not found.');
    RETURN NULL;
  ELSE
    /*
    ** Get the corresponding Number cell value from the
    ** matching row.
    */
    RETURN Get_Group_Number_Cell( 'TMPPART.MINQTY', fnd_row );
  END IF;
END;


Vordefinierte Prozedur GET_GROUP_RECORD_NUMBER

 Beispiele	   Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt die Datensatznummer des ersten Datensatzes in der Datensatzgruppe mit einem Spaltenwert zurück, der dem Parameter cell_value entspricht. Wenn keine Übereinstimmung gefunden wird, wird 0 (null) zurückgegeben.

Syntax

FUNCTION GET_GROUP_RECORD_NUMBER
  (groupcolumn_id  GroupColumn,
   cell_value      NUMBER);

FUNCTION GET_GROUP_RECORD_NUMBER
  (groupcolumn_name  VARCHAR2,
   cell_value      NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  NUMBER

Abfragemodus  Ja

Parameter

groupcolumn_id	Gibt die eindeutige ID an, die Form Builder der Spalte der Datensatzgruppe beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_COLUMN, um die ID an eine Variable zurückzugeben. Der Datentyp der ID ist GroupColumn.

groupcolumn_name	Gibt den Namen der Spalte der Datensatzgruppe an, den Sie beim Erstellen der Spalte zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

cell_value	Gibt den Wert an, der in der angegebenen Spalte der Datensatzgruppe gesucht werden soll. Der Name hat den Datentyp VARCHAR2, NUMBER oder DATE.


Einschränkungen bei GET_GROUP_RECORD_NUMBER

Der Datentyp des Parameters cell_value muß mit dem Datentyp der Spalte der Datensatzgruppe übereinstimmen. Bei VARCHAR2-Vergleichen muß die Schreibweise berücksichtigt werden.


Beispiele für GET_GROUP_RECORD_NUMBER

/*

** Built-in: GET_GROUP_RECORD_NUMBER
** Example:  Find the first record in the record group with a
**     cell in a column that is identical to the value
**    specified in the cell_value parameter.
*/
DECLARE
  rg_id         RecordGroup;
  match         NUMBER := 2212;
  status        NUMBER;
  the_recordnum NUMBER;
BEGIN
  rg_id := Create_Group_From_Query('QGROUP',
          'SELECT ENAME,EMPNO,SAL FROM EMP ORDER BY SAL DESC');
  status := Populate_Group( rg_id );
  */  *** Zero status is success***  /
  IF status = 0 THEN
    the_recordnum :=Get_Group_Record_Number('QGROUP.ENAME',match);
    Message('The first match is record number                                   '||to_CHAR(the_recordnum));
  ELSE
    Message('Error creating query record group.');
    RAISE Form_Trigger_Failure;
  END IF;
END;


Vordefinierte Prozedur GET_GROUP_ROW_COUNT

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt die Anzahl von Zeilen in der Datensatzgruppe zurück.

Syntax

FUNCTION GET_GROUP_ROW_COUNT
  (recordgroup_id  RecordGroup);

FUNCTION GET_GROUP_ROW_COUNT
  (recordgroup_name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  NUMBER

Abfragemodus  Ja

Parameter

recordgroup_id	Gibt die eindeutige ID an, die Form Builder der Datensatzgruppe beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_GROUP, um die ID an eine Variable zurückzugeben. Der Datentyp der ID ist RecordGroup.

recordgroup_name	Gibt den Namen der Datensatzgruppe an, den Sie der Gruppe beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.


Beispiele für GET_GROUP_ROW_COUNT

/*

** Built-in:  GET_GROUP_ROW_COUNT
** Example:   Determine how many rows were retrieved by a
**            Populate_Group for a query record group.
*/
DECLARE
  rg_id        RecordGroup;
  status       NUMBER;
  the_rowcount NUMBER;
BEGIN
  rg_id := Create_Group_From_Query('MY_QRY_GROUP',
          'SELECT ENAME,EMPNO,SAL FROM EMP ORDER BY SAL DESC');
  status := Populate_Group( rg_id );
  */  *** Zero status is success***  /
  IF status = 0 THEN
    the_rowcount := Get_Group_Row_Count( rg_id );
    Message('The query retrieved '||to_CHAR(the_rowcount)||
           ' record(s)');
  ELSE
    Message('Error creating query record group.');
    RAISE Form_Trigger_Failure;
  END IF;
END;


Vordefinierte Prozedur GET_GROUP_SELECTION

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Ruft die Sequenznummer der ausgewählten Zeile für die angegebene Gruppe ab.

Syntax

FUNCTION GET_GROUP_SELECTION
  (recordgroup_id    RecordGroup,
   selection_number  NUMBER);

FUNCTION GET_GROUP_SELECTION
  (recordgroup_name  VARCHAR2,
   selection_number  NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  NUMBER

Abfragemodus  Ja

Parameter

recordgroup_id	Gibt die eindeutige ID an, die Form Builder der Datensatzgruppe beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_GROUP, um die ID an eine Variable zurückzugeben. Der Datentyp der ID ist RecordGroup.

recordgroup_name	Gibt den Namen der Datensatzgruppe an, den Sie der Gruppe beim Erstellen zugewiesen haben.

selection_number	Kennzeichnet die ausgewählten Zeilen in der Reihenfolge der Auswahl. Wenn z.B. die Zeilen 3, 7 und 21 ausgewählt sind, sind die entsprechenden Auswahlwerte 1, 2 und 3. Das Argument selection_number übernimmt einen Wert vom Datentyp NUMBER.


Beispiele für GET_GROUP_SELECTION

/*

** Built-in:  GET_GROUP_SELECTION
** Example:   Return a comma-separated list (string) of the
**            selected part numbers from the presumed
**            existent PARTNUMS record group.
*/
FUNCTION Comma_Separated_Partnumbers
RETURN VARCHAR2 IS
  tmp_str      VARCHAR2(2000);
  rg_id        RecordGroup;
  gc_id        GroupColumn;
  the_Rowcount NUMBER;
  sel_row      NUMBER;
  the_val      VARCHAR2(20);
BEGIN
  rg_id := Find_Group('PARTNUMS');
  gc_id := Find_Column('PARTNUMS.PARTNO');
  /*
  ** Get a count of how many rows in the record group have
  ** been marked as "selected"
  */
  the_Rowcount := Get_Group_Selection_Count( rg_id );
  FOR j IN 1..the_Rowcount LOOP
    /*
    ** Get the Row number of the J-th selected row.
    */
    sel_row := Get_Group_Selection( rg_id, j );
    /*
    ** Get the (VARCHAR2) value of the J-th row.
    */
    the_val := Get_Group_CHAR_Cell( gc_id, sel_row );
    IF j = 1 THEN
      tmp_str := the_val;
    ELSE
      tmp_str := tmp_str||','||the_val;
    END IF;
  END LOOP;
  RETURN tmp_str;
END;


Vordefinierte Prozedur GET_GROUP_SELECTION_COUNT

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt die Anzahl von Zeilen in der angegebenen Datensatzgruppe zurück, die programmgesteuert durch einen Aufruf von SET_GROUP_SELECTION als ausgewählt markiert wurden.

Syntax

FUNCTION GET_GROUP_SELECTION_COUNT
  (recordgroup_id  RecordGroup);

FUNCTION GET_GROUP_SELECTION_COUNT
  (recordgroup_name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  NUMBER

Abfragemodus  Ja

Parameter

recordgroup_id	Gibt die eindeutige ID an, die Form Builder der Datensatzgruppe beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_GROUP, um die ID an eine Variable zurückzugeben. Der Datentyp der ID ist RecordGroup.

recordgroup_name	Gibt den Namen der Datensatzgruppe an, den Sie der Gruppe beim Erstellen zugewiesen haben.


Beispiele für GET_GROUP_SELECTION_COUNT

/*

** Built-in:  GET_GROUP_SELECTION_COUNT
** Example:   See GET_GROUP_SELECTION
*/


GET_INTERFACE_POINTER

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

 Gibt ein Handle zu einem OLE2-Automationsobjekt zurück.

Syntax

FUNCTION GET_INTERFACE_POINTER
  (item_id  Item);

FUNCTION GET_INTERFACE_POINTER
  (item_name  VARCHAR2);

Rückgabewert  PLS_INTEGER

Prozedurtyp  Uneingeschränkte Funktion

Abfragemodus  Nein

Parameter

item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist Item.

item_name	Gibt den Namen des beim Entwurf erstellten Objekts an. Der Datentyp des Namens ist VARCHAR2.


Einschränkungen bei GET_INTERFACE_POINTER

Nur bei Microsoft Windows und Macintosh gültig.


Beispiele für GET_INTERFACE_POINTER

/*

** Built-in: GET_INTERFACE_POINTER
** Example:  Finds a handle to an OLE object
*/
FUNCTION HandleMap(MapName VARCHAR2) RETURN OLE2.obj_type is
BEGIN
 RETURN(Get_interface_Pointer(MapName));
END;


Vordefinierte Prozedur GET_ITEM_INSTANCE_PROPERTY

 Alle vordefinierten Prozeduren

Beschreibung

Gibt Attributwerte für die angegebene Objektinstanz zurück. GET_ITEM_INSTANCE_PROPERTY gibt den Ausgangswert oder den zuletzt von SET_ITEM_INSTANCE_PROPERTY für die angegebene Objektinstanz angegebenen Wert zurück. Diese vordefinierte Prozedur gibt nicht den effektiven Wert eines Attributs zurück (d.h. den Wert, der durch Kombination der Attribute abgeleitet wird, die auf Objektinstanz-, Objekt- und Blockebene angegeben sind). Weitere Informationen über die richtigen Attributwerte finden Sie unter SET_ITEM_INSTANCE_PROPERTY.

Syntax

FUNCTION GET_ITEM_INSTANCE_PROPERTY
  (item_id  ITEM,
   record_number  NUMBER,
   property  NUMBER);

FUNCTION GET_ITEM_INSTANCE_PROPERTY
  (item_name  VARCHAR2,
   record_number  NUMBER,
   property   NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

item_id	Die eindeutige ID, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable mit dem Datentyp ITEM zurückzugeben.

item_name	Der Name, den Sie dem Objekt beim Erstellen zugewiesen haben.

record_number	Eine Datensatznummer oder CURRENT_RECORD.

property	Das Attribut, dessen Wert Sie für das gegebene Objekt einlesen möchten. Gültige Attribute sind:

BORDER_BEVEL  Gibt RAISED, LOWERED oder PLAIN zurück, wenn das Attribut BORDER_BEVEL auf RAISED, LOWERED oder PLAIN eingestellt ist, bzw. auf Objektinstanzebene eingestellt wurde. Wenn BORDER_BEVEL nicht auf Objektinstanzebene angegeben ist, wird  " " zurückgegeben.

INSERT_ALLOWED  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn das Attribut INSERT-ALLOWED auf Objektinstanzebene auf True eingestellt ist, und die Zeichenfolge FALSE, wenn das Attribut auf False eingestellt ist.

NAVIGABLE  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn das Attribut NAVIGABLE auf Objektinstanzebene auf True eingestellt ist. Gibt die Zeichenfolge FALSE zurück, wenn das Attribut auf False eingestellt ist. .

REQUIRED  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn das Attribut REQUIRED auf Objektinstanzebene auf True eingestellt ist. Gibt die Zeichenfolge FALSE zurück, wenn das Attribut auf False eingestellt ist.

SELECTED_RADIO_BUTTON  Gibt die Beschriftung für die ausgewählte Optionsschaltfläche in der Optionsgruppe im angegebenen Datensatz zurück. NULL wird zurückgegeben, wenn die Optionsgruppe für den angegebenen Datensatz keine ausgewählte Optionsschaltfläche enthält oder der angegebene Datensatz außer Sicht ist.

UPDATE_ALLOWED  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn das Attribut UPDATE_ALLOWED auf Objektinstanzebene auf True eingestellt ist. Gibt die Zeichenfolge FALSE zurück, wenn das Attribut auf False eingestellt ist.

VISUAL_ATTRIBUTE  Gibt den Namen des gerade geltenden visuellen Attributs zurück. Wenn der Objektinstanz kein benanntes visuelles Attribut zugewiesen ist, wird DEFAULT für ein standardmäßiges visuelles Attribut zurückgegeben. Gibt '' zurück, wenn VISUAL_ATTRIBUTE nicht auf Objektinstanzebene angegeben ist.


Vordefinierte Prozedur GET_ITEM_PROPERTY

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt Attributwerte für das angegebene Objekt zurück. Beachten Sie, daß Sie in bestimmten Fällen bestimmte Objektattribute einlesen - jedoch nicht einstellen - können.

Syntax

FUNCTION GET_ITEM_PROPERTY
  (item_id,  ITEM
   property  NUMBER);

FUNCTION GET_ITEM_PROPERTY
  (item_name  VARCHAR2,
   property   NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

item_id	Die eindeutige ID, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable mit dem Datentyp ITEM zurückzugeben.

item_name	Der Name, den Sie dem Objekt beim Erstellen zugewiesen haben.

property	Das Attribut, dessen Wert Sie für das gegebene Objekt einlesen möchten. Gültige Attribute sind:

AUTO_HINT  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn das Attribut Hinweis automatisch anzeigen auf Ja eingestellt ist, und die VARCHAR2-Zeichenfolge FALSE, wenn es auf Nein eingestellt ist.

AUTO_SKIP  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn das Attribut Automatisches Überspringen für das Objekt auf ja eingestellt ist, und FALSE, wenn es auf Nein eingestellt ist.

BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts.

BLOCK_NAME  Gibt den VARCHAR2-Blocknamen für das Objekt zurück.

BORDER_BEVEL Gibt RAISED, LOWERED oder PLAIN zurück, wenn das Attribut BORDER_BEVEL auf RAISED, LOWERED oder PLAIN eingestellt ist, bzw. auf Objektinstanzebene eingestellt wurde.

CASE_INSENSITIVE_QUERY  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn dieses Attribut für das Objekt auf Ja eingestellt ist, und die Zeichenfolge FALSE, wenn das Attribut auf Nein eingestellt ist.

CASE_RESTRICTION  Gibt UPPERCASE zurück, wenn der Text für das Objekt in Großbuchstaben angezeigt werden soll, LOWERCASE, wenn der Text in Kleinbuchstaben angezeigt werden soll, oder NONE, wenn keine Regeln für die Groß-/Kleinschreibung gelten.

COLUMN_NAME  Gibt den Namen der Spalte in der Datenbank wieder, mit der das Datenblockobjekt verknüpft ist.

COMPRESS Gibt einen Wert (TRUE oder FALSE) zurück, der angibt, ob das Klangobjekt, das aus einer Datei in eine Form eingelesen wird, komprimiert werden soll, wenn es in das interne Oracle-Format konvertiert wird.

CONCEAL_DATA  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn der Text, den ein Operator in das Textobjekt eingibt, verborgen werden soll, und die VARCHAR2-Zeichenfolge FALSE, wenn der Text, den ein Operator in das Textobjekt eingibt, angezeigt werden soll.

CURRENT_RECORD_ATTRIBUTE  Gibt den VARCHAR2-Namen des benannten visuellen Attributs des angegebenen Objekts zurück.

CURRENT_ROW_BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts.

CURRENT_ROW_FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden.

CURRENT_ROW_FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

CURRENT_ROW_FONT_SIZE  Schriftgrad in Punkt.

CURRENT_ROW_FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning).

CURRENT_ROW_FONT_STYLE  Schriftstil.

CURRENT_ROW_FONT_WEIGHT Schriftstärke.

CURRENT_ROW_FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

CURRENT_ROW_WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

DATABASE_VALUE  Gibt bei einem Objekt einer Basistabelle den Wert zurück, der anfänglich aus der Datenbank abgerufen wurde.

DATATYPE  Gibt den Datentyp des Objekts zurück: ALPHA, CHAR, DATE, JDATE, EDATE,  DATETIME, INT, RINT, MONEY, RMONEY, NUMBER, RNUMBER, TIME, LONG, GRAPHICS oder IMAGE. Beachten Sie, daß einige Objekttypen, wie z.B. Schaltfläche und Diagramme, keine Datentypen haben. Um in diesen Fällen eine Fehlermeldung zu umgehen, suchen Sie nach dem Objekttyp, bevor Sie den Datentyp einlesen.

DIRECTION  Gibt die Layout-Richtung für bidirektionale Objekte an. Gültige Rückgabewerte sind RIGHT_TO_LEFT, LEFT_TO_RIGHT.

DISPLAYED  Gibt die VARCHAR2-Zeichenfolge TRUE oder FALSE zurück.

ECHO  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn das Attribut Daten verbergen für das Objekt auf Nein eingestellt ist, und die VARCHAR2-Zeichenfolge FALSE, wenn das Attribut Daten verbergen für das Objekt auf Ja eingestellt ist.

EDITOR_NAME  Gibt den Namen des Editors an, der dem Textobjekt zugeordnet ist.

EDITOR_X_POS  Gibt die x-Koordinate des Editors zurück, der dem Textobjekt zugeordnet ist. (Entspricht dem Attribut Editor-Position.)

EDITOR_Y_POS  Gibt die y-Koordinate des Editors zurück, der dem Textobjekt zugeordnet ist. (Entspricht dem Attribut Editor-Position.)

ENFORCE_KEY  Gibt den Namen des Objekts zurück, dessen Wert als Fremdschlüssel in dieses Objekt kopiert wird, wenn ein neuer Datensatz als Bestandteil einer Master-Detail-Beziehung erstellt wird. (Entspricht dem Attribut Kopieren.)

ENABLED  Gibt TRUE zurück, wenn das Attribut Aktiviert auf Ja eingestellt ist. Sonst wird FALSE zurückgegeben.

FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden.

FIXED_LENGTH  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn das Attribut für das Objekt auf Ja eingestellt ist, und die VARCHAR2-Zeichenfolge FALSE, wenn das Attribut für das Objekt auf Nein eingestellt ist.

FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

FONT_SIZE  Schriftgrad in Hundertstel Punkt. (Ein Objekt mit einem Schriftgrad von 8 Punkten gibt 800 zurück.)

FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning).

FONT_STYLE  Schriftstil.

FONT_WEIGHT  Schriftstärke.

FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

FORMAT_MASK  Gibt die Formatmaske zurück, die für das Textobjekt benutzt wird.

HEIGHT  Gibt die Höhe des Objekts zurück. Die Größe der Einheiten hängt von dem Koordinatensystem und der Standardskalierung ab, die Sie für die Form angegeben haben.

HINT_TEXT  Gibt den objektspezifischen Hilfetext zurück, der zur Laufzeit in der Meldungszeile angezeigt wird.

ICON_NAME  Gibt den Dateinamen der Symbol-Ressource zurück, die einem Schaltflächenobjekt zugeordnet ist, bei dem das Attribut In Symbolform auf TRUE gesetzt ist.

ICONIC_BUTTON  Gibt den VARCHAR2-Wert TRUE zurück, wenn die Schaltfläche als Symbol definiert ist. Sonst wird der VARCHAR2-Wert FALSE zurückgegeben.

IMAGE_DEPTH  Gibt die Farbtiefe des angegebenen Bildobjekts zurück.

IMAGE_FORMAT  Gibt das Format des angegebenen Bildobjekts zurück.

INSERT_ALLOWED  Gibt den VARCHAR2-Wert TRUE zurück, wenn das Attribut INSERT_ALLOWED auf Objektebene auf True eingestellt ist. Gibt die Zeichenfolge FALSE zurück, wenn das Attribut auf False eingestellt ist.

ITEM_CANVAS  Gibt den Namen der Leinwand zurück, der das Objekt zugeordnet ist.

ITEM_IS_VALID Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn das aktuelle Objekt gültig ist. Sonst wird die VARCHAR2-Zeichenfolge FALSE zurückgegeben.

ITEM_NAME  Gibt den Namen des Objekts zurück.

ITEM_TAB_PAGE  Gibt den Namen der Registerseite zurück, der das Objekt zugeordnet ist. Beachten Sie, daß das Objekt einer Registerleinwand zugeordnet sein muß, damit Form Builder den Namen der Registerseite des Objekts zurückgeben kann.

ITEM_TYPE  Gibt den Typ des Objekts zurück. Gibt BUTTON zurück, wenn es sich bei dem Objekt um eine Schaltfläche handelt, CHART_ITEM, wenn es sich bei dem Objekt um ein Diagrammobjekt handelt, CHECKBOX, wenn es sich bei dem Objekt um ein Kontrollkästchen handelt, DISPLAY ITEM, wenn es sich bei dem Objekt um ein Anzeigeobjekt handelt, IMAGE, wenn es sich bei dem Objekt um ein Bildobjekt handelt, LIST, wenn es sich bei dem Objekt um ein Listenobjekt handelt, OLE OBJECT, wenn es sich bei dem Objekt um ein OCX-Steuerelement oder einen OLE-Container handelt, RADIO GROUP, wenn es sich bei dem Objekt um eine Optionsgruppe handelt, TEXT ITEM, wenn es sich bei dem Objekt um ein Textobjekt handelt, USER AREA, wenn es sich bei dem Objekt um einen Benutzerbereich handelt, und VBX CONTROL, wenn es sich bei dem Objekt um ein VBX-Steuerelement handelt.

JUSTIFICATION  Gibt die Textausrichtung für Textobjekte und Nur-Anzeigeobjekte zurück. Gültige Rückgabewerte sind START, END, LEFT, CENTER, RIGHT.

KEEP_POSITION  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn der Cursor wieder an dieselbe Stelle gesetzt werden soll, bei der er das Objekt verlassen hat, und die VARCHAR2-Zeichenfolge FALSE, wenn der Cursor bei der Standardposition wieder in das Objekt gesetzt werden soll.

LABEL  Gibt den VARCHAR2-Wert zurück, der für das Attribut Beschriftung des Objekts definiert wurde. Dieses Attribut ist nur bei Objekten mit Beschriftungen gültig, wie z.B. bei Schaltflächen und Kontrollkästchen.

LIST  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn es sich bei dem Objekt um ein Textobjekt handelt, dem eine Werteliste zugeordnet ist. Sonst wird die VARCHAR2-Zeichenfolge FALSE zurückgegeben.

LOCK_RECORD_ON_CHANGE  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn Form Builder versuchen soll, eine Zeile basierend auf einer potentiellen Änderung an diesem Objekt zu sperren, und den VARCHAR2-Wert FALSE, wenn keine Sperre versucht werden soll.

LOV_NAME  Gibt den VARCHAR2-Namen der Werteliste zurück, die mit dem angegebenen Objekt verknüpft ist. Wenn der Wertelistenname nicht vorhanden ist, wird eine Fehlermeldung ausgegeben.

LOV_X_POS Gibt die x-Koordinate der Werteliste zurück, die dem Textobjekt zugeordnet ist. (Entspricht dem Attribut X-Position Liste.)

LOV_Y_POS Gibt die y-Koordinate der Werteliste zurück, die dem Textobjekt zugeordnet ist. (Entspricht dem Attribut Y-Position Liste.)

MAX_LENGTH  Gibt die maximale Längeneinstellung für das Objekt zurück. Der Wert wird als eine Ganzzahl zurückgegeben.

MERGE_CURRENT_ROW_VA  Mischt den Inhalt des angegebenen visuellen Attributs mit dem visuellen Attribut der aktuellen Zeile (anstatt dieses zu ersetzen).

MERGE_TOOLTIP_ATTRIBUTE  Mischt den Inhalt des angegebenen visuellen Attributs mit dem aktuellen visuellen Attribut des Tooltips (anstatt es zu ersetzen).

MERGE_VISUAL_ATTRIBUTE  Mischt den Inhalt des angegebenen visuellen Attributs mit dem aktuellen visuellen Attribut des Objekts (anstatt es zu ersetzen).

MOUSE_NAVIGATE  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn Maus-Navigation für das Objekt auf Ja eingestellt ist, und die VARCHAR2-Zeichenfolge FALSE, wenn das Attribut für das Objekt auf Nein eingestellt ist.

MULTI_LINE  Gibt den VARCHAR2-Wert TRUE zurück, wenn es sich bei dem Objekt um ein mehrzeiliges Textobjekt handelt, und die VARCHAR2-Zeichenfolge FALSE, wenn es sich um ein einzeiliges Textobjekt handelt.

NAVIGABLE  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn das Attribut NAVIGABLE auf Objektebene auf True eingestellt ist. Gibt die Zeichenfolge FALSE zurück, wenn das Attribut auf False eingestellt ist.

NEXTITEM  Gibt den Namen des nächsten Objekts in der Standardnavigationsfolge an, wie mit der Reihenfolge der Objekte im Objektnavigator definiert.

NEXT_NAVIGATION_ITEM  Gibt den Namen des Objekts zurück, das bezogen auf das aktuelle Objekt als "nächstes Navigationsobjekt" definiert ist.

POPUPMENU_CONTENT_ITEM  Gibt die Einstellung für eines der Objektattribute für OLE-Popup-Menüs zurück:

•	POPUPMENU_COPY_ITEM

•	POPUPMENU_CUT_ITEM

•	POPUPMENU_DELOBJ_ITEM

•	POPUPMENU_INSOBJ_ITEM

•	POPUPMENU_LINKS_ITEM

•	POPUPMENU_OBJECT_ITEM

•	POPUPMENU_PASTE_ITEM

•	POPUPEMNU_PASTESPEC_ITEM

Gibt die VARCHAR2-Zeichenfolge HIDDEN zurück, wenn der OLE-Popup-Menüpunkt nicht angezeigt wird. Gibt die VARCHAR2-Zeichenfolge ENABLED zurück, wenn der OLE-Popup-Menüpunkt angezeigt wird und aktiviert ist. Gibt die VARCHAR2-Zeichenfolge DISABLED zurück, wenn der OLE-Popup-Menüpunkt angezeigt wird und nicht aktiviert ist. Gibt die VARCHAR2-Zeichenfolge UNSUPPORTED zurück, wenn es sich bei der Plattform nicht um Microsoft Windows handelt.

PREVIOUSITEM  Gibt den Namen des vorherigen Objekts zurück.

PREVIOUS_NAVIGATION_ITEM  Gibt den Namen des Objekts zurück, das bezogen auf dieses aktuelle Objekt als "vorheriges Navigationsobjekt" definiert ist.

PRIMARY_KEY  Gibt den VARCHAR2-Wert TRUE zurück, wenn es sich bei dem Objekt um einen Primärschlüssel handelt. Wenn nicht, wird die VARCHAR2-Zeichenfolge FALSE zurückgegeben.

PROMPT_ALIGNMENT_OFFSET  Gibt die Distanz zwischen dem Objekt und der zugehörigen Eingabeaufforderung in Form eines VARCHAR2-Wertes zurück.

PROMPT_BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts.

PROMPT_DISPLAY_STYLE  Gibt den Anzeigestil der Eingabeaufforderung zurück, d.h. FIRST_RECORD, HIDDEN oder ALL_RECORDS.

PROMPT_EDGE  Gibt einen Wert zurück, mit dem angegeben wird, an welchem Rand die Eingabeaufforderung des Objekts ausgerichtet ist, d.h. START, END, TOP oder BOTTOM.

PROMPT_EDGE_ALIGNMENT  Gibt einen Wert zurück, mit dem angegeben wird, an welchem Rand die Eingabeaufforderung des Objekts ausgerichtet ist, d.h. START, END oder CENTER.

PROMPT_EDGE_OFFSET  Gibt die Distanz zwischen dem Objekt und der Eingabeaufforderung in Form eines VARCHAR2-Wertes zurück.

PROMPT_FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden.

PROMPT_FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

PROMPT_FONT_SIZE  Schriftgrad in Punkt.

PROMPT_FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning).

PROMPT_FONT_STYLE  Schriftstil.

PROMPT_FONT_WEIGHT  Schriftstärke.

PROMPT_FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

PROMPT_TEXT  Gibt die Textbeschriftung zurück, die für ein Objekt angezeigt wird.

PROMPT_TEXT_ALIGNMENT  Gibt einen Wert zurück, mit dem angegeben wird, wie die Eingabeaufforderung justiert ist, d.h. START, LEFT, RIGHT, CENTER oder END.

PROMPT_VISUAL_ATTRIBUTE  Gibt einen Wert zurück, der das benannte visuelle Attribut des Prompts angibt.

PROMPT_WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

QUERYABLE  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn das Objekt in einer Abfrage aufgenommen werden kann, und die VARCHAR2-Zeichenfolge FALSE, wenn dies nicht der Fall ist.

QUERY_LENGTH  Gibt die Anzahl von Zeichen zurück, die ein Operator in das Textobjekt eingeben kann, wenn sich die Form im Abfragemodus befindet.

QUERY_ONLY  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn das Attribut für das Objekt auf Ja eingestellt ist, und die VARCHAR2-Zeichenfolge FALSE, wenn das Attribut für das Objekt auf Nein eingestellt ist.

RANGE_HIGH  Gibt den Maximalwert des Bereichs zurück. (Entspricht dem Attribut Bereich.)

RANGE_LOW  Gibt den Minimalwert des Bereichs zurück. (Entspricht dem Attribut Bereich.)

REQUIRED  Gibt bei mehrzeiligen Textobjekten die VARCHAR2-Zeichenfolge TRUE zurück, wenn das Attribut REQUIRED auf Objektebene auf True eingestellt ist. Gibt die Zeichenfolge FALSE zurück, wenn das Attribut auf False eingestellt ist.

SCROLLBAR  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn für das Attribut Bildlaufleiste anzeigen Ja angegeben wurde, und die VARCHAR2-Zeichenfolge FALSE, wenn für das Attribut Bildlaufleiste anzeigen Nein angegeben wurde.

SHOW_FAST_FORWARD_BUTTON  Gibt den VARCHAR2-Wert TRUE zurück, wenn [image] auf dem angegebenen Klangobjekt angezeigt wird. Wenn nicht, wird FALSE zurückgegeben.

SHOW_PALETTE  Gibt den VARCHAR2-Wert TRUE zurück, wenn die Palette zur Bildmanipulation neben dem angegebenen Bildobjekt angezeigt wird. Sonst wird FALSE zurückgegeben.

SHOW_PLAY_BUTTON  Gibt den VARCHAR2-Wert TRUE zurück, wenn [image] auf dem angegebenen Klangobjekt angezeigt wird. Sonst wird FALSE zurückgegeben.

SHOW_RECORD_BUTTON  Gibt den VARCHAR2-Wert TRUE zurück, wenn [image] auf dem angegebenen Klangobjekt angezeigt wird. Sonst wird FALSE zurückgegeben.

SHOW_REWIND_BUTTON  Gibt den VARCHAR2-Wert TRUE zurück, wenn [image] auf dem angegebenen Klangobjekt angezeigt wird. Sonst wird FALSE zurückgegeben.

SHOW_SLIDER  Gibt den VARCHAR2-Wert TRUE zurück, wenn das Steuerelement für die Schiebereglerposition auf dem angegebenen Klangobjekt angezeigt wird. Sonst wird FALSE zurückgegeben.

SHOW_TIME_INDICATOR  Gibt den VARCHAR2-Wert TRUE zurück, wenn [image] auf dem angegebenen Klangobjekt angezeigt wird. Sonst wird FALSE zurückgegeben.

SHOW_VOLUME_CONTROL  Gibt den VARCHAR2-Wert TRUE zurück, wenn [image] auf dem angegebenen Klangobjekt angezeigt wird. Sonst wird FALSE zurückgegeben.

TOOLTIP_BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts.

TOOLTIP_FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden.

TOOLTIP_FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

TOOLTIP_FONT_SIZE  Schriftgrad in Punkt.

TOOLTIP_FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning).

TOOLTIP_FONT_STYLE  Schriftstil.

TOOLTIP_FONT_WEIGHT  Schriftstärke.

TOOLTIP_FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

TOOLTIP_WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

TOOLTIP_TEXT Gibt den Text für den Tooltip des Objekts zurück

UPDATE_ALLOWED  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn das Attribut UPDATE_ALLOWED auf Objektebene auf True eingestellt ist. Gibt die Zeichenfolge FALSE zurück, wenn das Attribut auf False eingestellt ist.

UPDATE_COLUMN  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn Form Builder das Objekt als aktualisiert behandeln soll. Sonst wird FALSE zurückgegeben.

UPDATE_NULL  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn das Objekt nur aktualisiert werden soll, wenn es NULL ist, und die VARCHAR2-Zeichenfolge FALSE, wenn das Objekt immer aktualisiert werden kann. (Entspricht dem Attribut Aktualisieren bei NULL.)

UPDATE_PERMISSION  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn das Attribut UPDATE_PERMISSION auf ON eingestellt ist, wodurch die Attribute UPDATEABLE und UPDATE_NULL des Objekts eingeschaltet werden. Mit der VARCHAR2-Zeichenfolge FALSE wird angegeben, daß UPDATEABLE und UPDATE_NULL ausgeschaltet sind.

VALIDATE_FROM_LIST  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn Form Builder den Wert des Textobjekts anhand der Werte in der zugeordneten Werteliste validieren soll. Sonst wird die VARCHAR2-Zeichenfolge FALSE zurückgegeben.

VISIBLE  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn das Attribut für das Objekt auf Ja eingestellt ist, und die VARCHAR2-Zeichenfolge FALSE, wenn das Attribut für das Objekt auf Nein eingestellt ist.

VISUAL_ATTRIBUTE  Gibt den Namen des gerade gültigen visuellen Attributs zurück. Wenn dem Objekt kein benanntes visuelles Attribut zugewiesen ist, wird DEFAULT für ein standardmäßiges visuelles Attribut zurückgegeben.

WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

WIDTH  Gibt die Breite des Objekts zurück.

WINDOW_HANDLE  Gibt eine eindeutige interne VARCHAR2-Konstante zurück, die für die Referenzierung von Objekten benutzt wird. Gibt den VARCHAR2-Wert 0 zurück, wenn die Plattform nicht Microsoft Windows ist.

WRAP_STYLE  Gibt VARCHAR2 zurück, wenn der Umbruchstil für das Objekt auf VARCHAR2 gesetzt ist, WORD, wenn der Wortumbruch eingestellt ist, und NONE, wenn kein Umbruchstil für das Objekt angegeben ist.

X_POS  Gibt die x-Koordinate zurück, die die aktuelle Position der oberen linken Ecke des Objekts relativ zur oberen linken Ecke der Leinwand angibt.

Y_POS  Gibt die y-Koordinate zurück, die die aktuelle Position der oberen linken Ecke des Objekts bezogen auf die obere linke Ecke der Leinwand angibt.

Verwendungshinweise

Wenn Sie versuchen, mit GET_ITEM_PROPERTY ein Attribut für ein Objekt einzulesen, das für dieses Objekt nicht gültig ist, kommt es zu einem Fehler. So kommt es z.B. zu einem Fehler, wenn Sie versuchen, LIST aus einer Optionsgruppe einzulesen, weil LIST nur bei Textobjekten gültig ist.


Beispiele für GET_ITEM_PROPERTY

/*

**  Built-in:  GET_ITEM_PROPERTY
**  Example:   Navigate to the next required item in the
**             current block.      */
PROCEDURE Go_Next_Required_Item IS
  cur_blk        VARCHAR2(40);
  cur_itm        VARCHAR2(80);
  orig_itm       VARCHAR2(80);
  first_itm      VARCHAR2(80);
  wrapped        BOOLEAN := FALSE;
  found          BOOLEAN := FALSE;
  Exit_Procedure EXCEPTION;
  /*
  ** Local function returning the name of the item after the
  ** one passed in. Using NVL we make the item after the
  ** last one in the block equal the first item again.
  */
  FUNCTION The_Item_After(itm VARCHAR2)
  RETURN VARCHAR2 IS
 BEGIN
    RETURN cur_blk||'.'||
      NVL(Get_Item_Property(itm,NEXTITEM),
      first_itm);
 END;
BEGIN
  ur_blk   := :System.Cursor_Block;
  first_itm := Get_Block_Property( cur_blk, FIRST_ITEM );
  orig_itm  := :System.Cursor_Item;
  cur_itm   := The_Item_After(orig_itm);
  /*
  ** Loop until we come back to the item name where we started
  */
  WHILE (orig_itm <> cur_itm) LOOP

    /*
    ** If required item, set the found flag and exit procedure
    */
    IF Get_Item_Property(cur_itm,REQUIRED) = 'TRUE' THEN
      found := TRUE;
      RAISE Exit_Procedure;
    END IF;
    /*
    ** Setup for next iteration
    */
    cur_itm := The_Item_After(cur_itm);
  END LOOP;
  /*
  ** If we get here we wrapped all the way around the
  ** block's item names
  */
  wrapped := TRUE;
  RAISE Exit_Procedure;
EXCEPTION
  WHEN Exit_Procedure THEN
    /*
    ** If we found a required item and we didn't come back
    ** to the item we started in, then navigate there
    */
    IF found AND NOT wrapped THEN
Go_Item(cur_itm);
    END IF;
END;


Vordefinierte Prozedur GET_LIST_ELEMENT_COUNT

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt die Gesamtanzahl von Listenobjektelementen in einer Liste zurück, einschließlich Elementen mit NULL-Werten.

Syntax

FUNCTION GET_LIST_ELEMENT_COUNT
  (list_id  Item);

FUNCTION GET_LIST_ELEMENT_COUNT
  (list_name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

list_id	Gibt die eindeutige ID an, die Form Builder dem Listenobjekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.

list_name	Der Name, den Sie dem Listenobjekt beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.


Beispiele für GET_LIST_ELEMENT_COUNT

/*

**  Built-in:  GET_LIST_ELEMENT_COUNT
**  Example:   Add an element to the list item.  Before adding
**             the element, verify that the element is not in
**             the current list.
*/
DECLARE
 total_list_count    NUMBER(2);
   loop_index_var      NUMBER(2) := 1;
   list_element        VARCHAR2(50);
   list_element_value  VARCHAR2(50);
   list_element_to_add   VARCHAR2(50);
   list_value_to_add   VARCHAR2(50);
   element_match       VARCHAR2(5) := 'TRUE';
   value_match         VARCHAR2(5) := 'TRUE';
BEGIN
/*
** Determine the total number of list elements.
*/
   total_list_count := Get_List_Element_Count(list_id);
/*
** Compare the current list item elements with the element that
** will be added.
*/
   LOOP
     list_element := Get_List_Element_Value(list_id,
     loop_index_var);
     loop_index_var := loop_index_var + 1;
     IF list_element_to_add = list_element THEN
       element_match := 'FALSE';
     END IF;
     EXIT WHEN list_element = list_element_to_add OR
     loop_index_var = total_list_count;
   END LOOP;
/*
** Compare the current list item values with the value that
** will be added.
*/
   loop_index_var := 1;
   LOOP
     list_element_value:= Get_List_Element_Value(list_id,
        loop_index_var);
     loop_index_var := loop_index_var + 1;
     IF list_value_to_add = list_element_value THEN
       value_match := 'FALSE';
     END IF;
     EXIT WHEN list_element_value = list_value_to_add OR
     loop_index_var = total_list_count;
   END LOOP;
/*
**  Add the element and value if it is not in the current list
*/
   IF element_match AND value_match = 'TRUE' THEN
     Add_List_Element(list_id, list_name, list_element_to_add,
     list_value_to_add);
   END IF
END;


Vordefinierte Prozedur GET_LIST_ELEMENT_LABEL

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt Informationen über die angeforderte Listenelementbezeichnung zurück.

Syntax

FUNCTION GET_LIST_ELEMENT_LABEL
  (list_id     ITEM,
   list_name   VARCHAR2,
   list_index  NUMBER);

FUNCTION GET_LIST_ELEMENT_LABEL
  (list_name   VARCHAR2,
   list_index  NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

list_id	Gibt die eindeutige ID an, die Form Builder dem Listenobjekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.

list_name	Der Name, den Sie dem Listenobjekt beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

list_index	Gibt den Wert des Listenindex an. Der Listenindex wird zur Basis 1 generiert.Wenn der Index größer ist als die Anzahl von Elementen in der Liste, kann GET_LIST_ELEMENT_LABEL nicht ausgeführt werden.

Verwendungshinweise

Der mit einem Listenobjektelement verknüpfte Wert ist nicht unbedingt der aktuelle Wert des Listenobjekts, d.h. der Wert von :block.list_item.


Beispiele für GET_LIST_ELEMENT_LABEL

/*

**  Built-in:  GET_LIST_ELEMENT_LABEL
**  Example:   See GET_LIST_ELEMENT_COUNT
*/


Vordefinierte Prozedur GET_LIST_ELEMENT_VALUE

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt den Wert zurück, der mit dem angegebenen Listenobjektelement verknüpft ist.

Syntax

FUNCTION GET_LIST_ELEMENT_VALUE
  (list_id     ITEM,
   list_index  NUMBER);

FUNCTION GET_LIST_ELEMENT_VALUE
  (list_name   VARCHAR2,
   list_index  NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

list_id	Gibt die eindeutige ID an, die Form Builder dem Listenobjekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.

list_name	Der Name, den Sie dem Listenobjekt beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

list_index	Gibt den Listenindexwert an. Der Listenindex wird zur Basis 1 generiert. Dieser Parameter gibt eine Zeichenfolge zurück, die den Wert des angeforderten Elements enthält. Wenn der Index größer ist als die Anzahl von Elementen in der Liste, kann GET_LIST_ELEMENT_VALUE nicht ausgeführt werden.


Beispiele für GET_LIST_ELEMENT_VALUE

/*

**  Built-in:  GET_LIST_ELEMENT_VALUE
**  Example:   See GET_LIST_ELEMENT_COUNT
*/


Vordefinierte Prozedur GET_LOV_PROPERTY

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt Informationen über eine angegebene Werteliste zurück.

Sie müssen die vordefinierte Prozedur einmal für jeden Attributwert aufrufen, der abgerufen werden soll.

Syntax

FUNCTION GET_LOV_PROPERTY
  (lov_id, property  LOV);

FUNCTION GET_LOV_PROPERTY
  (lov_name  VARCHAR2,
   property  NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

lov_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_LOV, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist LOV.

lov_name	Gibt den Namen an, den Sie dem Objekt beim Erstellen zugewiesen haben.

property	Gibt das Attribut an, das für die angegebene Werteliste eingestellt werden soll. Die möglichen Attribute sind:

AUTO_REFRESH  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn das Attribut auf Ja eingestellt ist, d.h. wenn Form Builder die Abfrage jedesmal neu ausführt, wenn die Werteliste aufgerufen wird. Gibt die VARCHAR2-Zeichenfolge FALSE zurück, wenn das Attribut auf Nein eingestellt ist.

GROUP_NAME  Gibt den Namen der Datensatzgruppe zurück, die momentan mit dieser Werteliste verknüpft ist. Der Datentyp des Namens ist VARCHAR2.

HEIGHT   Gibt die Höhe der Werteliste zurück. Die Größe der Einheiten hängt von dem Koordinatensystem und der Standard-Schriftskalierung ab, die Sie für die Form angegeben haben.

WIDTH  Gibt die Breite der Werteliste zurück. Die Größe der Einheiten hängt vom Koordinatensystem und der Standard-Schriftskalierung ab, die Sie für die Form angegeben haben.

X_POS  Gibt die x-Koordinate zurück, die die aktuelle Position der oberen linken Ecke der Werteliste bezogen auf die obere linke Ecke des Bildschirms angibt.

Y_POS  Gibt die y-Koordinate zurück, die die aktuelle Position der oberen linken Ecke der Werteliste bezogen auf die obere linke Ecke des Bildschirms angibt.


Beispiele für GET_LOV_PROPERTY

/*

** Built-in:  GET_LOV_PROPERTY
** Example:  Can get the width/height of the LOV.
*/
DECLARE
  the_width  NUMBER;
  the_height NUMBER;
  lov_id      LOV;
BEGIN
  lov_id     := Find_LOV('My_LOV_1');
  the_width := Get_LOV_Property(lov_id, WIDTH);
  the_height := Get_LOV_Property(lov_id,HEIGHT);
END;


Vordefinierte Prozedur GET_MENU_ITEM_PROPERTY

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt den Status des Menüpunkts unter Berücksichtigung des jeweiligen Attributs zurück. Sie können diese vordefinierte Prozedur benutzen, um den Status einzulesen, und können dann den Status des Attributs mit der vordefinierten Prozedur SET_MENU_ITEM_PROPERTY ändern.

Syntax

FUNCTION GET_MENU_ITEM_PROPERTY
  (menuitem_id  MenuItem,
   property     NUMBER);

FUNCTION GET_MENU_ITEM_PROPERTY
  (menu_name.menuitem_name  VARCHAR2,
   property                 NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

menuitem_id	Die eindeutige ID, die Form Builder dem Menüpunkt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_MENU_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp ist MenuItem.

menu_name. menuitem_name	Der Name, den Sie dem Menüpunkt beim Erstellen zugewiesen haben. Wenn Sie den Menüpunkt mit Namen angeben, nehmen Sie den kennzeichnenden Menünamen mit auf, z.B. menu_name.menuitem_name. Der Datentyp ist VARCHAR2.

property	Geben Sie eine der folgenden Konstanten an, um Informationen über den Menüpunkt abzurufen:

CHECKED  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn ein Menüpunkt in Form eines Kontrollkästchens ausgewählt ist, und FALSE, wenn keines ausgewählt ist. Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn ein Menüpunkt in Form einer Optionsschaltfläche das ausgewählte Objekt in der Optionsgruppe ist, und FALSE, wenn ein anderes Optionsobjekt in der Gruppe ausgewählt ist. Gibt TRUE für andere Menüpunkt-Typen zurück.

ENABLED  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn ein Menüpunkt ausgewählt ist, und FALSE, wenn er nicht ausgewählt ist (d.h. grau angezeigt wird oder nicht verfügbar ist).

ICON_NAME  Gibt den Dateinamen der Symbol-Ressource zurück, die mit einem Menüobjekt verknüpft ist, dessen Attribut Symbol in Menü auf TRUE gesetzt ist.

LABEL  Gibt die VARCHAR2-Zeichenfolge für die Beschriftung des Menüpunkts zurück.

VISIBLE  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn ein Menüpunkt sichtbar ist, und FALSE, wenn der Menüpunkt verborgen ist.


Beispiele für GET_MENU_ITEM_PROPERTY

/*

** Built-in:  GET_MENU_ITEM_PROPERTY
** Example:  Toggle the enabled/disable status of the menu
**           item whose name is passed in.  Pass in a string
**           of the form 'MENUNAME.MENUITEM'.
*/
PROCEDURE Toggle_Enabled( menuitem_name VARCHAR2) IS
  mi_id MenuItem;
BEGIN
  mi_id := Find_Menu_Item( menuitem_name );
  IF Get_Menu_Item_Property(mi_id,ENABLED) = 'TRUE' THEN
    Set_Menu_Item_Property(mi_id,ENABLED,PROPERTY_FALSE);
  ELSE
    Set_Menu_Item_Property(mi_id,ENABLED,PROPERTY_TRUE);
  END IF;
END;


Vordefinierte Prozedur GET_MESSAGE

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt die aktuelle Meldung unabhängig vom Typ zurück.

Syntax

FUNCTION GET_MESSAGE;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

Keine


Einschränkungen bei GET_MESSAGE

GET_MESSAGE wird nur ausgelöst, wenn eine Meldung an das Ausgabegerät weitergeleitet wird, entweder von Form Builder oder durch einen Aufruf der vordefinierten Prozedur MESSAGE. Wenn Sie Meldungen mit dem On-Message-Trigger umleiten, gibt ein Aufruf von GET_MESSAGE keinen Wert zurück. Weitere Informationen finden Sie unter On-Message-Trigger.


Beispiele für GET_MESSAGE

/*

** Built-in:  GET_MESSAGE
** Example:   Capture the contents of the Message Line in a
**            local variable
*/
DECLARE
  string_var VARCHAR2(200);
BEGIN
  string_var := Get_Message;
END;


GET_OLE_propTyp;
GET_OLE_<proptype>

 Alle vordefinierten Prozeduren

Beschreibung

Ruft ein OLE-Attribut ab.

Es gibt vier Versionen der Funktion (die mit dem Wert in proptype angegeben werden), eine für jeden der Argumenttypen CHAR, NUM, OBJ und VAR.

Syntax

FUNCTION GET_OLE_CHAR
  (obj OLEOBJ, memberid PLS_INTEGER)
RETURN oleprop VARCHAR2;

...or...

FUNCTION GET_OLE_NUM
  (obj OLEOBJ, memberid PLS_INTEGER)
RETURN oleprop NUMBER;

...or...

FUNCTION GET_OLE_OBJ
  (obj OLEOBJ, memberid PLS_INTEGER)
RETURN oleprop OLEOBJ;

...or...

FUNCTION GET_OLE_VAR
  (obj OLEOBJ, memberid PLS_INTEGER,
   persistence BOOLEAN)
RETURN oleprop OLEVAR;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  OLE-Attribut. Beachten Sie, daß der Typ je nach Form der ausgewählten Funktion variiert.

Parameter

obj	Pointer zu dem OLE-Objekt.
Memberid	Member-ID des OLE-Attributs.
Persistence	Steuert die Persistenz des OLEVAR-Arguments nach dem Abrufen. Dies ist ein optionaler Parameter; wenn er nicht angegeben wird, ist der Standardwert FALSE (d.h. nicht-persistent).
Verwendungshinweise

•	Wenn INIT_OLEARGS- und ADD_OLEARG-Aufrufe vor diesem Aufruf GET_OLE_type stehen und dazwischen keine GET_OLE-, SET_OLE- oder CALL_OLE-Aufrufe erfolgt sind, ruft dieser Aufruf das Attribut mit den Argumenten ab, die in den Aufrufen INIT_OLEARGS und ADD_OLEARG angegeben wurden.

•	Im Gegensatz zu einem zurückgegebenen OLEVAR-Argument, dessen Persistenz vom Benutzer gesteuert werden kann, ist ein zurückgegebenes OLEOBJ-Argument stets nicht-persistent.


GET_OLEARG_Typ;
GET_OLEARG_<type>

 Alle vordefinierten Prozeduren

Beschreibung

Ruft das nte Argument aus dem OLE-Argumentstapel ab.

Es gibt vier Versionen der Funktion (die mit dem Wert in type angegeben werden), eine für jeden der Argumenttypen CHAR, NUM, OBJ und VAR.

Syntax

FUNCTION GET_OLEARG_CHAR
  (which NUMBER)
RETURN olearg VARCHAR2;

...or...

FUNCTION GET_OLEARG_NUM
  (which NUMBER)
RETURN olearg NUMBER;

...or...

FUNCTION GET_OLEARG_OBJ
  (which NUMBER)
RETURN olearg OLEOBJ;

...or...

FUNCTION GET_OLEARG_VAR
  (which NUMBER, persistence BOOLEAN)
RETURN olearg OLEVAR;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Das angegebene Argument. Beachten Sie, daß der Typ je nach Form der benutzten Funktion variiert.

Parameter

which	Eine relative Zahl, mit der angegeben wird, welches Argument in dem OLE-Argumentstapel abgerufen werden soll.
Persistence	Steuert die Persistenz des OLEVAR-Arguments nach dem Abrufen. Dies ist ein optionaler Parameter; wenn er nicht angegeben wird, ist der Standardwert FALSE (d.h. nicht-persistent).
Verwendungshinweise

•	Benutzen Sie diese Funktion, um Argumente abzurufen, deren Wert sich als Folge des Methodenaufrufs ändern kann.

•	Im Gegensatz zu einem zurückgegebenen OLEVAR-Argument, dessen Persistenz vom Benutzer gesteuert werden kann, ist ein zurückgegebenes OLEOBJ-Argument stets nicht-persistent.


GET-OLE-MEMBERID;
GET_OLE_MEMBERID

 Alle vordefinierten Prozeduren

Beschreibung

Ruft die Member-ID der benannten Methode oder des Attributs eines OLE-Objekts ab.

Syntax

FUNCTION GET_OLE_MEMBERID
  (obj OLEOBJ, name VARCHAR2)
RETURN memberid PLS_INTEGER;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Member-ID der Methode oder des Attributs

Parameter

obj	Pointer zu dem OLE-Objekt.
Name	Name der Methode oder des Attributs des Objekts.
Verwendungshinweise

Die Member-ID ist ein fest codierter Wert. Das zurückgegebene Ergebnis kann je nach der Sprache variieren, mit der der OLE-Server ausgeführt wird.


Vordefinierte Prozedur GET_PARAMETER_ATTR

  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt den aktuellen Wert und aktuellen Typ eines angegebenen Parameters in einer angegebenen Parameterliste zurück.

Syntax

FUNCTION GET_PARAMETER_ATTR
  (list       VARCHAR2,
   key        VARCHAR2,
   paramtype  NUMBER,
   value      VARCHAR2);

FUNCTION GET_PARAMETER_ATTR
  (name       VARCHAR2,
   key        VARCHAR2,
   paramtype  NUMBER,
   value      VARCHAR2);

Prozedurtyp  Uneingeschränkte Prozedur, die zwei OUT-Parameter zurückgibt.

Abfragemodus  Ja

Parameter

list oder name	Gibt die Parameterliste an, der der Parameter zugewiesen ist. Der aktuelle Parameter kann entweder eine Parameterlisten-ID vom Typ PARAMLIST oder der VARCHAR2-Name der Parameterliste sein.

key	Der VARCHAR2-Name des Parameters.

paramtype	Ein OUT-Parameter vom Typ NUMBER. Der aktuelle angegebene Parameter muß eine Variable vom Typ NUMBER sein und darf kein Ausdruck sein. Durch Ausführung des Parameters wird der Wert der Variablen auf eine der numerischen Konstanten eingestellt:

DATA_PARAMETER  Gibt an, daß der Wert des Parameters dem Namen einer Datensatzgruppe entspricht.

TEXT_PARAMETER  Gibt an, daß der Wert des Parameters ein tatsächlicher Datenwert ist.

value	Ein OUT-Parameter vom Typ VARCHAR2. Wenn es sich bei dem Parameter um einen Datentyp-Parameter handelt, entspricht der Wert dem Namen einer Datensatzgruppe. Wenn es sich um einen Textparameter handelt, entspricht der Wert einem tatsächlichen Textparameter.

Einen Überblick über die Benutzung von OUT-Parametern mit PL/SQL-Prozeduren finden Sie in PL/SQL 2.0 User's Guide and Reference.


Vordefinierte Prozedur GET_PARAMETER_LIST

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Durchsucht die Liste mit Parameterwerten und gibt eine Parameterlisten-ID zurück, wenn eine gültige Parameterliste mit dem angegebenen Namen gefunden wird. Sie müssen eine Variable vom Typ PARAMLIST definieren, um den Rückgabewert zu akzeptieren. Diese Funktion entspricht den FIND_-Funktionen für andere Objekte.

Syntax

FUNCTIOn GET_PARAMETER_LIST
  (name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  ParamList

Abfragemodus  Ja

Parameter

name	Gibt einen gültigen VARCHAR2-Parameterlistennamen an.


Beispiele für GET_PARAMETER_LIST

Siehe CREATE_PARAMETER_LIST


Vordefinierte Prozedur GET_RADIO_BUTTON_PROPERTY

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt Informationen über eine angegebene Optionsschaltfläche zurück.

Syntax

FUNCTION GET_RADIO_BUTTON_PROPERTY
  (item_id      ITEM,
   button_name  VARCHAR2,
   property     NUMBER);

FUNCTION GET_RADIO_BUTTON_PROPERTY(
  item_name    VARCHAR2,
  button_name  VARCHAR2,
  property     NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

item_id	Gibt die ID des Optionsgruppenobjekts an. Form Builder weist beim Erstellen des Objekts eine eindeutige ID zu. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.

item_name	Gibt den Namen der Optionsgruppe an. Die Optionsgruppe ist der Eigentümer bzw. das übergeordnete Objekt der untergeordneten Optionsschaltflächen. Der Datentyp des Namens ist VARCHAR2.

button_name	Gibt den Namen der Optionsschaltfläche an, deren Attribut gewünscht wird. Der Datentyp des Namens ist VARCHAR2.

property	Gibt das Attribut an, für das der aktuelle Status ermittelt werden soll. Sie können die folgenden Attributkonstanten angeben:

BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts.

ENABLED  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn das Attribut auf Ja eingestellt ist, und die VARCHAR2-Zeichenfolge FALSE, wenn das Attribut auf Nein eingestellt ist.

FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden.

FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

FONT_SIZE  Schriftgrad in Punkt.

FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning).

FONT_STYLE  Schriftstil.

FONT_WEIGHT  Schriftstärke.

FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

HEIGHT  Gibt die Höhe der Optionsschaltfläche an. Der Wert wird als VARCHAR2-Folge zurückgegeben und wird in den Einheiten ausgedrückt, die von dem Attribut Koordinatensystem des Formmoduls für die Form festgelegt wurden.

LABEL  Gibt die aktuelle Zeichenfolgen-Beschriftung für diese Optionsschaltfläche zurück.

PROMPT_BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts.

PROMPT_FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden.

PROMPT_FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

PROMPT_FONT_SIZE  Schriftgrad in Punkt.

PROMPT_FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning).

PROMPT_FONT_STYLE  Schriftstil.

PROMPT_FONT_WEIGHT  Schriftstärke.

PROMPT_FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

PROMPT_WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

VISIBLE  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn das Attribut auf Ja eingestellt ist. Wenn nicht, wird die VARCHAR2-Zeichenfolge FALSE angegeben.

VISUAL_ATTRIBUTE  Gibt den Namen des gerade gültigen visuellen Attributs zurück. Wenn der Optionsschaltfläche kein benanntes visuelles Attribut zugewiesen ist, wird CUSTOM für ein benutzerdefiniertes visuelles Attribut oder DEFAULT für ein standardmäßiges visuelles Attribut zurückgegeben.

WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

WIDTH  Gibt die Breite der Optionsschaltfläche einschließlich dem Beschriftungsteil zurück. Der Wert wird als VARCHAR2-Folge zurückgegeben und wird in den Einheiten ausgedrückt, die von dem Attribut Koordinatensystem des Formmoduls für die Form festgelegt wurden.

WINDOW_HANDLE  Gibt eine eindeutige interne VARCHAR2-Konstante zurück, mit der Objekte referenziert werden. Gibt die Zahl 0 zurück, wenn es sich bei der Plattform nicht um Microsoft Windows handelt.

X_POS  Gibt die x-Koordinate zurück, die die aktuelle Position der oberen linken Ecke der Schaltfläche relativ zur oberen linken Ecke der Leinwand angibt. Der Wert wird als VARCHAR2-Folge zurückgegeben und wird in den Einheiten ausgedrückt, die von dem Attribut Koordinatensystem des Formmoduls definiert werden.

Y_POS  Gibt die y-Koordinate zurück, die die aktuelle Position der oberen linken Ecke der Schaltfläche relativ zur oberen linken Ecke der Leinwand angibt. Der Wert wird als VARCHAR2-Folge zurückgegeben und wird in den Einheiten ausgedrückt, die von dem Attribut Koordinatensystem des Formmoduls definiert wurden.


Beispiele für GET_RADIO_BUTTON_PROPERTY

/*

** Built-in:  GET_RADIO_BUTTON_PROPERTY
** Example:   Determine whether a given radio button is
**            displayed and has a particular visual
**            attribute.
*/
DECLARE
  it_id   Item;
  disp    VARCHAR2(5);
  va_name VARCHAR2(40);
BEGIN
  it_id := Find_Item('My_Favorite_Radio_Grp');
  disp    := Get_Radio_Button_Property( it_id, 'REJECTED',                   VISIBLE);
  va_name := Get_Radio_Button_Property( it_id, 'REJECTED',
          VISUAL_ATTRIBUTE);

  IF disp = 'TRUE' AND va_name = 'BLACK_ON_PEACH' THEN
    Message('You win a prize!');
  ELSE
    Message('Sorry, no luck today.');
  END IF;
END;


Vordefinierte Prozedur GET_RECORD_PROPERTY

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt den Wert für das angegebene Attribut der angegebenen Datensatznummer in dem angegebenen Block zurück. Die drei Parameter sind obligatorisch. Wenn Sie nicht die richtigen Konstanten übergeben, gibt Form Builder eine Fehlermeldung aus. So müssen Sie z.B. für den Parameter record_number eine gültige Datensatznummer als Argument übergeben.

Syntax

FUNCTION GET_RECORD_PROPERTY
  (record_number  NUMBER,
   block_name     VARCHAR2,
   property       NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

record_number	Gibt den Datensatz in einem Block an, für den Attributinformationen gewünscht werden. Die Nummer muß einer Datensatznummer entsprechen.

block_name	Gibt den Block mit dem Zieldatensatz an.

property	Gibt das Attribut an, dessen aktueller Status ermittelt werden soll. Eine Attributkonstante wird unterstützt: Status.

STATUS gibt NEW zurück, wenn der Datensatz als neu markiert ist und in dem Block kein geänderter Datensatz vorhanden ist. Gibt CHANGED zurück, wenn der Datensatz als geändert markiert ist. Gibt QUERY zurück, wenn der Datensatz als Abfrage markiert ist. Gibt INSERT zurück, wenn der Datensatz als Einfügen markiert ist.

Verwendungshinweise

In der folgenden Tabelle werden die Fälle dargestellt, in denen der Status NEW zurückgegeben wird.

	Datensatz-status	Block-status	Form-status
Datensatz ohne geänderte Felder erstellt	NEW	<N|Q|C>	<N|Q|C>
... und alle Datensätze im aktuellen Block sind NEW	NEW	NEW	<N|Q|C>
... und alle Blöcke in der aktuellen Form sind NEW	NEW	NEW	NEW

In der folgenden Tabelle werden die Auswirkungen von Änderungen an Basistabellenobjekten und Steuerelementobjekten in Basistabellen- und Steuerelementblöcken auf den Datensatz-, Block- und Formstatus dargestellt.

Blocktyp/Typ von geändertem Objekt	Datensatz-status vor Änderung	Datensatz-status nach Änderung	Block-status	Form-status
In einem Basistabellen-block: Änderung eines Basistabellen-objekts	NEW	INSERT	CHANGED	CHANGED
In einem Basistabellen-block: Änderung eines Basistabellen-objekts	QUERY	CHANGED	CHANGED	CHANGED
In einem Basistabellen-block: Änderung eines Steuerelement-objekts	QUERY	QUERY	<Q|C>	<Q|C>
... und kein Datensatz im aktuellen Block ist geändert		QUERY	QUERY	<Q|C>
... und kein Block in der aktuellen Form ist geändert		QUERY	QUERY	QUERY
In einem Basistabellen-block: Änderung eines Steuerelement-objekts	NEW	INSERT	<Q|C>	<Q|C>
In einem Steuerblock: Änderung eines Steuerelements	NEW	INSERT	<Q>	<Q|C>
... und kein Datensatz im aktuellen Block ist geändert		INSERT	QUERY	<Q|C>
... und kein Block in der aktuellen Form ist geändert		INSERT	QUERY	QUERY
Hinweis:

In der Regel wird durch jede Zuweisung zum Datenbankobjekt der Status des Datensatzes von QUERY in CHANGED (oder von NEW in INSERT) geändert, selbst wenn sich der zugewiesene Wert nicht vom vorherigen Wert unterscheidet. Die Übergabe eines Objekts an eine Prozedur als OUT- oder IN OU-Parameter wird als Zuweisung gezählt.

Sowohl die vordefinierte Prozedur GET_RECORD_PROPERTY als auch die Systemvariable SYSTEM.RECORD_STATUS geben den Status eines Datensatzes in einem bestimmten Block zurück. In den meisten Fällen geben sie denselben Status zurück. Es gibt jedoch besondere Fälle, in denen die Ergebnisse möglicherweise differieren.

GET_RECORD_PROPERTY hat immer einen Wert von NEW, CHANGED, QUERY oder INSERT, weil GET_RECORD_PROPERTY den Status eines bestimmten Datensatzes ungeachtet der Verarbeitungssequenz oder ungeachtet dessen, ob der Datensatz der aktuelle Datensatz ist, zurückgibt.

SYSTEM.RECORD_STATUS kann in bestimmten Fällen hingegen einen Wert von NULL zurückgeben, weil SYSTEM.RECORD_STATUS undefiniert ist, wenn kein aktueller Datensatz im System vorhanden ist. In einem When-Clear-Block-Trigger befindet sich Form Builder z.B. in der Verarbeitungsfolge auf der Blockebene, so daß kein aktueller Datensatz für die Berichterstellung vorhanden ist, und der Wert von SYSTEM.RECORD_STATUS ist NULL.


Beispiele für GET_RECORD_PROPERTY

/*

** built-in:  GET_RECORD_PROPERTY
** Example:   Obtain the status of a record in given block
*/
BEGIN
  IF Get_Record_Property(1,'orders',STATUS) = 'NEW' AND
     Get_Record_Property(1,'customers',STATUS) = 'NEW' THEN
    Message('You must enter a customer and order first!');
    RAISE Form_Trigger_Failure;
  END IF;
END;


Vordefinierte Prozedur GET_RELATION_PROPERTY

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt den Status des angegebenen Beziehungsattributs zurück.

Syntax

FUNCTION GET_RELATION_PROPERTY
  (relation_id  Relation,
   property     NUMBER);

FUNCTION GET_RELATION_PROPERTY
  (relation_name  VARCHAR2,
   property       NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

relation_id	Gibt die eindeutige ID an, die Form Builder beim Erstellen der Beziehung zuweist. Benutzen Sie die vordefinierte Prozedur FIND_RELATION, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist Relation.

relation_name	Gibt den VARCHAR2-Namen an, den Sie der Beziehung bei der Definition zugewiesen haben, oder den Namen, den Form Builder der Beziehung beim Erstellen zugewiesen hat.

property	Gibt das Attribut an, dessen aktueller Status ermittelt werden soll. Sie können folgende Attributkonstanten benutzen:

AUTOQUERY  Gibt den VARCHAR2-Wert TRUE zurück, wenn das Beziehungsattribut Automatische Abfrage auf Ja eingestellt ist, und FALSE, wenn es auf Nein eingestellt ist. Wenn das Beziehungsattribut Verzögert auf Ja eingestellt ist, bestimmt dieses Attribut, ob Form Builder den Detail-Block automatisch auffüllt, wenn ein anderer Datensatz zum aktuellen Datensatz im Master-Block wird.

DEFERRED_COORDINATION  Gibt den VARCHAR2-Wert TRUE zurück, wenn das Beziehungsattribut Verzögert auf Ja eingestellt ist, und FALSE, wenn es auf Nein eingestellt ist. Dieses Attribut legt fest, ob der Detail-Datenblock sofort mit dem aktuellen Master-Datensatz koordiniert werden soll, oder ob er leer bleiben soll, bis der Operator zum Detail-Block navigiert.

DETAIL_NAME  Gibt den VARCHAR2-Namen des Detail-Blocks in der angegebenen Master-Detail-Beziehung zurück.

MASTER_DELETES  Gibt einen der folgenden VARCHAR2-Werte zurück, um die aktuelle Einstellung des Blockattributs Verhalten bei Datensatz löschen anzugeben: NON_ISOLATED, ISOLATED oder CASCADING.

MASTER_NAME  Gibt den VARCHAR2-Namen des Master-Blocks in der angegebenen Master-Detail-Beziehung zurück.

NEXT_DETAIL_RELATION  Gibt den VARCHAR2-Namen der nächsten Detail-Beziehung zurück, sofern vorhanden. Um den Namen des ersten Details für einen bestimmten Block einzulesen, rufen Sie GET_BLOCK_PROPERTY auf. Diese Konstante ergibt NULL, wenn kein Detail vorhanden ist.

NEXT_MASTER_RELATION  Gibt den VARCHAR2-Namen der nächsten Beziehung zurück, sofern vorhanden. Um den Namen der ersten Beziehung für einen bestimmten Block einzulesen, rufen Sie GET_BLOCK_PROPERTY auf. Diese Konstante ergibt NULL, wenn keine Beziehung vorhanden ist.

PREVENT_MASTERLESS_OPERATION  Gibt den VARCHAR2-Wert TRUE zurück, wenn dieses Beziehungsattribut Ja ist, und FALSE, wenn es Nein ist. Wenn das Attribut auf Ja eingestellt ist, läßt Form Builder nicht zu, daß Datensätze in den Detail-Block eingefügt werden, wenn im Master-Block kein Master-Datensatz vorhanden ist. Außerdem wird die Abfrage im Detail-Block nicht zugelassen, wenn kein Master-Datensatz aus der Datenbank vorhanden ist.


Beispiele für GET_RELATION_PROPERTY

/*

** Built-in:  GET_RELATION_PROPERTY
** Example:   If the relation is not deferred, then go
**            coordinate the detail block. Otherwise, mark
**            the detail block as being in need of
**            coordination for an eventual deferred query.
*/
PROCEDURE Query_The_Details(rel_id Relation,
    detail VARCHAR2) IS
BEGIN
  IF Get_Relation_Property(rel_id, DEFERRED_COORDINATION)
   = 'FALSE' THEN
    Go_Block(detail);
    IF NOT Form_Success THEN
      RAISE Form_Trigger_Failure;
    END IF;
    Execute_Query;
  ELSE
    Set_Block_Property(detail, coordination_status,
             NON_COORDINATED);
  END IF;
End;


Vordefinierte Prozedur GET_REPORT_OBJECT_PROPERTY

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Ruft programmgesteuert ein Attribut eines Berichtobjekts ab.

Syntax

FUNCTION GET_REPORT_OBJECT_PROPERTY
  (report_id REPORT_OBJECT,
   property NUMBER
);

FUNCTION GET_REPORT_OBJECT_PROPERTY
  (report_name VARCHAR2,
   property NUMBER
);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

report_id	Gibt die eindeutige ID des Berichts an. Sie können die Bericht-ID für einen bestimmten Bericht mit FIND_REPORT_OBJECT ermitteln.

report_name	Gibt den eindeutigen Namen des Berichts an.

property	Eine der folgenden Konstanten:

REPORT_EXECUTION_MODE: Gibt einen Zeichenfolgenwert des Berichtausführungsmodus zurück, BATCH oder RUNTIME.

REPORT_COMM_MODE: Gibt einen Zeichenfolgenwert des Berichtkommunikationsmodus zurück, SYNCHRONOUS oder ASYNCHRONOUS.

REPORT_DESTYPE: Gibt einen Zeichenfolgenwert des Bericht-Zieltyps zurück, PREVIEW, FILE, PRINTER, MAIL, CACHE oder SCREEN.

REPORT_FILENAME: Gibt einen Zeichenfolgenwert des Berichtdateinamens zurück.

REPORT_SOURCE_BLOCK: Gibt einen Zeichenfolgenwert des Namens des Berichtquellblocks zurück.

REPORT_QUERY_NAME: Gibt einen Zeichenfolgenwert des Berichtabfragenamens zurück.

REPORT_DESNAME: Gibt einen Zeichenfolgenwert des Bericht-Zielnamens zurück.

REPORT_DESFORMAT: Gibt einen Zeichenfolgenwert des Bericht-Zielformats zurück.

REPORT_SERVER: Gibt einen Zeichenfolgenwert des Report Server-Namens zurück.

REPORT_OTHER: Gibt einen Zeichenfolgenwert der anderen benutzerdefinierten Berichtattribute zurück.

Verwendungshinweise

•	GET_REPORT_OBJECT_PROPERTY gibt einen Zeichenfolgenwert für alle Attribute zurück. Dagegen stellt SET_REPORT_OBJECT_PROPERTY Attribute mit Konstanten- oder Zeichenfolgenwerten ein. Der Wertetyp hängt von dem eingestellten Attribut ab.


Beispiele für GET_REPORT_OBJECT_PROPERTY

DECLARE

repid REPORT_OBJECT;

report_prop VARCHAR2(20);

BEGIN

repid := find_report_object('report4');

report_prop := get_report_object_property(repid,
          REPORT_EXECUTION_MODE);

message('REPORT EXECUTION MODE PROPERTY IS ' || report_prop);

report_prop  := get_report_object_property(repid, REPORT_COMM_MODE);

message('REPORT COMM_MODE PROPERTY IS ' || report_prop);

report_prop  := get_report_object_property(repid, REPORT_DESTYPE);

message('REPORT DESTYPE PROPERTY IS ' || report_prop);

report_prop := get_report_object_property(repid, REPORT_FILENAME);

message('REPORT_FILENAME PROPERTY IS ' || report_prop);

END;


Vordefinierte Prozedur GET_TAB_PAGE_PROPERTY

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt Attributwerte für eine angegebene Registerseite zurück.

Syntax

FUNCTION GET_TAB_PAGE_PROPERTY
  (tab_page_id  TAB_PAGE,
   property     NUMBER);

FUNCTION GET_TAB_PAGE_PROPERTY
  (tab_page_name  VARCHAR2,
   property       NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

tab_page_id	Die eindeutige ID, die Form Builder dem Registerseitenobjekt beim Erstellen zugewiesen hat. Benutzen Sie die vordefinierte Prozedur FIND_TAB_PAGE, um die ID an eine Variable vom Datentyp TAB_PAGE zurückzugeben.

tab page_name	Der Name, den Sie dem Registerseitenobjekt beim Erstellen zugewiesen haben. Hinweis: Wenn zwei Registerseiten in demselben Formmodul denselben Namen haben, müssen Sie die Leinwand und die Registerseite angeben (z.B. CVS_1.TAB_PG_1).

property	Das Attribut, dessen Wert für die angegebene Registerseite eingelesen werden soll. Die möglichen Attribute sind:

BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts.

CANVAS_NAME  Gibt den VARCHAR2-Namen der Leinwand zurück, zu der die Registerseite gehört.

ENABLED  Gibt die VARCHAR2-Zeichenfolge TRUE zurück, wenn eine Registerseite aktiviert ist. Wenn sie nicht aktiviert ist (z.B. grau angezeigt wird und nicht verfügbar ist), wird FALSE zurückgegeben.

FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden.

FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

FONT_SIZE  Schriftgrad in Punkt.

FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning).

FONT_STYLE  Schriftstil.

FONT_WEIGHT  Schriftstärke.

FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

LABEL  Gibt die VARCHAR2-Zeichenfolge für die Beschriftung der Registerseite zurück.

VISIBLE  Gibt den VARCHAR2-Wert TRUE zurück, wenn die Registerseite sichtbar ist. Wenn sie nicht sichbar ist, wird FALSE zurückgegeben. Eine Registerseite wird als sichtbar bezeichnet, wenn sie momentan auf dem Bildschirm dargestellt wird, selbst wenn sie vollständig hinter einer anderen Registerseite verborgen ist.

VISUAL_ATTRIBUTE  Gibt den Namen des momentan gültigen visuellen Attributs zurück. Wenn der Registerseite kein benanntes visuelles Attribut zugewiesen ist, wird CUSTOM für ein benutzerdefiniertes visuelles Attribut oder DEFAULT für ein standardmäßiges visuelles Attribut zurückgegeben.

WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.


Beispiele für GET_TAB_PAGE_PROPERTY

/* Use FIND_TAB_PAGE and GET_TAB_PAGE_PROPERTY to check

** if a tab page is enabled:
*/
DECLARE
  tp_id  TAB_PAGE;
  live   VARCHAR2(32);

BEGIN
  tp_id := FIND_TAB_PAGE('tab_page_1');
  live  := GET_TAB_PAGE_PROPERTY(tp_id, enabled);
END;


Vordefinierte Prozedur GET_TREE_NODE_PARENT

 Beispiele 	 Alle vordefinierten Prozeduren

Beschreibung

Gibt den übergeordneten Knoten des angegebenen Knotens zurück.

Syntax

FUNCTION GET_TREE_NODE_PARENT

  (item_name VARCHAR2

   node NODE);

FUNCTION GET_TREE_NODE_PARENT

  (item_id ITEM

   node NODE);

Rückgabewert  NODE

Prozedurtyp  Uneingeschränkte Funktion

Abfragemodus  Nein

Parameter

item_name	Gibt den Namen des Objekts an, das beim Entwurf erstellt wurde. Der Datentyp des Namens ist VARCHAR2-Folge.
Item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.
Node	Gibt einen gültigen Knoten an.


Beispiele für GET_TREE_NODE_PARENT

/*

** Built-in:  GET_TREE_NODE_PARENT
*/

-- This code could be used in a WHEN-TREE-NODE-SELECTED

-- trigger to locate the parent of the node that was

-- clicked on.

DECLARE

   htree         ITEM;

   parent_node   FTREE.NODE;

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Get the parent of the node clicked on.

   parent_node := Ftree.Get_Tree_Node_Parent(htree, :SYSTEM.TRIGGER_NODE);

   ...

END;


Vordefinierte Prozedur GET_TREE_NODE_PROPERTY

 Beispiele 	 Alle vordefinierten Prozeduren

Beschreibung

Gibt den Wert des angegebenen Attributs des hierarchischen Baumknotens zurück.

Syntax

FUNCTION GET_TREE_NODE_PROPERTY

  (item_name VARCHAR2,

   node NODE,

   property NUMBER);

FUNCTION GET_TREE_NODE_PROPERTY

  (item_id ITEM,

   node NODE,

   property NUMBER);

Rückgabewert  VARCHAR2

Prozedurtyp  Uneingeschränkte Funktion

Abfragemodus  Nein

Parameter

item_name	Gibt den Namen des Objekts an, das beim Entwurf erstellt wurde. Der Datentyp des Namens ist VARCHAR2-Folge.
Item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.
Node	Gibt einen gültigen Knoten an.
Property	Geben Sie eines der folgenden Attribute an: NODE_STATE   Gibt den Status des hierarchischen Baumknotens zurück. Dies ist entweder EXPANDED_NODE, COLLAPSED_NODE oder LEAF_NODE. NODE_DEPTH   Gibt die Verschachtelungsebene des hierarchischen Baumknotens zurück. NODE_LABEL   Gibt die Beschriftung zurück. NODE_ICON   Gibt den Symbolnamen zurück. NODE_VALUE   Gibt den Wert des hierarchischen Baumknotens zurück.


Beispiele für GET_TREE_NODE_PROPERTY

/*

** Built-in:  GET_TREE_NODE_PROPERTY
*/

-- This code could be used in a WHEN-TREE-NODE-SELECTED

-- trigger to return the value of the node that was

-- clicked on.

DECLARE

   htree         ITEM;

   node_value    VARCHAR2(100);

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Find the value of the node clicked on.

   node_value := Ftree.Get_Tree_Node_Property(htree, :SYSTEM.TRIGGER_NODE, Ftree.NODE_VALUE);

   ...

END;


Vordefinierte Prozedur GET_TREE_PROPERTY

 Beispiele 	 Alle vordefinierten Prozeduren

Beschreibung

Gibt Attributwerte des angegebenen hierarchischen Baumes zurück.

Syntax

FUNCTION GET_TREE_PROPERTY

  (item_name VARCHAR2,

   property NUMBER);

FUNCTION GET_TREE_PROPERTY

  (item_id ITEM,

   property NUMBER);

Rückgabewert  VARCHAR2

Prozedurtyp  Uneingeschränkte Funktion

Abfragemodus  Nein

Parameter

item_name	Gibt den Namen an, den Sie dem Objekt beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2-Folge.
Item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.
Property	Geben Sie eines der folgenden Attribute an: DATASOURCE   Gibt die Quelle zurück, mit der der hierarchische Baum anfänglich aufgefüllt wird, entweder in Form Builder oder mit der vordefinierten Prozedur SET_TREE_PROPERTY. Gibt EXTERNAL zurück, wenn in Form Builder kein Attribut festgelegt wurde. RECORD_GROUP   Gibt die Datensatzgruppe zurück, mit der der hierarchische Baum anfänglich aufgefüllt wurde, entweder in Form Builder oder mit der vordefinierten Prozedur SET_TREE_PROPERTY. Dies kann eine Null-Folge sein. QUERY_TEXT   Gibt den Text der Abfrage zurück, mit der der hierarchische Baum anfänglich aufgefüllt wurde, entweder in Form Builder oder mit der vordefinierten Prozedur SET_TREE_PROPERTY. Dies kann eine Null-Folge sein. NODE_COUNT   Gibt die Anzahl von Zeilen in der hierarchischen Baum-Datengruppe zurück. SELECTION_COUNT   Gibt die Anzahl von ausgewählten Zeilen in dem hierarchischen Baum zurück. ALLOW_EMPTY_BRANCHES   Gibt die Zeichenfolge TRUE oder FALSE zurück. ALLOW_MULTI-SELECT   Gibt die Zeichenfolge TRUE oder FALSE zurück.
Verwendungshinweise

Die von den Datenquellen RECORD_GROUP und QUERY_TEXT zurückgegebenen Werte reflektieren nicht notwendigerweise die aktuellen Daten oder den Status des Baumes. Bei den zurückgegebenen Werten handelt es sich um die in Form Builder eingestellten Werte, und nicht um diejenigen, die mit der vordefinierten Prozedur SET_TREE_PROPERTY eingestellt wurden.


Beispiele für GET_TREE_PROPERTY

/*

** Built-in:  GET_TREE_PROPERTY
*/

-- This code could be used to find out how many nodes are

-- in a given tree.

DECLARE

   htree         ITEM;

   node_count    NUMBER;

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Get the node count of the tree.

   node_count := Ftree.Get_Tree_Property(htree, Ftree.NODE_COUNT);

   ...

END;


Vordefinierte Prozedur GET_TREE_SELECTION

 Beispiele 	 Alle vordefinierten Prozeduren

Beschreibung

Gibt den Datenknoten zurück, der mit selection angegeben wird. Bei Selection handelt es sich um einen Index auf die Liste der ausgewählten Knoten.

Syntax

FUNCTION GET_TREE_SELECTION

  (item_name VARCHAR2,

   selection NUMBER);

FUNCTION GET_TREE_SELECTION

  (item_id ITEM,

   selection NUMBER);

Rückgabewert  FTREE.NODE

Prozedurtyp  Uneingeschränkte Funktion

Abfragemodus  Nein

Parameter

item_name	Gibt den Namen des Objekts an, das beim Entwurf erstellt wurde. Der Datentyp des Namens ist VARCHAR2-Folge.
Item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.
selection	Gibt die Auswahl eines einzelnen Knotens an.


Beispiele für GET_TREE_SELECTION

/*

** Built-in:  GET_TREE_SELECTION
*/

-- This code will process all tree nodes marked as selected.  See the

-- Ftree.Set_Tree_Selection built-in for a definition of "selected".

DECLARE

   htree         ITEM;

   num_selected  NUMBER;

   current_node  FTREE.NODE;

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Find the number of nodes marked as selected.

   num_selected := Ftree.Get_Tree_Property(htree, Ftree.SELECTION_COUNT);

   -- Loop through selected nodes and process them. If you are deleting

   -- nodes, be sure to loop in reverse!

   FOR j IN 1..num_selected LOOP

      current_node := Ftree.Get_Tree_Selection(htree, j);

      ...

   END LOOP;

END;


Vordefinierte Prozedur GET_VA_PROPERTY

 Alle vordefinierten Prozeduren

Beschreibung

Gibt visuelle Attributwerte für das angegebene Attribut zurück.

Syntax

FUNCTION GET_VA_PROPERTY

  (va_id VISUALATTRIBUTE

   property NUMBER);

FUNCTION GET_VA_PROPERTY

  (va_name VARCHAR2

   property NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

va_id	Die eindeutige ID, die Form Builder dem visuellen Attribut zugewiesen hat, als Sie es erstellt haben. Der Datentyp ist VISUALATTRIBUTE.
va_name	Der Name, den Sie dem visuellen Attribut beim Erstellen zugewiesen haben. Der Datentyp ist VARCHAR2.
Property	Geben Sie eines der folgenden Attribute an: BACKGROUND_COLOR   Farbe des Hintergrundbereichs des Objekts. FILL_PATTERN   Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die von Hintergrundfarbe und Vordergrundfarbe angegeben werden. FONT_NAME   Schriftartfamilie, die für den Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig. FONT_SIZE   Schriftgrad in Hundertstel Punkt. 8 Pt. wäre z.B. 800. FONT_SPACING   Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning). FONT_STYLE   Schriftstil. FONT_WEIGHT   Schriftstärke. FOREGROUND_COLOR   Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes in dem Objekt. WHITE_ON_BLACK   Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt wird.


GET_VAR_BOUNDS

 Alle vordefinierten Prozeduren

Beschreibung

Ruft die Grenzwerte des Array einer OLE-Varianten ab.

Syntax

PROCEDURE GET_VAR_BOUNDS
  (var OLEVAR, bounds OLE_SAFEARRAYBOUNDS);

Prozedurtyp   Uneingeschränkte Prozedur

Parameter

var	Variante.
bounds	Die PL/SQL-Tabelle, die mit den Grenzwerten des Array aufgefüllt wird. Weitere Informationen über den Inhalt und das Layout dieses Parameters finden Sie unter Array-Typen zur OLE-Unterstützung.


GET_VAR_DIMS

 Alle vordefinierten Prozeduren

Beschreibung

Bestimmt, ob es sich bei einer OLE-Varianten um ein Array handelt. Wenn ja, wird die Anzahl von Dimensionen in diesem Array abgerufen.

Syntax

FUNCTION GET_VAR_DIMS
  (var OLEVAR)
RETURN vardims PLS_INTEGER;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Ein Wert von null (0), wenn es sich bei der Varianten nicht um ein Array handelt. Sonst entspricht der Rückgabewert der Anzahl von Dimensionen in dem Array.

Parameter

var	Variante.


GET_VAR_TYPE

 Alle vordefinierten Prozeduren

Beschreibung

Ruft den Typ einer OLE-Varianten ab.

Syntax

FUNCTION GET_VAR_TYPE
  (var OLEVAR)
RETURN vartype VT_TYPE;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Typ der Variablen

Parameter

var	Variante.
vartype	Typ der Varianten.
Verwendungshinweise

Eine Liste der unterstützten VT_TYPEs finden Sie unter OLE-Variantentypen.


GET_VERB_COUNT

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt die Anzahl von Verben zurück, die ein OLE-Server erkennt. Ein OLE-Verb gibt die Aktion an, die Sie mit einem OLE-Objekt ausführen können. Die Anzahl von verfügbaren Verben hängt von dem OLE-Server ab. Die Anzahl von Verben wird in Form einer VARCHAR2-Zeichenfolge zurückgegeben und muß in NUMBER konvertiert werden, damit sie für die Bestimmung des Verbindex und Verbnamens für jedes Verb benutzt werden kann. Sie müssen eine Variable des entsprechenden Typs definieren, die den Rückgabewert akzeptiert.

Syntax

FUNCTION GET_VERB_COUNT
  (item_id  Item);

FUNCTION GET_VERB_COUNT
  (item_name VARCHAR2);

Rückgabewert  VARCHAR2

Prozedurtyp  Uneingeschränkte Funktion

Abfragemodus  Nein

Parameter

item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist Item.

item_name	Gibt den Namen des beim Entwurf erstellten Objekts an. Der Datentyp des Namens ist VARCHAR2.


Einschränkungen bei GET_VERB_COUNT

Nur bei Microsoft Windows und Macintosh gültig.


Beispiele für GET_VERB_COUNT

/*

** Built-in: GET_VERB_COUNT
** Example:  Obtains the number of verbs that the OLE server
** issues and recognizes when executed from the OLE container.
** Trigger:  When-Button-Pressed
*/
DECLARE
 item_id  ITEM;
 item_name VARCHAR(25) := 'OLEITM';
 verb_cnt_str VARCHAR(20);
 verb_cnt NUMBER;
 verb_name VARCHAR(20);
 loop_cntr NUMBER;
BEGIN
 item_id := Find_Item(item_name);
 IF Id_Null(item_id) THEN
  message('No such item: '||item_name);
 ELSE
  verb_cnt_str := Get_Verb_Count(item_id);
  verb_cnt := TO_NUMBER(verb_cnt_str);
  FOR loop_cntr in 1..verb_cnt LOOP
    verb_name := Get_Verb_Name(item_id,loop_cntr);
    IF verb_name = 'Edit' THEN
   Exec_Verb(item_id,verb_name);
    END IF;
  END LOOP;
 END IF;
END;


GET_VERB_NAME

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt den Namen des Verbs zurück, das mit dem angegebenen Verbindex verknüpft ist. Ein OLE-Verb gibt die Aktion an, die Sie mit einem OLE-Objekt durchführen können. Für jedes OLE-Verb gibt es einen entsprechenden OLE-Verbindex. Sie müssen eine Variable des entsprechenden Typs definieren, die den Rückgabewert akzeptiert.

Syntax

FUNCTION GET_VERB_NAME
  (item_id     Item,
   verb_index  VARCHAR2);

FUNCTION GET_VERB_NAME
  (item_name   VARCHAR2,
   verb_index  VARCHAR2);

Rückgabewert  VARCHAR 2

Prozedurtyp  Uneingeschränkte Funktion

Abfragemodus  Nein

Parameter

item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist Item.

item_name	Gibt den Namen des beim Entwurf erstellten Objekts an. Der Datentyp des Namens ist VARCHAR2.

verb_index	Gibt den numerischen Index eines Verbs an. Benutzen Sie die vordefinierte Prozedur FIND_OLE_VERB, um diesen Wert abzurufen. Der Datentyp des Index ist VARCHAR2.


Einschränkungen bei GET_VERB_NAME

Nur bei Microsoft Windows und Macintosh gültig.


Beispiele für GET_VERB_NAME

/*

** Built-in: GET_VERB_COUNT
** Example:  See EXEC_VERB and GET_VERB_COUNT
*/


Vordefinierte Prozedur GET_VIEW_PROPERTY

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt die angegebene Attributeinstellung für die angegebene Leinwand zurück.

Syntax

FUNCTION GET_VIEW_PROPERTY
  (view_id   ViewPort,
   property  NUMBER);

FUNCTION GET_VIEW_PROPERTY
  (view_name  VARCHAR2,
   property   NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

view_id	Gibt die eindeutige ID an, die Form Builder der Leinwand beim Erstellen des Objekts zuweist. Benutzen Sie die vordefinierte Prozedur FIND_VIEW, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ViewPort.

view_name	Gibt den Namen an, den Sie dem Objekt bei der Definition zugewiesen haben.

property	Gibt das Attribut an, dessen Status für die angegebene Leinwand eingelesen werden soll. Sie müssen GET_VIEW_PROPERTY für jedes benötigte Attribut separat aufrufen, wie in dem Beispiel dargestellt. Sie können eine der folgenden Konstanten eingeben, um Rückgabewerte zu erhalten:

DIRECTION  Gibt die Layout-Richtung für bidirektionale Objekte an. Gültige Rückgabewerte sind RIGHT_TO_LEFT, LEFT_TO_RIGHT.

HEIGHT  Gibt die Höhe der Ansicht zurück. Bei einer Inhaltsansicht entspricht die Höhe der Ansicht der Höhe des Fensters, in dem die Ansicht gerade angezeigt wird. Die Größe jeder Einheit hängt davon ab, wie Sie das Attribut Koordinatensystem für das Formmodul definiert haben.

VIEWPORT_X_POS  Gibt für eine gestapelte Leinwand die x-Koordinate zurück, die die aktuelle Position der oberen linken Ecke der Ansicht relativ zur oberen linken Ecke der aktuellen Inhaltsleinwand des Fensters angibt. Bei einer Inhaltsansicht wird 0 zurückgegeben. Der Wert wird als VARCHAR2 zurückgegeben und wird in den Einheiten ausgedrückt, die mit dem Attribut Koordinatensystem des Formmoduls definiert wurden.

VIEWPORT_Y_POS  Gibt bei einer gestapelten Leinwand die y-Koordinate zurück, die die aktuelle Position der oberen linken Ecke der Ansicht relativ zur oberen linken Ecke der aktuellen Inhaltsleinwand des Fensters angibt. Bei einer Inhaltsansicht wird 0 zurückgegeben. Der Wert wird als VARCHAR2 zurückgegeben und wird in den Einheiten ausgedrückt, die mit dem Attribut Koordinatensystem des Formmoduls definiert wurden.

VIEWPORT_X_POS_ON_CANVAS  Gibt die x-Koordinate zurück, die die aktuelle Position der oberen linken Ecke der Ansicht relativ zur oberen linken Ecke der Leinwand angibt. Der Wert wird als VARCHAR2-Wert zurückgegeben und wird in den Einheiten ausgedrückt, die mit dem Attribut Koordinatensystem des Formmoduls definiert wurden.

VIEWPORT_Y_POS_ON_CANVAS  Gibt die y-Koordinate zurück, die die aktuelle Position der oberen linken Ecke der Ansicht relativ zur oberen linken Ecke der zugehörigen Leinwand angibt. Der Wert wird als VARCHAR2-Wert zurückgegeben und wird in den Einheiten ausgedrückt, die mit dem Attribut Koordinatensystem des Formmoduls definiert wurden.

VISIBLE  Gibt den VARCHAR2-Wert TRUE zurück, wenn die Ansicht sichtbar ist, und FALSE, wenn nicht. Eine Ansicht wird als sichtbar betrachtet, wenn sie sich a) vor allen anderen Ansichten in dem Fenster befindet, oder b) nur teilweise von einer anderen Ansicht verdeckt wird. Eine Ansicht wird als nicht sichtbar betrachtet, wenn es sich a) um eine gestapelte Ansicht handelt, die hinter der Inhaltsansicht liegt, oder b) vollständig von einer einzelnen gestapelten Ansicht verdeckt wird. Beachten Sie, daß dieses Attribut vom aktuellen Anzeigestatus des Fensters unabhängig ist. Somit kann eine Ansicht als sichtbar angegeben werden, selbst wenn das zugehörige Fenster im Augenblick verborgen ist oder als Symbol dargestellt wird.

WIDTH  Gibt die Breite der Ansicht zurück. Bei einer Inhaltsansicht entspricht die Breite der Ansicht tatsächlich der Breite des Fensters, in dem die Ansicht gerade angezeigt wird. Die Größe jeder Einheit hängt davon ab, wie Sie das Attribut Koordinatensystem für das Formmodul definiert haben.

WINDOW_NAME  Gibt den Namen des Fensters zurück, in dem diese Leinwand angezeigt wird.


Beispiele für GET_VIEW_PROPERTY

/*

** Built-in:  GET_VIEW_PROPERTY
** Example:   Use the Width, and display position of one
**            stacked view (View1) to determine where to
**            position another one (View2) immediately to its
**            right.
*/
PROCEDURE Anchor_To_Right( View2 VARCHAR2, View1 VARCHAR2) IS
  vw_id1 ViewPort;
  vw_id2 ViewPort;
  x      NUMBER;
  y      NUMBER;
  w      NUMBER;
BEGIN
  /*
  ** Find View1 and get its (x,y) position, width
  */
  vw_id1 := Find_View(View1);
  x      := Get_View_Property(vw_id1,VIEWPORT_X_POS);
  y      := Get_View_Property(vw_id1,VIEWPORT_Y_POS);
  w      := Get_View_Property(vw_id1,WIDTH);
  /*
  ** Anchor View2 at (x+w,y+h)
  */
  vw_id2 := Find_View(View2);
  Set_View_Property(vw_id2,VIEWPORT_X_POS, x+w );
  Set_View_Property(vw_id2,VIEWPORT_Y_POS, y );
END;


Vordefinierte Prozedur GET_WINDOW_PROPERTY

  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt die aktuelle Einstellung für das angegebene Fensterattribut des angegebenen Fensters zurück.

Syntax

FUNCTION GET_WINDOW_PROPERTY
  (window_id  Window,
   property   NUMBER);

FUNCTION GET_WINDOW_PROPERTY
  (window_name  VARCHAR2,
   property     NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Verwendungshinweise

Bei Microsoft Windows können Sie das MDI-Anwendungsfenster mit der Konstanten FORMS_MDI_WINDOW referenzieren.

Parameter

window_id	Gibt die eindeutige ID an, die Form Builder dem Fenster beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_WINDOW, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist Window.

window_name	Gibt den Namen an, den Sie dem Fenster beim Erstellen gegeben haben.

property	Sie müssen GET_WINDOW_PROPERTY für jedes benötigte Attribut separat aufrufen, wie in dem Beispiel FIND_WINDOW angegeben. Geben Sie eine der folgenden Konstanten an, um den aktuellen Wert bzw. Status des Attributs zu ermitteln:

BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts.

DIRECTION  Gibt die Layout-Richtung für bidirektionale Objekte an. Gültige Rückgabewerte sind RIGHT_TO_LEFT, LEFT_TO_RIGHT.

FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden.

FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

FONT_SIZE  Schriftgrad in Punkt.

FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning).

FONT_STYLE  Schriftstil.

FONT_WEIGHT  Schriftstärke.

FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

HEIGHT  Gibt die Höhe des Fensters zurück.

HIDE_ON_EXIT  Gibt den VARCHAR2-Wert TRUE zurück, wenn das Attribut Beim Beenden verbergen für das Fenster auf Ja eingestellt ist. Sonst wird FALSE zurückgegeben.

ICON_NAME Gibt den Dateinamen der Symbol-Ressource wieder, die mit einem Fensterobjekt verknüpft ist, wenn das Fenster minimiert ist.

TITLE Gibt den Titel des Fensters zurück.

VISIBLE  Gibt den VARCHAR2-Wert TRUE zurück, wenn das Fenster sichtbar ist. Wenn es nicht sichtbar ist, wird FALSE zurückgegeben. Ein Fenster wird als sichtbar angegeben, wenn es momentan auf dem Bildschirm abgebildet wird, selbst wenn es ganz hinter einem anderen Fenster verborgen ist oder als Symbol (minimiert) dargestellt wird.

WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

WIDTH  Gibt die Breite des Fensters zurück.

WINDOW_HANDLE  Gibt eine eindeutige interne VARCHAR2-Konstante zurück, mit der Objekte referenziert werden. Gibt die Zahl 0 zurück, wenn es sich bei der Plattform nicht um Microsoft Windows handelt.

WIDOW_SIZE  Gibt Breite und Höhe des Fensters in Form einer Zeichenfolge, durch Kommas getrennt, zurück.

WINDOW_STATE  Gibt den aktuellen Anzeigestatus des Fensters zurück. Der Anzeigestatus eines Fensters entspricht der VARCHAR2-Folge NORMAL, MAXIMIZE oder MINIMIZE.

X_POS  Gibt die x-Koordinate zurück, die die aktuelle Anzeigeposition des Fensters auf dem Bildschirm angibt.

Y_POS  Gibt die y-Koordinate zurück, die die aktuelle Anzeigeposition des Fensters auf dem Bildschirm angibt.


Vordefinierte Prozedur GO_BLOCK

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

GO_BLOCK navigiert zu einem angegebenen Block. Wenn nicht in den Zielblock gegangen werden kann, wird ein Fehler ausgegeben.

Syntax

PROCEDURE GO_BLOCK
  (block_name  VARCHAR2);

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

block_name	Gibt den Namen an, den Sie dem Block bei der Definition zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.


Beispiele für GO_BLOCK

/*

** Built-in:  GO_BLOCK
** Example:   Navigate to a block by name. Make sure to check
**            that the Go_Block succeeds by checking FORM_SUCCESS.
*/
BEGIN
  IF :Global.Flag_Indicator = 'NIGHT' THEN
    Go_Block('Night_Schedule');
    /*
    ** One method of checking for block navigation success.
    */
    IF NOT FORM_SUCCESS THEN
      RAISE Form_Trigger_Failure;
    END IF;
  ELSIF :Global.Flag_Indicator = 'DAY' THEN
    Go_Block('Day_Schedule');
    /*
    ** Another way of checking that block navigation
    ** succeeds. If the block the cursor is in hasn't
    ** changed after a block navigation, something went
    ** wrong. This method is more reliable than simply
    ** checking FORM_SUCCESS.
    */
    IF :System.Trigger_Block = :System.Cursor_Block THEN
      RAISE Form_Trigger_Failure;
    END IF;
  END IF;
  Execute_Query;
  Go_Block('Main');
END;


Vordefinierte Prozedur GO_FORM

 Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Navigiert in einer Anwendung mit mehreren Forms von der aktuellen Form zu der angegebenen Zielform. Wenn mit GO_FORM navigiert wird, erfolgt keine Validierung und werden keine Trigger ausgelöst mit Ausnahme von WHEN-WINDOW-DEACTIVATED, der für die Form ausgelöst wird, die die Navigation einleitet, und WHEN-WINDOW-ACTIVATED, der für das Zielfenster in der Zielform ausgelöst wird.

Wenn versucht wird, zu einer Form zu navigieren, die noch nicht geöffnet ist, kommt es zu einem Fehler.

Syntax

PROCEDURE GO_FORM
  (form_id  FORMMODULE);

PROCEDURE GO_FORM
  (form_name  VARCHAR2);

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

form_id	Die eindeutige ID, die der Form dynamisch zugewiesen wird, wenn sie zur Laufzeit instantiiert wird. Benutzen Sie die vordefinierte Prozedur FIND_FORM, um die ID an eine Variable entsprechenden Typs zurückzugeben. Der Datentyp der ID ist FORMMODULE.

form_name	Der Name der Zielform. Der Datentyp des Namens ist VARCHAR2. Die vordefinierte Prozedur  GO_FORM versucht, nach dem Formmodul-Namen und nicht nach dem Namen der .fmx-Datei zu suchen.


Einschränkungen bei GO_FORM

Die Zielform kann keine Form sein, die momentan deaktiviert ist, weil eine andere Form mit CALL_FORM aufgerufen wurde.


Vordefinierte Prozedur GO_ITEM

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

GO_ITEM navigiert zu einem angegebenen Objekt. GO_ITEM wird erfolgreich ausgeführt, selbst wenn das Attribut Tastatur-Navigierbar des Zielobjektes auf Nein eingestellt ist.

Syntax

PROCEDURE GO_ITEM
  (item_id  Item);

PROCEDURE GO_ITEM
  (item_name  VARCHAR2);

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja

Parameter

item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Der Datentyp der ID ist Item.

item_name	Gibt die Zeichenfolge an, die Sie beim Entwurf als Namen des Objekts definiert haben. Der Datentyp des Namens ist VARCHAR2.


Einschränkungen bei GO_ITEM

GO_ITEM('emp.ename');

•	GO_ITEM kann im Abfragemodus nicht benutzt werden, um zu einem Objekt in einem anderen Block zu navigieren.

•	Sie können GO_ITEM nicht benutzen, um zu einem nicht navigierbaren Objekt zu navigieren, wie z.B. einem VARCHAR2-Objekt oder einem Anzeigeobjekt.


Beispiele für GO_ITEM

/*

** Built-in:  GO_ITEM
** Example:   Invoke a dialog window by navigating to
**            an item which is on the canvas which the window
**            displays.
*/
PROCEDURE Open_Preference_Dialog IS
BEGIN
 Go_Item('pref_dialog.printer_name');
END;


Vordefinierte Prozedur GO_RECORD

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Navigiert zu dem Datensatz mit der angegebenen Datensatznummer.

Syntax

PROCEDURE GO_RECORD
  (record_number  NUMBER);

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

record_number	Gibt einen ganzzahligen Wert an, den PL/SQL in Form einer Zahl auswerten kann. Dies umfaßt Werte, die aus Aufrufen von Systemvariablen abgeleitet werden, wie TO_NUMBER(:SYSTEM.TRIGGER_RECORD) + 8.

Sie können die Systemvariablen SYSTEM.CURSOR_RECORD oder SYSTEM.TRIGGER_RECORD benutzen, um die Sequenznummer eines Datensatzes zu ermitteln.


Einschränkungen bei GO_RECORD

•	Wenn die Abfrage geöffnet ist und die angegebene Datensatznummer größer ist als die Anzahl von schon abgerufenen Datensätzen, ruft Form Builder zusätzliche Datensätze ab, um den Aufruf dieser vordefinierten Prozedur erfolgreich abzuschließen.


Beispiele für GO_RECORD

/*

** Built-in:  GO_RECORD
** Example:   Navigate to a record in the current block
**            by record number. Also see FIRST_RECORD and
**            LAST_RECORD built-ins.
*/
BEGIN
  Go_Record( :control.last_record_number );
END;


Vordefinierte Prozedur HELP

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Zeigt die den Hinweistext für das aktuelle Objekt auf der Meldungszeile an. Wenn der Hinweistext schon angezeigt wird, zeigt HELP den detaillierten Hilfebildschirm für das Objekt an.

Syntax

PROCEDURE HELP;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Beispiele für HELP

/*

** Built-in:  HELP
** Example:   Gives item-level hint/help.
*/
BEGIN
  Help;
END;;


Vordefinierte Prozedur HIDE_MENU

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Bei Plattformen im Zeichenmodus wird das aktuelle Menü vom Bildschirm entfernt, wenn es gerade angezeigt wird, so daß der Teil der Form sichtbar wird, der von dem Menü verdeckt wurde. Das Menü wird erneut angezeigt, wenn die vordefinierte Prozedur SHOW_MENU aufgerufen wird oder der Operator [Menü] drückt.

Syntax

PROCEDURE HIDE_MENU;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Beispiele für HIDE_MENU

/*

** Built-in:  HIDE_MENU
** Example:  Hides the menu from view on character-mode or
**           block-mode devices
*/
BEGIN
  Hide_Menu;
END;


Vordefinierte Prozedur HIDE_VIEW

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Verbirgt die angegebene Leinwand.

Syntax

PROCEDURE HIDE_VIEW
  (view_id  ViewPort);

PROCEDURE HIDE_VIEW
  (view_name  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Beschreibung

Verbirgt die angegebene Leinwand.

Parameter

view_id	Gibt die eindeutige ID an, die Form Builder der Ansicht beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_VIEW, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ViewPort.

view_name	Gibt den Namen an, den Sie der Ansicht beim Erstellen gegeben haben.


Beispiele für HIDE_VIEW

/*

** Built-in:  HIDE_VIEW
** Example:   Programmatically dismiss a stacked view from the
**            operator's sight.
*/
PROCEDURE Hide_Button_Bar IS
BEGIN
  Hide_View('Button_Bar');
END;


Vordefinierte Prozedur HIDE_WINDOW

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Verbirgt das angegebene Fenster. HIDE_WINDOW hat dieselbe Auswirkung, als würde VISIBLE durch Aufruf von SET_WINDOW_PROPERTY auf Nein eingestellt.

Syntax

PROCEDURE HIDE_WINDOW
  (window_id  Window);

PROCEDURE HIDE_WINDOW
  (window_name  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

window_id	Gibt die eindeutige ID an, die Form Builder dem Fenster beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_WINDOW, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist Window.

window_name	Gibt den Namen an, den Sie dem Fenster beim Erstellen gegeben haben.


Beispiele für HIDE_WINDOW

/*

** Built-in:  HIDE_WINDOW
** Example:   When a main window is closed, hide other
**            "subordinate" windows automatically. To
**            establish this window hierarchy we might define
**            a static record group in the form called
**            'WINDOW_HIERARCHY' with a structure of:
**
**               Parent_Window      Child_Window
**               -------------      -------------
**                 MAIN               DETAIL1
**                 MAIN               DETAIL2
**                 DETAIL1            DETAIL3
**                 DETAIL1            DETAIL4
**                 DETAIL2            DETAIL5
**                 DETAIL3            DETAIL6
**
**           We also have to make sure we navigate to some
**           item not on any of the canvases shown in the
**           windows we are closing, or else that window
**           will automatically be re-displayed by forms
**           since it has input focus.
*/
PROCEDURE Close_Window( wn_name VARCHAR2,
           dest_item VARCHAR2 ) IS
  rg_id        RecordGroup;
  gc_parent    GroupColumn;
  gc_child     GroupColumn;
  the_Rowcount NUMBER;
  /*
  ** Local function called recursively to close children at
  ** all levels of the hierarchy.
  */
  PROCEDURE Close_Win_With_Children( parent_win VARCHAR2 ) IS
    the_child  VARCHAR2(40);
    the_parent VARCHAR2(40);
  BEGIN
    FOR j IN 1..the_Rowcount LOOP
      the_parent := Get_Group_Char_Cell(gc_parent,j);
      /* If we find a matching parent in the table */
      IF UPPER(the_parent) = UPPER(parent_win) THEN
    the_child := Get_Group_Char_Cell(gc_child,j);
    /*
    ** Close this child and any of its children
    */
    Close_Win_With_Children( the_child );
      END IF;
    END LOOP;
    /*
    ** Close the Parent
    */
    Hide_Window( parent_win );
  END;
BEGIN
  /*
  ** Setup
  */
  rg_id        := Find_Group('WINDOW_HIERARCHY');
  gc_parent    := Find_Column('WINDOW_HIERARCHY.PARENT_WINDOW');
  gc_child     := Find_Column('WINDOW_HIERARCHY.CHILD_WINDOW');
  the_Rowcount := Get_Group_Row_Count(rg_id);
  /* Close all the child windows of 'wn_name' */
  Close_Win_With_Children( wn_name );
  /* Navigate to the Destination Item supplied by the caller */
  Go_Item( dest_item );
END;


Vordefinierte Prozedur HOST

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Führt einen angegebenen Betriebssystembefehl aus.

Syntax

PROCEDURE HOST
  (system_command_string  VARCHAR2);

PROCEDURE HOST
  (system_command_string  VARCHAR2,
   screen_action          NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

system_command_ string	Gibt den Systembefehl an, den Sie an Ihr Betriebssystem übergeben möchten.

screen_action	Gibt eine der folgenden Konstanten an:

no parameter  Gibt an, daß Form Builder:

n	den Bildschirm löscht;

n	den Operator zum Rücksprung aus dem Befehl auffordert.

NO_PROMPT  Gibt an, daß Form Builder:

n	den Bildschirm löscht (den Operator nicht zum Rücksprung aus dem Befehl auffordert).

NO_SCREEN  Gibt an, daß Form Builder:

n	den Bildschirm nicht löscht;

n	den Operator nicht zum Rücksprung aus dem Systembefehl auffordert.

(Der HOST-Befehl darf die Ausgabe nicht an den Bildschirm senden, wenn der Parameter NO_SCREEN verwendet wird.)

Verwendungshinweise

•	Der Parameter screen_action ist nur für Anwendungen relevant, die im Zeichenmodus ausgeführt werden, bei dem die Ausgabe des Host-Befehls im selben Fenster wie die Form angezeigt wird. Bei GUI-Anwendungen wird die Ausgabe des Host-Befehls in einem separaten Fenster angezeigt.

•	Der Befehls-Interpreter für Microsoft Windows NT lautet cmd und für Windows 95 command. Vor der Verwendung der vordefinierten Prozedur HOST zum Ausführen eines externen Befehls muß das Betriebssystem überprüft und die entsprechende Befehlszeichenfolge übergeben werden.

•	Bei der Verwendung von HOST zum Ausführen einer 16-Bit-Anwendung unter Microsoft Windows NT gibt die vordefinierte Prozedur FORM_SUCCESS den Wert TRUE zurück, unabhängig davon, ob die Anwendung erfolgreich ausgeführt werden kann. Hierbei handelt es sich um ein Win32-Problem. 32-Bit-Anwendungen und BS-Befehle geben TRUE bei erfolgreicher Ausführung zurück und FALSE, wenn diese nicht erfolgreich ausgeführt wurden. Ungültige Befehle geben FALSE zurück.

•	Unter Windows 95 gibt die vordefinierte Prozedur FORM_SUCCESS immer den Wert TRUE für HOST-Befehle, die nicht erfolgreich ausgeführt wurden, zurück. Dies beinhaltet den Aufruf von COMMAND.COM- oder BS-Funktionen, beliebigen 16-Bit-DOS- oder GUI-Anwendungen sowie eines ungültigen Befehls. 32-Bit-Anwendungen, die erfolgreich ausgeführt wurden, geben TRUE zurück und FALSE, wenn sie nicht erfolgreich ausgeführt wurden.


Beispiele für HOST

/*

** built-in:  HOST
** Example:   Execute an operating system command in a
**            subprocess or subshell. Uses the
**            'Get_Connect_Info' procedure from the
**            GET_APPLICATION_PROPERTY example.
*/
PROCEDURE Mail_Warning( send_to VARCHAR2) IS
  the_username VARCHAR2(40);
  the_password VARCHAR2(40);
  the_connect  VARCHAR2(40);
  the_command  VARCHAR2(2000);
BEGIN
  /*
  ** Get Username, Password, Connect information
  */
  Get_Connect_Info(the_username,the_password,the_connect);
  /*
  ** Concatenate together the static text and values of
  ** local variables to prepare the operating system command
  ** string.
  */
  the_command := 'orasend '||
      ' to='||send_to||
      ' std_warn.txt '||
      ' subject="## LATE PAYMENT ##"'||
      ' user='||the_username||
      ' password='||the_password||
      ' connect='||the_connect;

  Message('Sending Message...', NO_ACKNOWLEDGE);
  Synchronize;
  /*
  ** Execute the command string as an O/S command The
  ** NO_SCREEN option tells forms not to clear the screen
  ** while we do our work at the O/S level "silently".
  */
  Host( the_command, NO_SCREEN );
  /*
  ** Check whether the command succeeded or not
  */
  IF NOT Form_Success THEN
    Message('Error -- Message not sent.');
  ELSE
    Message('Message Sent.');
  END IF;
END;


Vordefinierte Prozedur ID_NULL

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt einen BOOLESCHEN Wert zurück, mit dem angegeben wird, ob die Objekt-ID verfügbar ist.

Syntax

FUNCTION ID_NULL
  (Alert  BOOLEAN);

FUNCTION ID_NULL
  (Block  BOOLEAN);
FUNCTION ID_NULL
  (Canvas  BOOLEAN);
FUNCTION ID_NULL
  (Editor  BOOLEAN);
FUNCTION ID_NULL
  (FormModule  BOOLEAN);
FUNCTION ID_NULL
  (GroupColumn  BOOLEAN);
FUNCTION ID_NULL
  (Item  BOOLEAN);
FUNCTION ID_NULL
  (LOV  BOOLEAN);
FUNCTION ID_NULL
  (MenuItem  BOOLEAN);
FUNCTION ID_NULL
  (ParamList  BOOLEAN);
FUNCTION ID_NULL
  (RecordGroup  BOOLEAN);
FUNCTION ID_NULL
  (Relation  BOOLEAN);
FUNCTION ID_NULL
  (Timer  BOOLEAN);
FUNCTION ID_NULL
  (Viewport  BOOLEAN);
FUNCTION ID_NULL
  (Window  BOOLEAN);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  BOOLEAN

Abfragemodus  Ja

Parameter

object_id	Sie können diese Funktion aufrufen, um die Ergebnisse der folgenden Typen von Objekt-IDs zu testen:

n	Warnfenster

n	Block

n	Leinwand

n	Editor

n	FormModule

n	GroupColumn

n	Objekt

n	LOV

n	MenuItem

n	ParamList

n	RecordGroup

n	Beziehung

n	Timer

n	Ausschnitt

n	Fenster

Verwendungshinweise

Verwenden Sie ID_NULL, wenn Sie auf das Vorhandensein eines Objekts prüfen möchten, das zur Laufzeit dynamisch erstellt wurde. Wenn z.B. schon eine bestimmte Datensatzgruppe vorhanden ist, erhalten Sie eine Fehlermeldung, wenn Sie versuchen, diese Datensatzgruppe zu erstellen. Um diese Prüfung durchzuführen, beachten Sie folgende allgemeinen Schritte:

n	Verwenden Sie die entsprechende vordefinierte Prozedur FIND_, um die Objekt-ID zu ermitteln.

n	Verwenden Sie ID_NULL, um zu prüfen, ob schon ein Objekt mit dieser ID vorhanden ist.

n	Wenn das Objekt nicht vorhanden ist, erstellen Sie das Objekt.

Wenn Sie mehrmals auf das Vorhandensein eines Objekts testen (d.h. mehr als einmal während eines Durchlaufs), müssen Sie die entsprechende Prozedur FIND_ jedes Mal erneut ausgeben - einmal vor jeder Benutzung von ID_NULL.


Beispiele für ID_NULL

Siehe CREATE_GROUP


Vordefinierte Prozedur IMAGE_SCROLL

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Nimmt einen Bildlauf durch das Bildobjekt so nahe zu dem angegebenen Offset (den X-, Y-Koordinaten) wie möglich vor. Diese Funktion wird besonders dann benutzt, wenn das Bild größer ist als das Bildobjekt.

Syntax

PROCEDURE IMAGE_SCROLL
  (item_name VARCHAR2,
   X NUMBER,
   Y NUMBER
);

PROCEDURE IMAGE_SCROLL
  (item_id ITEM,
   X NUMBER,
   Y NUMBER
);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

item_id	Gibt die eindeutige ID an, die Form Builder beim Erstellen des Bildobjekts zuweist.

item_name	Gibt den Namen an, den Sie dem Bild bei der Definition zugewiesen haben.

X	X-Koordinate des Offset.

Y	Y-Koordinate des Offset.


Beispiele für IMAGE_SCROLL

Angenommen, das Bild ist zweimal so groß wie das Bildobjekt, d.h. die Bildkoordinaten sind 0, 200 und die Objektkoordinaten 0, 100. Um das Bild in etwa zu zentrieren, können Sie die X-, Y-Koordinaten von IMAGE_SCROLL X, Y auf 50, 50 einstellen. Dadurch wird die obere linke Ecke des Objekts auf 50 50 anstelle von 0, 0 eingestellt, so daß das Bild so versetzt ist, daß es von den Koordinaten 50 bis 150 angezeigt wird.


Vordefinierte Prozedur IMAGE_ZOOM

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Vergrößert bzw. verkleinert das Bild, wobei der mit zoom_type angegebene Effekt und der mit zoom_factor angegebene Faktor verwendet werden.

Syntax

PROCEDURE IMAGE_ZOOM
  (image_id   ITEM,
   zoom_type  NUMBER);

PROCEDURE IMAGE_ZOOM
  (image_name  VARCHAR2,
   zoom_type   NUMBER);
PROCEDURE IMAGE_ZOOM
  (image_id     ITEM,
   zoom_type    NUMBER,
   zoom_factor  NUMBER);
PROCEDURE IMAGE_ZOOM
  (image_name   VARCHAR2,
   zoom_type    NUMBER,
   zoom_factor  NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

image_id	Gibt die eindeutige ID an, die Form Builder beim Erstellen des Bildobjekts zuweist. Der Datentyp der ID ist ITEM.

image_name	Gibt den Namen an, den Sie dem Bild bei der Definition zugewiesen haben.

zoom_type	Geben Sie eine der folgenden Konstanten an, um den gewünschten Effekt für das angezeigte Bild zu beschreiben:

ADJUST_TO_FIT  Skaliert das Bild so, daß es in das Anzeigerechteck paßt: Das ganze Bild ist sichtbar, und das Bild füllt einen so großen Teil des Bildobjekts wie möglich, ohne die Proportionen zu verzerren.

SELECTION_RECTANGLE  Skaliert das Bild so, daß der ausgewählte Bereich das Bildobjekt vollständig füllt.

ZOOM_IN_FACTOR  Vergrößert das Bild um den zoom_factor.

ZOOM_OUT_FACTOR  Verkleinert das Bild um den zoom_factor.

ZOOM_PERCENT  Skaliert das Bild auf den mit zoom_factor angegebenen Prozentsatz.

zoom_factor	Gibt entweder den Faktor oder den Prozentsatz an, um den das Bild vergrößert bzw. verkleinert werden soll. Geben Sie eine Ganzzahl für dieses Argument an.

Verwendungshinweise

n	Überprüfen Sie, ob die Angabe für zoom_factor vernünftig ist. Wenn Sie z.B. einen ZOOM_IN_FACTOR von 100 angeben, würde das Bild 100mal vergrößert. Dies könnte dazu führen, daß kein Speicherplatz mehr für die Anwendung vorhanden ist.

n	Bei der Angabe von ZOOM_IN_FACTOR oder ZOOM_OUT_FACTOR können Sie eine beliebige positive Ganzzahl für zoom_factor verwenden, die Leistung ist jedoch bei Angabe von 2, 4 oder 8 optimal.

n	Wenn Sie ZOOM_PERCENT angeben, können Sie einen beliebigen ganzzahligen Wert für zoom_factor angeben. Um das Bild zu vergrößern, geben Sie einen Prozentsatz von mehr als 100 an.

n	Der Benutzer muß vor Angabe von SELECTION_RECTANGLE einen Bereich mit der Maus auswählen. Sonst gibt Form Builder eine Fehlermeldung zurück.

n	Der Entwurf sollte Bildlaufleisten bei Bildern enthalten, die die Konstante SELECTION_RECTANGLE verwenden.

n	Gilt sowohl für Farb- als auch für Schwarz/Weiß-Bilder.


Beispiele für IMAGE_ZOOM

In dem folgenden Beispiel wird ein When-Button-Pressed-Trigger dargestellt, mit dem die Größe des Bildes jedesmal verdoppelt wird, wenn die Schaltfläche gedrückt wird.

Image_Zoom('my_image', zoom_in_factor, 2);


INIT-OLEARGS;
INIT_OLEARGS

 Alle vordefinierten Prozeduren

Beschreibung

Legt fest, wie viele Argumente definiert und an die Methode des OLE-Objekts übergeben werden.

Syntax

PROCEDURE INIT_OLEARGS (num_args NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Parameter

num_args	Anzahl von Argumenten, die an die Methode übergeben werden müssen - plus eins.
Verwendungshinweise

•	Diese vordefinierte Prozedur muß aufgerufen werden, bevor die Typen und Werte des Arguments mit ADD_OLEARG festgelegt werden.

•	Diese vordefinierte Prozedur und ADD_OLEARG werden ebenfalls benutzt, um GET_OLE_*-Aufrufe vorzubereiten, wenn auf das Attribut zugegriffen wird (z.B. mit einem Index).

•	Sie müssen INIT_OLEARGS nicht vor einem GET_OLE_*-Aufruf benutzen, wenn dieser Aufruf keine OLE-Parameter übernimmt.

•	Beachten Sie, daß die in num_args angegebene Anzahl um eins größer sein muß als die Anzahl von konkreten Argumenten. (Wenn also vier Argumente übergeben werden müssen, stellen Sie num_arg auf fünf ein.) Diese Erhöhung ist nur als Vorbereitung auf GET_OLE_*-Aufrufe erforderlich und nicht für CALL_OLE, wirkt sich jedoch im letzteren Fall nicht negativ aus.


INTITILIZE_CONTAINER

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Fügt ein OLE-Objekt aus einer server-kompatiblen Datei in einen OLE-Container ein.

Syntax

PROCEDURE INITIALIZE_CONTAINER
  (item_id    Item,
   file_name  VARCHAR2);

PROCEDURE INITIALIZE_CONTAINER
  (item_name  VARCHAR2,
   file_name  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Nein

Parameter

item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist Item.

item_name	Gibt den Namen des beim Entwurf erstellten Objekts an. Der Datentyp des Namens ist VARCHAR2.

file_name	Gibt den Namen der Datei an, die das Objekt enthält, das in einen OLE-Container eingefügt werden soll. Geben Sie den Pfad für den Speicherort der Datei an.


Einschränkungen bei INITIALIZE_CONTAINER

Nur bei Microsoft Windows und Macintosh gültig.


Beispiele für INITIALIZE_CONTAINER

/*

** Built-in: INITIALIZE_CONTAINER
** Example:  Initializes an OLE container by inserting an object
**           from a specified file into an OLE container.
** Trigger:  When-Button-Pressed
*/
DECLARE
 item_id  ITEM;
 item_name VARCHAR(25) := 'OLEITM';
BEGIN
 item_id := Find_Item(item_name);
 IF Id_Null(item_id) THEN
  message('No such item: '||item_name);
 ELSE
  Initialize_Container(item_id,'c:\OLE\oleobj.xls');
 END IF;
END;


Vordefinierte Prozedur INSERT_RECORD

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Wenn diese Prozedur aus einem On-Insert-Trigger aufgerufen wird, wird der aktuelle Datensatz während der Verarbeitung von Abschicken- und Speichern-Transaktionen in die Datenbank eingefügt. Diese vordefinierte Prozedur ist im wesentlichen für Anwendungen gedacht, die mit einer fremden Datenquelle ausgeführt werden.

Syntax

PROCEDURE INSERT_RECORD;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Keine


Einschränkungen bei INSERT_RECORD

Ist nur in einem On-Insert-Trigger gültig.


Beispiele für INSERT_RECORD

/*

** Built-in:  INSERT_RECORD
** Example :  Perform Form Builder standard insert processing
**            based on a global flag setup at startup by the
**            form, perhaps based on a parameter.
** Trigger:   On-Insert
*/
BEGIN
  /*
  ** Check the global flag we setup at form startup
  */
  IF :Global.Using_Transactional_Triggers = 'TRUE' THEN
    User_Exit('my_insrec block=EMP');
  /*
  ** Otherwise, do the right thing.
  */
  ELSE
    Insert_Record;
  END IF;
END;


Vordefinierte Prozedur ISSUE_ROLLBACK

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Wenn diese Prozedur aus einem On-Rollback-Trigger aufgerufen wird, wird die Standardverarbeitung von Form Builder für das Zurücksetzen auf den angegebenen Savepoint ausgelöst.

Diese vordefinierte Prozedur ist im wesentlichen für Anwendungen gedacht, die mit einer fremden Datenquelle ausgeführt werden.

Syntax

PROCEDURE ISSUE_ROLLBACK
  (savepoint_name  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Nein

Parameter

savepoint name	Name des Savepoint, auf den zurückgesetzt werden soll. Ein savepoint_name von null führt zu einem vollen Rollback.


Einschränkungen bei ISSUE_ROLLBACK

Ergebnisse können nicht vorhergesagt werden, wenn ISSUE_ROLLBACK außerhalb eines On-Rollback-Triggers benutzt wird, bzw. wenn die Prozedur mit einem anderen Savepoint als dem verwendet wird, der von einem Aufruf von GET_APPLICATION_PROPERTY(SAVEPOINT_NAME) bereitgestellt wird.


Beispiele für ISSUE_ROLLBACK

/*

** Built-in:  ISSUE_ROLLBACK
** Example:   Perform Form Builder standard Rollback processing.
**            Decide whether to use this built-in based on a
**            global flag setup at startup by the form.
**            perhaps based on a parameter.
** Trigger:   On-Rollback
*/
DECLARE
  sp_name VARCHAR2(80);
BEGIN
  /*
  ** Get the name of the savepoint to which Form Builder needs to
  ** rollback. (NULL = Full Rollback)
  */
  sp_name := Get_Application_Property(SAVEPOINT_NAME);
  /*
  ** Check the global flag we setup at form startup
  */
  IF :Global.Using_Transactional_Triggers = 'TRUE' THEN
    User_Exit('my_rollbk name='||sp_name);
  ELSE
    Issue_Rollback(sp_name);
 END IF;
END;


Vordefinierte Prozedur ISSUE_SAVEPOINT

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Wenn diese vordefinierte Prozedur aus einem On-Savepoint-Trigger aufgerufen wird, löst ISSUE_SAVEPOINT die Standardverarbeitung für die Ausgabe eines Savepoint aus. Sie können mit GET_APPLICATION_PROPERTY (SAVEPOINT_NAME) den Namen des Savepoint bestimmen, den Form Builder standardmäßig ausgeben würde, wenn kein On-Savepoint-Trigger vorhanden wäre.

Diese vordefinierte Prozedur ist in erster Linie für Anwendungen gedacht, die mit einer Nicht-ORACLE-Datenquelle ausgeführt werden.

Syntax

PROCEDURE ISSUE_SAVEPOINT
  (savepoint_name  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Nein

Parameter

savepoint _name	Name des Savepoint, der ausgegeben werden soll.


Einschränkungen bei ISSUE_SAVEPOINT

Geben Sie niemals einen Savepoint mit dem Namen FM_<Zahl> aus, es sei denn, der Savepoint-Name wurde durch einen Aufruf von GET_APPLICATION_PROPERTY bereitgestellt. Sonst könnte es zu einem Konflikt mit Savepoints kommen, die von Form Builder ausgegeben werden.


Beispiele für ISSUE_SAVEPOINT

/*

** Built-in:  ISSUE_SAVEPOINT
** Example:   Perform Form Builder standard savepoint processing.
**            Decide whether to use this built-in based on a
**            global flag setup at startup by the form,
**            perhaps based on a parameter.
** Trigger:   On-Savepoint
*/
DECLARE
 sp_name VARCHAR2(80);
BEGIN
  /*  Get the name of the savepoint Form Builder needs to issue
  */
  sp_name := Get_Application_Property(SAVEPOINT_NAME);
  /*  Check the global flag we setup at form startup
  */
  IF :Global.Using_Transactional_Triggers = 'TRUE' THEN
    User_Exit('my_savept name='||sp_name);
  /*  Otherwise, do the right thing.
  */
  ELSE
    Issue_Savepoint(sp_name);
  END IF;
END;


Vordefinierte Prozedur ITEM_ENABLED

  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt den Booleschen Wert TRUE zurück, wenn der Menüpunkt aktiviert ist. Gibt den Booleschen Wert FALSE zurück, wenn der Menüpunkt deaktiviert ist.

Hinweis: ITEM_ENABLED ist gleichbedeutend mit GET_MENU_ITEM_PROPERTY (MENU_ITEM, ENABLED).

Syntax

FUNCTION ITEM_ENABLED
  (mnunam  VARCHAR2,
   itmnam  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Returns  BOOLEAN

Abfragemodus  Ja

Parameter

mnunam	Gibt den VARCHAR2-Namen des Menüs an.

Itmnam	Gibt den VARCHAR2-Namen des Menüpunkts an.


LAST_OLE_ERROR

 Alle vordefinierten Prozeduren

Beschreibung

Gibt die Identifikationsnummer der letzten OLE-Fehlerbedingung zurück.

Syntax

FUNCTION LAST_OLE_ERROR RETURN number;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Zahl

Parameter  Keine Parameter  Keine

Verwendungshinweise

•	Diese Funktion kann für die meisten Fehlerbedingungen benutzt werden. Wenn es sich bei dem Fehler jedoch um eine PL/SQL-Exception handelt, benutzen Sie statt dessen die Funktion LAST_OLE_EXCEPTION.

•	Weitere Informationen über Fehlerwerte und deren Bedeutung finden Sie in winerror.h. Winerror.h wird von dem Hersteller Ihres C-Compilers bereitgestellt.


LAST_OLE_EXCEPTION

 Alle vordefinierten Prozeduren

Beschreibung

Gibt die Identifikationsnummer der letzten OLE-Exception zurück, die in dem aufgerufenen Objekt aufgetreten ist.

Syntax

FUNCTION LAST_OLE_EXCEPTION
  (source OUT VARCHAR2, description OUT VARCHAR2,
   helpfile OUT VARCHAR2,
   helpcontextid OUT PLS_INTEGER)
RETURN errornumber PLS_INTEGER;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Fehlernummer, die der OLE-Server dieser Exception-Bedingung zugewiesen hat

Parameter

source	Name des OLE-Servers, der die Exception-Bedingung ausgelöst hat.
Beschreibung	Text der Fehlermeldung.
Helpfile	Name der Datei, in der der OLE-Server zusätzliche Fehlerinformationen gespeichert hat.
Helpcontextid	ID eines bestimmten Dokuments in der obigen Hilfedatei.
Verwendungshinweise

Diese Funktion kann benutzt werden, nachdem eine PL/SQL-Exception FORM_OLE_FAILURE nach einem Aufruf eines OLE-Objekt-Servers aufgetreten ist. Weitere Informationen über andere Fehlertypen (keine PL/SQL-Exceptions) finden Sie in der Funktion LAST_OLE_ERROR.


Vordefinierte Prozedur LAST_RECORD

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Navigiert zum letzten Datensatz in der Liste mit Datensätzen des Blocks. Wenn eine Abfrage in dem Block geöffnet ist, ruft Form Builder die restlichen ausgewählten Datensätze in der Liste der Datensätze des Blocks ab und schließt die Abfrage.

Syntax

PROCEDURE LAST_RECORD;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Keine


Beispiele für LAST_RECORD

Siehe FIRST_RECORD


Vordefinierte Prozedur LIST_VALUES

  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

LIST_VALUES zeigt die Liste der Werte für das aktuelle Objekt an, vorausgesetzt, der Eingabefokus steht in einem Textobjekt, dem eine Werteliste zugeordnet ist. Die Werteliste wird weiter angezeigt, bis der Operator die Werteliste vom Bildschirm entfernt oder einen Wert auswählt.

Standardmäßig verwendet LIST_VALUES den Parameter NO_RESTRICT. Dieser Parameter führt dazu, daß Form Builder die automatische Such- und Vervollständigungsfunktion nicht benutzt. Wenn Sie den Parameter RESTRICT verwenden, benutzt Form Builder die automatische Such- und Vervollständigungsfunktion.

Automatische Such- und Vervollständigungsfunktion  Mit der automatischen Such- und Vervollständigungsfunktion wertet eine Werteliste den aktuellen Wert eines Textobjekts als Suchwert aus. Das heißt, wenn ein Operator in einem Textobjekt, das eine Werteliste hat, [Auflisten] drückt, prüft Form Builder, ob das Objekt einen Wert enthält.

Wenn das Textobjekt einen Wert enthält, benutzt Form Builder diesen Wert automatisch so, als hätte der Operator den Wert in das Suchfeld der Werteliste eingegeben und [Liste] gedrückt, um die Liste einzugrenzen.

Wenn der Objektwert die Liste auf nur einen Wert eingrenzen würde, zeigt Form Builder die Werteliste nicht an, liest jedoch automatisch den richtigen Wert in das Feld ein.

Syntax

PROCEDURE LIST_VALUES
  (kwd  NUMBER);

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

kwd	Gibt eine der folgenden Konstanten an:

NO_RESTRICT  Gibt an, daß Form Builder die automatische Such- und Vervollständigungsfunktion nicht benutzt.

RESTRICT  Gibt an, daß Form Builder die automatische Such- und Vervollständigungsfunktion benutzt.


Vordefinierte Prozedur LOCK_RECORD

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Versucht, die Zeile in der Datenbank zu sperren, die dem aktuellen Datensatz entspricht. LOCK_RECORD sperrt den Datensatz sofort unabhängig davon, ob das Attribut Sperrmodus für den Block auf Sofort (Standard) oder Verzögert gesetzt ist.

Wenn diese Prozedur aus einem On-Lock-Trigger ausgeführt wird, löst LOCK_RECORD die Standard-Datenbanksperre aus. In dem folgenden Beispiel wird diese Technik dargestellt.

Syntax

PROCEDURE LOCK_RECORD;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Keine


Beispiele für LOCK_RECORD

/*

** Built-in:  LOCK_RECORD
** Example:   Perform Form Builder standard record locking on the
**            queried record which has just been deleted or
**            updated. Decide whether to use default
**            processing or a user exit by consulting a
**            global flag setup at startup by the form,
**            perhaps based on a parameter.
** Trigger:   On-Lock
*/
BEGIN
  /*
  ** Check the global flag we set up at form startup
  */
  IF :Global.Non_Oracle_Datasource = 'TRUE' THEN
    User_Exit('my_lockrec block=EMP');
  /*
  ** Otherwise, do the right thing.
  */
  ELSE
    Lock_Record;
  END IF;
END;


Vordefinierte Prozedur LOGON

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Führt die Standard-Anmeldeprozedur von Form Builder mit einem angegebenen Benutzernamen und Kennwort durch. Rufen Sie diese Prozedur aus einem On-Logon-Trigger auf, wenn die Standard-Anmeldeverarbeitung verbessert werden soll.

Syntax

PROCEDURE LOGON
  (username  VARCHAR2,
   password  VARCHAR2);

PROCEDURE LOGON
  (username               VARCHAR2,
   password               VARCHAR2,
   logon_screen_on_error  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Diese vordefinierte Prozedur benutzt die folgenden Argumente:

username	Beliebiger gültiger Benutzername mit maximal 80 Zeichen.

Password	Beliebiges gültiges Kennwort mit maximal 80 Zeichen, einschließlich einer DB-Adresse.

logon_screen_ on_error	Ein optionaler BOOLESCHER Parameter, der, wenn er auf TRUE eingestellt ist (Standard), dazu führt, daß Form Builder den Anmeldebildschirm automatisch anzeigt, wenn die angegebene Anmeldung nicht erfolgreich ist (im allgemeinen wegen falschem Benutzernamen/Kennwort). Wenn logon_screen_on_error auf FALSE gesetzt ist und die Anmeldung nicht erfolgreich ist, wird der Anmeldebildschirm nicht angezeigt, und FORMS_FAILURE wird auf TRUE gesetzt, damit der Entwickler die Bedingung entsprechend bearbeiten kann.

Verwendungshinweise:

Verwenden Sie beim Anmelden an die OPS$-Datenbank über LOGON einen Schrägstrich ('/') für den Benutzernamen und den Datenbanknamen als Kennwort.


Einschränkungen bei LOGON

n	Wenn Sie eine entfernte Datenbank kennzeichnen, muß zur Laufzeit eine SQL*Net-Verbindung zu dieser Datenbank bestehen.

n	Form Builder kann immer nur bei einer Datenbank gleichzeitig angemeldet sein. Datenbank-Links können jedoch benutzt werden, um mit einer einzigen Anmeldung auf mehrere Datenbanken zuzugreifen.


Beispiele für LOGON

/*

** Built-in:  LOGON
** Example:   Perform Form Builder standard logon to the ORACLE
**            database.  Decide whether to use Form Builder
**            built-in processing or a user exit by consulting a
**            global flag setup at startup by the form,
**            perhaps based on a parameter. This example
**            uses the 'Get_Connect_Info' procedure from the
**            GET_APPLICATION_PROPERTY example.
** Trigger:   On-Logon
*/
DECLARE
  un  VARCHAR2(80);
  pw  VARCHAR2(80);
  cn  VARCHAR2(80);
BEGIN
  /*
  ** Get the connection info
  */
  Get_Connect_Info(un,pw,cn);
  /*
  ** If at startup we set the flag to tell our form that we
  ** are not running against ORACLE, then call our
  ** appropriate MY_LOGON userexit to logon.
  */
  IF :Global.Non_Oracle_Datasource = 'TRUE' THEN
    User_Exit('my_logon username='||un||' password='||pw);
  /*
  ** Otherwise, call the LOGON built-in
  */
  ELSE

  /*

  ** Use the following to place a slash in the username field for OPS$ logon

  */

    IF un IS NULL THEN

      un:='/';

    END IF

    IF cn IS NOT NULL THEN
      LOGON(un,pw||'@'||cn);
    ELSE
      LOGON(un,pw);
    END IF;
  END IF;
END;


Vordefinierte Prozedur LOGON_SCREEN

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Zeigt den Standard-Anmeldebildschirm von Form Builder an und fordert zur Eingabe eines gültigen Benutzernamens und Kennworts auf. Im allgemeinen werden Sie diese vordefinierte Prozedur in einem On-Logon-Trigger benutzen, um sich bei einer fremden Datenquelle anzumelden.

Syntax

PROCEDURE LOGON_SCREEN;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Einschränkungen bei LOGON_SCREEN

n	Sie müssen die vordefinierte Prozedur LOGON aufrufen, um die Verbindung zu der Datenquelle herzustellen.


Beispiele für LOGON_SCREEN

/*

** Built-in:  LOGON_SCREEN
** Example:   Use the default Form Builder logon screen to prompt
**            for username and password before logging on to
**            the database. This uses the 'Get_Connect_Info'
**            procedure from the GET_APPLICATION_PROPERTY
**            example.
*/
DECLARE
  un  VARCHAR2(80);
  pw  VARCHAR2(80);
  cn  VARCHAR2(80);
BEGIN
  /*
  ** Bring up the logon screen
  */
  Logon_Screen;
  /*
  ** Get the username, password and
  ** connect string.
  */
  Get_Connect_Info( un, pw, cn );
  /*
  ** Log the user onto the database
  */
  IF cn IS NOT NULL THEN
    LOGON(un,pw||'@'||cn);
  ELSE
    LOGON(un,pw);
  END IF;
END;


Vordefinierte Prozedur LOGOUT

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Meldet die Anwendung von ORACLE RDBMS ab. Alle geöffneten Cursor werden automatisch geschlossen, wenn Sie die vordefinierte Prozedur LOGOUT aufrufen. Sie können sich programmgesteuert wieder mit LOGON anmelden. Wenn Sie sich mit LOGOUT bei einer mehrere Forms umfassenden Anwendung mit mehreren Anmeldungen abmelden, versucht Form Builder, all diese Verbindungen wiederherzustellen, wenn Sie danach eine LOGON-Prozedur ausführen.

Syntax

PROCEDURE LOGOUT;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Beispiele für LOGOUT

/*

** Built-in:  LOGOUT
** Example:   Perform Form Builder standard logout. Decide
**            whether to use Form Builder built-in processing or a
**            user exit by consulting a global flag setup at
**            startup by the form, perhaps based on a
**            parameter.
** Trigger:   On-Logout
*/
BEGIN
  /*
  ** Check the flag we setup at form startup
  */
  IF :Global.Non_Oracle_Datasource = 'TRUE' THEN
    User_Exit('my_logout');
  /*
  ** Otherwise, do the right thing.
  */
  ELSE
    Logout;
  END IF;


Vordefinierte Prozedur MENU_CLEAR_FIELD

 Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

MENU_CLEAR_FIELD entfernt den Wert des aktuellen Feldes von der aktuellen Cursorposition bis zum Ende des Feldes. Wenn die aktuelle Cursorposition rechts neben dem letzten nicht leeren Zeichen steht, entfernt MENU_CLEAR_FIELD das ganze Feld und setzt dessen Wert auf NULL.

Syntax

PROCEDURE MENU_CLEAR_FIELD;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Einschränkungen bei MENU_CLEAR_FIELD

Das Dialogfeld Parameterwerte eingeben muß angezeigt werden.


Vordefinierte Prozedur MENU_NEXT_FIELD

 Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

MENU_NEXT_FIELD geht zu dem nächsten Feld in einem Dialogfeld Parameterwerte eingeben.

Syntax

PROCEDURE MENU_NEXT_FIELD;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Einschränkungen bei MENU_NEXT_FIELD

Sie müssen sich in einem Dialogfeld Parameterwerte eingeben befinden.


Vordefinierte Prozedur MENU_PARAMETER

 Einschränkungen	 	 Alle vordefinierten Prozeduren

Beschreibung

MENU_PARAMETER zeigt alle mit dem aktuellen Menü verknüpften Parameter und deren aktuelle Werte im Dialogfeld Parameterwerte eingeben an.

Syntax

PROCEDURE MENU_PARAMETER;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Einschränkungen bei MENU_PARAMETER

Ist nur bei Menüs gültig, die im Gesamtbildschirmmodus ausgeführt werden.


Vordefinierte Prozedur MENU_PREVIOUS_FIELD

 Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

MENU_PREVIOUS_FIELD geht zum vorherigen Feld in einem Dialogfeld Parameterwerte eingeben zurück.

Syntax

PROCEDURE MENU_PREVIOUS_FIELD;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Einschränkungen bei MENU_PREVIOUS_FIELD

Sie müssen sich in einem Dialogfeld Parameterwerte eingeben befinden.


Vordefinierte Prozedur MENU_REDISPLAY

 Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

Die Prozedur zeichnet den Bildschirm in einem Menü neu.

Syntax

PROCEDURE MENU_REDISPLAY;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Einschränkungen bei MENU_REDISPLAY

Sie müssen mit einer Plattform im Zeichen- oder Blockmodus arbeiten.


Vordefinierte Prozedur MENU_SHOW_KEYS

 Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

MENU_SHOW_KEYS zeigt den Bildschirm Tastenbelegung für das Menümodul zur Laufzeit an.

Syntax

PROCEDURE MENU_SHOW_KEYS;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Einschränkungen bei MENU_SHOW_KEYS

MENU_SHOW_KEYS ist in jedem Kontext verfügbar.


Vordefinierte Prozedur MESSAGE

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Zeigt den angegebenen Text in der Meldungszeile an.

Syntax

PROCEDURE MESSAGE
  (message_string  VARCHAR2,
   user_response   NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

message_string	Geben Sie eine Zeichenfolge in einfachen Anführungszeichen oder eine Variable vom Datentyp VARCHAR2 an.

user_response	Gibt eine der folgenden Konstanten an:

ACKNOWLEDGE  Gibt an, daß Form Builder ein modales Warnfenster anzeigen soll, das der Operator ausdrücklich verwerfen muß, sobald zwei aufeinanderfolgende Meldungen ausgegeben werden. Mit ACKNOWLEDGE wird die erste Meldung quittiert, bevor die zweite Meldung angezeigt werden kann. Dies ist der Standardwert.

NO_ACKNOWLEDGE  Gibt an, daß vom Operator nicht erwartet wird, daß er die erste angezeigte Meldung quittiert, bevor Form Builder die zweite Meldung anzeigt, wenn zwei aufeinanderfolgende Meldungen ausgegeben werden. Bei Benutzung von NO_ACKNOWLEDGE besteht die Gefahr, daß der Operator die erste Meldung nicht sieht, da die zweite Meldung diese sofort überschreibt, ohne den Benutzer zur Quittierung aufzufordern.


Einschränkungen bei MESSAGE

message_string kann maximal 200 Zeichen umfassen. Beachten Sie jedoch, daß verschiedene Faktoren die Höchstzahl von Zeichen beeinflussen, die angezeigt werden können, einschließlich aktueller Schriftart und Einschränkungen des Fensterverwaltungsprogramms zur Laufzeit.


Beispiele für MESSAGE

/*

** Built-in:  MESSAGE
** Example:   Display several messages to the command line
**            throughout the progress of a particular
**            subprogram. By using the NO_ACKNOWLEDGE parameter,
**            we can avoid the operator's having to
**            acknowledge each message explicitly.
*/
PROCEDURE Do_Large_Series_Of_Updates IS
BEGIN
  Message('Working... (0%)', NO_ACKNOWLEDGE);
  /*
  ** Long-running update statement goes here
  */

  SYNCHRONIZE;
  Message('Working... (30%)', NO_ACKNOWLEDGE);
  /*
  ** Another long-running update statement goes here
  */
  Message('Working... (80%)', NO_ACKNOWLEDGE);
  /*
  ** Last long-running statement here
  */
  Message('Done...', NO_ACKNOWLEDGE);
END;


Vordefinierte Prozedur MESSAGE_CODE

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt eine Meldungsnummer für die Meldung zurück, die Form Builder als letztes während der aktuellen Runform-Sitzung generiert hat. MESSAGE_CODE gibt null am Anfang einer Sitzung zurück, bevor Form Builder Meldungen generiert.

Mit MESSAGE_CODE testen Sie das Ergebnis einer Benutzeraktion (z.B. das Drücken einer Taste), um die Verarbeitung innerhalb eines On-Message-Triggers zu bestimmen.

In dem Anhang mit den Meldungen finden Sie eine Liste der Meldungen und Meldungsnummern.

Syntax

FUNCTION MESSAGE_CODE;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  NUMBER

Abfragemodus  Ja

Parameter

Keine


Beispiele für MESSAGE_CODE

/*

** Built-in:  MESSAGE_CODE,MESSAGE_TEXT,MESSAGE_TYPE
** Example:   Reword certain FRM message messages by checking
**            the Message_Code in an ON-MESSAGE trigger
** Trigger:   On-Message
*/
DECLARE
  msgnum NUMBER       := MESSAGE_CODE;
  msgtxt VARCHAR2(80) := MESSAGE_TEXT;
  msgtyp VARCHAR2(3)  := MESSAGE_TYPE;
BEGIN
  IF msgnum = 40400 THEN
    Message('Your changes have been made permanent.');
  ELSIF msgnum = 40401 THEN
    Message('You have no unsaved changes outstanding.');
  ELSE
    /*
    ** Print the Normal Message that would have appeared
    **
    **  FRM-12345: Message Text Goes Here
    */
    Message(msgtyp||'-'||TO_CHAR(msgnum)||': '||msgtxt);
  END IF;
END;


Vordefinierte Prozedur MESSAGE_TEXT

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt den Meldungstext für die Meldung zurück, die Form Builder als letztes während der aktuellen Runform-Sitzung generiert hat. MESSAGE_TEXT gibt NULL am Anfang einer Sitzung zurück, bevor Form Builder Meldungen generiert.

Mit MESSAGE_TEXT testen Sie das Ergebnis einer Benutzeraktion (z.B. das Drücken einer Taste), um die Verarbeitung innerhalb eines On-Message-Triggers zu bestimmen.

Hinweis: Wenn Ihre Anwendungen in mehreren Sprachen unterstützt werden müssen, benutzen Sie die vordefinierte Prozedur MESSAGE_CODE anstelle von MESSAGE_TEXT. Das Referenzieren von Meldungscodes anstelle von Meldungstext ist besonders bei Anwendungen von Vorteil, die länderspezifische Einstellungen unterstützen.

Syntax

FUNCTION MESSAGE_TEXT;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

Keine


Beispiele für MESSAGE_TEXT

/*

** Built-in:  MESSAGE_CODE,MESSAGE_TEXT,MESSAGE_TYPE
** Example:   Reword certain FRM message messages by checking
**            the Message_Code in an ON-MESSAGE trigger
** Trigger:   On-Message
*/
DECLARE
  msgnum NUMBER       := MESSAGE_CODE;
  msgtxt VARCHAR2(80) := MESSAGE_TEXT;
  msgtyp VARCHAR2(3)  := MESSAGE_TYPE;
BEGIN
  IF msgnum = 40400 THEN
    Message('Your changes have been made permanent.');
  ELSIF msgnum = 40401 THEN
    Message('You have no unsaved changes outstanding.');
  ELSE
    /*
    ** Print the Normal Message that would have appeared
    **
    **  FRM-12345: Message Text Goes Here
    */
    Message(msgtyp||'-'||TO_CHAR(msgnum)||': '||msgtxt);
  END IF;
END;


Vordefinierte Prozedur MESSAGE_TYPE

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt einen Meldungstyp für die Meldung zurück, die Form Builder als letztes während der aktuellen Runform-Sitzung generiert hat.

Mit MESSAGE_TYPE testen Sie das Ergebnis einer Benutzeraktion (z.B. das Drücken einer Taste), um die Verarbeitung innerhalb eines On-Message-Triggers zu bestimmen.

Syntax

FUNCTION MESSAGE_TYPE;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

MESSAGE_TYPE gibt einen von drei möglichen Werten für den Meldungstyp zurück:

FRM	Gibt an, daß eine Form Builder-Meldung generiert wurde.

ORA	Gibt an, daß eine ORACLE-Meldung generiert wurde.

NULL	Gibt an, daß Form Builder noch keine Meldungen während der Sitzung ausgegeben hat.

Abfragemodus  Ja

Parameter

Keine


Beispiele für MESSAGE_TYPE

/*

** Built-in:  MESSAGE_CODE,MESSAGE_TEXT,MESSAGE_TYPE
** Example:   Reword certain FRM message messages by checking
**            the Message_Code in an ON-MESSAGE trigger
** Trigger:   On-Message
*/
DECLARE
  msgnum NUMBER       := MESSAGE_CODE;
  msgtxt VARCHAR2(80) := MESSAGE_TEXT;
  msgtyp VARCHAR2(3)  := MESSAGE_TYPE;
BEGIN
  IF msgnum = 40400 THEN
    Message('Your changes have been made permanent.');
  ELSIF msgnum = 40401 THEN
    Message('You have no unsaved changes outstanding.');
  ELSE
    /*
    ** Print the Normal Message that would have appeared
    **
    **  FRM-12345: Message Text Goes Here
    */
    Message(msgtyp||'-'||TO_CHAR(msgnum)||': '||msgtxt);
  END IF;
END;


Vordefinierte Prozedur MOVE_WINDOW

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Verschiebt das angegebene Fenster an die Stelle, die mit den jeweiligen Koordinaten angegeben wird.

Wenn Sie für das Form-Attribut Koordinatensystem den Wert Zeichen angegeben haben, werden die x-, y-Koordinaten in Zeichen angegeben. Wenn für Koordinatensystem Reell angegeben wurde, werden die x-, y-Koordinaten in den reellen Einheiten angegeben, die Sie ausgewählt haben - Pixel, Zoll, Zentimeter oder Punkt.

Syntax

FUNCTION MOVE_WINDOW
  (window_id  Window,
   x          NUMBER,
   y          NUMBER);

FUNCTION MOVE_WINDOW
  (window_name  VARCHAR2,
   x            NUMBER,
   y            NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Abfragemodus  Ja

Parameter

window_id	Gibt die eindeutige ID an, die Form Builder dem Fenster beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_WINDOW, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist Window.

window_name	Gibt den Namen an, den Sie dem Fenster beim Erstellen gegeben haben.

X	Gibt die x-Koordinate auf dem Bildschirm an, bei der die obere linke Ecke eines Fensters stehen soll.

Y	Gibt die y-Koordinate auf dem Bildschirm an, bei der die obere linke Ecke eines Fensters stehen soll.


Beispiele für MOVE_WINDOW

/*

** Built-in:  MOVE_WINDOW
** Example:   Move window2 to be anchored at the bottom right
**            corner of window1.
*/
PROCEDURE Anchor_Bottom_Right2( Window2 VARCHAR2, Window1 VARCHAR2) IS
  wn_id1 Window;
  wn_id2 Window;
  x      NUMBER;
  y      NUMBER;
  w      NUMBER;
  h      NUMBER;
BEGIN
  /*
  ** Find Window1 and get its (x,y) position, width, and
  ** height.
  */
  wn_id1 := Find_Window(Window1);
  x      := Get_Window_Property(wn_id1,X_POS);
  y      := Get_Window_Property(wn_id1,Y_POS);
  w      := Get_Window_Property(wn_id1,WIDTH);
  h      := Get_Window_Property(wn_id1,HEIGHT);
  /*
  ** Anchor Window2 at (x+w,y+h)
  */
  wn_id2 := Find_Window(Window2);
  Move_Window( wn_id2, x+w, y+h );
END;


Vordefinierte Prozedur NAME_IN

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt den Wert der angegebenen Variablen zurück.

Der angegebene Wert hat die Form einer Zeichenfolge. Sie können jedoch NAME_IN benutzen, um Zahlen und Datumsangaben als Zeichenfolgen zurückzugeben und diese Zeichenfolgen dann in die entsprechenden Datentypen konvertieren. Sie können den Rückgabewert genau wie jeden anderen Wert innerhalb einer ausführbaren Anweisung benutzen.

Wenn Sie die Funktion NAME_IN verschachteln, wertet Form Builder die einzelnen NAME_IN-Funktionen von der innersten bis zur äußersten Funktion aus.

Syntax

FUNCTION NAME_IN
  (variable_name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

variable_name	Gibt eine gültige Variable bzw. ein gültiges Textobjekt an. Der Datentyp des Namens ist VARCHAR2.

Verwendungshinweise

Wenn der zurückgegebene Wert eine Datumsfolge ist, verwendet NAME_IN die im Attribut BUILTIN_DATE_FORMAT angegebene Formatmaske. Wird das Attribut DATE_FORMAT_COMPATIBILITY_MODE auf 4.5 eingestellt, wird die zurückgegebene Zeichenfolge im amerikanischen Standardformat formatiert.


Beispiele für NAME_IN

/*

** Built-in:  NAME_IN
** Example:  Simple implementation of a Last-In-First-Out
**           stack mechanism using Global variables.
**           For each named stack, a global variable
**           GLOBAL.<stackname>_PTR points to the largest
**           element on the stack. PUSH increments this
**           value as new elements are added.  Values
**           PUSH'ed on or POP'ed off the named stack are
**           actually stored in GLOBAL variables of a
**           conveniently formed name: GLOBAL.<stackname>nnn
**           where 'nnn' is the number of the element on the
**           stack.
**
**           Usage:
**           Push('MYSTACKNAME', '1');
**           Push('MYSTACKNAME', '2');
**
**           str_var := Pop('MYSTACKNAME');  -- Gets '2'
**           str_var := Pop('MYSTACKNAME');  -- Gets '1'
**           str_var := Pop('MYSTACKNAME');  -- Gets 'EOS'
**
*/
PROCEDURE Push ( the_stackname VARCHAR2,
         the_value     VARCHAR2 ) IS

  ptr_name VARCHAR2(40); -- This stack's pointer name
  prefix   VARCHAR2(40); -- Common prefix for storage vars
  elt_name VARCHAR2(40); -- Name of storage element
  new_idx  VARCHAR2(4) ; -- New stack pointer value
BEGIN
  /*
  ** For any named stack that we reference, the global
  ** variables used for storing the stack's values and the
  ** stack's pointer all begin with a common prefix:
  ** GLOBAL.<stackname>
  */
  prefix := 'GLOBAL.' || the_stackname;
  /*
  ** This named stack's pointer resides in
  ** GLOBAL.<stackname>_PTR Remember that this is the *name*
  ** of the pointer.
  */
  ptr_name := prefix || '_PTR';
  /*
  ** Initialize the stack pointer with a default value of
  ** zero if the stack pointer did not exist previously, ie
  ** the GLOBAL.<stackname>_PTR had yet to be created.
  */
  Default_Value( '0', ptr_name );
  /*
  ** Since we're PUSH'ing a new element on the stack,
  ** increment the stack pointer to reflect this new
  ** element's position.  Remember that GLOBAL variables are
  ** always of type VARCHAR2, so we must convert them TO_NUMBER
  ** before any calculations.
  */
  new_idx  := TO_CHAR( TO_NUMBER( Name_In( ptr_name ) ) + 1 ) ;
  Copy( new_idx   , ptr_name );
  /*
  ** Determine the name of the global variable which will
  ** store the value passed in, GLOBAL.<stackname><new_idx>.
  ** This is simply the prefix concatenated to the new index
  ** number we just calculated above.
  */
  elt_name := prefix||new_idx;
  Copy( the_value , elt_name );
END;

FUNCTION Pop ( the_stackname VARCHAR2)
RETURN VARCHAR2 IS
  ptr_name VARCHAR2(40); -- This stack's pointer name
  prefix   VARCHAR2(40); -- Common prefix for storage vars
  elt_name VARCHAR2(40); -- Name of storage element
  new_idx  VARCHAR2(4) ; -- New stack pointer value
  cur_idx  VARCHAR2(4) ; -- Current stack pointer value
  the_val  VARCHAR2(255);

  EMPTY_STACK   CONSTANT VARCHAR2(3) := 'EOS';
  NO_SUCH_STACK CONSTANT VARCHAR2(3) := 'NSS';
BEGIN
  /*
  ** For any named stack that we reference, the global
  ** variables used for storing the stack's values and the
  ** stack's pointer all begin with a common prefix:
  ** GLOBAL.<stackname>
  */
  prefix   := 'GLOBAL.' || the_stackname;
  /*
  ** This named stack's pointer resides in
  ** GLOBAL.<stackname>_PTR Remember that this is the *name*
  ** of the pointer.
  */
  ptr_name := prefix || '_PTR';
  /*
  ** Force a default value of NULL so we can test if the
  ** pointer exists (as a global variable). If it does not
  ** exist, we can test in a moment for the NULL, and avoid
  ** the typical error due to referencing non-existent
  ** global variables.
  */
  Default_Value( NULL, ptr_name );
  /*
  ** If the *value* contained in the pointer is NULL, then
  ** the pointer must not have existed prior to the
  ** Default_Value statement above. Return the constant
  ** NO_SUCH_STACK in this case and erase the global
  ** variable that the Default_Value implicitly created.
  */
 IF Name_In( ptr_name ) IS NULL THEN
   the_val := NO_SUCH_STACK;
  Erase( ptr_name );
 /*
 ** Otherwise, the named stack already exists. Get the
 ** index of the largest stack element from this stack's
 ** pointer.
 */
 ELSE
   cur_idx := Name_In( ptr_name ) ;
   /*
   ** If the index is zero, then the named stack is already
   ** empty, so return the constant EMPTY_STACK, and leave
   ** the stack's pointer around for later use, ie don't
   ** ERASE it.
   **
   ** Note that a stack can only be empty if some values
   ** have been PUSH'ed and then all values subsequently
   ** POP'ed.  If no values were ever PUSH'ed on this named
   ** stack, then no associated stack pointer would have
   ** been created, and we would flag that error with the
   ** NO_SUCH_STACK case above.
   */
   IF cur_idx = '0' THEN
     the_val := EMPTY_STACK;
    /*
    ** If the index is non-zero, then:
    ** (1) Determine the name of the global variable in
    **     which the value to be POP'ed is stored,
    **     GLOBAL.<stackname><cur_idx>
    ** (2) Get the value of the (cur_idx)-th element to
    **     return
    ** (3) Decrement the stack pointer
    ** (4) Erase the global variable which was used for
    **     value storage
    */
    ELSE
      elt_name:= prefix || cur_idx;
      the_val := Name_In( elt_name );
      new_idx := TO_CHAR( TO_NUMBER( Name_In(ptr_name) ) - 1 ) ;
      Copy( new_idx , ptr_name );
      Erase( elt_name );
    END IF;
  END IF;
  RETURN the_val;
END;


Vordefinierte Prozedur NEW_FORM

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Beendet die aktuelle Form und ruft die angegebene Form auf. Die aufrufende Form wird als übergeordnete Form beendet. Wenn die aufrufende Form von einer höheren Form aufgerufen wurde, beläßt Form Builder den höheren Aufruf aktiv und behandelt diesen als einen Aufruf der neuen Form. Form Builder gibt Speicherplatz frei (wie z.B. Datenbank-Cursor), den die beendete Form benutzt hat.

Form Builder führt die neue Form mit denselben Runform-Optionen wie bei der übergeordneten Form aus. Wenn die übergeordnete Form eine aufgerufene Form war, führt Form Builder die neue Form mit denselben Optionen wie bei der übergeordneten Form aus.

Syntax

PROCEDURE NEW_FORM
  (formmodule_name  VARCHAR2);

PROCEDURE NEW_FORM
  (formmodule_name  VARCHAR2,
   rollback_mode    NUMBER);
PROCEDURE NEW_FORM
  (formmodule_name  VARCHAR2,
   rollback_mode    NUMBER,
   query_mode       NUMBER);
PROCEDURE NEW_FORM
  (formmodule_name  VARCHAR2,
   rollback_mode    NUMBER,
   query_mode       NUMBER,
   data_mode        NUMBER);
PROCEDURE NEW_FORM
  (formmodule_name  VARCHAR2,
   rollback_mode    NUMBER,
   query_mode       NUMBER,
   paramlist_id     PARAMLIST);
PROCEDURE NEW_FORM
  (formmodule_name  VARCHAR2,
   rollback_mode    NUMBER,
   query_mode       NUMBER,
   paramlist_name   VARCHAR2);
PROCEDURE NEW_FORM
  (formmodule_name  VARCHAR2,
   rollback_mode    NUMBER,
   query_mode       NUMBER,
   data_mode        NUMBER,
   paramlist_id     PARAMLIST);
PROCEDURE NEW_FORM
  (formmodule_name  VARCHAR2,
   rollback_mode    NUMBER,
   query_mode       NUMBER,
   data_mode        NUMBER,
   paramlist_name   VARCHAR2);

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

formmodule_name	Der Name der aufgerufenen Form (muß in einfachen Anführungszeichen stehen). Der Datentyp ist VARCHAR2.

rollback_mode	TO_SAVEPOINT  (Standard) Form Builder setzt alle nicht gespeicherten Änderungen (einschließlich abgeschickter Änderungen) auf den Savepoint der aktuellen Form zurück.

NO_ROLLBACK  Form Builder beendet die aktuelle Form, ohne auf einen Savepoint zurückzusetzen. Sie können die Form der obersten Ebene verlassen, ohne einen Rollback-Vorgang durchzuführen, d.h. daß Sie eventuell vorhandene Sperren über einen NEW_FORM-Vorgang beibehalten können. Diese Sperren können auch auftreten, wenn Sie Form Builder aus einem externen 3GL-Programm aufrufen. Die Sperren sind immer noch wirksam, wenn Sie die Kontrolle von Form Builder zurückerhalten.

FULL_ROLLBACK  Form Builder setzt alle nicht gespeicherten Änderungen (einschließlich abgeschickter Änderungen) zurück, die während der aktuellen Runform-Sitzung vorgenommen wurden. Sie können keinen FULL_ROLLBACK von einer Form angeben, die im Abschickmodus ausgeführt wird. (Der Abschickmodus kann auftreten, wenn Ihre Form einen Aufruf an eine andere Form ausgibt, während nicht abgeschickte Datensätze in der aufrufenden Form vorhanden sind. Um einen Verlust der von der aufrufenden Form ausgegebenen Sperren zu vermeiden, verhindert Form Builder jeden Speichervorgang in der aufgerufenen Form.)

query_mode	NO_QUERY_ONLY  (Standard) Führt die angegebene Form normal aus, so daß der Endbenutzer Einfügen-, Aktualisieren- und Löschenvorgänge in der Form ausführen kann.

QUERY_ONLY  Führt die angegebene Form im Abfragemodus aus. Endbenutzer können Datensätze abfragen, können jedoch keine Datensätze einfügen, aktualisieren oder löschen.

data_mode	NO_SHARE_LIBRARY_DATA  (Standard) Zur Laufzeit benutzt Form Builder bei Forms, denen (beim Entwurf) identische Bibliotheken zugeordnet wurden, keine Daten gemeinsam.

SHARE_LIBRARY_DATA  Zur Laufzeit benutzt Form Builder bei Forms, denen (beim Entwurf) identische Bibliotheken zugeordnet wurden, Daten gemeinsam.

paramlist_id 	Die eindeutige ID, die Form Builder beim Erstellen der Parameterliste zuweist. Geben Sie eine Parameterliste an, wenn die Parameter von der aufrufenden Form zu der neuen Form übergeben werden sollen. Der Datentyp ist PARAMLIST. Eine Parameterliste, die über NEW_FORM an eine Form übergeben wurde, darf keine Parameter vom Typ DATA_PARAMETER (ein Zeiger auf die Datensatzgruppe) enthalten.

paramlist_name_Der Name, den Sie dem Parameterlistenobjekt bei der Definition zugewiesen haben. Der Datentyp ist VARCHAR2. Eine Parameterliste, die über NEW_FORM an eine Form übergeben wird, darf keine Parameter vom Typ DATA_PARAMETER (ein Zeiger auf die Datensatzgruppe) enthalten.


Beispiele für NEW_FORM

/* Create a generic procedure that will invoke the

** formname passed-in using the method indicated by
** the 'newform' and 'queryonly' parameters.
*/
PROCEDURE GENERIC_CALL(formname   VARCHAR2,
                       newform    VARCHAR2,
                       queryonly  VARCHAR2) IS

  msglvl          VARCHAR2(2);
  error_occurred  EXCEPTION;
BEGIN
  /*
  ** Remember the current message level and temporarily
  ** set it to 10 to suppress errors if an incorrect
  ** formname is called
  */
  msglvl := :SYSTEM.MESSAGE_LEVEL;
  :SYSTEM.MESSAGE_LEVEL := '10';

  IF newform = 'Y' THEN
     IF queryonly = 'Y' THEN
        NEW_FORM(formname, to_savepoint, query_only);
     ELSIF queryonly = 'N' THEN
        NEW_FORM(formname);
     END IF;
  ELSIF newform = 'N' THEN
     IF queryonly = 'Y' THEN
        CALL_FORM(formname, hide, no_replace, query_only);
     ELSIF queryonly = 'N' THEN
        CALL_FORM(formname);
     END IF;
  END IF;
  IF NOT form_success THEN
     MESSAGE('Cannot call form '||UPPER(formname)||
             '. Please contact your SysAdmin for help.');
     RAISE error_occurred;
  END IF;
  :SYSTEM.MESSAGE_LEVEL := msglvl;
EXCEPTION
  WHEN error_occurred THEN
     :SYSTEM.MESSAGE_LEVEL := msglvl;
    RAISE form_trigger_failure;
END;


Vordefinierte Prozedur NEXT_BLOCK

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Navigiert zum ersten navigierbaren Objekt im nächsten Enterable-Block in der Navigationsfolge. Standardmäßig ist der nächste Block in der Navigationsfolge der Block mit der nächsthöheren Sequenznummer, wie mit der Reihenfolge der Blöcke im Objektnavigator definiert. Das Blockattribut Nächster Navigationsblock kann jedoch so gesetzt werden, daß ein anderer Block als nächster Block für Navigationszwecke angegeben wird.

Wenn kein Enterable-Block mit einer höheren Sequenznummer vorhanden ist, navigiert NEXT_BLOCK zu dem Enterable-Block mit der niedrigsten Sequenznummer.

Syntax

PROCEDURE NEXT_BLOCK;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Keine


Beispiele für NEXT_BLOCK

/*

** Built-in:  NEXT_BLOCK
** Example:   If the current item is the last item in the
**            block, then skip to the next block instead of
**            the default of going back to the first item in
**            the same block
** Trigger:   Key-Next-Item
*/
DECLARE
  cur_itm VARCHAR2(80) := :System.Cursor_Item;
  cur_blk VARCHAR2(80) := :System.Cursor_Block;
  lst_itm VARCHAR2(80);
BEGIN
  lst_itm := cur_blk||'.'||Get_Block_Property(cur_blk,LAST_ITEM);
  IF cur_itm = lst_itm THEN
    Next_Block;
  ELSE
    Next_Item;
  END IF;
END;


Vordefinierte Prozedur NEXT_FORM

 Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

In einer Anwendung mit mehreren Forms wird zu der unabhängigen Form mit der nächsthöheren Sequenznummer navigiert. (Forms werden in der Reihenfolge numeriert, in der sie zur Laufzeit aufgerufen wurden.) Wenn keine Form mit einer höheren Sequenznummer vorhanden ist, navigiert NEXT_FORM zu der Form mit der niedrigsten Sequenznummer. Wenn keine derartige Form vorhanden ist, bleibt die aktuelle Form aktuell.

Beim Navigieren mit NEXT_FORM kommt es zu keiner Validierung und werden keine Trigger ausgelöst, mit Ausnahme von WHEN-WINDOW-DEACTIVATED, der für die Form ausgelöst wird, die die Navigation einleitet, und WHEN-WINDOW-ACTIVATED, der für die Zielform ausgelöst wird.

Syntax

PROCEDURE NEXT_FORM;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein


Einschränkungen bei NEXT_FORM

Die Zielform kann keine Form sein, die momentan deaktiviert ist, weil eine andere Form mit CALL_FORM aufgerufen wurde.


Vordefinierte Prozedur NEXT_ITEM

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Navigiert zu dem navigierbaren Objekt mit der nächsthöheren Sequenznummer als das aktuelle Objekt. Wenn kein derartiges Objekt vorhanden ist, navigiert NEXT_ITEM zu dem Objekt mit der niedrigsten Sequenznummer. Wenn kein derartiges Objekt vorhanden ist, navigiert NEXT_ITEM zum aktuellen Objekt.

Wenn die Validierungseinheit das Objekt ist, validiert NEXT_ITEM alle Felder mit Sequenznummern, die größer sind als das aktuelle Objekt oder kleiner als das Zielobjekt.

Die Funktion von NEXT_ITEM von dem letzten navigierbaren Objekt in dem Block hängt von der Einstellung des Blockattributs Navigationsstil ab. Die gültigen Einstellungen für Navigationsstil umfassen:

Selber Datensatz (Standard): Ein Vorgang Next_Item aus dem letzten Objekt eines Blocks verschiebt den Eingabefokus zu dem ersten navigierbaren Objekt in dem Block in diesem Datensatz.

Datensatz ändern:  Ein Vorgang Next_Item aus dem letzten Objekt eines Blocks verschiebt den Eingabefokus zu dem ersten navigierbaren Objekt in dem Block in dem nächsten Datensatz. Wenn der aktuelle Datensatz der letzte Datensatz in dem Block ist und keine geöffnete Abfrage vorhanden ist, erstellt Form Builder einen neuen Datensatz. Wenn eine geöffnete Abfrage in dem Block vorhanden ist (der Block enthält abgefragte Datensätze), lädt Oracle Forms zusätzliche Datensätze nach Bedarf.

Block ändern: Ein Vorgang Next_Item aus dem letzten Objekt eines Blocks verschiebt den Eingabefokus zum ersten navigierbaren Objekt im ersten Datensatz des nächsten Blocks.

Syntax

PROCEDURE NEXT_ITEM;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Beispiele für NEXT_ITEM

/*

** Built-in:  NEXT_ITEM
** Example:   See NEXT_BLOCK
*/


Vordefinierte Prozedur NEXT_KEY

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Navigiert zum ersten aktivierten und navigierbaren Primärschlüsselobjekt mit der nächsthöheren Sequenznummer als das aktuelle Objekt. Wenn kein derartiges Objekt vorhanden ist, navigiert NEXT_KEY zu dem aktivierten und navigierbaren Primärschlüsselobjekt mit der niedrigsten Sequenznummer. Wenn kein Primärschlüsselobjekt im aktuellen Block vorhanden ist, kommt es zu einem Fehler.

Wenn die Validierungseinheit das Objekt ist, validiert NEXT_KEY alle Felder mit Sequenznummern, die größer sind als das aktuelle Objekt bzw. kleiner als das Zielobjekt.

Syntax

PROCEDURE NEXT_KEY;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Beispiele für NEXT_KEY

/*

** Built-in:  NEXT_KEY
** Example:   Jump the cursor to the next primary key item in
**            in the current block.
*/
BEGIN
  Next_Key;
END;


Vordefinierte Prozedur NEXT_MENU_ITEM

 Einschränkungen	 	 Alle vordefinierten Prozeduren

Beschreibung

Navigiert zum nächsten Menüobjekt im aktuellen Menü.

Syntax

PROCEDURE NEXT_MENU_ITEM;

Prozedurtyp    Eingeschränkte Prozedur

Parameter

Keine


Einschränkungen bei NEXT_MENU_ITEM

NEXT_MENU_ITEM ist nur in einem benutzerdefinierten Menü verfügbar, das im Gesamtbildschirmmodus ausgeführt wird.


Vordefinierte Prozedur NEXT_RECORD

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Navigiert zum ersten aktivierten und navigierbaren Objekt in dem Datensatz mit der nächsthöheren Sequenznummer als der aktuelle Datensatz. Wenn kein derartiger Datensatz vorhanden ist, ruft Form Builder einen Datensatz ab bzw. erstellt einen Datensatz. Wenn es sich bei dem aktuellen Datensatz um einen neuen Datensatz handelt, wird NEXT_RECORD nicht erfolgreich ausgeführt.

Syntax

PROCEDURE NEXT_RECORD;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Keine


Einschränkungen bei NEXT_RECORD

Ist im Abfragemodus nicht zulässig.


Beispiele für NEXT_RECORD

/*

** Built-in: NEXT_RECORD
** Example:  If the current item is the last item in the
**           block, then skip to the next record instead of
**           the default of going back to the first item in
**           the same block
** Trigger:   Key-Next-Item
*/
DECLARE
  cur_itm VARCHAR2(80) := :System.Cursor_Item;
  cur_blk VARCHAR2(80) := :System.Cursor_Block;
  lst_itm VARCHAR2(80);
BEGIN
  lst_itm := cur_blk||'.'||Get_Block_Property(cur_blk,LAST_ITEM);
  IF cur_itm = lst_itm THEN
    Next_Record;
  ELSE
    Next_Item;
  END IF;
END;


Vordefinierte Prozedur NEXT_SET

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Ruft eine weitere Gruppe mit Datensätzen aus der Datenbank ab und navigiert zum ersten Datensatz, der abgerufen wird. NEXT_SET kann nur erfolgreich ausgeführt werden, wenn im aktuellen Block eine Abfrage geöffnet ist.

Syntax

PROCEDURE NEXT_SET;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Keine


Beispiele für NEXT_SET

/*

** Built-in:  NEXT_SET
** Example:   Fetch the next set of records from the database
**            when a button is pressed.
** Trigger:   When-Button-Pressed
*/
BEGIN
  Next_Set;
END;


OLEVAR_EMPTY

 Alle vordefinierten Prozeduren

Beschreibung

Eine OLE-Variante vom Typ VT_EMPTY.

Syntax

OLEVAR_EMPTY OLEVAR;

Verwendungshinweise

Dies ist eine nicht einstellbare Variable. Sie wird benutzt, um leere oder nicht vorhandene Argumente für einen OLE-Aufruf zu liefern.


Vordefinierte Prozedur OPEN_FORM

 Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Öffnet die angegebene Form. Mit OPEN_FORM erstellen Sie Anwendungen mit mehreren Forms, d.h. Anwendungen, die mehr als eine Form gleichzeitig öffnen.

Syntax

PROCEDURE OPEN_FORM
  (form_name  VARCHAR2);

PROCEDURE OPEN_FORM
  (form_name      VARCHAR2,
   activate_mode  NUMBER);
PROCEDURE OPEN_FORM
  (form_name      VARCHAR2,
   activate_mode  NUMBER,
   session_mode   NUMBER);
PROCEDURE OPEN_FORM
  (form_name      VARCHAR2,
   activate_mode  NUMBER,
   session_mode   NUMBER,
   data_mode      NUMBER);
PROCEDURE OPEN_FORM
  (form_name       VARCHAR2,
   activate_mode   NUMBER,
   session_mode    NUMBER,
   paramlist_name  VARCHAR2);
PROCEDURE OPEN_FORM
  (form_name      VARCHAR2,
   activate_mode  NUMBER,
   session_mode   NUMBER,
   paramlist_id   PARAMLIST);
PROCEDURE OPEN_FORM
  (form_name       VARCHAR2,
   activate_mode   NUMBER,
   session_mode    NUMBER,
   data_mode       NUMBER,
   paramlist_name  VARCHAR2);
PROCEDURE OPEN_FORM
  (form_name      VARCHAR2,
   activate_mode  NUMBER,
   session_mode   NUMBER,
   data_mode      NUMBER,
   paramlist_id   PARAMLIST);

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter:

form_name	Der Name der zu öffnenden Form. Der Datentyp ist VARCHAR2. Obligatorisch.

activate_mode	ACTIVATE  (Standard) Setzt den Fokus auf die Form, um sie zur aktiven Form in der Anwendung zu machen.

NO_ACTIVATE  Öffnet die Form, setzt den Fokus jedoch nicht auf die Form. Die aktuelle Form bleibt aktuell.

session_mode	NO_SESSION  (Standard) Gibt an, daß die geöffnete Form dieselbe Datenbanksitzung wie die aktuelle Form verwenden soll. POST- und COMMIT-Vorgänge in einer Form führen zu einer Abschicken-, Validieren- und Commit-Verarbeitung  für alle Forms, die in derselben Sitzung ausgeführt werden.

SESSION  Gibt an, daß für die geöffnete Form eine neue, separate Datenbanksitzung erstellt werden soll.

data_mode	NO_SHARE_LIBRARY_DATA  (Standard) Zur Laufzeit benutzt Form Builder bei Forms, denen (beim Entwurf) identische Bibliotheken zugeordnet wurden, keine Daten gemeinsam.

SHARE_LIBRARY_DATA  Zur Laufzeit benutzt Form Builder bei Forms, denen (beim Entwurf) identische Bibliotheken zugeordnet wurden, Daten gemeinsam.

paramlist_name	Der Name einer Parameterliste, die an die geöffnete Form übergeben werden soll. Der Datentyp ist VARCHAR2.

paramlist_id	Die eindeutige ID, die Form Builder der Parameterliste beim Erstellen zuweist. Verwenden Sie die Funktion GET_PARAMETER_LIST, um die ID an eine Variable vom Typ PARAMLIST zurückzugeben.

Verwendungshinweise

•	Unabhängig davon, ob Sie eine Form mit ACTIVATE oder NO_ACTIVATE öffnen, werden Start-Trigger, die normalerweise ausgelöst würden, in der geöffneten Form ausgeführt. (Allerdings wird auf die Verwendungshinweise bezüglich SESSION verwiesen.)

•	Wenn Sie eine Form mit ACTIVATE (Standard) öffnen, erhält die geöffnete Form den Fokus sofort. Trigger-Anweisungen, die auf den Aufruf von OPEN_FORM folgen, werden niemals ausgeführt.

•	Wenn Sie eine Form mit NO_ACTIVATE öffnen, werden Trigger-Anweisungen, die auf den Aufruf von OPEN_FORM folgen, ausgeführt, nachdem die geöffnete Form in den Speicher geladen und die ursprünglichen Start-Trigger ausgelöst wurden.

•	Wenn Sie eine Form öffnen, während SESSION angegeben ist, werden die PRE-LOGON-, ON-LOGON- und POST-LOGON-Trigger nicht ausgelöst.

•	Wenn die Firm, die die vordefinierte Prozedur OPEN_FORM ausgibt, im Abfragemodus (QUERY_ONLY) ausgeführt wird, wird die geöffnete Form ebenfalls im Abfragemodus ausgeführt.

•	Wenn in Microsoft Windows ein Fenster in der Form, die die unabhängige Form öffnet, maximiert ist, wird das erste Fenster, das von der geöffneten Form angezeigt wird, ebenfalls maximiert, unabhängig von der ursprünglichen Einstellung beim Entwurf. (Der GUI-Anzeigestatus eines Fensters wird von dem Attribut Window_State gesteuert.)

•	Bei den meisten Anwendungen werden Sie OPEN_FORM nicht mit Forms verwenden, die Hauptfenster enthalten. Da immer nur ein Hauptfenster gleichzeitig angezeigt werden kann, werden Leinwände, die dem Hauptfenster in der aktuellen Form und in der geöffneten Form zugewiesen sind, in demselben Fenster angezeigt. Dadurch übernimmt die geöffnete Form das Hauptfenster aus der Originalform, wobei die Leinwände in der Originalform teilweise oder ganz verborgen werden.


Einschränkungen bei OPEN_FORM

•	Sie können Sitzung Ein für alle Runform-Aufrufe setzen, indem Sie die Umgebungsvariable FORMSnn_SESSION auf TRUE setzen. Wenn Sie die Variable FORMSnn_SESSION einstellen, übernehmen alle Runform-Aufrufe diese Einstellung, es sei denn, Sie setzen die Umgebungsvariable außer Kraft, indem Sie die Sitzung-Option aus der Runform-Befehlszeile einstellen.

•	Wenn Sie für session_mode bei der Benutzung von OPEN_FORM für das Erstellen einer Anwendung mit mehreren Forms den Wert SESSION festlegen, können Sie data_mode nicht auf SHARE_LIBRARY_DATA einstellen (Form Builder zeigt eine Laufzeit-Fehlermeldung an).


Vordefinierte Prozedur PASTE_REGION

  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Fügt den Inhalt der Zwischenablage (d.h. den ausgewählten Bereich, der zuletzt ausgeschnitten oder kopiert wurde) ein, wobei die obere linke Ecke des Bereichs bei der Cursorposition eingefügt wird.

Syntax

PROCEDURE PASTE_REGION;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine

Verwendungshinweise

Benutzen Sie PASTE_REGION sowie die anderen Editierfunktionen nur für Text- und Bildobjekte. Mit den Ausschneiden- und Kopieren-Funktionen wird der ausgewählte Bereich in die Systemzwischenablage übertragen, bis Sie das Einfügenziel angeben. Danach wird der ausgeschnittene oder kopierte Inhalt in den Zielort eingefügt.


Vordefinierte Prozedur PAUSE

 Alle vordefinierten Prozeduren

Beschreibung

Unterbricht die Verarbeitung, bis der Endbenutzer eine Funktionstaste drückt. Bei PAUSE könnte ein Warnfenster angezeigt werden.

Syntax

PROCEDURE PAUSE;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Beschreibung

Unterbricht die Verarbeitung, bis der Endbenutzer eine Funktionstaste drückt. Bei PAUSE könnte ein Warnfenster angezeigt werden.

Parameter

Keine


Vordefinierte Prozedur PLAY_SOUND

 Beispiele	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt das Klangobjekt in dem angegebenen Klangelement wieder.

Syntax

PLAY_SOUND(item_id ITEM);}

PLAY_SOUND(item_name VARCHAR2);

Prozedurtyp  Eingeschränkte Prozedur

Abfragemodus Nein

Parameter:

item_id	Die eindeutige ID, die Form Builder dem Klangobjekt beim Erstellen zugewiesen hat.

item_name	Der Name, den Sie dem Klangobjekt beim Erstellen zugewiesen haben.


Beispiele für PLAY_SOUND

/* Example 1: This procedure call (attached to a menu item)

** plays a sound object from the specified sound item:
*/
GO_ITEM('about.abc_inc');
PLAY_SOUND('about.abc_inc');

/* Example 2: These procedure calls (attached to a
** When-Button-Pressed trigger) read a sound object from the
** file system and play it. Note: since an item must have focus
** in order to play a sound, the trigger code includes a call
** to the built-in procedure GO_ITEM:
*/
BEGIN
  IF :clerks.last_name EQ 'BARNES' THEN
    GO_ITEM('orders.filled_by');
    READ_SOUND_FILE('t:\orders\clerk\barnes.wav',
                    'wave',
                    'orders.filled_by');
    PLAY_SOUND('orders.filled_by');
  END IF;
END;


Vordefinierte Prozedur POPULATE_GROUP

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Führt die Abfrage aus, die mit der angegebenen Datensatzgruppe verknüpft ist, und gibt eine Zahl zurück, mit der angegeben wird, ob die Abfrage erfolgreich war oder nicht. Bei einer erfolgreichen Abfrage gibt POPULATE_GROUP eine 0 (null) zurück. Bei einer nicht erfolgreichen Abfrage wird eine ORACLE-Fehlernummer generiert, die dem Scheitern der jeweiligen SELECT-Anweisung entspricht. Die Zeilen, die als Ergebnis einer erfolgreichen Abfrage abgerufen werden, ersetzen die Zeilen, die in der Gruppe vorhanden sind.

Hinweis: Beachten Sie, daß das Array POPULATE_GROUP jeweils 100 Datensätze abruft. Um die Netzwerkleistung zu verbessern, können Sie die Abfragen einschränken und somit den Netzwerkverkehr reduzieren.

Syntax

FUNCTION POPULATE_GROUP
  (recordgroup_id  RecordGroup);

FUNCTION POPULATE_GROUP
  (recordgroup_name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  NUMBER

Abfragemodus  Ja

Parameter

recordgroup_id	Die eindeutige ID, die Form Builder der Gruppe beim Erstellen zugewiesen hat. Der Datentyp der ID ist RecordGroup.

recordgroup_name	Der Name, den Sie der Datensatzgruppe beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.


Einschränkungen bei POPULATE_GROUP

Gilt nur für Datensatzgruppen,

•	die beim Entwurf mit einer Abfrage erstellt wurden.

•	die durch einen Aufruf der vordefinierten Prozedur CREATE_GROUP_FROM_QUERY erstellt wurden.

•	die vorher mit der vordefinierten Prozedur POPULATE_GROUP_WITH_QUERY aufgefüllt wurden (mit der eine Abfrage mit der Datensatzgruppe verknüpft wird).


Beispiele für POPULATE_GROUP

/*

** Built-in:  POPULATE_GROUP
** Example:   See GET_GROUP_ROW_COUNT and CREATE_GROUP_FROM_QUERY
*/


Vordefinierte Prozedur POPULATE_GROUP_FROM_TREE

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Füllt eine Datensatzgruppe mit den Daten aus dem hierarchischen Baum auf.

Syntax

PROCEDURE POPULATE_GROUP_FROM_TREE

  (group_name VARCHAR2,

   item_name VARCHAR2,

   node NODE);

PROCEDURE POPULATE_GROUP_FROM_TREE

  (group_name VARCHAR2,

   item_id ITEM,

   node NODE);

PROCEDURE POPULATE_GROUP_FROM_TREE

  (group_id RECORDGROUP,

   item_name VARCHAR2,

   node NODE);

PROCEDURE POPULATE_GROUP_FROM_TREE

  (group_id RECORDGROUP,

   item_id ITEM,

   node NODE);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Nein

Parameter

group_name	Gibt den Namen der Gruppe an.
Group_id	Gibt die ID an, die der Gruppe zugewiesen ist.
item_name	Gibt den Namen des Objekts an, das beim Entwurf erstellt wurde. Der Datentyp des Namens ist VARCHAR2-Folge.
Item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.
Node	Gibt einen gültigen Knoten an. Wenn dieser Parameter angegeben ist, wird ein Unterbaum für das Auffüllen der Datensatzgruppe angegeben, einschließlich dem Knoten.
Verwendungshinweise

Die Datensatzgruppe wird gelöscht, bevor die Datengruppe des hierarchischen Baums eingefügt wird.


Beispiele für POPULATE_GROUP_FROM_TREE

/*

** Built-in:  POPULATE_GROUP_FROM_TREE
*/

-- This code will transfer all the data from a hierarchical tree

-- that is parented by the node with a label of "Zetie" to a

-- pre-created record group.  Please see the documentation

-- for the structure of the required record group.

DECLARE

   htree         ITEM;

   find_node     NODE;

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Find the node with a label "Zetie".

   find_node := Ftree.Find_Tree_Node(htree, 'Zetie', Ftree.FIND_NEXT,

                Ftree.NODE_LABEL, Ftree.ROOT_NODE, Ftree.ROOT_NODE);

   -- Populate the record group with the tree data.

   -- The record group must already exist.

   Ftree.Populate_Group_From_Tree('tree_data_rg', htree, find_node);

END;


Vordefinierte Prozedur POPULATE_GROUP_WITH_QUERY

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Füllt eine Datensatzgruppe mit der angegebenen Abfrage auf. Die Datensatzgruppe wird entfernt, und abgerufene Zeilen ersetzen bestehende Zeilen in der Datensatzgruppe.

Wenn die SELECT-Anweisung nicht erfolgreich ist, gibt Form Builder eine ORACLE-Fehlernummer zurück. Wenn die Abfrage erfolgreich ist, gibt diese vordefinierte Prozedur 0 (null) zurück.

Mit dieser vordefinierten Prozedur können Sie Datensatzgruppen auffüllen, die durch Aufruf der vordefinierte Prozedur:

•	 CREATE_GROUP oder

•	 CREATE_GROUP_FROM_QUERY

Wenn Sie diese vordefinierte Prozedur benutzen, wird die angegebene Abfrage zur Standardabfrage für die Gruppe und wird immer dann ausgeführt, wenn danach die vordefinierte Prozedur POPULATE_GROUP aufgerufen wird.

Hinweis: Beachten Sie, daß das Array POPULATE_GROUP_WITH_QUERY jeweils 200 Datensätze abruft. Um die Netzwerkleistung zu verbessern, können Sie Abfragen einschränken und somit den Netzwerkverkehr begrenzen.

Syntax

FUNCTION POPULATE_GROUP_WITH_QUERY
  (recordgroup_id  RecordGroup,
   query           VARCHAR2);

FUNCTION POPULATE_GROUP_WITH_QUERY
  (recordgroup_name  VARCHAR2,
   query             VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  NUMBER

Abfragemodus  Ja

Parameter

recordgroup_id	Die eindeutige ID, die Form Builder der Gruppe beim Erstellen zugewiesen hat. Der Datentyp der ID ist RecordGroup.

recordgroup_name	Der Name, den Sie der Datensatzgruppe beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

Query	Eine gültige SELECT-Anweisung in einfachen Anführungszeichen. Spalten, die als Ergebnis der Abfrage abgerufen werden, übernehmen den Datentyp der Spalten in der Tabelle. Wenn Sie die Abfrage auf eine Teilmenge der Spalten in der Tabelle beschränken, erstellt Form Builder nur diese Spalten in der Datensatzgruppe. Der Datentyp der Abfrage ist VARCHAR2.


Einschränkungen bei POPULATE_GROUP_WITH_QUERY

•	Die Spalten, die in der SELECT-Anweisung angegeben werden, müssen in Anzahl und Typ mit den Spalten in der Datensatzgruppe übereinstimmen.


Beispiele für POPULATE_GROUP_WITH_QUERY

/*

** Built-in:  POPULATE_GROUP_WITH_QUERY
** Example:   See CREATE_GROUP
*/


Vordefinierte Prozedur POPULATE_LIST

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Entfernt den Inhalt der aktuellen Liste und füllt die Liste mit den Werten aus einer Datensatzgruppe auf. Die Datensatzgruppe muß zur Laufzeit erstellt werden und muß die folgende zweispaltige (VARCHAR2) Struktur aufweisen:

Spalte 1:	Spalte 2:

Listenbeschriftung	Listenwert

Syntax

PROCEDURE POPULATE_LIST
  (list_id    ITEM,
   recgrp_id  RecordGroup);

PROCEDURE POPULATE_LIST
  (list_id      ITEM,
   recgrp_name  VARCHAR2);
PROCEDURE POPULATE_LIST
  (list_name  VARCHAR2,
   recgrp_id  RecordGroup);
PROCEDURE POPULATE_LIST
  (list_name    VARCHAR2,
   recgrp_name  VARCHAR2);

Prozedurtyp

Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

list_id	Gibt die eindeutige ID an, die Form Builder dem Listenobjekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.

list_name	Der Name, den Sie dem Listenobjekt beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

recgrp_id	Gibt die eindeutige ID an, die Form Builder der Datensatzgruppe beim Erstellen zuweist. Der Datentyp der ID ist RecordGroup.

recgrp_name	Der VARCHAR2-Name, den Sie der Datensatzgruppe beim Erstellen gegeben haben.

Verwendungshinweise

•	Benutzen Sie die vordefinierte Prozedur POPULATE_LIST nicht, wenn das Attribut Zuordnung anderer Werte definiert ist und abgefragte Datensätze in dem Block vorhanden sind. Sonst kann Form Builder möglicherweise die Datensätze nicht anzeigen, die schon abgerufen wurden.

Angenommen, ein Listenobjekt enthält die Werte A, B und C, und das Attribut Zuordnung anderer Werte ist definiert. Weiterhin angenommen, daß diese Werte aus der Datenbank abgerufen wurden (eine Abfrage ist geöffnet). Wenn Sie die Liste nun mit POPULATE_LIST auffüllen, kommt es zu einem Fehler, da Form Builder versucht, die vorher abgerufenen Werte (A, B und C) anzuzeigen, dies jedoch nicht kann, weil diese Werte aus der Liste entfernt und durch neue Werte ersetzt wurden.

•	Bevor Sie eine Liste auffüllen, schließen Sie eventuell geöffnete Abfragen. Benutzen Sie die vordefinierte Prozedur ABORT_QUERY, um eine geöffnete Abfrage zu schließen.


Einschränkungen bei POPULATE_LIST

POPULATE_LIST gibt die Fehlermeldung FRM-41337: Aus Datensatzgruppe kann die Liste nicht gefüllt werden zurück, wenn:

•	die Datensatzgruppe das Standardwerteelement oder die anderen Werteelemente nicht enthält und die Liste die Kriterien nicht erfüllt, die für das Löschen dieser Elemente mit DELETE_LIST_ELEMENT angegeben wurden. Weitere Informationen finden Sie unter den Einschränkungen bei DELETE_LIST_ELEMENT.

•	die Datensatzgruppe ein anderes Werteelement enthält, die Liste jedoch den Kriterien nicht entspricht, die für das Hinzufügen eines anderen Werteelements mit ADD_LIST_ELEMENT angegeben wurden. Weitere Informationen finden Sie unter den Einschränkungen bei ADD_LIST_ELEMENT.


Beispiele für POPULATE_LIST

/*

**  Built-in:  POPULATE_LIST
**  Example:   Retrieves the values from the current list item
**             into record group one, clears the list, and
**             populates the list with values from record group
**             two when a button is pressed.
**  Trigger:   When-Button-Pressed
*/
BEGIN
   Retrieve_List(list_id, 'RECGRP_ONE');
   Clear_List(list_id);
   Populate_List(list_id, 'RECGRP_TWO');
END;


Vordefinierte Prozedur POPULATE_TREE

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Löscht alle Daten, die schon in dem hierarchischen Baum gespeichert sind, und ruft die Datengruppe ab, die mit den Attributen Datensatzgruppe oder Abfragetext angegeben wird.

Syntax

PROCEDURE POPULATE_TREE

  (item_name VARCHAR2);

PROCEDURE POPULATE_TREE

  (item_id ITEM);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Nein

Parameter

item_name	Gibt den Namen des Objekts an, das beim Entwurf erstellt wurde. Der Datentyp des Namens ist VARCHAR2-Folge.
Item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.


Beispiele für POPULATE_TREE

/*

** Built-in:  POPULATE_TREE
*/

-- This code will cause a tree to be re-populated using

-- either the record group or query already specified

-- for the hierarchical tree.

DECLARE

   htree         ITEM;

   top_node      FTREE.NODE;

   find_node     FTREE.NODE;

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Populate the tree with data.

   Ftree.Populate_Tree(htree);

END;


Vordefinierte Prozedur POST

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Schreibt Daten in der Form in die Datenbank, führt jedoch kein Datenbank-Commit aus. Form Builder validiert zuerst die Form. Wenn Änderungen vorhanden sind, die an die Datenbank abgeschickt werden müssen, schreibt, löscht, aktualisiert und fügt Form Builder die entsprechenden Daten für jeden Block in der Form in die Datenbank ein.

Daten, die Sie an die Datenbank abschicken, werden mit der nächsten Prozedur COMMIT_FORM in der Datenbank gespeichert, die während der laufenden Runform-Sitzung ausgeführt wird. Alternativ können diese Daten von der nächsten Prozedur CLEAR_FORM zurückgesetzt werden.

Syntax

PROCEDURE POST;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Keine

Verwendungshinweise

Wenn diese Form über OPEN_FORM aufgerufen wurde, wobei der Parameter NO_SESSION angegeben war, validiert und schreibt POST die Daten sowohl in dieser Form als auch in der aufrufenden Form.


Beispiele für POST

/*

** Built-in:  POST and EXIT_FORM
** Example:   Leave the called form, without rolling back the
**            posted changes so they may be posted and
**            committed by the calling form as part of the
**            same transaction.
*/
BEGIN
  Post;

  /*
  ** Form_Status should be 'QUERY' if all records were
  ** successfully posted.
  */
  IF :System.Form_Status <> 'QUERY' THEN
    Message('An error prevented the system from posting changes');
    RAISE Form_Trigger_Failure;
  END IF;
  /*
  ** By default, Exit_Form asks to commit and performs a
  ** rollback to savepoint. We've already posted, so we do
  ** not need to commit, and we don't want the posted changes
  ** to be rolled back.
  */
  Exit_Form(NO_COMMIT, NO_ROLLBACK);
END;


Vordefinierte Prozedur PREVIOUS_BLOCK

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Navigiert zum ersten navigierbaren Objekt in dem vorherigen Enterable-Block in der Navigationsfolge. Standardmäßig ist der vorherige Block in der Navigationsfolge der Block mit der nächstniedrigeren Sequenznummer, wie mit der Blockreihenfolge im Objektnavigator angegeben. Das Blockattribut Vorheriger Navigationsblock kann jedoch so gesetzt werden, daß ein anderer Block als vorheriger Block für die Navigation angegeben wird.

Wenn kein Enterable-Block mit einer niedrigeren Sequenznummer vorhanden ist, navigiert PREVIOUS_BLOCK zu dem Enterable-Block mit der höchsten Sequenznummer.

Syntax

PROCEDURE PREVIOUS_BLOCK;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Keine


Beispiele für PREVIOUS_BLOCK

/*

** Built-in:  PREVIOUS_BLOCK
** Example:   If the current item is the first item in the
**            block, then skip back the previous block
**            instead of the default of going to the last
**            item in the same block
** Trigger:   Key-Previous-Item
*/
DECLARE
  cur_itm VARCHAR2(80) := :System.Cursor_Item;
  cur_blk VARCHAR2(80) := :System.Cursor_Block;
  frs_itm VARCHAR2(80);
BEGIN
  frs_itm := cur_blk||'.'||Get_Block_Property(cur_blk,FIRST_ITEM);
  IF cur_itm = frs_itm THEN
    Previous_Block;
  ELSE
    Previous_Item;
  END IF;
END;


Vordefinierte Prozedur PREVIOUS_FORM

 Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Diese Prozedur navigiert in einer Anwendung mit mehreren Forms zu der Form mit der nächstniedrigeren Sequenznummer. (Forms werden in der Reihenfolge angeordnet, in der sie zur Laufzeit aufgerufen wurden.) Wenn keine Form mit einer niedrigeren Sequenznummer vorhanden ist, navigiert PREVIOUS_FORM zu der Form mit der höchsten Sequenznummer. Wenn keine derartige Form vorhanden ist, bleibt die aktuelle Form aktuell.

Beim Navigieren mit PREVIOUS_FORM erfolgt keine Validierung und werden keine Trigger ausgelöst, mit Ausnahme von WHEN-WINDOW-DEACTIVATED, der für die Form ausgelöst wird, die die Navigierung einleitet, und WHEN-WINDOW-ACTIVATED, der für die Zielform ausgelöst wird.

Syntax

PROCEDURE PREVIOUS_FORM;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein


Einschränkungen bei PREVIOUS_FORM

Die Zielform kann keine Form sein, die momentan deaktiviert ist, weil eine andere Form mit CALL_FORM aufgerufen wurde.


Vordefinierte Prozedur PREVIOUS_ITEM

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Navigiert zu dem navigierbaren Objekt mit der nächstniedrigeren Sequenznummer als das aktuelle Objekt. Wenn kein derartiges Objekt vorhanden  ist, navigiert PREVIOUS_ITEM zu dem navigierbaren Objekt mit der höchsten Sequenznummer. Wenn kein derartiges Objekt vorhanden ist, navigiert PREVIOUS_ITEM zum aktuellen Objekt.

Die Funktion von PREVIOUS_ITEM aus dem ersten navigierbaren Objekt in dem Block hängt von der Einstellung des Blockattributs Navigationsstil ab.

Selber Datensatz:(Standard)  Ein Vorgang Previous_Item aus dem ersten Objekt eines Blocks setzt den Eingabefokus zu dem letzten navigierbaren Objekt in dem Block in diesem Datensatz.

Datensatz ändern: Ein Vorgang Previous_Item aus dem ersten Objekt eines Blocks setzt den Eingabefokus zu dem letzten navigierbaren Objekt in dem Block im vorherigen Datensatz.

Block ändern: Ein Vorgang Previous_Item aus dem ersten Objekt eines Blocks setzt den Eingabefokus auf das letzte navigierbare Objekt in dem aktuellen Datensatz des vorherigen Blocks.

Syntax

PROCEDURE PREVIOUS_ITEM;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Beispiele für PREVIOUS_ITEM

/*

** Built-in:  PREVIOUS_ITEM
** Example:   See PREVIOUS_BLOCK
*/


Vordefinierte Prozedur PREVIOUS_MENU

 Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

PREVIOUS_MENU navigiert zu dem vorher aktiven Menüpunkt im vorherigen Menü.

Syntax

PROCEDURE PREVIOUS_MENU;

Prozedurtyp    Eingeschränkte Prozedur

Parameter

Keine


Einschränkungen bei PREVIOUS_MENU

PREVIOUS_MENU kann nur in Gesamtbildschirm- und Menüleistenmenüs verwendet werden.


Vordefinierte Prozedur PREVIOUS_MENU_ITEM

 Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

PREVIOUS_MENU_ITEM navigiert zum vorherigen Menüpunkt im aktuellen Menü.

Syntax

PROCEDURE PREVIOUS_MENU_ITEM;

Prozedurtyp    Eingeschränkte Prozedur

Parameter

Keine


Einschränkungen bei PREVIOUS_MENU_ITEM

PREVIOUS_MENU_ITEM kann nur in Gesamtbildschirmmenüs verwendet werden.


Vordefinierte Prozedur PREVIOUS_RECORD

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Navigiert zum ersten aktivierten und navigierbaren Objekt in dem Datensatz mit der nächstniedrigeren Sequenznummer als der aktuelle Datensatz.

Syntax

PROCEDURE PREVIOUS_RECORD;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Keine


Beispiele für PREVIOUS_RECORD

/*

** Built-in:  PREVIOUS_RECORD
** Example:   If the current item is the first item in the
**            block, then skip back to the previous record
**            instead of the default of going to the last
**            item in the same block
** Trigger:   Key-Previous-Item
*/
DECLARE
  cur_itm VARCHAR2(80) := :System.Cursor_Item;
  cur_blk VARCHAR2(80) := :System.Cursor_Block;
  frs_itm VARCHAR2(80);
BEGIN
  frs_itm := cur_blk||'.'||Get_Block_Property(cur_blk,FIRST_ITEM);
  IF cur_itm = frs_itm THEN
    Previous_Record;
  ELSE
    Previous_Item;
  END IF;
END;


Vordefinierte Prozedur PRINT

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Druckt das aktuelle Fenster in eine Datei oder auf dem Drucker.

Syntax

PROCEDURE PRINT;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Beispiele für PRINT

/*

** Built-in:  PRINT
** Example:   Print the current window.
*/
BEGIN
  Print;
END;


PTR_TO_VAR

 Alle vordefinierten Prozeduren

Beschreibung

Erstellt zuerst eine OLE-Variante vom Typ VT_PTR, die die angegebene Adresse enthält. Danach werden diese Variante und der Typ über die Funktion VARPTR_TO_VAR übergeben.

Syntax

FUNCTION PTR_TO_VAR
  (address PLS_INTEGER, vtype VT_TYPE)
RETURN newvar OLEVAR;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Die erstellte und transformierte OLE-Variante

Parameter

address	Eine Variable, deren Wert eine Adresse ist.
Vtype	Der Typ, der der endgültigen Version der OLE-Varianten zugewiesen werden soll (nach der Verarbeitung durch VARPTR_TO_VAR).
Verwendungshinweise

In den meisten Anwendungen muß diese Funktion nicht benutzt werden. Wenn die Funktion benutzt wird, muß sichergestellt sein, daß der richtige Adreßwert in die neue Variante gesetzt wird.


Vordefinierte Prozedur QUERY_PARAMETER

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Zeigt das Dialogfeld Abfrageparameter an, das die aktuellen Werte der angegebenen Ersatzparameter darstellt. Endbenutzer können den Wert jedes Parameters festlegen, den Sie in der Liste aufnehmen.

Das Dialogfeld Abfrageparameter ist modal, und die Kontrolle geht erst wieder an den aufrufenden Trigger bzw. die aufrufende Prozedur, wenn der Endbenutzer das Dialogfeld akzeptiert oder abbricht. Dies bedeutet, daß PL/SQL-Anweisungen, die auf den Aufruf von QUERY_PARAMETER folgen, erst ausgeführt werden, wenn das Dialogfeld Abfrageparameter geschlossen ist.

Syntax

PROCEDURE QUERY_PARAMETER
  (parameter_string  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Parameter

parameter_string	Gibt eine Folge von Ersatzparametern für einen Menüpunkt an. Die Syntax für die Angabe des Parameters parameter_string ist Et-Zeichen &parm_name. Ersatzparameter werden im PL/SQL-Code mit der Doppelpunktsyntax ":param_name" referenziert, die für alle Bindevariablen benutzt wird.


Beispiele für QUERY_PARAMETER

/*

** Built-in:  QUERY_PARAMETER
** Example:   Prompt for several menu parameters
**            programmatically, validating their contents.
*/
PROCEDURE Update_Warehouse IS
  validation_Err BOOLEAN;
BEGIN
  WHILE TRUE LOOP
    Query_Parameter('&p1 &q2 &z6');
    /*
    ** If the user did not Cancel the box the Menu_Success
    ** function will return boolean TRUE.
    */
    IF Menu_Success THEN
      IF TO_NUMBER( :q2 ) NOT BETWEEN 100 AND 5000 THEN
      Message('Qty must be in the range 100..5000');
      Bell;
      Validation_Err := TRUE;
        END IF;
    /*
    ** Start a sub-block so we can catch a Value_Error
    ** exception in a local handler
    */
      BEGIN
    IF TO_DATE( :z6 ) < SYSDATE THEN
      Message('Target Date must name a day in the future.');
      Bell;
      Validation_Err := TRUE;
    END IF;
      EXCEPTION
    WHEN VALUE_ERROR THEN
      Message('Target Date must be of the form DD-MON-YY');
      Bell;
      Validation_Err := TRUE;
      END;
      /*
      ** If we get here, all parameters were valid so do the
      ** Update Statement.
      */
      IF NOT Validation_Err THEN
    UPDATE WAREHOUSE
      SET QTY_TO_ORDER = QTY_TO_ORDER*0.18
    WHERE TARGET_DATE = TO_DATE(:z6)
      AND QTY_ON_HAND > TO_NUMBER(:q2)
      AND COST_CODE LIKE :p1||'%';
      END IF;
    ELSE
      /*
      ** If Menu_Success is boolean false, then return back
      ** from the procedure since user cancelled the dialog
      */
      RETURN;
    END IF;
  END LOOP;
END;


Vordefinierte Prozedur READ_IMAGE_FILE

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Liest ein Bild mit dem angegebenen Typ aus der angegebenen Datei und zeigt es in dem Bildobjekt von Form Builder an.

Syntax

PROCEDURE READ_IMAGE_FILE
  (file_name  VARCHAR2,
   file_type  VARCHAR2,
   item_id    ITEM);

PROCEDURE READ_IMAGE_FILE
  (file_name  VARCHAR2,
   file_type  VARCHAR2,
   item_name  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

file_name	Gültiger Dateiname. Die Angabe des Dateinamens kann eine volle Pfadanweisung je nach Betriebssystem umfassen.

file_type	Der gültige Bilddateityp: BMP, CALS, GIF, JFIF,JPG, PICT, RAS, TIFF oder TPIC.  (Hinweis: Der Dateityp ist optional, da Form Builder versucht, den Dateityp von der Quell-Bilddatei abzuleiten. Um die Leistung zu optimieren, sollten Sie den Dateityp jedoch angeben.)

item_id	Die eindeutige ID, die Form Builder dem Bildobjekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable entsprechenden Typs zurückzugeben. Der Datentyp ist ITEM.

item_name	Der Name, den Sie dem Bildobjekt beim Erstellen zugewiesen haben. Der Datentyp ist VARCHAR2.

Verwendungshinweise

Form Builder sucht nach der Bilddatei im selben Pfad wie nach einer .FMX-Datei. Weitere Informationen über die Suchpfade auf Ihrer Plattform finden Sie in der Form Builder-Dokumentation für Ihr Betriebssystem.


Beispiele für READ_IMAGE_FILE

/* Read an image from the filesystem into an image item on the

** form. In this example, the scanned picture identification
** for each employee is NOT saved to the database, but is
** stored on the filesystem.  An employee's  photo is a TIFF
** image stored in a file named <Userid>.TIF Each employee's
** Userid is unique.
** Trigger: Post-Query
*/
DECLARE
  tiff_image_dir VARCHAR2(80) := '/usr/staff/photos/';
  photo_filename VARCHAR2(80);
BEGIN
  /*
  ** Set the message level high so we can gracefully handle
  ** an error reading the file if it occurs
  */
  :System.Message_Level := '25';
  /*
  ** After fetching an employee record, take the employee's
  ** Userid and concatenate the '.TIF' extension to derive
  ** the filename from which to load the TIFF image. The EMP
  ** record has a non-database image item named 'EMP_PHOTO'
  ** into which we read the image.
  */
  photo_filename := tiff_image_dir||LOWER(:emp.userid)||'.tif';

  /*
  ** For example 'photo_filename' might look like:
  **
  **     /usr/staff/photos/jgetty.tif
  **                       ------
  **
  ** Now, read in the appropriate image.
  */

  READ_IMAGE_FILE(photo_filename, 'TIFF', 'emp.emp_photo');
  IF NOT FORM_SUCCESS THEN
    MESSAGE('This employee does not have a photo on file.');
  END IF;
  :SYSTEM.MESSAGE_LEVEL := '0';
END;


Vordefinierte Prozedur READ_SOUND_FILE

 Beispiele	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Liest ein Klangobjekt aus der angegebenen Datei in das angegebene Klangelement.

Syntax

READ_SOUND_FILE(file_name VARCHAR2,
                file_type VARCHAR2,
                item_id ITEM);

READ_SOUND_FILE(file_name VARCHAR2,
                file_type VARCHAR2,
                item_name VARCHAR2);

Prozedurtyp

Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter:

file_name	Der vollständige Dateiname der Datei, die das einzulesende Klangobjekt enthält.

file_type	Der Dateityp für die Klang-Datendatei. Gültige Werte sind AU, AIFF, AIFF-C und WAVE. (Hinweis: Der Dateityp ist optional, sollte jedoch im Hinblick auf verbesserte Leistung angegeben werden, wenn er bekannt ist.)

item_id	Die eindeutige ID, die Form Builder dem Klangobjekt beim Erstellen zugewiesen hat.

item_name	Der Name, den Sie dem Klangobjekt beim Erstellen zugewiesen haben.

Verwendungshinweise

•	Die Angabe eines Dateityps für die Klangdatei ist optional. Wenn Sie den Dateityp jedoch kennen, kann durch Angabe des Dateityps die Leistung verbessert werden.


Einschränkungen bei READ_SOUND_FILE


Beispiele für READ_SOUND_FILE

/* These procedure calls (attached to a When-Button-Pressed

** trigger) reads a sound object from the file system and plays
** it. Note: since a sound item must have focus in order to play
** a sound object, the trigger code includes a call to the
** built-in procedure GO_ITEM:
*/
BEGIN
  IF :clerks.last_name EQ 'BARNES' THEN
    GO_ITEM('orders.filled_by');
    READ_SOUND_FILE('t:\orders\clerk\barnes.wav',
                    'wave',
                    'orders.filled_by');
    PLAY_SOUND('orders.filled_by');
  END IF;
END;


Vordefinierte Prozedur RECALCULATE

 Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Markiert den Wert des angegebenen, mit einer Formel berechneten Objekts (in jedem Datensatz des Blocks) zur Neuberechnung. Normalerweise würden Sie diese Prozedur aufrufen, wenn sich die Formel (oder Funktion bzw. Prozedur, die diese aufruft) auf eine Systemvariable oder eine vordefinierte Funktion bezieht, die dann einen anderen Wert zurückgibt.

Beachten Sie, daß die tatsächliche Neuberechnung nicht sofort erfolgt, sondern zu einem späteren Zeitpunkt, nachdem das Objekt markiert wurde – jedoch bevor der neue Wert des berechneten Objekts referenziert oder für den Endbenutzer angezeigt wird. Die Logik Ihrer Anwendung darf nicht von der Neuberechnung eines berechneten Objekts zu einem bestimmten Zeitpunkt abhängen.

Syntax

PROCEDURE RECALCULATE
  (item_name  VARCHAR2);

PROCEDURE RECALCULATE
  (item_id  Item);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

item_name	Der Name, den Sie dem Objekt bei der Definition zugewiesen haben. Der Datentyp ist VARCHAR2.

item_id	Die eindeutige ID, die Form Builder dem Objekt beim Erstellen zugewiesen hat. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable entsprechenden Typs zurückzugeben. Der Datentyp ist Item.


Einschränkungen bei RECALCULATE

Sie können die vordefinierte Prozedur RECALCULATE nur zur Neuberechnung von mit Formeln berechneten Objekten verwenden; wenn Sie ein Summenobjekt (oder ein nicht berechnetes Objekt) als Argument für RECALCULATE angeben, gibt Form Builder eine Fehlermeldung zurück:

   FRM-41379: Kann Nicht-Formel-Objekt <Blockname.Objektname> nicht neu berechnen.


Vordefinierte Prozedur REDISPLAY

 Alle vordefinierten Prozeduren

Beschreibung

Zeichnet den Bildschirm neu. Dadurch werden bestehende Systemmeldungen entfernt, die auf dem Bildschirm angezeigt werden.

Syntax

PROCEDURE REDISPLAY;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


RELEASE_OBJ

 Alle vordefinierten Prozeduren

Beschreibung

Beendet die Verbindung zu dem OLE-Objekt.

Syntax

PROCEDURE RELEASE_OBJ
  (obj OLEOBJ, kill_persistence_boolean := NULL);

Prozedurtyp   Uneingeschränkte Prozedur

Parameter

obj	Pointer zu dem freizugebenden OLE-Objekt.
Kill_persistence_boolean	Ein Boolescher Wert von NULL gibt das Objekt frei, wobei dessen Persistenz beendet wird. Ein Boolescher Wert von TRUE gibt nur ein persistentes Objekt frei. Wenn kein Pointer zu einem persistenten Objekt vorhanden ist, verhält sich der Code nicht korrekt. Ein Boolescher Wert von FALSE gibt nur ein nicht-persistentes Objekt frei. Wenn kein Pointer zu einem nicht-persistenten Objekt vorhanden ist, erhalten Sie die Fehlermeldung FRM-40935. Dies ist ein optionaler Parameter. Wenn er nicht angegeben wird, ist der Standardwert NULL (das Objekt wird nicht bedingt freigegeben).
Verwendungshinweise

Im allgemeinen sollten Sie nicht auf ein Objekt zugreifen, nachdem Sie es freigegeben haben.

Die bedingte Form dieser Prozedur (Boolescher Wert TRUE oder FALSE) sollte nur in den seltenen Fällen benutzt werden, in denen zwei Instanzen eines Objekts erstellt wurden, wobei jede andere Persistenzwerte enthält und der Zeiger nicht eindeutig ist. Die Prozedur gibt eines der beiden Objekte frei, wobei das andere Objekt als einzige Instanz zurückbleibt.


Vordefinierte Prozedur REPLACE_CONTENT_VIEW

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Ersetzt die Inhaltsleinwand, die gerade in dem angegebenen Fenster angezeigt wird, durch eine andere Inhaltsleinwand.

Syntax

PROCEDURE REPLACE_CONTENT_VIEW
  (window_id  Window,
   view_id    ViewPort);

PROCEDURE REPLACE_CONTENT_VIEW
  (window_name  VARCHAR2,
   view_id      ViewPort);
PROCEDURE REPLACE_CONTENT_VIEW
  (window_id  Window,
   view_name  VARCHAR2);
PROCEDURE REPLACE_CONTENT_VIEW
  (window_name  VARCHAR2,
   view_name    VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

window_id	Gibt die eindeutige ID an, die Form Builder dem Fenster beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_WINDOW, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist Window.

window_name	Gibt den Namen an, den Sie dem Fenster beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

view_id	Gibt die eindeutige ID an, die Form Builder der Ansicht beim Erstellen des Objekts zuweist. Benutzen Sie die vordefinierte Prozedur FIND_VIEW, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ViewPort.

view_name	Gibt den Namen an, den Sie dem Objekt bei der Definition zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.


Einschränkungen bei REPLACE_CONTENT_VIEW

•	Die Leinwand, die die aktuelle Inhaltsleinwand des Fensters ersetzt, muß diesem Fenster beim Entwurf zugewiesen worden sein. Das heißt, Sie können die Inhaltsansicht eines Fensters nicht durch eine Inhaltsansicht aus einem anderen Fenster ersetzen.

•	Wenn Sie eine Inhaltsleinwand ersetzen, die das Objekt enthält, das im Augenblick den Fokus hat, macht Form Builder den Ersetzenvorgang sofort rückgängig, damit das fokussierte Objekt weiterhin für den Endbenutzer sichtbar bleibt.


Beispiele für REPLACE_CONTENT_VIEW

/*

** Built-in:  REPLACE_CONTENT_VIEW
** Example:   Replace the 'salary' view with the 'history'
**            view in the 'employee_status' window.
*/
BEGIN
  Replace_Content_View('employee_status','history');
END;


Vordefinierte Prozedur REPLACE_MENU

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Ersetzt das aktuelle Menü durch das angegebene Menü, macht das neue Menü jedoch nicht zum aktiven Menü. Mit REPLACE_MENU können Sie auch ändern, wie das Menü angezeigt wird, und können die Rolle ändern.

Da REPLACE_MENU das neue Menü nicht zum aktiven Menü macht, darf das Menü keinen Teil der aktiven Leinwand verdecken. Deshalb wird das ganze oder ein Teil des Menüs nicht auf dem Bildschirm angezeigt, wenn die aktive Leinwand es verdecken würde.

Syntax

REPLACE_MENU;

PROCEDURE REPLACE_MENU
  (menu_module_name  VARCHAR2);
PROCEDURE REPLACE_MENU
  (menu_module_name VARCHAR2,
   menu_type        NUMBER);
PROCEDURE REPLACE_MENU
  (menu_module_name    VARCHAR2,
   menu_type           NUMBER,
   starting_menu_name  VARCHAR2);
PROCEDURE REPLACE_MENU
  (menu_module_name  VARCHAR2,
   menu_type         NUMBER,
   starting_menu     VARCHAR2,
   group_name        VARCHAR2);
PROCEDURE REPLACE_MENU
  (menu_module_name  VARCHAR2,
   menu_type         NUMBER,
   starting_menu     VARCHAR2,
   group_name        VARCHAR2,
   use_file          BOOLEAN);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Verwendungshinweise

REPLACE_MENU ersetzt das Menü für alle Fenster in der Anwendung. Wenn Sie CALL_FORM verwenden, ersetzt REPLACE_MENU das Menü sowohl für die aufrufende Form als auch für die aufgerufene Form durch das angegebene Menü.

Parameter

menu_module _name	Name des Menümoduls, das das aktuelle Menümodul ersetzen soll. Der Datentyp ist VARCHAR2. Dieser Parameter ist optional. Wenn er weggelassen wird, führt Form Builder die Form ohne ein Menü aus.

menu_type	Der Anzeigestil des Menüs. Die folgenden Konstanten können als Argumente für diesen Parameter übergeben werden:

PULL_DOWN  Gibt an, daß Form Builder die Menüs in einem Pulldown-Stil anzeigen soll, der charakteristisch für die meisten GUI-Plattformen und einige Zeichenmodus-Plattformen ist.

BAR  Gibt an, daß Form Builder das Menü in einem Menüleistenstil horizontal am oberen Ende des Hauptfensters anzeigen soll.

FULL_SCREEN  Gibt an, daß das Menü im Gesamtbildschirmmodus angezeigt werden soll.

starting_menu	Gibt das Menü in dem Menümodul an, das Form Builder als Anfangsmenü verwenden soll. Der Datentyp des Namens ist VARCHAR2.

group_name	Gibt die Sicherheitsrolle an, die Form Builder benutzen soll. Wenn Sie keinen Rollennamen angeben, bestimmt Form Builder die Rolle anhand des aktuellen Benutzernamens.

use_file	Gibt an, wie Form Builder die auszuführende Menüdatei .MMX suchen soll. Entspricht dem AttributMenüquelle des Formmoduls. Der Datentyp von use_file ist BOOLEAN.

NULL  Gibt an, daß Form Builder das Attribut Menüquelle der aktuellen Form lesen und REPLACE_MENU entsprechend ausführen soll. Wenn das Attribut Menüquelle des Formmoduls z.B. für die aktuelle Form auf Ja gesetzt ist, führt Form Builder REPLACE_MENU so aus, als wäre der konkrete Parameter use_file TRUE.

FALSE  Gibt an, daß Form Builder den Wert menu_module als Referenz auf ein (binäres) Menümodul .MMB in der Datenbank behandeln soll und dieses Modul abfragen soll, um den konkreten Namen von .MMX (ausführbare Datei) zu ermitteln.

TRUE  Gibt an, daß Form Builder den Wert von menu_module als direkte Referenz auf eine ausführbare .MMX-Datei im Dateisystem behandeln soll.


Beispiele für REPLACE_MENU

/*

** Built-in:    REPLACE_MENU
** Example:     Use a standard procedure to change which root
**              menu in the current menu application appears in
**              the menu bar. A single menu application may
**              have multiple "root-menus" which an application
**              can dynamically set at runtime.
*/
PROCEDURE Change_Root_To(root_menu_name VARCHAR2) IS
BEGIN
  Replace_Menu('MYAPPLSTD', PULL_DOWN, root_menu_name);
END;


Vordefinierte Prozedur REPORT_OBJECT_STATUS

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Gibt den Status eines Berichtobjekts an, das innerhalb einer Form mit der vordefinierten Prozedur RUN_REPORT_OBJECT ausgeführt wird.

Syntax

FUNCTION REPORT_OBJECT_STATUS
  (report_id VARCHAR2(20)
);

Prozedurtyp  Uneingeschränkte Funktion

Abfragemodus  Ja

Parameter

report_id	Der von der vordefinierten Prozedur RUN_REPORT_OBJECT zurückgegebene VARCHAR2-Wert. Dieser Wert kennzeichnet den Bericht eindeutig, der momentan lokal oder auf einem entfernten Report Server ausgeführt wird.

Verwendungshinweise

Es gibt acht mögliche Rückgabewerte für diese vordefinierte Prozedur: finished, running, canceled, opening_report, enqueued, invalid_job, terminated_with_error und crashed.


Beispiele für REPORT_OBJECT_STATUS

DECLARE

repid REPORT_OBJECT;

v_rep  VARCHAR2(100);

rep_status varchar2(20);

BEGIN

repid := find_report_object('report4');

v_rep := RUN_REPORT_OBJECT(repid);

rep_status := REPORT_OBJECT_STATUS(v_rep);

if rep_status = 'FINISHED' then

message('Report Completed');

copy_report_object_output(v_rep,'d:\temp\local.pdf');

host('netscape d:\temp\local.pdf');

else

message('Error when running report.');

end if;

END;


Vordefinierte Prozedur RESET_GROUP_SELECTION

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Hebt die Auswahl von ausgewählten Zeilen in der angegebenen Gruppe auf. Benutzen Sie diese vordefinierte Prozedur, um die Auswahl aller Zeilen in der Datensatzgruppe aufzuheben, die programmgesteuert als ausgewählt markiert wurden, indem die Prozedur SET_GROUP_SELECTION bei einzelnen Zeilen ausgeführt wurde.

Syntax

PROCEDURE RESET_GROUP_SELECTION
  (recordgroup_id  RecordGroup);

PROCEDURE RESET_GROUP_SELECTION
  (recordgroup_name  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

recordgroup_id	Die eindeutige ID, die Form Builder der Gruppe beim Erstellen zugewiesen hat. Der Datentyp der ID ist RecordGroup.

recordgroup_name	Der Name, den Sie der Datensatzgruppe beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.


Beispiele für RESET_GROUP_SELECTION

/*

** Built-in:  RESET_GROUP_SELECTION
** Example:   If the user presses the (Cancel) button, forget
**            all of the records in the 'USERSEL' record
**            group that we may have previously marked as
**            selected records.
** Trigger:   When-Button-Pressed
*/
BEGIN
  Reset_Group_Selection( 'usersel' );
END;


Vordefinierte Prozedur RESIZE_WINDOW

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Ändert die Größe des angegebenen Fensters auf eine bestimmte Breite und Höhe. Durch einen Aufruf von RESIZE_WINDOW werden Breite und Höhe des Fensters festgelegt, selbst wenn das Fenster im Augenblick nicht angezeigt wird. Mit RESIZE_WINDOW wird die Position des Fensters wie mit den x- und y-Koordinaten der oberen linken Ecke auf dem Bildschirm angegeben nicht geändert.

Bei Microsoft Windows können Sie die Größe des MDI-Anwendungsfensters ändern, indem Sie die Konstante FORMS_MDI_WINDOW als Fenstername angeben.

Sie können die Größe eines Fensters auch mit SET_WINDOW_PROPERTY ändern.

Syntax

PROCEDURE RESIZE_WINDOW
  (window_id  Window,
   width      NUMBER,
   height     NUMBER);

PROCEDURE RESIZE_WINDOW
  (window_name  VARCHAR2,
   width        NUMBER,
   height       NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

window_id	Gibt die eindeutige ID an, die Form Builder dem Fenster beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_WINDOW, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist Window.

window_name	Gibt den Namen an, den Sie dem Fenster beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

Width	Gibt die neue Breite des Fensters in Koordinateneineiten der Form an.

Height	Gibt die neue Höhe des Fensters in Koordinateneinheiten der Form an.


Beispiele für RESIZE_WINDOW

/*

** Built-in:  RESIZE_WINDOW
** Example:   Set Window2 to be the same size as Window1
*/
PROCEDURE Make_Same_Size_Win( Window1 VARCHAR2, Window2 VARCHAR2) IS
  wn_id1 Window;
  w      NUMBER;
  h      NUMBER;
BEGIN
  /*
  ** Find Window1 and get it's width and height.
  */
  wn_id1 := Find_Window(Window1);
  w      := Get_Window_Property(wn_id1,WIDTH);
  h      := Get_Window_Property(wn_id1,HEIGHT);
  /*
  ** Resize Window2 to the same size
  */
  Resize_Window( Window2, w, h );
END;


Vordefinierte Prozedur RETRIEVE_LIST

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Ruft den Inhalt der aktuellen Liste ab und speichert ihn in der angegebenen Datensatzgruppe. Die Ziel-Datensatzgruppe muß die folgende zweispaltige (VARCHAR2) Struktur haben:

Spalte 1:	Spalte 2:

Listenbeschriftung	Listenwert

Wenn Sie den Inhalt eines Listenobjekts speichern, können Sie die Liste mit dem früheren Inhalt wiederherstellen.

Syntax

PROCEDURE RETRIEVE_LIST
  (list_id      ITEM,
   recgrp_name  VARCHAR2);

PROCEDURE RETRIEVE_LIST
  (list_id    ITEM,
   recgrp_id  RecordGroup);
PROCEDURE RETRIEVE_LIST
  (list_name  VARCHAR2,
   recgrp_id  RecordGroup);
PROCEDURE RETRIEVE_LIST
  (list_name    VARCHAR2,
   recgrp_name  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

list_id	Gibt die eindeutige ID an, die Form Builder dem Listenobjekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.

list_name	Der Name, den Sie dem Listenobjekt beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

recgrp_id	Gibt die eindeutige ID an, die Form Builder der Datensatzgruppe beim Erstellen zuweist. Der Datentyp der ID ist RecordGroup.

recgrp_name	Der VARCHAR2-Name, den Sie der Datensatzgruppe beim Erstellen gegeben haben.


Beispiele für RETRIEVE_LIST

/*

**  Built-in:  RETRIEVE_LIST
**  Example:   See POPULATE_LIST
*/


Vordefinierte Prozedur RUN_PRODUCT

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Ruft eines der unterstützten Oracle-Werkzeuge auf und gibt den Namen des Moduls bzw. des auszuführenden Moduls an. Wenn das aufgerufene Produkt zum Zeitpunkt des Aufrufs nicht verfügbar ist, gibt Form Builder eine Meldung an den Endbenutzer zurück.

Wenn Sie eine Parameterliste erstellen und dann in dem Aufruf von RUN_PRODUCT Bezug auf diesen Parameter nehmen, kann die Form Text- und Datenparameter an das aufgerufene Produkt übergeben, die Werte für Befehlszeilenparameter, Binde- oder lexikalische Referenzen und benannte Abfragen darstellen. Parameter vom Typ DATA_PARAMETER sind Zeiger auf Datensatzgruppen in Form Builder. Sie können DATA_PARAMETERs an Report Builder und Graphics Builder übergeben, jedoch nicht an Form Builder.

Um einen Bericht aus einer Form auszuführen, können Sie alternativ die vordefinierte Prozedur zur dedizierten Berichtintegration RUN_REPORT_OBJECT verwenden.

Syntax

PROCEDURE RUN_PRODUCT
  (product   NUMBER,
   module  VARCHAR2,
   commmode  NUMBER,
   execmode  NUMBER,
   location  NUMBER,
   paramlist_id      VARCHAR2,
   display   VARCHAR2);

PROCEDURE RUN_PRODUCT
  (product   NUMBER,
   module  VARCHAR2,
   commmode  NUMBER,
   execmode  NUMBER,
   location  NUMBER,
   paramlist_name      VARCHAR2,
   display   VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

product	Gibt eine numerische Konstante für das aufzurufende Oracle-Produkt an: FORMS gibt eine Runform-Sitzung an, GRAPHICS gibt Graphics Builder an, REPORTS gibt Report Builder an, BOOK gibt Oracle Book an.

Module	Gibt den VARCHAR2-Namen des Moduls oder des Moduls an, das von dem aufgerufenen Produkt ausgeführt werden soll. Gültige Werte sind der Name eines Formmoduls, Report, Graphics Builder-Anwendung oder Oracle Book-Modul. Die Anwendung sucht nach dem Modul in den Standardpfaden, die für das aufgerufene Produkt definiert wurden.

Commmode	Gibt den Kommunikationsmodus an, der bei Ausführung des aufgerufenen Produkts benutzt werden soll. Gültige numerische Konstanten für diesen Parameter sind SYNCHRONOUS und ASYNCHRONOUS.

SYNCHRONOUS gibt an, daß die Kontrolle erst an Form Builder zurückgeht, nachdem das aufgerufene Produkt beendet wurde. Der Endbenutzer kann nicht in der Form arbeiten, während das aufgerufene Produkt läuft.

ASYNCHRONOUS gibt an, daß die Kontrolle sofort an die aufrufende Anwendung zurückgegeben wird, selbst wenn die aufgerufene Anwendung noch nicht vollständig abgeschlossen ist.

execmode	Gibt den Modus an, der bei Ausführung des aufgerufenen Produkts verwendet werden soll. Gültige numerische Konstanten für diesen Parameter sind BATCH und RUNTIME. Bei Ausführung von Report Builder und Graphics Builder kann execmode BATCH oder RUNTIME sein. Bei Ausführung von Form Builder muß execmode immer auf RUNTIME gesetzt werden.

Location	Gibt den Speicherort des Moduls an, das das aufgerufene Produkt ausführen soll, d.h. entweder das Dateisystem oder die Datenbank. Gültige Konstanten für dieses Attribut sind FILESYSTEM und DB.

paramlist oder paramlist-ID	Gibt die Parameterliste an, die an das aufgerufene Produkt übergeben werden soll. Gültige Werte für diesen Parameter sind der VARCHAR2-Name der Parameterliste, die ID der Parameterliste oder eine Null-Folge ("). Um eine Parameterlisten-ID anzugeben, verwenden Sie eine Variable vom Typ PARAMLIST.

Sie können Textparameter an aufgerufene Produkte im SYNCHRONOUS- und ASYNCHRONOUS-Modus übergeben. Parameterlisten, die Parameter vom Typ DATA_PARAMETER (Zeiger auf Datensatzgruppen) enthalten, können jedoch nur im SYNCHRONOUS-Modus an Report Builder und Graphics Builder übergeben werden. (Der SYNCHRONOUS-Modus ist erforderlich, wenn Graphics Builder aufgerufen wird, damit eine Graphics Builder-Anwendung aufgerufen wird, die in einem Form-Diagrammobjekt angezeigt wird.)

Hinweis: Sie können verhindern, daß sich Graphics Builder anmeldet, indem Sie eine Parameterliste übergeben, die einen Parameter enthält, bei dem key auf LOGON und value auf NO gesetzt ist.

Hinweis: Sie können keinen DATA_PARAMETER an eine untergeordnete Abfrage in Report Builder übergeben. Die Übergabe von Daten wird nur bei Masterabfragen unterstützt.

Display	Gibt den VARCHAR2-Namen des Diagrammobjekts von Form Builder an, das die grafische Anwendung (z.B. Balkendiagramm, Kreisdiagramm oder Grafik) enthält, die von Graphics Builder generiert wurde. Der Name des Diagrammobjekts muß in dem Format Blockname.Objektname angegeben werden. (Dieser Parameter ist nur erforderlich, wenn Sie ein Graphics Builder-Diagrammobjekt in einer Form benutzen.)


Beispiele für RUN_PRODUCT

/*

** Built-in:  RUN_PRODUCT
** Example:   Call a Report Builder report, passing the
**            data in record group 'EMP_RECS' to substitute
**            for the report's query named 'EMP_QUERY'.
**            Presumes the Emp_Recs record group already
**            exists and has the same column/data type
**            structure as the report's Emp_Query query.
*/
PROCEDURE Run_Emp_Report IS
  pl_id ParamList;
BEGIN
  /*
  ** Check to see if the 'tmpdata' parameter list exists.
  */
  pl_id := Get_Parameter_List('tmpdata');
  /*
  ** If it does, then delete it before we create it again in
  ** case it contains parameters that are not useful for our
  ** purposes here.
  */
  IF NOT Id_Null(pl_id) THEN
    Destroy_Parameter_List( pl_id );
  END IF;
  /*
  ** Create the 'tmpdata' parameter list afresh.
  */
  pl_id := Create_Parameter_List('tmpdata');
  /*
  ** Add a data parameter to this parameter list that will
  ** establish the relationship between the named query
  ** 'EMP_QUERY' in the report, and the record group named
  ** 'EMP_RECS' in the form.
  */
  Add_Parameter(pl_id,'EMP_QUERY',DATA_PARAMETER,'EMP_RECS');
  /*
  **Pass a Parameter into PARAMFORM so that a parameter dialog will not appear
  **for the parameters being passing in.
  */

  Add_Parameter(pl_id, 'PARAMFORM', TEXT_PARAMETER, 'NO');

  /*
  ** Run the report synchronously, passing the parameter list
  */
  Run_Product(REPORTS, 'empreport', SYNCHRONOUS, RUNTIME,
           FILESYSTEM, pl_id, NULL);
END;


Vordefinierte Prozedur RUN_REPORT_OBJECT

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Benutzen Sie diese vordefinierte Prozedur, um einen Bericht aus einer Form auszuführen. Sie können den Bericht mit einem lokalen oder entfernten Datenbank-Server ausführen. Die Ausführung dieser vordefinierten Prozedur ist gleichbedeutend mit der Ausführung der vordefinierten Prozedur RUN_PRODUCT bei einem Bericht.

Syntax

FUNCTION RUN_REPORT_OBJECT
  (report_id REPORT_OBJECT
);

Prozedurtyp   Uneingeschränkte Prozedur

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

report_id	Gibt die eindeutige ID des auszuführenden Berichts an. Sie können die Bericht-ID für einen bestimmten Bericht mit der vordefinierten Prozedur FIND_REPORT_OBJECT ermitteln.

Verwendungshinweise

•	Gibt einen VARCHAR2-Wert zurück, der den Bericht eindeutig identifiziert, der lokal oder auf einem entfernten Report Server ausgeführt wird. Sie können diese Bericht-ID-Zeichenfolge als Parameter für REPORT_OBJECT_STATUS, COPY_REPORT_OBJECT und CANCEL_REPORT_OBJECT benutzen.

Wenn Sie Run_Report_Object mit einem leeren Attribut Reports Server aufrufen, lautet der Rückgabewert NULL. In diesem Fall können Sie die vordefinierten Prozeduren Report_Object_Status und Copy_Report_Object_Output nicht verwenden, da für sie ein tatsächlicher ID-Wert erforderlich ist.


Beispiele für RUN_REPORT_OBJECT

DECLARE

repid REPORT_OBJECT;

v_rep  VARCHAR2(100);

rep_status varchar2(20);

BEGIN

repid := find_report_object('report4');

v_rep := RUN_REPORT_OBJECT(repid);

......

END;


Vordefinierte Prozedur SCROLL_DOWN

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Nimmt einen Bildlauf durch die Liste mit Datensätzen des aktuellen Blocks vor, so daß vorher verborgene Datensätze mit höheren Sequenznummern angezeigt werden. Wenn verfügbare Datensätze vorhanden sind und eine Abfrage im Block geöffnet ist, ruft Form Builder Datensätze während der Verarbeitung von SCROLL_DOWN ab. In einem einzeiligen Block zeigt SCROLL_DOWN den nächsten Datensatz in der Liste mit Datensätzen des Blocks an. SCROLL_DOWN setzt den Eingabefokus in der Instanz des aktuellen Objekts in den angezeigten Datensatz mit der niedrigsten Sequenznummer.

Syntax

PROCEDURE SCROLL_DOWN;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Keine


Beispiele für SCROLL_DOWN

/*

** Built-in:  SCROLL_DOWN
** Example:   Scroll records down some.
*/
BEGIN
Scroll_Down;
END;


Vordefinierte Prozedur SCROLL_UP

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Nimmt einen Bildlauf durch die Liste mit Datensätzen des aktuellen Blocks vor, so daß vorher verborgene Datensätze mit niedrigeren Sequenznummern angezeigt werden. Mit dieser Aktion werden Datensätze angezeigt, die "über" der Anzeige des Blocks standen.

SCROLL_UP setzt den Eingabefokus in die Instanz des aktuellen Objekts im angezeigten Datensatz, der die höchste Sequenznummer hat.

Syntax

PROCEDURE SCROLL_UP;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Keine


Beispiele für SCROLL_UP

/*

** Built-in:  SCROLL_UP
** Example:   Scroll records up some.
*/
BEGIN
  Scroll_Up;
END;


Vordefinierte Prozedur SCROLL_VIEW

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Verschiebt den Ausschnitt an eine andere Stelle auf der Leinwand, indem die Attribute Ausschnitt X-Position auf Leinwand und Ausschnitt Y-Position auf Leinwand geändert werden. Durch Verschieben des Ausschnitts wird ein anderer Bereich der Leinwand für den Endbenutzer sichtbar, wird jedoch die Position des Ausschnitts innerhalb des Fensters nicht geändert.

Hinweis: Bei einer Inhalts- oder Symbolleistenleinwand stellt das Fenster, in dem die Leinwand angezeigt wird, die Ansicht für diese Leinwand dar. Bei einer gestapelten Leinwand wird die Ausschnittgröße durch Einstellen der Attribute Ausschnittbreite und Ausschnitthöhe gesteuert.

Syntax

PROCEDURE SCROLL_VIEW
  (view_id  ViewPort,
   x        NUMBER,
   y        NUMBER);

PROCEDURE SCROLL_VIEW
  (view_name  VARCHAR2,
   x          NUMBER,
   y          NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

view_id	Gibt die eindeutige ID an, die Form Builder der Ansicht beim Erstellen des Objekts zuweist. Benutzen Sie die vordefinierte Prozedur FIND_VIEW, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ViewPort.

view_name	Gibt den Namen an, den Sie dem Objekt bei der Definition zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

x	Gibt die x-Koordinate der oberen linken Ecke des Ausschnitts relativ zur oberen linken Ecke der Leinwand an.

y	Gibt die y-Koordinate der oberen linken Ecke des Ausschnitts relativ zur oberen linken Ecke der Leinwand an.


Beispiele für SCROLL_VIEW

/*

** Built-in:  SCROLL_VIEW
** Example:   Scroll the view whose name is passed in 10% to
**            the right or left depending on the 'direction'
**            parameter.
*/
PROCEDURE Scroll_Ten_Percent( viewname VARCHAR2,
                 direction VARCHAR2 ) IS
  vw_id        ViewPort;
  vw_wid       NUMBER;
  vw_x         NUMBER;
  cn_id        Canvas;
  cn_wid       NUMBER;
  ten_percent  NUMBER;
  new_x        NUMBER;
  old_y        NUMBER;
BEGIN
  /*
  ** Get the id's for the View and its corresponding canvas
  */
  vw_id := Find_View( viewname );
  cn_id := Find_Canvas( viewname );

  /*
  ** Determine the view width and corresponding canvas
  ** width.
  */
  vw_wid := Get_View_Property(vw_id,WIDTH);
  cn_wid := Get_Canvas_Property(cn_id,WIDTH);
  /*
  ** Calculate how many units of canvas width are outside of
  ** view, and determine 10% of that.
  */
  ten_percent := 0.10 * (cn_wid - vw_wid);
  /*
  ** Determine at what horizontal position the view
  ** currently is on the corresponding canvas
  */
  vw_x:= Get_View_Property(vw_id,VIEWPORT_X_POS_ON_CANVAS);
  /*
  ** Calculate the new x position of the view on its canvas
  ** to effect the 10% scroll in the proper direction.
  ** Closer than ten percent of the distance to the edge
  ** towards which we are moving, then position the view
  ** against that edge.
  */
  IF direction='LEFT' THEN
    IF vw_x > ten_percent THEN
      new_x := vw_x - ten_percent;
    ELSE
      new_x := 0;
    END IF;
  ELSIF direction='RIGHT' THEN
    IF vw_x < cn_wid - vw_wid - ten_percent THEN
      new_x := vw_x + ten_percent;
    ELSE
      new_x := cn_wid - vw_wid;
    END IF;
  END IF;
  /*
  ** Scroll the view that much horizontally
  */
  old_y := Get_View_Property(vw_id,VIEWPORT_Y_POS_ON_CANVAS);
  Scroll_View( vw_id, new_x , old_y );
END;


Vordefinierte Prozedur SELECT_ALL

  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Wählt den Text im aktuellen Objekt aus. Rufen Sie diese Prozedur auf, bevor Sie CUT_REGION oder COPY_REGION aufrufen, wenn der gesamte Inhalt eines Textobjekts ausgeschnitten oder kopiert werden soll.

Syntax

PROCEDURE SELECT_ALL;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Vordefinierte Prozedur SELECT_RECORDS

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Wenn diese Prozedur aus einem On-Select-Trigger aufgerufen wird, wird die standardmäßige SELECT-Verarbeitung von Form Builder angestoßen. Diese vordefinierte Prozedur ist im wesentlichen für Anwendungen enthalten, die mit fremden Datenquellen arbeiten und anstelle der standardmäßigen Transaktionsverarbeitung von Form Builder Transaktionstrigger verwenden.

Syntax

PROCEDURE SELECT_RECORDS;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Keine


Einschränkungen bei SELECT_RECORDS

Ist nur mit einem On-Select-Trigger gültig.


Beispiele für SELECT_RECORDS

/*

** Built-in:  SELECT_RECORDS
** Example:   Perform Form Builder standard SELECT processing
**            based on a global flag setup at startup by the
**            form, perhaps based on a parameter.
** Trigger:  On-Select
*/
BEGIN
  /*
  ** Check the flag variable we setup at form startup
  */
  IF :Global.Using_Transactional_Triggers = 'TRUE' THEN
    User_Exit('my_select block=EMP');
  /*
  ** Otherwise, do the right thing.
  */
  ELSE
    Select_Records;
  END IF;
END;


FORMS_OLE.SERVER_ACTIVE;
SERVER_ACTIVE

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Gibt an, ob der mit einem bestimmten Container verknüpfte Server läuft oder nicht:

•	Gibt TRUE zurück, wenn der OLE-Server läuft.

•	Gibt FALSE zurück, wenn der OLE-Server nicht läuft.

Sie müssen eine Variable des entsprechenden Typs definieren, die den Rückgabewert akzeptiert.

Syntax

FUNCTION SERVER_ACTIVE
  (item_id  Item);

FUNCTION SERVER_ACTIVE
  (item_name  VARCHAR2);

Returns  BOOLEAN

Prozedurtyp  Uneingeschränkte Funktion

Abfragemodus  Nein

Parameter

item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist Item.

item_name	Gibt den Namen des beim Entwurf erstellten Objekts an. Der Datentyp des Namens ist VARCHAR2.


Einschränkungen bei SERVER_ACTIVE

Nur bei Microsoft Windows und Macintosh gültig.


Beispiele für SERVER_ACTIVE

/*

** Built-in: SERVER_ACTIVE
** Example:  Checks to see if the OLE server is active.
** Trigger:  When-Button-Pressed
*/
DECLARE
 item_id  ITEM;
 item_name VARCHAR(25) := 'OLEITM';
 active_serv BOOLEAN;
BEGIN
 item_id := Find_Item(item_name);
 IF Id_Null(item_id) THEN
  message('No such item: '||item_name);
 ELSE
  active_serv := Forms_OLE.Server_Active(item_id);
  IF active_serv = FALSE THEN
   Forms_OLE.Activate_Server(item_id);
  END IF;
 END IF;
END;


Vordefinierte Prozedur SET_ALERT_BUTTON_PROPERTY

 Alle vordefinierten Prozeduren

Beschreibung

Ändert die Beschriftung auf einer der Schaltflächen in einem Warnfenster.

Syntax

PROCEDURE SET_ALERT_BUTTON_PROPERTY
  (alert_id  ALERT,
   button    NUMBER,
   property  VARCHAR2,
   value     VARCHAR2);

PROCEDURE SET_ALERT_BUTTON_PROPERTY
  (alert_name  VARCHAR2,
   button      NUMBER,
   property    VARCHAR2,
   value       VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

alert_id	Gibt die eindeutige ID (vom Datentyp ALERT) an, die Form Builder dem Warnfenster beim Erstellen zuweist. Benutzen Sie FIND_ALERT, um die ID an eine Variable des entsprechenden Typs zurückzugeben.

alert_name	Gibt den VARCHAR2-Namen des Warnfensters an.

button	Eine Konstante, die die zu ändernde Warn-Schaltfläche angibt, entweder ALERT_BUTTON1, ALERT_BUTTON2 oder ALERT_BUTTON3.

property	LABEL  Gibt den Beschriftungstext für die Warn-Schaltfläche an.

value	Gibt den VARCHAR2-Wert an, der für das angegebene Attribut angewendet werden soll.

Verwendungshinweise

Wenn die angegebene Beschriftung NULL ist, wird für die Schaltflächenbeschriftung wieder die Beschriftung verwendet, die beim Entwurf angegeben wurde.


Vordefinierte Prozedur SET_ALERT_PROPERTY

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Ändert den Meldungstext für ein bestehendes Warnfenster.

Syntax

SET_ALERT_PROPERTY
  (alert_id  ALERT,
   property  NUMBER,
   message   VARCHAR2);

SET_ALERT_PROPERTY
  (alert_name  VARCHAR2,
   property    NUMBER,
   message     VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

alert_id	Gibt die eindeutige ID (vom Datentyp ALERT) an, die Form Builder dem Warnfenster beim Erstellen zuweist. Geben Sie die ID an eine Variable des entsprechenden Typs zurück.

alert_name	Gibt den VARCHAR2-Namen des Warnfensters an.

property	Gibt das gerade eingestellte Warnfenster-Attribut an:

ALERT_MESSAGE_TEXT  Gibt an, daß Sie den Text der Warnmeldung einstellen.

TITLE  Gibt den Titel des Warnfensters an. Setzt den in Form Builder angegebenen Wert außer Kraft, es sei denn, der Attributwert ist NULL.

message	Gibt die Meldung an, die die aktuelle Warnmeldung ersetzen soll. Übergeben Sie die Meldung als Zeichenfolge in einfachen Anführungszeichen, als Variable oder als Zeichenfolgen-/Variablen-Konstruktion.


Einschränkungen bei SET_ALERT_PROPERTY

Wenn der Meldungstext länger ist als 80 Zeichen, wird er abgeschnitten.


Beispiele für SET_ALERT_PROPERTY

/*

** Built-in:  SET_ALERT_PROPERTY
** Example:   Places the error message into a user-defined alert **            named 'My_Error_Alert' and displays the alert.
** Trigger:   On-Error
*/
DECLARE
  err_txt   VARCHAR2(80) := Error_Text;
  al_id     Alert;
  al_button Number;
BEGIN
  al_id := Find_Alert('My_Error_Alert');
  Set_Alert_Property(al_id, alert_message_text, err_txt );
  al_button := Show_Alert( al_id );
END;


Vordefinierte Prozedur SET_APPLICATION_PROPERTY

  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Bestimmt das Anwendungsattribut oder setzt dieses für die aktuelle Anwendung zurück.

Syntax

SET_APPLICATION_PROPERTY
  (property  NUMBER,
   value     VARCHAR2)

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

property	Bestimmt das Attribut, das Sie für die angegebene Anwendung einstellen möchten. Die möglichen Attribute sind:

BUILTIN_DATE_FORMAT  Gibt die vordefinierte Datumsformatmaske an.

CURSOR_STYLE   Gibt den Cursorstil für die angegebene Anwendung an.

DATE_FORMAT_COMPATIBILITY_MODE  Gibt an, wie bestimmte Konvertierungsvorgänge für das Datumsformat durchgeführt werden.

FLAG_USER_VALUE_TOO_LONG  Gibt an, wie Form Builder vom Benutzer eingegebene Werte verarbeitet, die das Attribut Maximale Länge des Objekts übersteigen. Gültige Werte sind PROPERTY_TRUE und PROPERTY_FALSE.

PLSQL_DATE_FORMAT  Gibt die PL/SQL-Datumsformatmaske an.

value	Der für dieses Attribut einzustellende neue Wert.


Vordefinierte Prozedur SET_BLOCK_PROPERTY

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Bestimmt die angegebenen Blockeigenschaften des angegebenen Blocks.

Syntax

SET_BLOCK_PROPERTY
  (block_id	Block,
   property	VARCHAR,
   value	VARCHAR);

SET_BLOCK_PROPERTY
  (block_id	Block,
   property	VARCHAR,
   x	NUMBER);

SET_BLOCK_PROPERTY
  (block_id  Block,
   property VARCHAR,

   x	NUMBER
   y	NUMBER);

SET_BLOCK_PROPERTY
  (block_name	VARCHAR2,
   property	VARCHAR,
   value	VARCHAR);

SET_BLOCK_PROPERTY
  (block_name	VARCHAR2,
   property	VARCHAR,
   x	NUMBER);

SET_BLOCK_PROPERTY
  (block_name	VARCHAR2,
   property	VARCHAR,
   x	NUMBER,
   y	NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

block_id	Die eindeutige ID, die Form Builder dem Block beim Erstellen zugewiesen hat. Der Datentyp ist BLOCK.

block_name	Der Name, den Sie dem Block beim Erstellen zugewiesen haben. Der Datentyp ist VARCHAR2.

property	Geben Sie eine der folgenden Konstanten an:

ALL_RECORDS  Gibt an, ob alle Datensätze, die mit den Abfragekriterien übereinstimmen, in den Datenblock abgerufen werden sollen, wenn eine Abfrage ausgeführt wird.

BLOCKSCROLLBAR_POSITION  Gibt sowohl die x- als auch die y-Position der Bildlaufleiste des Blocks in den Form-Koordinateneinheiten an, die mit dem Formattribut Koordinatensystem festgelegt wurden.

BLOCKSCROLLBAR_X_POS  Gibt die x-Position der Bildlaufleiste des Blocks in den Form-Koordinateneinheiten an, die mit dem Formattribut Koordinatensystem festgelegt wurden.

BLOCKSCROLLBAR_Y_POS  Gibt die y-Position der Bildlaufleiste des Blocks in den Form-Koordinateneinheiten an, die mit dem Formattribut Koordinatensystem festgelegt wurden.

COORDINATION_STATUS  Gibt den Status an, aus dem hervorgeht, ob ein Block, bei dem es sich um einen Detail-Block in einer Master-Detail-Beziehung handelt, aktuell mit allen Master-Blöcken koordiniert ist, d.h. ob die Detail-Datensätze in dem Block richtig dem aktuellen Master-Datensatz im Master-Block entsprechen. Gültige Werte sind COORDINATED und NON_COORDINATED.

CURRENT_RECORD_ATTRIBUTE  Gibt den VARCHAR2-Namen eines benannten visuellen Attributs an, das mit dem angegebenen Block verknüpft werden soll. Wenn das benannte visuelle Attribut nicht vorhanden ist, wird eine Fehlermeldung ausgegeben.

CURRENT_ROW_BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts.

CURRENT_ROW_FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden.

CURRENT_ROW_FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

CURRENT_ROW_FONT_SIZE  Schriftgrad in Punkt.

CURRENT_ROW_FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning).

CURRENT_ROW_FONT_STYLE  Schriftstil.

CURRENT_ROW_FONT_WEIGHT Schriftstärke.

CURRENT_ROW_FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

CURRENT_ROW_WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

DEFAULT_WHERE  Gibt eine standardmäßige WHERE-Klausel für den Block an, wobei eventuelle vorherige WHERE-Klauseln außer Kraft gesetzt werden. (Hinweis: Dadurch wird ein beim Entwurf mit der Attributpalette für das Blockattribut WHERE-Klausel festgelegter Wert nicht außer Kraft gesetzt.)

Die Klausel muß in einfache Anführungszeichen gesetzt werden. Das reservierte Wort WHERE ist optional. Die standardmäßige WHERE-Klausel kann Referenzen auf globale Variablen, Formparameter und Objektwerte umfassen, die mit der Standardsyntax für Bindevariablen angegeben werden.

DELETE_ALLOWED  Gibt an, ob der Endbenutzer oder die Anwendung Datensätze in dem angegebenen Block löschen kann. Gültige Werte sind PROPERTY_TRUE oder PROPERTY_FALSE.

DML_DATA_TARGET_NAME  Gibt den Namen der DML-Datenquelle des Blocks an.

ENFORCE_PRIMARY_KEY  Gibt an, daß ein in dem Block eingefügter oder aktualisierter Datensatz eine eindeutige Eigenschaft aufweisen muß, um in der Datenbank gespeichert zu werden. Gültige Werte sind PROPERTY_TRUE oder PROPERTY_FALSE.

INSERT_ALLOWED  Gibt an, ob der Endbenutzer oder die Anwendung Datensätze in den angegebenen Block einfügen kann. Gültige Werte sind PROPERTY_TRUE oder PROPERTY_FALSE.

KEY_MODE  Gibt den Schlüsselmodus für den Block an. Dies ist besonders nützlich, wenn Form Builder mit fremden Datenquellen benutzt wird. Gültige Werte sind UPDATEABLE_PRIMARY_KEY und NONUPDATEABLE_PRIMARY_KEY.

LOCKING_MODE  Gibt das Attribut LOCKING_MODE des Blocks an. Gültige Werte sind DELAYED oder IMMEDIATE.

MAX_QUERY_TIME Gibt die maximale Abfragezeit an. Der Endbenutzer kann eine Abfrage abbrechen, wenn die abgelaufene Zeit der Abfrage den Wert dieses Attributs überschreitet.

MAX_RECORDS_FETCHED  Gibt die Höchstzahl Datensätze an, die abgerufen werden können. Dieses Attribut kann nur benutzt werden, wenn das Attribut Alle Datensätze abfragen auf Ja eingestellt ist.

NAVIGATION_STYLE   Gibt das Attribut NAVIGATION_STYLE des Blocks an. Gültige Werte sind SAME_RECORD, CHANGE_RECORD oder CHANGE_BLOCK.

NEXT_NAVIGATION_BLOCK  Gibt den Namen des nächsten Navigationsblocks des Blocks an. Standardmäßig ist der nächste Navigationsblock der Block mit der nächsthöheren Sequenznummer. Das Blockattribut NEXT_NAVIGATION_BLOCK kann allerdings auch so eingestellt werden, daß die standardmäßige Navigationsfolge des Blocks außer Kraft gesetzt wird.

OPTIMIZER_HINT  Gibt einen Hinweis an, den Form Builder beim Erzeugen von Abfragen an den RDBMS-Optimizer übergibt. Auf diese Weise kann der Formentwickler beim Abfragen von Blöcken eine optimale Leistung erzielen.

ORDER_BY  Gibt die standardmäßige ORDER BY-Klausel für den Block an, wobei eventuelle vorherige ORDER BY-Klauseln außer Kraft gesetzt werden. Die Klausel muß in einfache Anführungszeichen gesetzt werden, darf jedoch die Wörter 'ORDER BY' nicht enthalten. Form Builder setzt vor die von Ihnen angegebene Anweisung automatisch "ORDER BY."

PRECOMPUTE_SUMMARIES[Under Construction]

PREVIOUS_NAVIGATION_BLOCK  Gibt den Namen des vorherigen Navigationsblocks des Blocks an. Standardmäßig ist der vorherige Navigationsblock der Block mit der nächstniedrigeren Sequenznummer. Das Blockattribut NEXT_NAVIGATION_BLOCK kann jedoch so eingestellt werden, daß die standardmäßige Navigationsfolge des Blocks außer Kraft gesetzt wird.

QUERY_ALLOWED  Gibt an, ob eine Abfrage vom Endbenutzer oder programmgesteuert aus dem Block abgesetzt werden kann. Gültige Werte sind PROPERTY_TRUE oder PROPERTY_FALSE.

QUERY_DATA_SOURCE_NAME  Gibt den Namen der Abfrage-Datenquelle des Blocks an. Hinweis: Sie können das Attribut  QUERY_DATA_SOURCE_NAME eines Blocks nicht festlegen, wenn es sich bei der Datenquelle des Blocks um eine Prozedur handelt.

QUERY_HITS  Gibt den NUMBER-Wert an, der die Anzahl von Datensätzen angibt, die von dem Vorgang COUNT_QUERY gekennzeichnet werden.

UPDATE_ALLOWED  Gibt an, ob der Endbenutzer oder die Anwendung Datensätze in dem angegebenen Block aktualisieren darf. Gültige Werte sind PROPERTY_TRUE oder PROPERTY_FALSE.

UPDATE_CHANGED_COLUMNS  Gibt an, daß nur die Spalten, die von einem Operator aktualisiert wurden, an die Datenbank gesendet werden. Wenn für Nur geänderte Spalten aktualisieren Nein angegeben wurde, werden alle Spalten unabhängig davon gesendet, ob sie aktualisiert wurden oder nicht. Dies kann zu einem starken Netzwerkverkehr führen, insbesondere, wenn der Block einen Datentyp LONG enthält.

value	Die folgenden Konstanten können als Argumente an die vorher beschriebenen Attributwerte übergeben werden:

COORDINATED  Gibt an, daß das Attribut COORDINATION_STATUS für einen Block, bei dem es sich um einen Detail-Block in einer Master-Detail-Beziehung handelt, auf COORDINATED gesetzt werden soll.

DELAYED  Gibt an, daß Form Builder Detail-Datensätze nur bei der Ausführung eines Commit-Vorgangs sperren soll.

IMMEDIATE  Gibt an, daß Form Builder Detail-Datensätze sofort immer dann sperren soll, wenn ein Datensatz in einer Datenbank geändert wurde.

NON_COORDINATED  Gibt an, daß das Attribut COORDINATION_STATUS für einen Block, bei dem es sich um einen Detail-Block in einer Master-Detail-Beziehung handelt, auf NON_COORDINATED gesetzt werden soll.

NON_UPDATEABLE_PRIMARY_KEY  Gibt an, daß Form Builder Datensätze in dem Block so verarbeiten soll, daß die zugrundeliegende Datenquelle keine Aktualisierung von Primärschlüsseln zuläßt.

PROPERTY_TRUE  Gibt an, daß das Attribut auf den Status TRUE gesetzt werden soll. Diese Konstante wird speziell für DELETE_ALLOWED, INSERT_ALLOWED, QUERY_HITS und UPDATE_ALLOWED verwendet.

PROPERTY_FALSE  Gibt an, daß das Attribut auf den Status FALSE eingestellt werden muß.

UNIQUE_KEY  Gibt an, daß Form Builder Datensätze in dem Block so verarbeiten soll, daß die zugrundeliegende Datenquelle eine bestimmte Form eines eindeutigen Schlüssels oder einer ROWID verwendet.

UPDATEABLE_PRIMARY_KEY  Gibt an, daß Form Builder Datensätze in dem Block so verarbeiten soll, daß die zugrundeliegende Datenquelle eine Aktualisierung von Primärschlüsseln zuläßt.

x	Der NUMBER-Wert der Achsenkoordinaten in den Einheiten des Form-Koordinatensystems angegeben. Wenn Sie sowohl die x- als auch die y-Position festlegen, bezieht sich dieser Wert auf die x-Koordinate. Wenn Sie nur die y-Position festlegen, bezieht sich dieser Wert auf die y-Koordinate.

y	Der NUMBER-Wert der y-Koordinate in den Einheiten des Form-Koordinatensystems angegeben. Dieser Wert gilt, wenn sowohl die x- als auch die y-Position festgelegt wird. Bei allen anderen Attributen kann er ignoriert werden.


Beispiele für SET_BLOCK_PROPERTY

/*

** Built-in:  SET_BLOCK_PROPERTY
** Example:   Prevent future inserts, updates, and deletes to
**            queried records in the block whose name is
**            passed as an argument to this procedure.
*/
PROCEDURE Make_Block_Query_Only( blk_name IN VARCHAR2 )
IS
  blk_id Block;
BEGIN
  /* Lookup the block's internal ID */
  blk_id := Find_Block(blk_name);
  /*
  ** If the block exists (ie the ID is Not NULL) then set
  ** the three properties for this block. Otherwise signal
  ** an error.
  */
  IF NOT Id_Null(blk_id) THEN
    Set_Block_Property(blk_id,INSERT_ALLOWED,PROPERTY_FALSE);
    Set_Block_Property(blk_id,UPDATE_ALLOWED,PROPERTY_FALSE);
    Set_Block_Property(blk_id,DELETE_ALLOWED,PROPERTY_FALSE);
  ELSE
    Message('Block '||blk_name||' does not exist.');
    RAISE Form_Trigger_Failure;
  END IF;
END;

Benutzung von BLOCKSCROLLBAR_POSITION:

/*

** Built-in:  SET_BLOCK_PROPERTY
** Example:   Set the x and y position of the block's scrollbar
** 	to the passed x and y coordinates

*/
PROCEDURE Set_Scrollbar_Pos( blk_name IN VARCHAR2, xpos IN

NUMBER, ypos IN NUMBER )
IS
BEGIN
   Set_Block_Property(blk_name, BLOCKSCROLLBAR_POSITION, xpos, ypos);

END;


Vordefinierte Prozedur SET_CANVAS_PROPERTY

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Stellt das angegebene Leinwandattribut für die angegebene Leinwand ein.

Syntax

SET_CANVAS_PROPERTY
  (canvas_id  CANVAS,
   property   NUMBER,
   value      VARCHAR2);

SET_CANVAS_PROPERTY
  (canvas_id  CANVAS,
   property   NUMBER,
   x          NUMBER);
SET_CANVAS_PROPERTY
  (canvas_id  CANVAS,
   property   NUMBER,
   x          NUMBER,
   y          NUMBER);
SET_CANVAS_PROPERTY
  (canvas_name  VARCHAR2,
   property     NUMBER,
   value        VARCHAR2);
SET_CANVAS_PROPERTY
  (canvas_name  VARCHAR2,
   property     NUMBER,
   x            NUMBER);
SET_CANVAS_PROPERTY
  (canvas_name  VARCHAR2,
   property     NUMBER,
   x            NUMBER,
   y            NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

canvas_id	Die eindeutige ID, die Form Builder dem Leinwandobjekt beim Erstellen zugewiesen hat. Benutzen Sie die vordefinierte Prozedur FIND_CANVAS, um die ID an eine Variable vom Datentyp CANVAS zu übergeben.

canvas_name	Der Name, den Sie dem Leinwandobjekt bei der Definition zugewiesen haben. Der Datentyp ist VARCHAR2.

property	Das Attribut, das für die angegebene Leinwand eingestellt werden soll. Mögliche Attribute sind:

BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts.

CANVAS_SIZE  Die Abmessungen der Leinwand (Breite, Höhe).

FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden.

FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

FONT_SIZE  Schriftgrad in Punkt.

FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning).

FONT_STYLE  Schriftstil.

FONT_WEIGHT  Schriftstärke.

FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

HEIGHT  Die Höhe der Leinwand in Zeichen.

TOPMOST_TAB_PAGE  Der Name der Registerseite, die für Endbenutzer als oberste Registerseite angezeigt wird (d.h. alle anderen Registerseiten in der Registerleinwand überlagert).

VISUAL_ATTRIBUTE  Ein gültiges benanntes visuelles Attribut, das in der aktuellen Form vorhanden ist, oder der Name einer logischen Attributdefinition in einer Laufzeit-Resourcedatei, die Form Builder für die Leinwand anwenden soll.

WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

WIDTH  Die Breite der Leinwand in Zeichen.

value	Der VARCHAR2-Wert, der für das angegebene Attribut angewendet werden soll.

x	Der NUMBER-Wert der x-Koordinate oder die Breite, je nach angegebenem Attribut. Geben Sie das Argument in den Koordinatensystemeinheiten der Form an.

y	Der NUMBER-Wert der y-Koordinate oder die Höhe, je nach angegebenem Attribut. Geben Sie das Argument in Koordinatensystemeinheiten der Form an.


Einschränkungen bei SET_CANVAS_PROPERTY

•	Sie können kein nicht vorhandenes benanntes visuelles Attribut eingeben.

•	Wenn Form Builder kein benanntes visuelles Attribut mit dem von Ihnen angegebenen Namen finden kann, sucht es in der Resource-Datei Oracle*Terminal nach dem Anzeigeattribut.


Beispiele für SET_CANVAS_PROPERTY

/* Change the "background color" by dynamically setting the

** canvas color at runtime to the name of a visual attribute
** you created:
*/
BEGIN
  SET_CANVAS_PROPERTY('my_cvs', visual_attribute, 'blue_txt');
END;


Vordefinierte Prozedur SET_CUSTOM_ITEM_PROPERTY

Hinweis:

Diese vordefinierte Prozedur wurde durch SET_CUSTOM_PROPERTY ersetzt. Verwenden Sie diese vordefinierte Prozedur in jeder neuen Form. Die folgenden Informationen wurden nur im Hinblick auf Wartungsaufgaben erstellt.

Beschreibung

Stellt den Wert eines Attributs für ein JavaBean ein, das mit einem Bean-Bereich verknüpft ist.

Syntax

Diese vordefinierte Prozedur ist für die Typen VARCHAR2, NUMBER oder BOOLEAN verfügbar.

SET_CUSTOM_ITEM_PROPERTY
  (item,
   prop-name,
   varchar2 value);

SET_CUSTOM_ITEM_PROPERTY
  (item,
   prop-name,
   number value);

SET_CUSTOM_ITEM_PROPERTY
  (item,
   prop-name,
   boolean value);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

item	Der Name des Bean-Bereichs, der mit dem Ziel-JavaBean verknüpft ist. Der Name kann in Form eines Varchar2-Literals oder einer auf den Wert des Namen eingestellten Variablen angegeben werden.

prop-name	Das bestimmte Attribut des JavaBean-Container, der mit diesem Bean-Bereich verknüpft ist.

value	Der Wert für das angegebene Attribut. Der Wert muß vom Typ varchar2, integer oder boolean sein.

Verwendungshinweise

•	Im JavaBean-Container muß jeder Attributtyp durch eine einzelne Instanz der ID-Klasse dargestellt werden, die mit Hilfe von ID.registerProperty erstellt wurde.

•	Für jede in der Form ausgeführte vordefinierte Prozedur Set_Custom_Item_Property wird die Methode setProperty des JavaBean-Containers aufgerufen.

•	Der Name des Bean-Bereichs kann entweder über Find_Item(‘Item_Name’) oder über ‘Item_Name’ angezeigt werden.


Vordefinierte Prozedur SET_CUSTOM_PROPERTY

  Verwandte Themen   [image]  Beispiele.

Beschreibung

Stellt den Wert eines benutzerdefinierten Attributs in einer Java-Plugin-Komponente ein.

Syntax

Diese vordefinierte Prozedur ist für die Typen VARCHAR2, NUMBER oder BOOLEAN verfügbar.

SET_CUSTOM_PROPERTY
  (item,
   row-number,
   prop-name,
   value   VARCHAR2);

SET_CUSTOM_PROPERTY
  (item,
   row-number,
   prop-name,
   value   NUMBER);

SET_CUSTOM_PROPERTY
  (item,
   row-number,
   prop-name,
   value   BOOLEAN);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

item	Der Name oder die ID des Objekts, das mit der Ziel-Java-Plugin-Komponente vernüpft ist. Der Name kann in Form eines Varchar2-Literals oder einer auf den Wert des Namens eingestellten Variable angegeben werden.

row-number	Die Zeilennummer für die Instanz des einzustellenden Objekts. (Die Zeilennummern beginnen mit 1.) Wenn Sie alle Instanzen einstellen möchten, geben Sie die Konstante ALL_ROWS an.

prop-name	Das bestimmte Attribut der einzustellenden Java-Komponente.

value	Der neue Wert für das angegebene Attribut. Der Wert muß vom Typ varchar2, number oder boolean sein.

Verwendungshinweise

•	In der Java-Plugin-Komponente muß jedes benutzerdefinierte Attribut durch eine einzelne Instanz der ID-Klasse dargestellt werden, die mit Hilfe von ID.registerProperty erstellt wurde.

•	Für jede in der Form ausgeführte vordefinierte Prozedur Set_Custom_Property wird die Methode setProperty der Java-Komponente aufgerufen.

•	Der Name des Objekts kann entweder über Find_Item(‘Item_Name’) oder über ‘Item_Name’ angezeigt werden.


Beispiele für die vordefinierte Prozedur SET_CUSTOM_PROPERTY

In diesem Beispiel handelt es sich bei der Java-Plugin-Komponente um ein JavaBean. (Weitere Informationen zum gesamten Kontext für den Teilcode finden Sie im JavaBean-Beispiel.)

Im Container (bzw. in der Hülle) für das JavaBean:

     private static final ID SETRATE = ID.registerProperty(„SetAnimationRate“);

In der Form, als Teil des PL/SQL-Codes, der durch den When_Button_Pressed-Trigger auf der Schaltfläche "Schneller" auf dem Bildschirm des Endbenutzers aktiviert wird:

   NewAnimationRate := gb.CurAnimationRate + 25

     . . .

   Set_Custom_Property(’Juggler_Bean’, ALL_ROWS, ’SetAnimationRate’, NewAnimationRate);

In dieser vordefinierten Prozedur Set_Custom_Property:

•	Bei Juggler_Bean handelt es sich um den Namen des Bean-Bereichs in der Form. Das Objekt ist mit dem Container des JavaBean verknüpft.

•	Bei SetAnimationRate handelt es sich um ein Attribut im Container des JavaBean.

•	NewAnimationRate stellt eine Variable dar, die den neuen Wert für das Attribut enthält und die an den JavaBean-Container übergeben wird.


Vordefinierte Prozedur SET_FORM_PROPERTY

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Stellt ein Attribut der angegebenen Form ein.

Syntax

SET_FORM_PROPERTY
  (formmodule_id  FormModule,
   property       NUMBER,
   value          NUMBER);

SET_FORM_PROPERTY
  (formmodule_name  VARCHAR2,
   property         NUMBER,
   value            NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

formmodule_id	Gibt die eindeutige ID an, die Form Builder der Form beim Erstellen zuweist. Der Datentyp der ID ist FormModule.

formmodule_name	Gibt den Namen des Formmoduls an, den Sie der Form beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

property	Gibt das Attribut an, das Sie für die Form einstellen möchten:

CURRENT_RECORD_ATTRIBUTE  Gibt den VARCHAR2-Namen eines benannten visuellen Attributs an, das mit der angegebenen Form verknüpft werden soll. Wenn das benannte visuelle Attribut nicht vorhanden ist, wird eine Fehlermeldung ausgegeben.

CURRENT_ROW_BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts.

CURRENT_ROW_FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden.

CURRENT_ROW_FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

CURRENT_ROW_FONT_SIZE  Schriftgrad in Punkt.

CURRENT_ROW_FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning).

CURRENT_ROW_FONT_STYLE  Schriftstil.

CURRENT_ROW_FONT_WEIGHT Schriftstärke.

CURRENT_ROW_FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

CURRENT_ROW_WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

CURSOR_MODE  Gibt den Cursorstatus an, den Form Builder definieren soll. Wird im wesentlichen bei der Verbindung mit fremden Datenquellen benutzt. Gültige Werte sind OPEN_AT_COMMIT und CLOSE_AT_COMMIT.

DEFER_REQUIRED_ENFORCEMENT  Gibt an, ob die Durchsetzung der obligatorischen Felder von der Objektvalidierung zur Datensatzvalidierung verschoben wurde. Gültige Werte sind PROPERTY_TRUE, PROPERTY_4_5 und PROPERTY_FALSE.

DIRECTION  Gibt die Layoutrichtung für bidirektionale Objekte an. Gültige Werte sind DIRECTION_DEFAULT, RIGHT_TO_LEFT, LEFT_TO_RIGHT.

FIRST_NAVIGATION_BLOCK  Gibt den Namen des Blocks zurück, in den Form Builder beim Starten der Form navigieren soll. Standardmäßig ist der erste Navigationsblock der erste im Objektnavigator definierte Block. Allerdings kann das Blockattribut FIRST_NAVIGATION_BLOCK so eingestellt werden, daß ein anderer Block als erster Block beim Starten der Form angegeben wird.

SAVEPOINT_MODE  Gibt an, ob Form Builder Savepoints ausgeben muß. Gültige Werte sind PROPERTY_TRUE und PROPERTY_FALSE.

VALIDATION  Gibt an, ob Form Builder eine Standardvalidierung durchführen soll. Gültige Werte sind PROPERTY_TRUE und PROPERTY_FALSE.

VALIDATION_UNIT  Gibt den Geltungsbereich der Validierung für die Form an. Gültige Werte sind DEFAULT_SCOPE, BLOCK_SCOPE, RECORD_SCOPE und ITEM_SCOPE.

value	Die folgenden Konstanten können als Argumente an die vorher beschriebenen Attributwerte übergeben werden:

BLOCK_SCOPE  Geben Sie diese Konstante an, wenn Form Builder Daten nur auf Blockebene validieren soll. Dies bedeutet z.B., daß Form Builder alle Datensätze in einem Block validiert, wenn ein Navigationsereignis die Validierung durch Verlassen des Blocks erzwingt.

CLOSE_AT_COMMIT  Geben Sie diese Konstante an, wenn keine Cursor während Datenbank-Commit-Vorgängen geöffnet bleiben sollen, z.B. wenn eine Form mit einer fremden Datenbank ausgeführt wird.

DEFAULT_SCOPE  Stellt das Formmodulattribut Validierungseinheit auf den Standardwert ein. Bei GUI-Fensterverwaltungsprogrammen ist die Standard-Validierungseinheit ITEM.

FORM_SCOPE  Geben Sie diese Konstante an, wenn die Validierung nur auf Formebene stattfinden soll.

ITEM_SCOPE.  Geben Sie diese Konstante an, wenn Form Builder auf Objektebene validieren soll. Dies bedeutet z.B., daß Form Builder jedes geänderte Objekt validiert, wenn als Folge eines Navigationsereignisses aus einem Objekt navigiert wird.

OPEN_AT_COMMIT  Geben Sie diese Konstante an, wenn Cursor während Datenbank-Commit-Vorgängen geöffnet bleiben sollen. Dies ist die normale Einstellung bei der Benutzung von ORACLE.

PROPERTY_TRUE  Gibt an, daß das Attribut auf den Status TRUE eingestellt werden muß.

PROPERTY_FALSE  Gibt an, daß das Attribut auf den Status FALSE eingestellt werden muß.

RECORD_SCOPE  Geben Sie diese Konstante an, wenn Form Builder auf Datensatzebene validieren soll. Dies bedeutet, daß Form Builder jeden geänderten Datensatz validiert, z.B. wenn der Datensatz verlassen wird.


Beispiele für SET_FORM_PROPERTY

Beispiel 1

/*

** Built-in:  SET_FORM_PROPERTY
** Example:   Set the Cursor Mode property in the current form
**            to CLOSE_AT_COMMIT and changes the form
**            Validation unit to the Block level.
*/
DECLARE
  fm_id FormModule;
BEGIN
    fm_id := Find_Form(:System.Current_Form);
    Set_Form_Property(fm_id,CURSOR_MODE,CLOSE_AT_COMMIT);
    Set_Form_Property(fm_id,VALIDATION_UNIT,BLOCK_SCOPE);
END;

Beispiel 2

/*

** Built-in:  SET_FORM_PROPERTY
** Example:   Setup form and block properties required to run
**            against a particular non-Oracle datasource.
**            Procedure accepts the appropriate numerical
**            constants like DELAYED as arguments.
**
** Usage:     Setup_Non_Oracle(PROPERTY_FALSE,
**                             CLOSE_AT_COMMIT,
**                             UPDATEABLE_PRIMARY_KEY,
**                             DELAYED);
*/
PROCEDURE Setup_Non_Oracle( the_savepoint_mode NUMBER,
                    the_cursor_mode    NUMBER,
                    the_key_mode       NUMBER,
                    the_locking_mode   NUMBER ) IS
  fm_id   FormModule;
  bk_id   Block;
  bk_name VARCHAR2(40);
BEGIN
  /* ** Validate the settings of the parameters ** */
  IF the_savepoint_mode NOT IN (PROPERTY_TRUE,PROPERTY_FALSE) THEN
    Message('Invalid setting for Savepoint Mode.');
    RAISE Form_Trigger_Failure;
  END IF;
  IF the_cursor_mode NOT IN (CLOSE_AT_COMMIT,OPEN_AT_COMMIT) THEN
    Message('Invalid setting for Cursor Mode.');
    RAISE Form_Trigger_Failure;
  END IF;
  IF the_key_mode NOT IN (UNIQUE_KEY,UPDATEABLE_PRIMARY_KEY,
              NON_UPDATEABLE_PRIMARY_KEY) THEN
    Message('Invalid setting for Key Mode.');
    RAISE Form_Trigger_Failure;
  END IF;
  IF the_locking_mode NOT IN (IMMEDIATE,DELAYED) THEN
    Message('Invalid setting for Locking Mode.');
    RAISE Form_Trigger_Failure;
  END IF;
  /*
  ** Get the id of the current form
  */
  fm_id := Find_Form(:System.Current_Form);
  /*
  ** Set the two form-level properties
  */
  Set_Form_Property(fm_id, SAVEPOINT_MODE, the_savepoint_mode);
  Set_Form_Property(fm_id, CURSOR_MODE, the_cursor_mode);
  /*
  ** Set the block properties for each block in the form
  */
  bk_name := Get_Form_Property(fm_id,FIRST_BLOCK);
  WHILE bk_name IS NOT NULL LOOP
    bk_id := Find_Block(bk_name);

    Set_Block_Property(bk_id,LOCKING_MODE,the_locking_mode);

    Set_Block_Property(bk_id,KEY_MODE,the_key_mode);
    IF the_key_mode IN (UPDATEABLE_PRIMARY_KEY,
               NON_UPDATEABLE_PRIMARY_KEY) THEN
      Set_Block_Property(bk_id,PRIMARY_KEY,PROPERTY_TRUE);
    END IF;

    bk_name := Get_Block_Property(bk_id, NEXTBLOCK);
  END LOOP;
END;


Vordefinierte Prozedur SET_GROUP_CHAR_CELL

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Bestimmt den Wert der Zelle der Datensatzgruppe, die von der angegebenen Zeile und Spalte gekennzeichnet wird.

Syntax

SET_GROUP_CHAR_CELL
  (groupcolumn_id  GroupColumn,
   row_number      NUMBER,
   cell_value      VARCHAR2);

SET_GROUP_CHAR_CELL
  (groupcolumn_name  VARCHAR2,
   row_number        NUMBER,
   cell_value        VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

groupcolumn_id	Die eindeutige ID, die Form Builder beim Erstellen der Spalte für die Datensatzgruppe zuweist. Benutzen Sie die vordefinierte Prozedur FIND_COLUMN, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist GroupColumn,

groupcolumn_name	Der Name, den Sie der Spalte beim Erstellen zugewiesen haben, wobei der Datensatzgruppenname und ein Punkt vorangestellt sind, wie in recordgroup_name.groupcolumn_name. Der Datentyp des Namens ist VARCHAR2.

row_number	Gibt die Zeilennummer an, die die Zelle enthält, deren Wert eingestellt werden soll. Muß als Ganzzahl angegeben werden.

cell_value	Gibt für eine VARCHAR2-Spalte den VARCHAR2-Wert an, den Sie in eine Zelle eingeben möchten. Gibt für eine LONG-Spalte den LONG-Wert an, den Sie in eine Zelle eingeben möchten.


Einschränkungen bei SET_GROUP_CHAR_CELL

•	Sie müssen die angegebene Zeile erstellen, bevor Sie den Wert einer Zelle in dieser Zeile einstellen. Form Builder erstellt nicht automatisch eine neue Zeile, wenn Sie eine Zeile in dieser vordefinierten Prozedur angeben. Fügen Sie die Zeile explizit mit der vordefinierten Prozedur ADD_GROUP_ROW hinzu, oder füllen Sie die Gruppe mit POPULATE_GROUP oder POPULATE_GROUP_WITH_QUERY auf.

•	Nicht gültig für statische Datensatzgruppen. Eine statische Datensatzgruppe ist eine Datensatzgruppe, die beim Entwurf erstellt wurde und deren Attribut Datensatzgruppentyp auf Statisch eingestellt ist.


Beispiele für SET_GROUP_CHAR_CELL

/*

** Built-in:  SET_GROUP_CHAR_CELL
** Example:   See ADD_GROUP_ROW
*/


Vordefinierte Prozedur SET_GROUP_DATE_CELL

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Bestimmt den Wert der Zelle der Datensatzgruppe, die von der angegebenen Zeile und Spalte gekennzeichnet wird.

Syntax

SET_GROUP_DATE_CELL
  (groupcolumn_id  GroupColumn,
   row_number      NUMBER,
   cell_value      DATE);

SET_GROUP_DATE_CELL
  (groupcolumn_name  VARCHAR2,
   row_number        NUMBER,
   cell_value        DATE);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

groupcolumn_id	Die eindeutige ID, die Form Builder beim Erstellen der Spalte für die Datensatzgruppe zuweist. Benutzen Sie die vordefinierte Prozedur FIND_COLUMN, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist GroupColumn,

groupcolumn_name	Der Name, den Sie der Spalte beim Erstellen zugewiesen haben, wobei der Datensatzgruppenname und ein Punkt vorangestellt sind, wie in recordgroup_name.groupcolumn_name. Der Datentyp des Namens ist VARCHAR2.

row_number	Gibt die Zeilennummer an, die die Zelle enthält, deren Wert eingestellt werden soll. Muß als Ganzzahl angegeben werden.

cell_value	Gibt den DATE-Wert an, den Sie in eine Zelle eingeben möchten.


Einschränkungen bei SET_GROUP_DATE_CELL

•	Sie müssen die angegebene Zeile erstellen, bevor Sie den Wert einer Zelle in dieser Zeile einstellen. Form Builder erstellt nicht automatisch eine neue Zeile, wenn Sie eine Zeile in dieser vordefinierten Prozedur angeben. Fügen Sie die Zeile explizit mit der vordefinierten Prozedur ADD_GROUP_ROW hinzu, oder füllen Sie die Gruppe mit POPULATE_GROUP oder POPULATE_GROUP_WITH_QUERY auf.

•	Nicht gültig für statische Datensatzgruppen. Eine statische Datensatzgruppe ist eine Datensatzgruppe, die beim Entwurf erstellt wurde und deren Attribut Datensatzgruppentyp auf Statisch eingestellt ist.


Beispiele für SET_GROUP_DATE_CELL

/*

** Built-in:  SET_GROUP_DATE_CELL
** Example:   Lookup a row in a record group, and set the
**            minimum order date associated with that row in
**            the record group. Uses the 'is_value_in_list'
**            function from the GET_GROUP_CHAR_CELL example.
*/
PROCEDURE Set_Max_Order_Date_Of( part_no  VARCHAR2,
                     new_date DATE ) IS
  fnd_row NUMBER;
BEGIN
  /*
  ** Try to lookup the part number among the temporary part list
  ** record group named 'TMPPART' in its 'PARTNO' column.
  */
  fnd_row := Is_Value_In_List( part_no, 'TMPPART', 'PARTNO');

  IF fnd_row = 0 THEN
    Message('Part Number '||part_no||' not found.');
    RETURN;
  ELSE
    /*
    ** Set the corresponding Date cell value from the
    ** matching row.
    */
    Set_Group_Date_Cell('TMPPART.MAXORDDATE',fnd_row,new_date );
  END IF;
END;


Vordefinierte Prozedur SET_GROUP_NUMBER_CELL

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Bestimmt den Wert der Zelle der Datensatzgruppe, die von der angegebenen Zeile und Spalte gekennzeichnet wird.

Syntax

SET_GROUP_NUMBER_CELL
  (groupcolumn_id  GroupColumn,
   row_number      NUMBER,
   cell_value      NUMBER);

SET_GROUP_NUMBER_CELL
  (groupcolumn_name  VARCHAR2,
   row_number        NUMBER,
   cell_value        NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

groupcolumn_id	Die eindeutige ID, die Form Builder beim Erstellen der Spalte für die Datensatzgruppe zuweist. Benutzen Sie die vordefinierte Prozedur FIND_COLUMN, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist GroupColumn,

groupcolumn_name	Der Name, den Sie der Spalte beim Erstellen zugewiesen haben, wobei der Datensatzgruppenname und ein Punkt vorangestellt sind, wie in recordgroup_name.groupcolumn_name. Der Datentyp des Namens ist VARCHAR2.

row_number	Gibt die Zeilennummer an, die die Zelle enthält, deren Wert eingestellt werden soll. Muß als Ganzzahl angegeben werden.

cell_value	Gibt den NUMBER-Wert an, den Sie in eine Zelle eingeben möchten.


Einschränkungen bei SET_GROUP_NUMBER_CELL

•	Sie müssen die angegebene Zeile erstellen, bevor Sie den Wert einer Zelle in dieser Zeile einstellen. Fügen Sie eine Zeile explizit mit der vordefinierten Prozedur ADD_GROUP_ROW hinzu, oder füllen Sie die Gruppe mit POPULATE_GROUP oder POPULATE_GROUP_WITH_QUERY auf.

•	Nicht gültig für statische Datensatzgruppen. Eine statische Datensatzgruppe ist eine Datensatzgruppe, die beim Entwurf erstellt wurde und deren Attribut Datensatzgruppentyp auf Statisch eingestellt ist.


Beispiele für SET_GROUP_NUMBER_CELL

/*

** Built-in:  SET_GROUP_NUMBER_CELL
** Example:   See ADD_GROUP_ROW
*/


Vordefinierte Prozedur SET_GROUP_SELECTION

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Markiert die angegebene Zeile in der angegebenen Datensatzgruppe für nachfolgende programmgesteuerte Zeilenvorgänge. Zeilen werden sequentiell ab 1 numeriert. Wenn Sie z.B. die Zeilen 3, 8 und 12 auswählen, werden diese Zeilen von Form Builder als die Auswahlen 1, 2 und 3 betrachtet. Sie können Zeilenauswahlen für die ganze Gruppe rückgängig machen, indem Sie die vordefinierte Prozedur RESET_GROUP_SELECTION aufrufen.

Syntax

SET_GROUP_SELECTION
  (recordgroup_id  RecordGroup,
   row_number      NUMBER);

SET_GROUP_SELECTION
  (recordgroup_name  VARCHAR2,
   row_number        NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

recordgroup_id	Gibt die eindeutige ID an, die Form Builder der Datensatzgruppe beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_GROUP, um die ID an eine Variable zurückzugeben. Der Datentyp der ID ist RecordGroup.

recordgroup_name	Gibt den Namen der Datensatzgruppe an, den Sie der Gruppe beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

row_number	Gibt die Nummer der auszuwählenden Zeile in der Datensatzgruppe an. Der angegebene Wert hat den Datentyp NUMBER.


Beispiele für SET_GROUP_SELECTION

/*

** Built-in:  SET_GROUP_SELECTION
** Example:   Set all of the even rows as selected in the
**            record group whose id is passed-in as a
**            parameter.
*/
PROCEDURE Select_Even_Rows ( rg_id RecordGroup ) IS
BEGIN
  FOR j IN 1..Get_Group_Row_Count(rg_id) LOOP
    IF MOD(j,2)=0 THEN
      Set_Group_Selection( rg_id, j );
    END IF;
  END LOOP;
END;


Vordefinierte Prozedur SET_INPUT_FOCUS

 Beispiele	   Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

Stellt den Eingabefokus des Menüs der aktuellen Form ein. Nachdem die Triggerverarbeitung abgeschlossen ist, aktiviert Form Builder das Menü.

Syntax

SET_INPUT_FOCUS
  (MENU  );

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

MENU


Einschränkungen bei SET_INPUT_FOCUS

Nur zur Benutzung in Zeichenmodus- und Blockmodus-Umgebungen.


Beispiele für SET_INPUT_FOCUS

/*

** Built-in:  SET_INPUT_FOCUS
** Example:   Directs the users input focus to the Menu when
**            used with the only support parameter, MENU.
**            Only has an effect on character-mode or
**            block-mode devices.
*/
BEGIN
  Set_Input_Focus(MENU);
END;


Vordefinierte Prozedur SET_ITEM_INSTANCE_PROPERTY

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Ändert die aktuelle Objektinstanz in einem Block, in dem das angegebene Objektattribut geändert wird. SET_ITEM_INSTANCE_PROPERTY ändert das Erscheinungsbild von Objekten nicht, die die aktuelle Instanz spiegeln.

Sie können jedes Objekt in der aktuellen Form referenzieren. Beachten Sie, daß sich SET_ITEM_INSTANCE_PROPERTY nur auf die Anzeige der aktuellen Instanz des Objekts auswirkt; andere Instanzen des angegebenen Objekts sind nicht betroffen. Wenn Sie also eine Anzeigeänderung für ein Objekt in einem Block mit mehreren Datensätzen angeben, ändert SET_ITEM_INSTANCE_PROPERTY nur die Instanz des Objekts, das zu dem aktuellen Datensatz des Blocks gehört. Wenn Sie alle Instanzen eines Objekts in einem Block mit mehreren Datensätzen ändern möchten, verwenden Sie SET_ITEM_PROPERTY.

Änderungen, die von einer vordefinierten Prozedur SET_ITEM_INSTANCE_PROPERTY vorgenommen werden, bleiben wirksam bis:

•	die andere Objektinstanz von einer anderen vordefinierten Prozedur SET_ITEM_INSTANCE_PROPERTY referenziert wird, oder

•	dieselbe Objektinstanz von der vordefinierten Prozedur DISPLAY_ITEM referenziert wird, oder

•	die Instanz des Objekts entfernt wird (z.B. mit CLEAR_RECORD oder einer Abfrage), oder

•	die aktuelle Form beendet wird.

Syntax

SET_ITEM_INSTANCE_PROPERTY
  (item_id   ITEM,
   record_number  NUMBER,
   property  NUMBER,
   value     VARCHAR2);

SET_ITEM_INSTANCE_PROPERTY
  (item_name  VARCHAR2,
   record_number  NUMBER,
   property   NUMBER,
   value      VARCHAR2);

SET_ITEM_INSTANCE_PROPERTY
  (item_name  VARCHAR2,
   record_number  NUMBER,
   property   NUMBER,
   value      NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

item_id	Die eindeutige ID, die Form Builder einem Objekt beim Erstellen zugewiesen hat. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable mit dem Datentyp ITEM zurückzugeben.

record_number	Die Datensatznummer, die Sie festlegen möchten. Die Datensatznummer entspricht der Position des Datensatzes in dem Block. Geben Sie die Nummer in Form einer Ganzzahl an. Sie können CURRENT_RECORD angeben, wenn Sie den aktuellen Datensatz des Blocks festlegen möchten.

item_name	Der Name, den Sie dem Objekt beim Erstellen zugewiesen haben. Der Datentyp ist VARCHAR2.

property	Das Attribut, das Sie für das angegebene Objekt einstellen möchten. Mögliche Attribute sind:

BORDER_BEVEL  Gibt den Umriß des Objektrandes für die angegebene Objektinstanz an. Gültige Werte sind RAISED, LOWERED, PLAIN (ohne Umriß) oder " ". Bei einem Wert von " " wird der Umriß von dem Wert bestimmt, der beim Entwurf auf Objektebene oder zur Laufzeit von SET_ITEM_PROPERTY angegeben wird.

Hinweis: Sie können das Attribut BORDER_BEVEL nicht einstellen, wenn das Attribut Umriß in Form Builder auf Kein eingestellt wurde.

INSERT_ALLOWED  Gilt nur für Datensätze, die nicht aus der Datenbank abgerufen werden. Wenn dieses Attribut auf Objektinstanz-, Objekt- und Blockebene auf PROPERTY_TRUE eingestellt wird, kann der Endbenutzer die Objektinstanz ändern. Wenn dieses Attribut auf Objektinstanz-, Objekt- oder Blockebene auf PROPERTY_FALSE eingestellt wird, kann der Endbenutzer die Objektinstanz nicht ändern.

NAVIGABLE  Wenn dieses Attribut auf Objektinstanz- und Objektebene auf PROPERTY_TRUE eingestellt ist, kann der Endbenutzer mit der standardmäßigen Tastaturnavigation zu der Objektinstanz navigieren. Wenn dieses Attribut auf Objektinstanz- oder Objektebene auf PROPERTY_FALSE eingestellt wird, wird die standardmäßige Tastaturnavigation zu der Objektinstanz deaktiviert.

REQUIRED  Geben Sie die Konstante PROPERTY_TRUE an, wenn der Endbenutzer gezwungen werden soll, einen Nicht-Null-Wert für die Objektinstanz einzugeben. Wenn Sie dieses Attribut auf Objektinstanz- und Objektebene auf PROPERTY_FALSE einstellen, bedeutet dies, daß die Objektinstanz nicht erforderlich ist.

UPDATE_ALLOWED  Gilt nur für Datensätze, die aus der Datenbank abgerufen werden. Wenn dieses Attribut auf Objektinstanz-, Objekt- und Blockebene auf PROPERTY_TRUE eingestellt ist, kann der Endbenutzer die Objektinstanz ändern. Wenn es auf Objektinstanz-, Objekt- oder Blockebene auf PROPERTY_FALSE eingestellt ist, wird der Endbenutzer daran gehindert, die Objektinstanz zu ändern.

VISUAL_ATTRIBUTE  Geben Sie ein gültiges benanntes visuelles Attribut an, das in der aktuellen Form vorhanden ist, oder ''. Wenn Sie '' angeben, wird das visuelle Attribut auf Objektinstanzebene nicht angegeben.

Verwendungshinweise

Wenn Sie mit Attributen arbeiten, die auf mehreren Ebenen (Objektinstanz-, Objekt- und Blockebene) angegeben werden, berücksichtigen Sie folgende Richtlinien:

•	Obligatorische Attribute, die auf mehreren Ebenen angegeben werden, werden mit OR verknüpft.

•	Andere Boolesche Attribute, die auf mehreren Ebenen angegeben werden, werden mit AND verknüpft.

Der Wert, der aus der Kombination von Attributen, die auf Objektinstanz-, Objekt- und Blockebene angegeben werden, abgeleitet wird, wird als der effektive Wert bezeichnet. Diese beiden Regeln wirken sich unter anderem wie folgt aus:

•	Wenn Sie INSERT_ALLOWED auf True einstellen, bleibt dies auf Objektinstanzebene wirkungslos, es sei denn, das Attribut wird konsistent auf den Block- und Objektebenen eingestellt. Der Benutzer kann z.B. keine Daten in die Objektinstanz eingeben, wenn INSERT_ALLOWED auf Instanzebene wahr ist, auf Objekt- oder Blockebene hingegen nicht.

•	Wenn Sie NAVIGABLE auf True einstellen, bleibt dies auf Objektinstanzebene wirkungslos, es sei denn, dieses Attribut wird konsistent auf Objekt- und Objektinstanzebene eingestellt.

•	Wenn Sie NAVIGABLE auf True einstellen, wirkt sich dies möglicherweise darauf aus, ob der Block als Enterable betrachtet wird. Das schreibgeschützte Attribut Enterable eines Blocks ist nur dann True, wenn der aktuelle Datensatz eine Objektinstanz enthält, deren effektiver Wert für das Attribut NAVIGABLE True ist.

•	Wenn Sie REQUIRED auf False einstellen, bleibt dies auf Objektinstanzebene wirkungslos, es sei denn, das Attribut wird konsistent auf Objekt- und Objektinstanzebene eingestellt.

•	Wenn Sie UPDATE_ALLOWED auf True einstellen, bleibt dies auf Objektinstanzebene wirkungslos, es sei denn, das Attribut wird konsistent auf Block-, Objekt- und Objektinstanzebene eingestellt.

•	Wenn Sie BORDER_BEVEL auf Objektinstanzebene einstellen, wird die Einstellung BORDER_BEVEL auf Objektebene außer Kraft gesetzt, es sei denn, das Attribut BORDER_BEVEL wird auf Objektinstanzebene nicht angegeben (d.h. ist auf " " eingestellt).

•	Wenn Sie das Attribut VISUAL_ATTRIBUTE auf Objektinstanzebene einstellen, werden die Attribute auf Objekt- und Blockebene außer Kraft gesetzt, es sei denn, Sie geben ein partielles visuelles Attribut an. In diesem Fall werden das partielle visuelle Attribut und das aktuelle visuelle Attribut des Objekts zusammengeführt. Wenn VISUAL_ATTRIBUTE auf Objektinstanzebene auf " " eingestellt ist, werden die Einstellungen dieses Attributs auf Objektebene benutzt.

•	Wenn ein neuer Datensatz erstellt wird, werden dessen Objektinstanzattribute auf Werte eingestellt, die die auf höheren Ebenen angegebenen Werte nicht außer Kraft setzen. Die Attribute BORDER_BEVEL und VISUAL_ATTRIBUTE werden z.B. auf " " eingestellt, REQUIRED wird auf False eingestellt und andere Boolesche Attribute werden auf True eingestellt.

•	Die Einstellung eines Objektinstanzattributs wirkt sich nicht auf die Objektinstanzattribute von Objekten aus, die das angegebene Objekt spiegeln.

•	Eine Instanz einer Popup-Liste zeigt, wenn sie ausgewählt wird, einen zusätzlichen Null-Wert an, wenn der aktuelle Wert NULL ist oder wenn das Attribut Obligatorisch auf False eingestellt ist. Wenn der aktuelle Wert einer Instanz einer Textliste (T-Liste) ausgewählt wird, wird die Auswahl aufgehoben (so daß die T-Liste keinen ausgewählten Wert enthält), wenn das Attribut Obligatorisch auf False eingestellt ist. Wenn das Attribut Obligatorisch auf True eingestellt ist, bleibt die Auswahl des aktuellen Wertes der Instanz einer T-Liste wirkungslos, d.h. der Wert bleibt weiterhin ausgewählt.


Beispiele für SET_ITEM_INSTANCE_PROPERTY

/*

** Built-in:  SET_ITEM_INSTANCE_PROPERTY
** Example: Change the visual attribute of each item instance in the
**            current record

*/
DECLARE
  cur_itm   VARCHAR2(80);
  cur_block VARCHAR2(80) := :System.Cursor_Block;
BEGIN
  cur_itm   := Get_Block_Property( cur_block, FIRST_ITEM );
  WHILE ( cur_itm IS NOT NULL ) LOOP
    cur_itm := cur_block||'.'||cur_itm;
    Set_Item_Instance_Property( cur_itm, CURRENT_RECORD,
        VISUAL_ATTRIBUTE,'My_Favorite_Named_Attribute');
    cur_itm := Get_Item_Property( cur_itm, NEXTITEM );
  END LOOP;
END;


Vordefinierte Prozedur SET_ITEM_PROPERTY

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Ändert alle Instanzen eines Objekts in einem Block, indem ein angegebenes Objektattribut geändert wird. In einigen Fällen können Sie bestimmte Objektattribute einlesen - jedoch nicht einstellen.

Syntax

SET_ITEM_PROPERTY
  (item_id   ITEM,
   property  NUMBER,
   value     VARCHAR2);

SET_ITEM_PROPERTY
  (item_name  VARCHAR2,
   property   NUMBER,
   value      VARCHAR2);

SET_ITEM_PROPERTY
  (item_id   ITEM,
   property  NUMBER,
   x         NUMBER);

SET_ITEM_PROPERTY
  (item_name  VARCHAR2,
   property   NUMBER,
   x          NUMBER);

SET_ITEM_PROPERTY
  (item_id   ITEM,
   property  NUMBER,
   x         NUMBER,
   y         NUMBER);

SET_ITEM_PROPERTY
  (item_name  VARCHAR2,
   property   NUMBER,
   x          NUMBER,
   y          NUMBER

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

item_id	Die eindeutige ID, die Form Builder einem Objekt beim Erstellen zugewiesen hat. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable mit dem Datentyp ITEM zurückzugeben.

item_name	Der Name, den Sie dem Objekt beim Erstellen zugewiesen haben. Der Datentyp ist VARCHAR2.

property	Das Attribut, das Sie für das angegebene Objekt einstellen möchten. Mögliche Attribute sind:

ALIGNMENT  Die Textausrichtung (nur Text- und Anzeigeobjekte). Gültige Werte sind ALIGNMENT_START, ALIGNMENT_END, ALIGNMENT_LEFT, ALIGNMENT_ CENTER, ALIGNMENT_RIGHT.

AUTO_HINT  Bestimmt, ob Form Builder automatisch Hilfehinweise auf der Statuszeile anzeigt, wenn der Eingabefokus in dem angegebenen Objekt steht. Gültige Werte sind PROPERTY_TRUE und PROPERTY_FALSE.

AUTO_SKIP  Gibt an, ob der Cursor automatisch zum nächsten Objekt springen soll, wenn der Endbenutzer das letzte Zeichen in einem Textobjekt eingibt. Ist nur bei Textobjekten gültig. Gültige Werte sind PROPERTY_TRUE und PROPERTY_FALSE.

BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts.

BORDER_BEVEL  Gibt den Umriß der Objektumrandung für die angegebene Objektinstanz an. Gültige Werte sind RAISED, LOWERED oder PLAIN (ohne Umrandung).

Hinweis: Sie können das Attribut BORDER_BEVEL nicht einstellen, wenn das Attribut Umriß in Form Builder auf Kein eingestellt wurde.

CASE_INSENSITIVE_QUERY  Gibt an, ob bei Abfragebedingungen, die in das Objekt eingegeben werden, die Schreibweise berücksichtigt werden soll. Gültige Werte sind PROPERTY_TRUE und PROPERTY_FALSE.

CASE_RESTRICTION  Gibt an, daß bei Text, der in das angegebene Textobjekt eingegeben wird, die Schreibweise berücksichtigt werden muß. Gültige Werte sind UPPERCASE, LOWERCASE oder NONE.

COMPRESS  Gibt an, ob die Klangdaten aus einem Klangobjekt komprimiert werden sollen, bevor Form Builder die Daten in die Datei schreibt. Gültige Werte sind COMPRESSION_ON, COMPRESSION_OFF und ORIGINAL_SETTING (die ursprüngliche Komprimierungseinstellung der Daten wird beibehalten).

CONCEAL_DATA  Geben Sie die Konstante PROPERTY_TRUE an, wenn das Objekt leer bleiben oder anderweitig verdeckt werden soll, wenn der Endbenutzer einen Wert eingibt. Geben Sie die Konstante PROPERTY_FALSE an, wenn ein Wert, der in das Textobjekt eingegeben wird, sichtbar sein soll.

CURRENT_RECORD_ATTRIBUTE  Gibt den VARCHAR2-Namen eines benannten visuellen Attributs an, das mit dem angegebenen Objekt verknüpft werden soll. Wenn das benannte visuelle Attribut nicht vorhanden ist, wird eine Fehlermeldung ausgegeben.

CURRENT_ROW_BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts.

CURRENT_ROW_FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden.

CURRENT_ROW_FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

CURRENT_ROW_FONT_SIZE  Schriftgrad in Punkt.

CURRENT_ROW_FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning).

CURRENT_ROW_FONT_STYLE  Schriftstil.

CURRENT_ROW_FONT_WEIGHT Schriftstärke.

CURRENT_ROW_FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

CURRENT_ROW_WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

DIRECTION  Gibt die Layoutrichtung für bidirektionale Objekte an. Gültige Werte sind DIRECTION_DEFAULT, RIGHT_TO_LEFT, LEFT_TO_RIGHT.

DISPLAYED Gibt an, ob das Objekt angezeigt, aktiviert oder ausgeblendet bzw. deaktiviert wird.

ECHO  Gibt an, ob Zeichen, die ein Endbenutzer in ein Textobjekt eingibt, sichtbar sein sollen. Wenn für Echo False angegeben wird, sind die eingegebenen Zeichen verborgen. Diese Konstante wird für den Kennwortschutz benutzt. Gültige Werte sind PROPERTY_TRUE und PROPERTY_FALSE.

ENABLED  Gibt an, ob Endbenutzer ein Objekt bearbeiten dürfen. Gültige Werte sind PROPERTY_TRUE und PROPERTY_FALSE.

Hinweis:  Wenn Sie Enabled auf False einstellen, werden andere Einstellungen von Objektattributen geändert. Weitere Einzelheiten hierzu finden Sie in dem Abschnitt "Weiterleitung von Attributänderungen".

FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden.

FIXED_LENGTH  Gibt an, ob der Wert des Objekts mit der Einstellung des Objektattributs Max. Länge validiert werden soll. Wenn für FIXED_LENGTH TRUE angegeben wird, ist das Objekt nur gültig, wenn die Anzahl von Zeichen in dem Wert der Einstellung Max. Länge entspricht. Gültige Werte sind PROPERTY_TRUE und PROPERTY_FALSE.

FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

FONT_SIZE  Schriftgrad in Hundertstel Punkt. (Für einen Schriftgrad von 8 Punkten ist der Wert auf 800 einzustellen.)

FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning).

FONT_STYLE  Schriftstil.

FONT_WEIGHT  Schriftstärke.

FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

FORMAT_MASK  Gibt das Anzeigeformat und die Eingabe an, die für Daten in Textobjekten zulässig sind.

HEIGHT  Gibt die Höhe des Objekts an.

HINT_TEXT Gibt den objektspezifischen Hilfetext an, der in der Meldungszeile zur Laufzeit angezeigt wird. Wenn der Text mit NULL angegeben ist, wird der in Form Builder festgelegte ursprüngliche Hinweistext wieder hergestellt.

ICON_NAME  Gibt den Dateinamen der Symbol-Ressource an, die mit einem Schaltflächenobjekt verknüpft ist, dessen Attribut Als Symbol auf JA gesetzt ist.

IMAGE_DEPTH  Gibt die Farbtiefe für ein Bildobjekt an.

INSERT_ALLOWED  Wenn dieses Attribut auf PROPERTY_TRUE eingestellt ist, kann der Endbenutzer Objekte normal in einem neuen Datensatz einfügen. Geben Sie PROPERTY_FALSE an, damit das Objekt nicht geändert, jedoch normal angezeigt werden kann (nicht grau dargestellt). (Insert_Allowed leitet die Änderungen nicht an das Attribut Aktiviert weiter.)

ITEM_IS_VALID  Gibt an, ob das aktuelle Objekt als gültig betrachtet werden soll. Dieses Attribut kann auf PROPERTY_TRUE oder PROPERTY_FALSE eingestellt werden.

ITEM_SIZE  Gibt Breite und Höhe für das Objekt in Form von zwei durch Komma getrennte Zahlen an. Benutzen Sie die Syntax x,y.

KEEP_POSITION  Gibt an, ob für das Attribut Cursor-Position beibehalten True oder False angegeben werden soll. Wenn für Cursor-Position beibehalten True angegeben wird, geht der Cursor an dieselbe Stelle zurück, an der er das Textobjekt verlassen hat. Wenn für Cursor-Position beibehalten False angegeben wird, geht der Cursor zu der Standardposition in dem Textobjekt zurück. Gültige Werte sind PROPERTY_TRUE und PROPERTY_FALSE.

LABEL  Gibt die VARCHAR2-Zeichenfolge an, die als Beschriftung des Objekts angezeigt werden soll. Dieses Attribut ist nur bei Objekten gültig, die Beschriftungen haben, wie z.B. Schaltflächen.

LOCK_RECORD_ON_CHANGE  Geben Sie die Konstante PROPERTY_TRUE an, wenn der Datensatz bei einer Änderung dieses Objekts gesperrt werden soll. Geben Sie die Konstante PROPERTY_FALSE an, wenn der Datensatz bei der Änderung des Objekts nicht gesperrt werden soll. Dieses Attribut wird in erster Linie bei der Verbindung mit fremden Datenquellen benutzt, bei denen keine Sperre auf Zeilenebene zulässig ist.

LOV_NAME  Geben Sie den VARCHAR2-Namen einer Werteliste an, die mit dem angegebenen Objekt verknüpft werden soll. Wenn der Name der Werteliste nicht vorhanden ist, wird eine Fehlermeldung ausgegeben.

MERGE_CURRENT_ROW_VA  Mischt den Inhalt des angegebenen visuellen Attributs mit dem visuellen Attribut der aktuellen Zeile (anstatt dieses zu ersetzen).

MERGE_TOOLTIP_ATTRIBUTE  Mischt den Inhalt des angegebenen visuellen Attributs mit dem aktuellen visuellen Attribut des Tooltips (anstatt es zu ersetzen).

MERGE_VISUAL_ATTRIBUTE  Mischt den Inhalt des angegebenen visuellen Attributs mit dem aktuellen visuellen Attribut des Objekts (anstatt es zu ersetzen).

MOUSE_NAVIGATE  Gibt an, ob Form Builder zu dem Objekt navigieren und den Fokus zu dem Objekt setzen soll, wenn der Endbenutzer das Objekt mit der Maus aktiviert. Geben Sie die Konstante PROPERTY_TRUE an, wenn der Endbenutzer in der Lage sein soll, mit der Maus zu dem Objekt zu navigieren. Geben Sie die Konstante PROPERTY_FALSE an, wenn der Eingabefokus bei einem Mausklick im aktuellen Objekt bleiben soll.

NAVIGABLE  Geben Sie die Konstante PROPERTY_TRUE an, wenn der Endbenutzer in der Lage sein soll, mit der Standard-Tastaturnavigation zu dem Objekt zu navigieren. Geben Sie die Konstante PROPERTY_FALSE an, wenn die Standard-Tastaturnavigation zu dem Objekt deaktiviert werden soll. (Navigable leitet die Änderungen nicht an das Attribut Aktiviert weiter.)

NEXT_NAVIGATION_ITEM  Gibt den Namen des Objekts an, das bezogen auf das aktuelle Objekt als "nächstes Navigationsobjekt" definiert ist.

POPUPMENU_CONTENT_ITEM  Gibt die Einstellung für die Objektattribute von OLE-Popup-Menüs an:

•	POPUPMENU_COPY_ITEM

•	POPUPMENU_CUT_ITEM

•	POPUPMENU_DELOBJ_ITEM

•	POPUPMENU_INSOBJ_ITEM

•	POPUPMENU_LINKS_ITEM

•	POPUPMENU_OBJECT_ITEM

•	POPUPMENU_PASTE_ITEM

•	POPUPEMNU_PASTESPEC_ITEM

Geben Sie die Zeichenfolge HIDDEN für die OLE-Popup-Menüpunkte an, die nicht in dem OLE-Popup-Menü angezeigt werden sollen. Geben Sie die Zeichenfolge ENABLED für OLE-Popup-Menüpunkte an, die angezeigt und aktiviert werden sollen. Geben Sie die Zeichenfolge DISABLED für OLE-Popup-Menüpunkte an, die angezeigt, aber nicht aktiviert werden sollen.

POSITION  Geben Sie die x,y-Koordinaten für das Objekt in Form von Zahlen an, die durch ein Komma voneinander getrennt werden. Benutzen Sie die Syntax x,y.

PREVIOUS_NAVIGATION_ITEM  Gibt den Namen des Objekts an, das bezogen auf dieses aktuelle Objekt als "vorheriges Navigationsobjekt" definiert ist.

PRIMARY_KEY  Geben Sie die Konstante PROPERTY_TRUE an, um festzulegen, daß jeder in den Block eingefügte oder in dem Block aktualisierte Datensatz eine eindeutige Eigenschaft haben muß, um in der Datenbank festgeschrieben zu werden. Sonst geben Sie die Konstante PROPERTY_FALSE an.

PROMPT_ALIGNMENT_OFFSET  Bestimmt die Distanz zwischen dem Objekt und der zugehörigen Eingabeaufforderung.

PROMPT_BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts.

PROMPT_DISPLAY_STYLE  Bestimmt den Anzeigestil für die Eingabeaufforderung, d.h. PROMPT_FIRST_RECORD, PROMPT_HIDDEN oder PROMPT_ALL_RECORDS.

PROMPT_EDGE  Bestimmt, welchem Rand die Eingabeaufforderung für das Objekt zugeordnet ist, d.h. START_EDGE, END_EDGE, TOP_EDGE oder BOTTOM_EDGE.

PROMPT_EDGE_ALIGNMENT  Bestimmt, welchem Rand die Eingabeaufforderung des Objekts zugeordnet ist, d.h. ALIGNMENT_START, ALIGNMENT_END oder ALIGNMENT_CENTER.

PROMPT_EDGE_OFFSET  Bestimmt die Distanz zwischen dem Objekt und der zugehörigen Eingabeaufforderung in Form eines VARCHAR2-Wertes.

PROMPT_FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden.

PROMPT_FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

PROMPT_FONT_SIZE  Schriftgrad in Punkt.

PROMPT_FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning).

PROMPT_FONT_STYLE  Schriftstil.

PROMPT_FONT_WEIGHT  Schriftstärke.

PROMPT_FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

PROMPT_TEXT  Bestimmt die Textbeschriftung, die für ein Objekt angezeigt wird.

PROMPT_TEXT_ALIGNMENT  Bestimmt, wie der Prompt justiert ist, d.h. ALIGNMENT_START, ALIGNMENT_LEFT, ALIGNMENT_RIGHT, ALIGNMENT_CENTER oder ALIGNMENT_END.

PROMPT_VISUAL_ATTRIBUTE  Gibt das benannte visuelle Attribut an, das zur Laufzeit für den Prompt angewendet werden soll.

PROMPT_WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

QUERYABLE  Geben Sie die Konstante PROPERTY_TRUE an, wenn der Endbenutzer in der Lage sein soll, eine Abfrage für das Objekt einzuleiten. Geben Sie die Konstante PROPERTY_FALSE an, wenn die Benutzung eines Objekts in einer Abfrage nicht zulässig sein soll.

QUERY_ONLY  Geben Sie ein abzufragendes Objekt an, wobei verhindert wird, daß das Objekt Bestandteil von Einfügen- oder Aktualisieren-Anweisungen wird. QUERY_ONLY gilt nur für Textobjekte, Optionsgruppen und Kontrollkästchen. Setzen Sie den vollständigen Objektnamen in einfache Anführungszeichen.

REQUIRED  Geben Sie die Konstante PROPERTY_TRUE an, wenn der Endbenutzer einen Wert für das Objekt eingeben muß. Geben Sie die Konstante PROPERTY_FALSE an, wenn das Objekt nicht obligatorisch eingegeben werden muß.

SHOW_FAST_FORWARD_BUTTON  Geben Sie die Konstante PROPERTY_TRUE an, um [image] auf einem Klangobjekt anzuzeigen, und PROPERTY_FALSE, um dieses zu verbergen.

SHOW_PLAY_BUTTON  Geben Sie die Konstante PROPERTY_TRUE an, um [image] auf einem Klangobjekt anzuzeigen, und PROPERTY_FALSE, um dieses zu verbergen. Beachten Sie, daß Form Builder [image] oder [image] verbirgt, jedoch nicht beide.

SHOW_RECORD_BUTTON  Geben Sie die Konstante PROPERTY_TRUE an, um [image] auf einem Klangobjekt anzuzeigen, und PROPERTY_FALSE, um dieses zu verbergen. Beachten Sie, daß Form Builder [image] oder [image] verbirgt, jedoch nicht beide.

SHOW_REWIND_BUTTON  Geben Sie die Konstante PROPERTY_TRUE an, um [image] auf einem Klangobjekt anzuzeigen, und PROPERTY_FALSE, um dieses zu verbergen.

SHOW_SLIDER  Geben Sie die Konstante PROPERTY_TRUE an, um [image] auf einem Klangobjekt anzuzeigen, und PROPERTY_FALSE, um es zu verbergen.

SHOW_TIME_INDICATOR  Geben Sie die Konstante PROPERTY_TRUE an, um [image] auf einem Klangobjekt anzuzeigen, und PROPERTY_FALSE, um dieses zu verbergen.

SHOW_VOLUME_CONTROL  Geben Sie die Konstante PROPERTY_TRUE an, um [image] auf einem Klangobjekt anzuzeigen, und PROPERTY_FALSE, um dieses zu verbergen.

TOOLTIP_BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts.

TOOLTIP_FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden.

TOOLTIP_FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

TOOLTIP_FONT_SIZE  Schriftgrad in Punkt.

TOOLTIP_FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning).

TOOLTIP_FONT_STYLE  Schriftstil.

TOOLTIP_FONT_WEIGHT  Schriftstärke.

TOOLTIP_FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

TOOLTIP_TEXT Bestimmt den Text für den Tooltip des Objekts.

TOOLTIP_WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

UPDATE_ALLOWED  Geben Sie die Konstante PROPERTY_TRUE an, wenn der Endbenutzer in der Lage sein soll, das Objekt zu aktualisieren. Geben Sie die Konstante PROPERTY_FALSE an, wenn das Objekt vor Aktualisierungen geschützt werden soll.

UPDATE_COLUMN  Geben Sie die Konstante PROPERTY_TRUE an, wenn diese Spalte als aktualisiert behandelt und in den Spalten aufgenommen werden soll, die in die Datenbank geschrieben werden. Geben Sie die Konstante PROPERTY_FALSE an, wenn diese Spalte als nicht aktualisiert behandelt und nicht in den Spalten aufgenommen werden soll, die in die Datenbank geschrieben werden.

UPDATE_NULL  Geben Sie die Konstante PROPERTY_TRUE an, wenn der Endbenutzer das Objekt nur aktualisieren darf, wenn es den Wert NULL hat. Geben Sie die Konstante PROPERTY_FALSE an, wenn der Endbenutzer den Wert des Objekts unabhängig davon aktualisieren soll, ob der Wert NULL ist oder nicht.

UPDATE_PERMISSION  Benutzen Sie UPDATE_ ALLOWED, wenn mit fremden Datenquellen gearbeitet wird. Geben Sie die Konstante PROPERTY_TRUE an, um die Attribute UPDATEABLE und UPDATE_NULL für das Objekt einzuschalten. Geben Sie die Konstante PROPERTY_FALSE an, um die Attribute UPDATEABLE und UPDATE_NULL des Objekts auszuschalten.

VALIDATE_FROM_LIST  Wenn PROPERTY_TRUE angegeben wird, bedeutet dies, daß Form Builder den Wert des Textobjekts anhand der Werte in der zugeordneten Werteliste validieren soll. Geben Sie PROPERTY_FALSE an, damit Form Builder die Werteliste bei der Validierung nicht benutzt.

VISIBLE  Gibt an, ob das angegebene Objekt sichtbar oder verborgen sein soll. Gültige Werte sind PROPERTY_TRUE und PROPERTY_FALSE.

Hinweis:  Wenn Sie Visible auf False einstellen, werden andere Objektattributeinstellungen geändert. Weitere Einzelheiten finden Sie in dem Abschnitt "Weiterleitung von Attributänderungen".

VISUAL_ATTRIBUTE  Geben Sie ein gültiges benanntes visuelles Attribut an, das in der aktuellen Form vorhanden ist.

Hinweis:  Sie können das visuelle Attribut nicht für ein Bildobjekt einstellen.

WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

WIDTH  Geben Sie die Breite des Objekts als NUMBER an. Die Größe der Einheiten hängt von der Einstellung des Attributs Koordinatensystem und von der Standard-Schriftskalierung für die Form ab.

X_POS  Geben Sie die x-Koordinate als NUMBER an.

Y_POS  Geben Sie die y-Koordinate als NUMBER an.

value	Geben Sie den Wert an, der für das angegebene Attribut angewendet werden soll. Der Datentyp des Attributs bestimmt den Datentyp des eingegebenen Wertes. Wenn das Attribut VISIBLE z.B. auf TRUE eingestellt werden soll, geben Sie die Konstante PROPERTY_TRUE für den Wert an. Wenn die Beschriftung des Objekts geändert werden soll, geben Sie den Wert, d.h. die Beschriftung als VARCHAR2-Zeichenfolge an.

PROPERTY_TRUE  Gibt an, daß das Attribut auf den Status TRUE eingestellt werden muß.

PROPERTY_FALSE  Gibt an, daß das Attribut auf den Status FALSE eingestellt werden muß.

Wenn Sie den Wert des Attributs auf den Wert zurücksetzen möchten, der ursprünglich beim Entwurf festgelegt wurde, geben Sie zwei einfache Anführungszeichen ohne Leerzeichen dazwischen ein:' ' Mit SET_ITEM_PROPERTY('DEPTNO', FORMAT_MASK, ''); würde z.B. diese Formatmaske auf den Entwurfswert zurückgesetzt.

x	Gibt den NUMBER-Wert der x-Koordinate oder die Breite je nach angegebenem Attribut an. Geben Sie das Argument in Koordinatensystemeinheiten der Form an.

y	Gibt den NUMBER-Wert der y-Koordinate oder die Höhe je nach angegebenem Attribut an. Geben Sie das Argument in den Koordinatensystemeinheiten der Form an.

Verwendungshinweise

Die folgenden Punkte können Ihre Entscheidung bezüglich der Anwendung bestimmter Attributwerte für ein Objekt beeinflussen:

•	Validierung von Attributänderungen

•	Weiterleitung von Attributänderungen

Validierung von Attributänderungen  Wenn Sie eine Änderung mit der vordefinierten Prozedur SET_ITEM_PROPERTY angeben, validiert Form Builder die Änderung, bevor das Attribut angepaßt wird. Nachdem die Änderung validiert wurde, nimmt Form Builder die Änderung vor. Diese Änderung bleibt wirksam, bis eine weitere vordefinierte Prozedur SET_ITEM_PROPERTY dasselbe Attribut ändert oder die aktuelle Form beendet wird.

Unzulässige Einstellungen  Wenn die Änderung nicht validiert wird, gibt Form Builder eine Fehlermeldung aus. Sie können SET_ITEM_PROPERTY nicht benutzen, um die folgenden Objektattribute auf True oder False unter Berücksichtigung der folgenden Bedingungen der Zielobjekte einzustellen.

Sie können diesen Attributparameter nicht auf ...	Diese eingeschränkte Einstellung setzen,	Wenn diese Bedingung des Zielobjekts gilt
Alle	True/False	NULL-Leinwandobjekt (das Leinwandattribut des Objekts ist null)
ENABLED	True/False True	Aktuelles Objekt Objektattribut Sichtbar ist False
INSERT_ALLOWED	True True	Objektattribut Aktiviert ist False Objektattribut Sichtbar ist False
NAVIGABLE	True/False True	Aktuelles Objekt Objektattribut Sichtbar ist False
QUERYABLE (Abfrage zulässig)	True	Objektattribut Sichtbar ist False
UPDATE_ALLOWED	True True	Objektattribut Aktiviert ist False Objektattribut Daten verbergen ist True
UPDATE_NULL  (Aktualisieren bei NULL)	True True	Objektattribut Aktiviert ist False Objektattribut Daten verbergen ist True
VISIBLE	True/False	Aktuelles Objekt
Form Builder berücksichtigt den aktuellen Inhalt eines Objekts erst, nachdem eine Attributänderung zugelassen wurde. Wenn SET_ITEM_PROPERTY ein Objektattribut ändert, das sich darauf auswirkt, wie Form Builder die Daten in einem Objekt validiert (z.B. FIXED_LENGTH oder REQUIRED), sind die Validierungsfolgen nicht retroaktiv. Die neuen Validierungsregeln gelten erst für das Objekt, wenn Form Builder dieses das nächste Mal unter normalen Bedingungen validiert.

Angenommen, die Anwendung hat ein obligatorisches Textobjekt, wie z.B. Employee-ID. In der Anwendung muß der Endbenutzer in der Lage sein, dieses Objekt zu verlassen (was bei einem OBLIGATORISCHEN Objekt nicht zulässig ist), so daß Sie das Attribut Obligatorisch vorübergehend auf FALSE setzen. An dieser Stelle markiert Form Builder einen bestehenden NULL-Wert als VALID. Wenn Sie das Attribut Obligatorisch später in der Anwendung wieder auf TRUE setzen, ändert Form Builder die VALID/INVALID-Markierung nicht automatisch. Damit ein NULL-Wert als INVALID markiert wird (wie bei einem OBLIGATORISCHEN Objekt erwartet), müssen Sie eine Änderung in dem Objekt vornehmen, durch die Form Builder das Objekt validiert, wie z.B.:

IF :block.item IS NULL
THEN :block.item := NULL;

Weiterleitung von Attributänderungen  Mit der vordefinierten Prozedur SET_ITEM_PROPERTY können Sie zu einem bestimmten Zeitpunkt nur eine Änderung an einem Objektattribut gleichzeitig angeben. Allerdings kann eine Anweisung SET_ITEM_PROPERTY Änderungen an mehr als einem Objektattribut verursachen, wenn die zusätzlichen Änderungen erforderlich sind, um die geplante Änderung abzuschließen oder weiterzuleiten. Diese Funktion ist im wesentlichen aus Kompatibilitätsgründen mit früheren Versionen enthalten. Sie sollten Ihre bestehenden Attribute auf die neuen Attribute umstellen, um die komplexen Funktionen voll nutzen zu können.

In der folgenden Tabelle werden die Einstellungen von SET_ITEM_PROPERTY dargestellt, die Form Builder veranlassen, Änderungen über Objektattribute hinaus weiterzuleiten:

Wenn Sie diesen Attributparameter ...	Auf diese Einstellung setzen,	Werden die folgenden Änderungen weitergeleitet:
ENABLED	False	Setzt das Objektattribut Tastatur-Navigierbar auf False Setzt das Objektattribut Update_NULL auf No Setzt das Objektattribut Aktualisieren erlaubt auf Nein Setzt das Objektattribut Obligatorisch auf False
DISPLAYED	False	Setzt die Objektattribute Aktiviert und Navigierbar auf False Setzt das Objektattribut Aktualisieren erlaubt auf Nein Setzt das Objektattribut Update_NULL auf No Setzt das Objektattribut Obligatorisch auf False Setzt das Attribut Abfrage erlaubt auf False
UPDATEABLE	True	Setzt das Objektattribut Update_NULL auf No
UPDATE_NULL	True	Setzt das Objektattribut Aktualisieren erlaubt auf Nein


Beispiele für SET_ITEM_PROPERTY

/*

** Built-in:  SET_ITEM_PROPERTY
** Example:   Change the icon of an iconic button dynamically
**            at runtime by changing its icon_name. The user
**            clicks on this button to go into enter query
**            mode, then clicks on it again (after the icon
**            changed) to execute the query. After the query
**            is executed the user sees the original icon
**            again.
** Trigger:   When-Button-Pressed
*/
DECLARE
  it_id Item;
BEGIN
  it_id := Find_Item('CONTROL.QUERY_BUTTON');
  IF :System.Mode = 'ENTER-QUERY' THEN
    /*
    ** Change the icon back to the enter query icon, and
    ** execute the query.
    */
    Set_Item_Property(it_id,ICON_NAME,'entquery');
    Execute_Query;
  ELSE
    /*
    ** Change the icon to the execute query icon and get
    ** into enter query mode.
    */
    Set_Item_Property(it_id,ICON_NAME,'exequery');
    Enter_Query;
  END IF;
END;


Vordefinierte Prozedur SET_LOV_COLUMN_PROPERTY

 Alle vordefinierten Prozeduren

Beschreibung

Legt das angegebene Wertelistenattribut für die angegebene Werteliste fest.

Syntax

SET_LOV_COLUMN_PROPERTY
  (lov_id    LOV,
   colnum    NUMBER,
   property  NUMBER,
   value     VARCHAR2);

SET_LOV_COLUMN_PROPERTY
  (lov_name  VARCHAR2,
   colnum    NUMBER,
   property  NUMBER,
   value     VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

lov_id	Gibt die eindeutige ID an, die Form Builder der Werteliste beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_LOV, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist LOV.

lov_name	Gibt den Namen der Werteliste (in Form von VARCHAR2) an.

colnum	Gibt die zu ändernde Spalte (in Form von NUMBER) an. Spaltennummern werden zur Basis 1 generiert. Das heißt, die erste Spalte ist Spalte 1.

property	Gibt das Attribut an, das für die angegebene Werteliste eingestellt werden soll. Die möglichen Attribute sind:

TITLE  Stellt das Attribut Spaltentitel ein, das den Titel bestimmt, der über einer Wertelistenspalte angezeigt wird.

Hinweis:  Wenn Sie den Spaltentitel auf NULL einstellen, wird der Spaltentitel auf den Titel zurückgesetzt, der beim Entwurf angegeben wurde.

WIDTH  Gibt die Breite für die Werteliste bei der Anzeige von Spaltenwerten an.

Hinweis: Wenn Sie die Spaltenbreite auf NULL einstellen, wird die Spalte verborgen oder nicht angezeigt.

value	Der VARCHAR2- oder NUMBER-Wert, der die gewünschte Attributeinstellung darstellt.


Vordefinierte Prozedur SET_LOV_PROPERTY

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Legt das angegebene Wertelistenattribut für die angegebene Werteliste fest.

Syntax

SET_LOV_PROPERTY
  (lov_id    LOV,
   property  NUMBER,
   value     NUMBER);

SET_LOV_PROPERTY
  (lov_name  VARCHAR2,
   property  NUMBER,
   value     NUMBER);
SET_LOV_PROPERTY
  (lov_id    LOV,
   property  NUMBER,
   x         NUMBER,
   y         NUMBER);
SET_LOV_PROPERTY
  (lov_name  VARCHAR2,
   property  NUMBER,
   x         NUMBER,
   y         NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

lov_id	Gibt die eindeutige ID an, die Form Builder der Werteliste beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_LOV, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist LOV.

lov_name	Gibt den Namen der Werteliste (in Form von VARCHAR2) an.

property	Gibt das Attribut an, das für die angegebene Werteliste eingestellt werden soll. Die möglichen Attribute sind:

AUTO_REFRESH  Gibt an, ob Form Builder die Abfrage jedesmal ausführt, wenn die Werteliste aufgerufen wird.

GROUP_NAME  Gibt die Datensatzgruppe an, mit der die Werteliste verknüpft ist.

LOV_SIZE  Gibt die Breite und Höhe an, mit der die Größe der Werteliste bestimmt wird.

POSITION  Gibt ein x,y-Paar an, mit dem die Position der Werteliste bestimmt wird.

TITLE  Gibt den Titel der Werteliste an. Setzt den Wert außer Kraft, der in Form Builder angegeben wurde, es sei denn, der Attributwert ist NULL.

value	Geben Sie eine der folgenden Konstanten an:

PROPERTY_TRUE  Gibt an, daß das Attribut auf den Status TRUE eingestellt werden muß.

PROPERTY_FALSE  Gibt an, daß das Attribut auf den Status FALSE eingestellt werden muß.

Recordgroup Name  	Geben Sie den VARCHAR2-Namen der Datensatzgruppe an, die eingestellt wird. Sie können diese Datensatzgruppe in Form Builder oder programmgesteuert erstellen, vorausgesetzt, die Datensatzgruppe ist beim Aufruf von SET_LOV_PROPERTY vorhanden.

x	Geben Sie die x-Koordinate oder die Breite je nach angegebenem Attribut an.

y	Geben Sie die y-Koordinate oder Höhe je nach angegebenem Attribut an.


Einschränkungen bei SET_LOV_PROPERTY

•	Sie können nur ein Attribut pro Aufruf der vordefinierten Prozedur einstellen.


Beispiele für SET_LOV_PROPERTY

/*

** Built-in:  SET_LOV_PROPERTY
** Example:   if LOV is currently base on GROUP1,
**            make LOV use GROUP2
*/
DECLARE
  lov_id      LOV;
BEGIN
  lov_id     := Find_LOV('My_LOV_1');
  IF Get_LOV_Property(lov_id,GROUP_NAME) = 'GROUP1' THEN
    Set_LOV_Property(lov_id,GROUP_NAME,'GROUP2');
  ENDIF;
END;


Vordefinierte Prozedur SET_MENU_ITEM_PROPERTY

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Ändert die angegebenen Attribute eines Menüpunkts.

Syntax

SET_MENU_ITEM_PROPERTY
  (menuitem_id  MenuItem,
   property     NUMBER,
   value        NUMBER);

SET_MENU_ITEM_PROPERTY
  (menu_name.menuitem_name  VARCHAR2,
   property                 NUMBER,
   value                    NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

menuitem_id	Gibt die eindeutige ID an, die Form Builder beim Erstellen des Menüpunkts zuweist. Benutzen Sie die vordefinierte Prozedur FIND_MENU_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist MenuItem.

menu_name. menuitem_name	Gibt den VARCHAR2-Namen an, den Sie dem Menüpunkt bei der Definition zugewiesen haben. Wenn Sie den Menüpunkt nach Namen angeben, nehmen Sie den entsprechenden Menünamen mit auf, wie in der Syntax dargestellt.

property	Geben Sie eine der folgenden Konstanten an, um Informationen über den Menüpunkt festzulegen:

CHECKED  Gibt das Attribut Ausgewählt an, mit dem festgelegt wird, ob ein Menüpunkt in Form eines Kontrollkästchens  oder einer Optionsschaltfläche ausgewählt oder nicht ausgewählt ist.

ENABLED  Gibt an, ob der Menüpunkt aktiviert oder deaktiviert (d.h. grau angezeigt und für den Endbenutzer nicht verfügbar) ist.

ICON_NAME  Gibt den Dateinamen der Symbol-Ressource an, die mit einem Menüobjekt verknüpft ist, dessen Attribut Symbol in Menü auf TRUE gesetzt ist.

LABEL  Gibt die Zeichenfolge für die Beschriftung des Menüpunkts an.

VISIBLE  Gibt an, ob der Menüpunkt sichtbar ist.

value	Geben Sie eine der folgenden Konstanten an:

PROPERTY_TRUE  Gibt an, daß das Attribut auf den Status TRUE eingestellt werden muß.

PROPERTY_FALSE  Gibt an, daß das Attribut auf den Status FALSE eingestellt werden muß.

Label  	Geben Sie den VARCHAR2-Beschriftungsnamen an.


Einschränkungen bei SET_MENU_ITEM_PROPERTY

Diese Einstellungen gelten nur, wenn das Attribut Sicherheit verwenden des Menümoduls auf Ja eingestellt ist:

•	Wenn das Attribut Sicherheit verwenden des Menümoduls auf Ja eingestellt ist, hängt die Möglichkeit, ob das Attribut eines Menüpunkts mit SET_MENU_ITEM_PROPERTY eingestellt werden kann, davon ab, ob der Formoperator Zugriffsberechtigungen für dieses Objekt hat.

•	Wenn der Menüpunkt verborgen ist und der Endbenutzer keinen Sicherheitszugriff zu einem Menüpunkt hat, zeigt Runform diesen Menüpunkt nicht an. Sie können das Attribut eines Menüpunkts mit SET_MENU_ITEM_PROPERTY nicht einstellen, wenn der Menüpunkt momentan verborgen ist.

•	Wenn der Menüpunkt angezeigt wird, jedoch deaktiviert ist und das Attribut Anzeige ohne Berechtigung für diesen Menüpunkt in Form Builder festgelegt wurde, zeigt Runform den Menüpunkt in einem deaktivierten Status an. In diesem Fall können Sie die Attribute des Menüpunkts programmgesteuert festlegen.


Beispiele für SET_MENU_ITEM_PROPERTY

/*

** Built-in:  SET_MENU_ITEM_PROPERTY
** Example:  See GET_MENU_ITEM_PROPERTY
*/


SET_OLE

 Alle vordefinierten Prozeduren

Beschreibung

Ändert den Wert eines OLE-Attributs.

Es gibt drei Versionen der Prozedur, eine für jeden der neuen Werttypen: NUMBER, VARCHAR und OLEVAR.

Syntax

PROCEDURE SET_OLE
  (obj OLEOBJ, memberid PLS_INTEGER
   newval NUMBER, vtype VT_TYPE);

...or...

PROCEDURE SET_OLE
  (obj OLEOBJ, memberid PLS_INTEGER
   newval VARCHAR2, vtype VT_TYPE);

...or...

PROCEDURE SET_OLE
  (obj OLEOBJ, memberid PLS_INTEGER
   newval OLEVAR, vtype VT_TYPE);

Prozedurtyp   Uneingeschränkte Prozedur

Parameter

obj	Pointer zu dem OLE-Objekt.
Memberid	Member-ID des OLE-Attributs.
newval	Ein neuer Wert des angegebenen Typs, der das OLE-Attribut ersetzt.
Vtype	VT_TYPE der Originalvarianten. Dies ist ein optionaler Parameter. Wenn er nicht angegeben wird, ist der Standardwert für die NUMBER-Version der Prozedur VT_R8. Bei der VARCHAR2-Version ist der Standardwert VT_BSTR. Bei der OLEVAR-Version ist der Standardwert VT_VARIANT: d.h. der Typ, den die Variante selbst konkret angibt.
Verwendungshinweise

Wenn INIT_OLEARGS- und ADD_OLEARG-Aufrufe vor diesem SET_OLE-Aufruf stehen und dazwischen keine GET_OLE-, SET_OLE- oder CALL_OLE-Aufrufe erfolgten, ruft dieser Aufruf das Attribut mit den Argumenten auf, die in diesen INIT_OLEARGS- und ADD_OLEARG-Aufrufen angegeben wurden.


Vordefinierte Prozedur SET_PARAMETER_ATTR

  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Stellt Typ und Wert eines angegebenen Parameters in einer angegebenen Parameterliste ein.

Syntax

SET_PARAMETER_ATTR
  (list       PARAMLIST,
   key        VARCHAR2,
   paramtype  NUMBER,
   value      VARCHAR2);

SET_PARAMETER_ATTR
  (name       VARCHAR2,
   key        VARCHAR2,
   paramtype  NUMBER,
   value      VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

list oder name	Gibt die Parameterliste an. Der eigentliche Parameter kann entweder eine Parameterlisten-ID vom Typ PARAMLIST oder der VARCHAR2-Name der Parameterliste sein.

key	Der VARCHAR2-Name des Parameters.

paramtype	Gibt den Typ des zu übergebenden Parameters an:

DATA_PARAMETER  Gibt an, daß der Wert des Parameters dem Namen einer Datensatzgruppe entspricht.

TEXT_PARAMETER  Gibt an, daß der Wert des Parameters ein tatsächlicher Datenwert ist.

value	Der Wert des Parameters, der als VARCHAR2-Zeichenfolge angegeben wird.


Vordefinierte Prozedur SET_RADIO_BUTTON_PROPERTY

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Bestimmt das angegebene Attribut für eine Optionsschaltfläche, die Bestandteil der angegebenen Optionsgruppe ist, wie mit item_name oder item_id angegeben.

Syntax

SET_RADIO_BUTTON_PROPERTY
  (item_id      VARCHAR2,
   button_name  VARCHAR2,
   property     NUMBER,
   value        NUMBER);

SET_RADIO_BUTTON_PROPERTY
  (item_id      VARCHAR2,
   button_name  VARCHAR2,
   property     NUMBER,
   x            NUMBER,
   y            NUMBER);
SET_RADIO_BUTTON_PROPERTY
  (item_name    VARCHAR2,
   button_name  VARCHAR2,
   property     NUMBER,
   x            NUMBER,
   y            NUMBER);
SET_RADIO_BUTTON_PROPERTY
  (item_name    VARCHAR2,
   button_name  VARCHAR2,
   property     NUMBER,
   value        NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

item_id	Gibt die ID der Optionsgruppe an. Form Builder weist die eindeutige ID beim Erstellen des Objekts zu. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben.

item_name	Gibt den Namen der Optionsgruppe an. Die Optionsgruppe ist der Eigentümer bzw. das übergeordnete Objekt der untergeordneten Optionsschaltflächen. Der Datentyp des Namens ist VARCHAR2.

button_name	Gibt den Namen der Optionsschaltfläche an, deren Attribut eingestellt werden soll. Der Datentyp des Namens ist VARCHAR2.

property	Gibt das einzustellende Attribut an. Die möglichen Attributkonstanten sind:

BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts.

ENABLED  Geben Sie die Konstante PROPERTY_TRUE an, wenn die Optionsschaltfläche aktiviert werden soll. Geben Sie PROPERTY_FALSE an, wenn die Optionsschaltfläche für den Endbenutzer deaktiviert werden soll.

FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden.

FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

FONT_SIZE  Schriftgrad in Punkt.

FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning).

FONT_STYLE  Schriftstil.

FONT_WEIGHT  Schriftstärke.

FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

HEIGHT  Geben Sie die Höhe der angegebenen Optionsschaltfläche an. Geben Sie den Wert in Form einer Zahl an.

ITEM_SIZE   Bestimmt Breite und Höhe der angegebenen Optionsschaltfläche. Verwenden Sie eine Syntax mit einem x,y-Koordinatenpaar, und geben Sie die Werte in Form von Zahlen an.

LABEL  Geben Sie die tatsächliche Beschriftung für diese Optionsschaltfläche an.

POSITION  Bestimmt die Position der angegebenen Optionsschaltfläche. Verwenden Sie eine Syntax mit einem x,y-Koordinatenpaar, und geben Sie die Werte in Form von Zahlen an.

PROMPT  Der im Objekt angezeigte Text.

PROMPT_BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts.

PROMPT_FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden.

PROMPT_FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

PROMPT_FONT_SIZE  Schriftgrad in Punkt.

PROMPT_FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning).

PROMPT_FONT_STYLE  Schriftstil.

PROMPT_FONT_WEIGHT  Schriftstärke.

PROMPT_FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

PROMPT_WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

VISIBLE  Geben Sie die Konstante PROPERTY_TRUE an, wenn die Optionsschaltfläche angezeigt werden soll. Wenn die Optionsschaltfläche verborgen werden soll, geben Sie PROPERTY_FALSE an.

VISUAL_ATTRIBUTE  Gibt ein gültiges benanntes visuelles Attribut an, das in der aktuellen Form vorhanden ist, bzw. den Namen einer logischen Attributdefinition in einer Laufzeit-Resource-Datei, die Form Builder für die Optionsschaltfläche anwenden soll.

WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

WIDTH  Geben Sie die Breite der angegebenen Optionsschaltfläche an. Geben Sie den Wert als Zahl an.

X_POS   Geben Sie die x-Koordinate für die Optionsschaltfläche an. Geben Sie den Wert als Zahl an.

Y_POS  Geben Sie die y-Koordinate für die Optionsschaltfläche an. Geben Sie den Wert als Zahl an.

value	Gibt einen NUMBER- oder VARCHAR2-Wert an. Der Datentyp des eingegebenen Wertes wird von dem Datentyp des angegebenen Attributs bestimmt. Wenn Sie einen VARCHAR2-Wert eingeben, müssen Sie ihn in Anführungszeichen setzen, es sei denn, Sie referenzieren ein Textobjekt oder eine Variable.

PROPERTY_TRUE  Gibt an, daß das Attribut auf den Status TRUE eingestellt werden muß.

PROPERTY_FALSE  Gibt an, daß das Attribut auf den Status FALSE eingestellt werden muß.

x	Gibt den ersten numerischen Wert für die Attribute ITEM_SIZE und POSITION an.

y	Gibt den zweiten numerischen Wert für die Attribute ITEM_SIZE und POSITION an.


Beispiele für SET_RADIO_BUTTON_PROPERTY

/*

** Built-in:  SET_RADIO_BUTTON_PROPERTY
** Example:   Set a particular radio button to disabled.
*/
BEGIN
  Set_Radio_Button_Property('MYBLOCK.FLIGHT_STATUS',
                         'GROUNDED',ENABLED,PROPERTY_FALSE);
END;


Vordefinierte Prozedur SET_RECORD_PROPERTY

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Stellt das angegebene Datensatzattribut auf den angegebenen Wert ein.

Syntax

SET_RECORD_PROPERTY
  (record_number  NUMBER,
   block_name     VARCHAR2,
   property       NUMBER,
   value          NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

record_number	Gibt die Nummer des Datensatzes an, dessen Status eingestellt werden soll. Die Nummer des Datensatzes entspricht der Position des Datensatzes in dem Block. Die Nummer muß als Ganzzahl angegeben werden.

block_name	Gibt den Namen des Blocks an, in dem der Zieldatensatz steht. Der Datentyp des Namens ist VARCHAR2.

property	Benutzen Sie folgendes Attribut:

STATUS  Gibt an, daß Sie den Datensatzstatus ändern möchten. STATUS ist eine Konstante.

value	Benutzen Sie einen der folgenden Werte:

CHANGED_STATUS  Gibt an, daß der Datensatz zur Aktualisierung markiert und als Aktualisierung behandelt werden soll, wenn der nächste Commit-Vorgang erfolgt.

INSERT_STATUS  Gibt an, daß der Datensatz als EINFÜGUNG behandelt und in die entsprechende Tabelle eingefügt werden soll, wenn der nächste Commit-Vorgang eintritt.

NEW_STATUS  Gibt an, daß der Datensatz als NEUER Datensatz behandelt werden soll, d.h. als Datensatz, der nicht für das Einfügen, Aktualisieren oder Abfragen markiert wurde. Geänderten, jedoch nicht gelöschten oder nicht gespeicherten Datensätzen kann der Status NEW nicht zugewiesen werden.

QUERY_STATUS  Gibt an, daß der Datensatz als ABFRAGE-Datensatz behandelt werden soll, unabhängig davon, ob es sich wirklich um einen Abfragedatensatz handelt. Hierzu wird auf die vordefinierte Prozedur CREATE_QUERIED_RECORD verwiesen.


Einschränkungen bei SET_RECORD_PROPERTY

In der folgenden Tabelle werden die gültigen Übergangszustände eines Datensatzes dargestellt.

Aktueller Status	Zielstatus
	NEW	QUERY	INSERT	CHANGED
NEW	Ja	ja1	ja2	Nein
QUERY	ja4	Ja	Nein	Ja
INSERT	ja4	ja3	Ja	Nein
CHANGED	ja4	Nein	Nein	Ja
1	Entspricht den Regeln, die in den Fußnoten 2 und 3 beschrieben werden.

2	Dieser Übergang ist im Abfragemodus nicht zulässig, weil ABFRAGE und EINFÜGEN im Abfragemodus nicht gültig sind.

3	Wenn dieser Übergang durchgeführt wird, während Runform im Modus Eindeutiger Schlüssel ausgeführt wird und nicht alle Transaktionstrigger vorhanden sind, müssen Sie einen gültigen Wert in das Feld ROWID eingeben. Wenn Sie mit einer fremden Datenquelle verbunden sind, die ROWID nicht unterstützt, jedoch einen eindeutigen Schlüssel benutzen, müssen Sie den Schlüssel für einen Datensatz, der vom Einfügenstatus in den Abfragenstatus geht, in einem der Transaktionstrigger angeben, d.h. On-Lock, On-Update oder On-Delete. Sonst gibt Form Builder eine Fehlermeldung zurück.

4	Geänderten, jedoch nicht gelöschten oder nicht gespeicherten Datensätzen kann der Status NEW nicht zugewiesen werden.


Beispiele für SET_RECORD_PROPERTY

/*

** Built-in:  SET_RECORD_PROPERTY
** Example:   Mark the third record in the EMP block as if it
**            were a queried record.
*/
BEGIN
  Set_Record_Property( 3, 'EMP', STATUS, QUERY_STATUS);
END;


Vordefinierte Prozedur SET_RELATION_PROPERTY

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Bestimmt das angegebene Beziehungsattribut in einer Master-Detail-Beziehung.

Syntax

SET_RELATION_PROPERTY
  (relation_id  Relation,
   property     NUMBER,
   value        NUMBER);

SET_RELATION_PROPERTY
  (relation_name  VARCHAR2,
   property       NUMBER,
   value          NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

relation_id	Gibt die eindeutige ID an, die Form Builder der Beziehung zuweist, wenn das Beziehungsobjekt erstellt wird. Dies kann automatisch geschehen, wenn Sie eine Master-Detail-Beziehung in Form Builder definieren. Sie können die Beziehung aber auch explizit in Form Builder erstellen. Der Datentyp der ID ist Relation.

relation_name	Gibt den Namen an, den Sie oder Form Builder dem Beziehungsobjekt bei der Definition zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

property	Benutzen Sie eines der folgenden Beziehungsattribute, das als Konstante an die vordefinierte Prozedur übergeben werden kann:

AUTOQUERY  Gibt an, daß der Detail-Block dieser Beziehung automatisch bei der Instantiierung des Blocks koordiniert werden soll. Auf diese Weise kann eine potentiell aufwendige Verarbeitung verschoben werden, bis Blöcke, die in Beziehungen involviert sind, tatsächlich bearbeitet werden. Gültige Werte sind PROPERTY_TRUE und PROPERTY_FALSE.

DEFERRED_COORDINATION  Gibt an, daß ein Block, der eine Koordination erfordert, markiert, jedoch nicht koordiniert werden soll, bis die Detail-Blöcke instantiiert sind. Die verzögerte Koordination bezieht sich nur auf die Auffüllenphase der Koordination. Selbst verzögerte Detail-Blöcke werden während der Löschenphase der Koordination gelöscht, damit die Form einen visuell konsistenten Status aufweist. Gültige Werte sind PROPERTY_TRUE und PROPERTY_FALSE.

MASTER_DELETES  Gibt das vorgegebene Verhalten der Beziehung beim Löschen eines Detail-Datensatzes in dem Detail-Block an, wenn ein entsprechender Master-Datensatz in dem Master-Block vorhanden ist. Gültige Werte sind NON-ISOLATED, ISOLATED oder CASCADING. Die Möglichkeit, dieses Attribut programmgesteuert einzustellen, ist nur für Entwickler vorgesehen, die ihre eigene Master-Detail-Koordination codieren. Mit diesem Attribut wird die Standardbeziehung, die beim Entwurf erstellt wurde, nicht geändert.

PREVENT_MASTERLESS_OPERATION  Gibt an, daß Vorgänge in einem Detail-Block erst zulässig sind, wenn der entsprechende Master-Datensatz vorhanden ist. Gültige Werte sind PROPERTY_TRUE und PROPERTY_FALSE.

value	Die folgenden Konstanten können für die vorher beschriebenen Attribute angegeben werden:

CASCADING  Gibt an, daß das Attribut MASTER_DELETES so eingestellt werden muß, daß, wenn ein Endbenutzer einen Master-Datensatz löscht, die entsprechenden Detail-Datensätze zu demselben Zeitpunkt gesperrt werden, wie die Master-Datensätze.

ISOLATED  Gibt an, daß das Attribut MASTER_DELETES so eingestellt werden  muß, daß ein Endbenutzer einen Master-Datensatz löschen kann, für den Detail-Datensätze vorhanden sind. Dies verursacht kein nachfolgendes Sperren und Löschen von Detail-Datensätzen. Allerdings löst Form Builder in diesem Fall immer noch die Detail-Block-Koordination aus.

NON_ISOLATED  Gibt an, daß das Attribut MASTER_DELETES so eingestellt werden muß, daß Form Builder eine Fehlermeldung ausgibt, wenn der Endbenutzer versucht, einen Master-Datensatz zu löschen, für den Detail-Datensätze vorhanden sind, und den Löschenvorgang unterbindet.

PROPERTY_TRUE  Gibt an, daß das Attribut auf den Status TRUE eingestellt werden muß.

PROPERTY_FALSE  Gibt an, daß das Attribut auf den Status FALSE eingestellt werden muß.


Einschränkungen bei SET_RELATION_PROPERTY

Sie können nur ein Attribut pro Aufruf dieser vordefinierten Prozedur einstellen.


Beispiele für SET_RELATION_PROPERTY

/*

** Built-in:  SET_RELATION_PROPERTY
** Example:   Set the coordination behavior of a relation to
**            be deferred, and auto-query.
*/
PROCEDURE Make_Relation_Deferred( rl_name VARCHAR2 ) IS
  rl_id Relation;
BEGIN
  /*
  ** Look for the relation's ID
  */
  rl_id := Find_Relation( rl_name );
  /*
  ** Set the two required properties
  */
  Set_Relation_Property(rl_id,AUTOQUERY,PROPERTY_TRUE);
END;


Vordefinierte Prozedur SET_REPORT_OBJECT_PROPERTY

 Beispiele	 Alle vordefinierten Prozeduren

Beschreibung

Bestimmt den Wert eines Berichtattributs programmgesteuert.

Syntax

PROCEDURE SET_REPORT_OBJECT_PROPERTY
(report_id REPORT_OBJECT,
   property NUMBER,
   value VARCHAR2
);

PROCEDURE SET_REPORT_OBJECT_PROPERTY
  (report_name VARCHAR2,
   property NUMBER,
   value VARCHAR2
);

PROCEDURE SET_REPORT_OBJECT_PROPERTY
(report_id REPORT_OBJECT,
   property NUMBER,
   value NUMBER
);

PROCEDURE SET_REPORT_OBJECT_PROPERTY
  (report_name VARCHAR2,
   property NUMBER,
   value NUMBER
);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

report_id	Gibt die eindeutige ID des Berichts an. Sie können die Bericht-ID für einen bestimmten Bericht mit FIND_REPORT_OBJECT ermitteln.

report_name	Gibt den eindeutigen Namen des Berichts an.

property	Eine der folgenden Konstanten:

REPORT_EXECUTION_MODE: Der Ausführungsmodus des Berichts, BATCH oder RUNTIME.

REPORT_COMM_MODE: Der Bericht-Kommunikationsmodus, SYNCHRONOUS oder ASYNCHRONOUS.

REPORT_DESTYPE: Der Bericht-Zieltyp, PREVIEW, FILE, PRINTER, MAIL, CACHE oder SCREEN.

Eine der folgenden Zeichenfolgen:

REPORT_FILENAME: Der Berichtdateiname.

REPORT_SOURCE_BLOCK: Der Name des Berichtquellblocks.

REPORT_QUERY_NAME: Der Berichtabfragename.

REPORT_DESNAME: Der Berichtzielname.

REPORT_DESFORMAT: Das Berichtzielformat.

REPORT_SERVER: Der Name des Report Servers.

REPORT_OTHER: Die anderen benutzerdefinierten Berichtattribute.

value 	Eine der folgenden Konstanten:

REPORT_EXECUTION_MODE: Der Wert muß BATCH oder RUNTIME sein.

REPORT_COMM_MODE: Der Wert muß SYNCHRONOUS oder ASYNCHRONOUS sein.

REPORT_DESTYPE: Der Wert muß PREVIEW, FILE, PRINTER, MAIL, CACHE oder SCREEN sein.

Eine der folgenden Zeichenfolgen:

REPORT_FILENAME: Der Wert muß vom Typ VARCHAR2 sein.

REPORT_SOURCE_BLOCK: Der Wert muß vom Typ VARCHAR2 sein.

REPORT_QUERY_NAME: Der Wert muß vom Typ VARCHAR2 sein.

REPORT_DEST_NAME: Der Wert muß vom Typ VARCHAR2 sein.

REPORT_DEST_FORMAT: Der Wert muß vom Typ VARCHAR2 sein.

REPORT_SERVER: Der Wert muß vom Typ VARCHAR2 sein.

REPORT_OTHER: Der Wert muß vom Typ VARCHAR2 sein.

Verwendungshinweise

•	Mit SET_REPORT_OBJECT_PROPERTY werden Attribute mit Konstanten- oder Zeichenfolgenwerten eingestellt. Der Wertetyp hängt von dem eingestellten Attribut ab, wie oben angegeben. Im Gegensatz dazu gibt GET_REPORT_OBJECT_PROPERTY einen Zeichenfolgenwert für alle Attribute zurück.


Beispiele für SET_REPORT_OBJECT_PROPERTY

DECLARE

repid REPORT_OBJECT;

report_prop VARCHAR2(20);

BEGIN

repid := find_report_object('report4');

SET_REPORT_OBJECT_PROPERTY(repid, REPORT_EXECUTION_MODE, BATCH);

SET_REPORT_OBJECT_PROPERTY(repid, REPORT_COMM_MODE, SYNCHRONOUS);

SET_REPORT_OBJECT_PROPERTY(repid, REPORT_DESTYPE, FILE);

END;


Vordefinierte Prozedur SET_TAB_PAGE_PROPERTY

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Bestimmt die Attribute der Registerseite der angegebenen Registerleinwandseite.

Syntax

SET_TAB_PAGE_PROPERTY
  (tab_page_id  TAB_PAGE,
   property     NUMBER,
   value        NUMBER);

SET_TAB_PAGE_PROPERTY
  (tab_page_name  VARCHAR2,
   property       NUMBER,
   value          NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

tab_page_id	Die eindeutige ID, die Form Builder der Registerseite beim Erstellen zuweist. Der Datentyp ist TAB_PAGE.

tab_page_name	Der Name, den Sie der Registerseite bei der Definition zugewiesen haben. Der Datentyp ist VARCHAR2.

property	Das Attribut, das Sie für die angegebene Registerseite einstellen möchten. Mögliche Werte sind:

BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts.

ENABLED  Stellt die Zeichenfolge TRUE ein, wenn eine Registerseite aktiviert ist. Wenn nicht, d.h. die Registerseite wird grau angezeigt und ist nicht verfügbar, wird FALSE angezeigt.

FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden.

FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

FONT_SIZE  Schriftgrad in Punkt.

FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning).

FONT_STYLE  Schriftstil.

FONT_WEIGHT  Schriftstärke.

FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

LABEL  Stellt die Zeichenfolge für die Beschriftung der Registerseite ein.

VISIBLE Geben Sie TRUE an, um die Seite sichtbar zu machen, und FALSE, um sie unsichtbar zu machen. Eine Registerseite wird als sichtbar bezeichnet, wenn sie momentan auf dem Bildschirm abgebildet wird, selbst wenn sie vollständig hinter einer anderen Registerseite verborgen ist.

VISUAL_ATTRIBUTE  Gibt den Namen des momentan gültigen visuellen Attributs an.

WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

value	Sie können die folgenden Konstanten als Argumente an die vorher beschriebenen Attributwerte übergeben:

PROPERTY_TRUE  (Setzt das Attribut auf den Status TRUE.)

PROPERTY_FALSE  (Setzt das Attribut auf den Status FALSE.)


Beispiele für SET_TAB_PAGE_PROPERTY

/* Example 1: Use SET_TAB_PAGE_PROPERTY to set the
** ENABLED property to TRUE for a tab page (if it currently
** is set to FALSE:
*/

DECLARE
  tb_pg_id  TAB_PAGE;

BEGIN
  tb_pg_id := FIND_TAB_PAGE('tab_page_1');
  IF GET_TAB_PAGE_PROPERTY(tb_pg_id, enabled) = 'FALSE' THEN
     SET_TAB_PAGE_PROPERTY(tb_pg_id, enabled, property_true);
  END IF;
END;


Vordefinierte Prozedur SET_TIMER

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Ändert die Einstellungen für einen bestehenden Timer. Sie können den Intervall- und/oder Wiederholenparameter ändern.

Syntax

SET_TIMER
  (timer_id      Timer,
   milliseconds  NUMBER,
   iterate       NUMBER);

SET_TIMER
  (timer_name    VARCHAR2,
   milliseconds  NUMBER,
   iterate       NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

timer_id	Gibt die eindeutige ID an, die Form Builder beim Erstellen des Timers zuweist, insbesondere nachdem die vordefinierte Prozedur CREATE_TIMER erfolgreich aufgerufen wurde. Benutzen Sie die vordefinierte Prozedur FIND_TIMER, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist Timer.

timer_name	Gibt den Namen an, den Sie dem Timer bei der Definition zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

milliseconds	Gibt die Dauer des Timers in Millisekunden an. Der für diesen Parameter zulässige Wertebereich beträgt 1 bis 2147483648 Millisekunden. Werte, die größer sind als 2147483648 werden auf 2147483648 abgerundet. Beachten Sie, daß nur positive Zahlen zulässig sind. Der Datentyp des Parameters ist NUMBER. Weitere Informationen finden Sie in dem folgenden Abschnitt mit den Einschränkungen.

NO_CHANGE  Gibt an, daß das Attribut Millisekunden unverändert bleiben soll.

iterate	Gibt die Iteration des Timers an.

REPEAT  Gibt an, daß der Timer beim Ablauf wiederholt werden soll. Standardwert

NO_REPEAT  Gibt an, daß der Timer beim Ablauf nicht wiederholt werden soll, sondern nur einmal verwendet wird, bis er explizit erneut aufgerufen wird.

NO_CHANGE  Gibt an, daß das Iterations-Attribut unverändert bleiben soll.


Einschränkungen bei SET_TIMER

•	Werte größer als 2147483648 werden auf 2147483648 abgerundet.

•	Ein Wert kleiner als 1 führt zu einem Laufzeitfehler.

•	Ein Wert größer als der angegebene obere Grenzwert führt zu einem Ganzzahlüberlauf.

•	Millisekunden können nicht als negative Zahl ausgedrückt werden.

•	Zwei Timer dürfen in derselben Forminstanz nicht denselben Namen haben, unabhängig von der Groß-/Kleinschreibung.

•	Wenn bei der Ausführung eines Timers kein When-Timer-Expired-Trigger definiert ist, gibt Form Builder einen Fehler zurück.

•	Wenn bei der Ausführung eines Timers kein When-Timer-Expired-Trigger definiert ist und der Timer ein Wiederholungstimer ist, werden die nachfolgenden Wiederholungen abgebrochen, der Timer bleibt jedoch bestehen.


Beispiele für SET_TIMER

/*

** Built-in:  SET_TIMER
** Example:   See FIND_TIMER
*/


Vordefinierte Prozedur SET_TREE_NODE_PROPERTY

 Beispiele 	 Alle vordefinierten Prozeduren

Beschreibung

Bestimmt den Status eines Zweigknotens.

Syntax

PROCEDURE SET_TREE_NODE_PROPERTY

  (item_name VARCHAR2,

   node FTREE.NODE,

   property NUMBER,

   value NUMBER);

PROCEDURE SET_TREE_NODE_PROPERTY

  (item_name VARCHAR2,

   node FTREE.NODE,

   property NUMBER,

   value VARCHAR2);

PROCEDURE SET_TREE_NODE_PROPERTY

  (item_id ITEM,

   node FTREE.NODE,

   property NUMBER,

   value NUMBER);

PROCEDURE SET_TREE_NODE_PROPERTY

  (item_id ITEM,

   node FTREE.NODE,

   property NUMBER,

   value VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Nein

Parameter

item_name	Gibt den Namen des Objekts an, das beim Entwurf erstellt wurde. Der Datentyp des Namens ist VARCHAR2-Folge.
Item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.
Node	Gibt einen gültigen Knoten an.
Property	Geben Sie eines der folgenden Attribute an: NODE_STATE   Mögliche Werte sind EXPANDED_NODE, COLLAPSED_NODE und LEAF_NODE. NODE_LABEL   Bestimmt die Beschriftung des Knotens. NODE_ICON   Bestimmt das Symbol für den Knoten. NODE_VALUE   Bestimmt den Wert des Knotens.
value	Der konkrete Wert, den Sie übergeben möchten.


Beispiele für SET_TREE_NODE_PROPERTY

/*

** Built-in:  SET_TREE_NODE_PROPERTY
*/

-- This code could be used in a WHEN-TREE-NODE-SELECTED

-- trigger to change the icon of the node clicked on.

DECLARE

   htree         ITEM;

   current_node  FTREE.NODE;

   find_node     FTREE.NODE;

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Change it icon of the clicked node.

   -- The icon file will be located using the

   -- UI60_ICON environment variable in client/server

   -- or in the virtual directory for web deployment.

   Ftree.Set_Tree_Node_Property(htree, :SYSTEM.TRIGGER_NODE, Ftree.NODE_ICON, 'Open');

END;


Vordefinierte Prozedur SET_TREE_PROPERTY

 Beispiele 	 Alle vordefinierten Prozeduren

Beschreibung

Bestimmt den Wert des angegebenen hierarchischen Baumattributs.

Syntax

PROCEDURE SET_TREE_PROPERTY

  (item_name VARCHAR2,

   property NUMBER,

   value NUMBER);

PROCEDURE SET_TREE_PROPERTY

  (item_name VARCHAR2,

   property NUMBER,

   value VARCHAR2);

PROCEDURE SET_TREE_PROPERTY

  (item_name VARCHAR2,

   property NUMBER,

   value RECORDGROUP);

PROCEDURE SET_TREE_PROPERTY

  (item_id ITEM,

   property NUMBER,

   value NUMBER);

PROCEDURE SET_TREE_PROPERTY

  (item_id ITEM,

   property NUMBER,

   value VARCHAR2);

PROCEDURE SET_TREE_PROPERTY

  (item_id ITEM,

   property NUMBER,

   value RECORDGROUP);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Nein

Parameter

item_name	Gibt den Namen des Objekts an, das beim Entwurf erstellt wurde. Der Datentyp des Namens ist VARCHAR2-Folge.
Item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.
Property	Geben Sie eines der folgenden Attribute an: RECORD_GROUP   Ersetzt die Datengruppe des hierarchischen Baums durch eine Datensatzgruppe und veranlaßt, daß diese angezeigt wird. QUERY_TEXT   Ersetzt die Datengruppe des hierarchischen Baums durch eine SQL-Abfrage und veranlaßt, daß diese angezeigt wird. ALLOW_EMPTY_BRANCHES   Mögliche Werte sind PROPERTY_TRUE und PROPERTY_FALSE.
value	Gibt den Wert an, der für das von Ihnen eingestellte Attribut zutreffend ist: PROPERTY_TRUE  Das Attribut muß auf den Status TRUE eingestellt werden. PROPERTY_FALSE  Das Attribut muß auf den Status FALSE eingestellt werden.


Beispiele für SET_TREE_PROPERTY

/*

** Built-in:  SET_TREE_PROPERTY
*/

-- This code could be used in a WHEN-NEW-FORM-INSTANCE

-- trigger to initially populate the hierarchical tree

-- with data.

DECLARE

   htree         ITEM;

   v_ignore      NUMBER;

   rg_emps       RECORDGROUP;

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Check for the existence of the record group.

   rg_emps := Find_Group('emps');

   IF NOT Id_Null(rg_emps) THEN

      DELETE_GROUP(rg_emps);

   END IF;

   -- Create the record group.

   rg_emps := Create_Group_From_Query('rg_emps',

             'select 1, level, ename, NULL, to_char(empno) ' ||

             'from emp '                                     ||

             'connect by prior empno = mgr '                 ||

             'start with job = ''PRESIDENT''');

   -- Populate the record group with data.

   v_ignore := Populate_Group(rg_emps);

   -- Transfer the data from the record group to the hierarchical

   -- tree and cause it to display.

   Ftree.Set_Tree_Property(htree, Ftree.RECORD_GROUP, rg_emps);

END;


Vordefinierte Prozedur SET_TREE_SELECTION

 Beispiele 	 Alle vordefinierten Prozeduren

Beschreibung

Gibt die Auswahl eines einzelnen Knotens an.

Syntax

PROCEDURE SET_TREE_SELECTION

  (item_name VARCHAR2,

   node NODE,

   selection_type NUMBER);

PROCEDURE SET_TREE_SELECTION

  (item_id ITEM,

   node NODE,

   selection_type NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Nein

Parameter

item_name	Gibt den Namen des Objekts an, das beim Entwurf erstellt wurde. Der Datentyp des Namens ist VARCHAR2-Folge.
Item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.
Node	Gibt einen gültigen Knoten an.
Selection_type	Gibt den Auswahltyp an. SELECT_ON   Wählt den Knoten aus. SELECT_OFF   Hebt die Auswahl des Knotens auf. SELECT_TOGGLE   Schaltet den Auswahlstatus des Knotens um.


Beispiele für SET_TREE_SELECTION

/*

** Built-in:  SET_TREE_SELECTION
*/

-- This code could be used in a WHEN-TREE-NODE-EXPANDED

-- trigger and will mark the clicked node as selected.

DECLARE

   htree         ITEM;

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Mark the clicked node as selected.

   Ftree.Set_Tree_Selection(htree, :SYSTEM.TRIGGER_NODE, Ftree.SELECT_ON);

END;


Vordefinierte Prozedur SET_VA_PROPERTY

 Alle vordefinierten Prozeduren

Beschreibung

Ändert visuelle Attributwerte für das angegebene Attribut.

Syntax

SET_VA_PROPERTY

  (va_id VISUALATTRIBUTE

   property NUMBER

   value VARCHAR2);

SET_VA_PROPERTY

  (va_name VARCHAR2

   property NUMBER

   value VARCHAR2);

SET_VA_PROPERTY

  (va_id VISUALATTRIBUTE

   property NUMBER

   value NUMBER);

SET_VA_PROPERTY

  (va_name VARCHAR2

   property NUMBER

   value NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Abfragemodus  Ja

Parameter

va_id	Die eindeutige ID, die Form Builder dem visuellen Attribut zugewiesen hat, als Sie es erstellt haben. Der Datentyp ist VISUALATTRIBUTE.
va_name	Der Name, den Sie dem visuellen Attribut beim Erstellen zugewiesen haben. Der Datentyp ist VARCHAR2.
Attribut value	Geben Sie eines der folgenden Attribute an: BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts. FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden. FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig. FONT_SIZE  Schriftgrad in Hundertstel Punkt. FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning). FONT_STYLE  Schriftstil. FONT_WEIGHT  Schriftstärke. FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird. WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll. Gibt den Wert an, der für das angegebene Attribut angewendet werden soll. Der Datentyp des Attributs bestimmt den Datentyp des eingegebenen Wertes. Wenn Sie z.B. das Attribut WHITE_ON_BLACK auf True einstellen möchten, geben Sie die Konstante PROPERTY_TRUE für den Wert an. Wenn Sie den FONT_NAME für das Objekt ändern möchten, geben Sie den Wert, d.h. die Beschriftung, als VARCHAR2-Folge an. PROPERTY_TRUE  Gibt an, daß das Attribut auf den Status TRUE eingestellt werden muß. PROPERTY_FALSE  Gibt an, daß das Attribut auf den Status FALSE eingestellt werden muß. Wenn Sie den Wert des Attributs auf den Wert zurücksetzen, der ursprünglich beim Entwurf festgelegt wurde, geben Sie zwei einfache Anführungszeichen ohne Leerzeichen dazwischen ein: ''. Zum Beispiel SET_ITEM_PROPERTY('DEPTNO', FONT_SIZE, ''); würde diesen Schriftgrad auf den Wert beim Entwurf zurücksetzen.


SET_VAR

 Alle vordefinierten Prozeduren

Beschreibung

Stellt eine neu erstellte OLE-Variante auf den Ausgangswert ein. Oder setzt eine bestehende OLE-Variante auf einen neuen Wert zurück.

Es gibt vier Versionen der Prozedur, eine für jeden der neuen Werttypen CHAR, NUMBER, OLEVAR und Tabelle.

Syntax

PROCEDURE SET_VAR
  (var OLEVAR, newval CHAR
   vtype VT_TYPE, arrspec VARCHAR2);

...or...

PROCEDURE SET_VAR
  (var OLEVAR, newval NUMBER
   vtype VT_TYPE, arrspec VARCHAR2);

...or...

PROCEDURE SET_VAR
  (var OLEVAR, newval OLEVAR
   vtype VT_TYPE, arrspec VARCHAR2);

...or...

PROCEDURE SET_VAR
  (var OLEVAR, source_table,
   vtype VT_TYPE, arrspec VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Parameter

var	Die einzustellende Variante.
newval	Der Wert, der der Varianten zugewiesen werden soll.
Vtype	Der OLE VT_TYPE, der der Varianten zugewiesen werden soll. Dies ist ein optionaler Parameter. Wenn er nicht angegeben wird, ist der Standardwert für die NUMBER-Version der Prozedur VT_R8. Bei der VARCHAR2-Version ist der Standardwert VT_BSTR. Bei der OLEVAR-Version ist der Standardwert VT_VARIANT, d.h. entspricht dem Typ, den der Variantenwert konkret angibt.
Source_table	Eine PL/SQL-Tabelle, deren Dimensionen und Elementwerte der Varianten zugewiesen werden sollen.
Arrspec	Gibt an, welches ausgewählte Element bzw. welche Elemente der Quelltabelle beim Erstellen der neuen Varianten benutzt werden sollen. Weitere Informationen finden Sie unter Bezeichner für OLE-Arrays. Dies ist ein optionaler Parameter. Wenn er nicht angegeben wird, wird die ganze Quelltabelle benutzt.
Verwendungshinweise

Die Zielvariante in dieser Prozedur SET_VAR muß zuerst mit der Funktion CREATE_VAR erstellt werden.


Vordefinierte Prozedur SET_VIEW_PROPERTY

  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Bestimmt ein Attribut für die angegebene Leinwand. Sie können nur ein Attribut pro Aufruf der vordefinierten Prozedur einstellen. Anders ausgedrückt, Sie können das Argument nicht so aufteilen, daß die x-Koordinate für X_POS und die y-Koordinate für HEIGHT gilt.

Syntax

SET_VIEW_PROPERTY
  (view_id   ViewPort,
   property  NUMBER,
   value     NUMBER);

SET_VIEW_PROPERTY
  (view_id   ViewPort,
   property  NUMBER,
   x         NUMBER,
   y         NUMBER);
SET_VIEW_PROPERTY
  (view_name  VARCHAR2,
   property   NUMBER,
   value      NUMBER);
SET_VIEW_PROPERTY
  (view_name  ViewPort,
   property   NUMBER,
   x          NUMBER,
   y          NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

view_id	Die eindeutige ID, die Form Builder der Ansicht beim Erstellen der Leinwand/Ansicht zugewiesen hat. Benutzen Sie die vordefinierte Prozedur FIND_VIEW, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp ist VIEWPORT.

view_name	Der Name, den Sie dem Leinwandobjekt bei der Definition zugewiesen haben. Der Datentyp ist VARCHAR2.

property	Gibt eines der folgenden Attribute an:

DIRECTION  Die Layoutrichtung für bidirektionale Objekte. Gültige Werte sind DIRECTION_DEFAULT, RIGHT_TO_LEFT, LEFT_TO_RIGHT.

DISPLAY_POSITION  Bei einer gestapelten Ansicht die Position der oberen linken Ecke der Ansicht relativ zur Inhaltsansicht des Fensters in Form eines X,Y-Paares. Bestimmt, ob die Ansicht in dem Fenster angezeigt wird.

HEIGHT  Bei einer gestapelten Leinwand die Höhe der Ansicht. Um die Größe der Leinwand selbst zu ändern, benutzen Sie SET_CANVAS_PROPERTY.

POSITION_ON_CANVAS  Ein X,Y-Paar, das die Position der oberen linken Ecke der Ansicht relativ zu der Leinwand angibt.

VIEWPORT_X_POS  Bei einer gestapelten Ansicht die X-Koordinate für die obere linke Ecke der Ansicht relativ zur Inhaltsansicht des Fensters.

VIEWPORT_Y_POS  Bei einer gestapelten Ansicht die Y-Koordinate für die obere linke Ecke der Ansicht relativ zur Inhaltsansicht des Fensters.

VIEWPORT_X_POS_ON_CANVAS  Die X-Koordinate für die obere linke Ecke der Ansicht relativ zu der Leinwand.

VIEWPORT_Y_POS_ON_CANVAS  Die Y-Koordinate für die obere linke Ecke der Ansicht relativ zu der Leinwand.

VIEW_SIZE  Bei einer gestapelten Leinwand die Größe der Ansicht in Form eines Paares Breite mal Höhe. Um die Größe der Leinwand selbst zu ändern, benutzen Sie SET_CANVAS_PROPERTY.

VISIBLE  Gibt an, ob die Ansicht angezeigt werden soll. Gültige Werte sind PROPERTY_TRUE und PROPERTY_FALSE.

WIDTH  Bei einer gestapelten Leinwand die Breite der Ansicht. Um die Größe der Leinwand selbst zu ändern, benutzen Sie SET_CANVAS_PROPERTY.

value	Geben Sie den Wert für das einzustellende Attribut an:

PROPERTY_TRUE  Das Attribut muß auf den Status TRUE eingestellt werden.

PROPERTY_FALSE  Das Attribut muß auf den Status FALSE eingestellt werden.

x	Der NUMBER-Wert der x-Koordinate oder die Breite je nach angegebenem Attribut. Geben Sie das Argument in den Koordinatensystemeinheiten der Form an.

y	Der NUMBER-Wert der y-Koordinate oder die Höhe je nach angegebenem Attribut. Geben Sie das Argument in Koordinatensystemeinheiten der Form an.


Vordefinierte Prozedur SET_WINDOW_PROPERTY

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Bestimmt ein Attribut für das angegebene Fenster.

Syntax

SET_WINDOW_PROPERTY
  (window_id  Window,
   property   NUMBER,
   value      VARCHAR2);

SET_WINDOW_PROPERTY
  (window_id  Window,
   property   NUMBER,
   x          NUMBER);
SET_WINDOW_PROPERTY
  (window_id  Window,
   property   NUMBER,
   x          NUMBER,
   y          NUMBER);
SET_WINDOW_PROPERTY
  (window_name  VARCHAR2,
   property     NUMBER,
   value        VARCHAR2);
SET_WINDOW_PROPERTY
  (window_name  VARCHAR2,
   property     NUMBER,
   x            NUMBER);
SET_WINDOW_PROPERTY
  (window_name  VARCHAR2,
   property     NUMBER,
   x            NUMBER,
   y            NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

window_id	Gibt die eindeutige ID an, die Form Builder dem Fenster beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_WINDOW, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist Window.

window_name	Gibt den Namen an, den Sie dem Fenster beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

property	Geben Sie eines der folgenden Fensterattribute an:

BACKGROUND_COLOR  Farbe des Hintergrundbereichs des Objekts.

DIRECTION  Gibt die Layoutrichtung für bidirektionale Objekte an. Gültige Werte sind DIRECTION_DEFAULT, RIGHT_TO_LEFT, LEFT_TO_RIGHT.

FILL_PATTERN  Muster für den Füllbereich des Objekts. Muster werden in den beiden Farben gerendert, die mit Hintergrundfarbe und Vordergrundfarbe festgelegt werden.

FONT_NAME  Schriftartfamilie, die für Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

FONT_SIZE  Schriftgrad in Punkt.

FONT_SPACING  Breite der Schriftart, d.h. Abstand zwischen den Zeichen (Kerning).

FONT_STYLE  Schriftstil.

FONT_WEIGHT  Schriftstärke.

FOREGROUND_COLOR  Farbe des Vordergrundbereichs des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

HEIGHT  Gibt die Höhe des Fensters an.

HIDE_ON_EXIT  Gibt an, ob Form Builder das aktuelle Fenster automatisch verbirgt, wenn der Endbenutzer zu einem Objekt in einem anderen Fenster navigiert. Gültige Werte sind PROPERTY_TRUE und PROPERTY_FALSE.

ICON_NAME Gibt den Dateinamen der Symbol-Ressource an, die mit einem Fensterobjekt verknüpft ist, wenn das Fenster minimiert ist.

POSITION  Gibt ein x,y-Paar an, das die Position des Fensters auf dem Bildschirm bezeichnet.

TITLE  Bestimmt den Titel des Fensters.

VISIBLE  Gibt an, ob das Fenster angezeigt werden soll. Gültige Werte sind PROPERTY_TRUE und PROPERTY_FALSE.

WHITE_ON_BLACK  Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

WINDOW_SIZE  Gibt ein Paar Breite mal Höhe an, mit dem die Größe des Fensters auf dem Bildschirm bezeichnet wird.

WINDOW_STATE  Gibt den aktuellen Anzeigestatus des Fensters an. Gültige Werte sind NORMAL, MAXIMIZE oder MINIMIZE.

WIDTH  Gibt die Breite des Fensters an.

X_POS   Bestimmt die x-Koordinate der oberen linken Ecke des Fensters auf dem Bildschirm.

Y_POS   Bestimmt die y-Koordinate der oberen linken Ecke des Fensters auf dem Bildschirm.

value	Die folgenden Konstanten können als Argumente an die vorher beschriebenen Attributwerte übergeben werden:

PROPERTY_TRUE  Gibt an, daß das Attribut auf den Status TRUE eingestellt werden muß. Dies gilt speziell für das Attribut VISIBLE.

PROPERTY_FALSE  Gibt an, daß das Attribut auf den Status FALSE eingestellt werden muß. Dies gilt speziell für das Attribut VISIBLE.

Die folgenden Konstanten können als Argumente zur Benutzung mit dem Attribut WINDOW_STATE übergeben werden:

NORMAL  Gibt an, daß das Fenster normal entsprechend den aktuellen Einstellungen für die Attribute Breite, Höhe, X-Position und Y-Position angezeigt wird.

MAXIMIZE  Gibt an, daß das Fenster so vergrößert wird, daß es den Bildschirm entsprechend dem Anzeigestil des Fensterverwaltungsprogramms füllt.

MINIMIZE  Gibt an, daß das Fenster minimiert oder als Symbol angezeigt wird.

x	Gibt den NUMBER-Wert der x-Koordinate oder die Breite je nach angegebenem Attribut an. Geben Sie das Argument in Koordinatensystemeinheiten der Form an.

y	Gibt den NUMBER-Wert der y-Koordinate oder die Höhe je nach angegebenem Attribut an. Geben Sie das Argument in den Koordinatensystemeinheiten der Form an.

Verwendungshinweise

Bei Microsoft Windows werden Forms innerhalb des MDI-Anwendungsfensters ausgeführt. Mit SET_WINDOW_PROPERTY können Sie die folgenden Eigenschaften des MDI-Anwendungsfensters festlegen:

•	TITLE

•	POSITION

•	WIDTH, HEIGHT

•	WINDOW_SIZE

•	WINDOW_STATE

•	X_POS, Y_POS

Um das MDI-Anwendungsfenster in einem Aufruf von SET_WINDOW_PROPERTY zu referenzieren, benutzen Sie die Konstante FORMS_MDI_WINDOW:

Set_Window_Property(FORMS_MDI_WINDOW, POSITION, 5,10)
Set_Window_Property(FORMS_MDI_WINDOW, WINDOW_STATE, MINIMIZE)


Einschränkungen bei SET_WINDOW_PROPERTY

•	Wenn Sie Größe oder Position eines Fensters ändern, bleibt die Änderung so lange wirksam, wie die Form ausgeführt wird oder bis Größe bzw. Position des Fensters explizit erneut geändert wird. Wenn Sie das Fenster schließen und erneut öffnen, wird das Fenster nicht wieder auf die Standardwerte beim Entwurf zurückgesetzt. Sie müssen die Standardwerte beim Entwurf Variablen zuweisen, wenn das Fenster wieder auf diese Standardwerte zurückgesetzt werden soll.


Beispiele für SET_WINDOW_PROPERTY

/*

** Built-in:  SET_WINDOW_PROPERTY
** Example:   See FIND_WINDOW
*/


Vordefinierte Prozedur SHOW_ALERT

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Zeigt das angegebene Warnfenster an und gibt einen numerischen Wert zurück, wenn der Endbenutzer eine von drei Warnschaltflächen auswählt.

Syntax

SHOW_ALERT
  (alert_id  Alert);

SHOW_ALERT
  (alert_name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Eine numerische Konstante, die der Schaltfläche entspricht, die der Endbenutzer aus dem Warnfenster ausgewählt hat. Die Schaltflächenzuordnungen werden beim Entwurf des Warnfensters angegeben.

Auswahl des Endbenutzers	Rückgabewert von Form Builder
Schaltfläche 1	ALERT_BUTTON1
Schaltfläche 2	ALERT_BUTTON2
Schaltfläche 3	ALERT_BUTTON3

Abfragemodus  Ja

Parameter

alert_id	Die eindeutige ID, die Form Builder dem Warnfenster beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ALERT, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist Alert.

alert_name	Der Name, den Sie dem Warnfenster bei der Definition zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.


Beispiele für SHOW_ALERT

/*

** Built-in:  SHOW_ALERT
** Example:   See FIND_ALERT and SET_ALERT_PROPERTY
*/


Vordefinierte Prozedur SHOW_EDITOR

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Zeigt den angegebenen Editor bei den angegebenen Koordinaten an und übergibt eine Zeichenfolge an den Editor oder ruft eine bestehende Zeichenfolge aus dem Editor ab. Wenn keine Koordinaten angegeben werden, wird der Editor an der Standardposition angezeigt, die beim Entwurf für den Editor angegeben wurde.

Syntax

SHOW_EDITOR
  (editor_id    Editor,
   message_in   VARCHAR2,
   message_out  VARCHAR2,
   result       BOOLKAN);

SHOW_EDITOR
  (editor_id    Editor,
   message_in   VARCHAR2,
   x            NUMBER,
   y            NUMBER,
   message_out  VARCHAR2,
   result       BOOLEAN);
SHOW_EDITOR
  (editor_name  VARCHAR2,
   message_in   VARCHAR2,
   message_out  VARCHAR2,
   result       BOOLEAN);
SHOW_EDITOR
  (editor_name  VARCHAR2,
   message_in   VARCHAR2,
   x            NUMBER,
   y            NUMBER,
   message_out  VARCHAR2,
   result       BOOLEAN);

Prozedurtyp  Uneingeschränkte Prozedur, die zwei OUT-Parameter zurückgibt (result und message_out)

Abfragemodus  Ja

Parameter

editor_id	Gibt die eindeutige ID an, die Form Builder beim Erstellen des Editors zuweist. Benutzen Sie die vordefinierte Prozedur FIND_EDITOR, um die ID an eine Variable des entsprechenden Datentyps zurückzugeben. Der Datentyp der ID ist Editor.

editor_name	Gibt den Namen an, den Sie dem Editor bei der Definition zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

message_in	Gibt einen obligatorischen IN-Parameter vom Datentyp VARCHAR2 an. Der an diesen Parameter übergebene Wert kann NULL sein. Sie können auch ein Textobjekt oder eine Variable referenzieren.

x	Gibt die x-Koordinate des Editors an. Geben Sie eine Ganzzahl für dieses Argument an.

y	Gibt die y-Koordinate des Editors an. Geben Sie eine Ganzzahl für dieses Argument an.

message_out	Gibt einen obligatorischen OUT-Parameter vom Datentyp VARCHAR2 an. Sie können auch ein Textobjekt oder eine Variable referenzieren. Wenn der Endbenutzer den Editor abbricht, ist result FALSE und message_out NULL.

result	Gibt einen obligatorischen OUT-Parameter vom Datentyp BOOLEAN an. Wenn der Endbenutzer den Editor akzeptiert, ist result TRUE. Wenn der Endbenutzer den Editor abbricht, ist result FALSE und message_out NULL.


Einschränkungen bei SHOW_EDITOR

•	Message_out muß mindestens so lang wie message_in sein, weil die Länge der Variablen oder des Textobjekts, das für message_out angegeben wird, die Höchstzahl von Zeichen bestimmt, die der Editor akzeptieren kann.

•	Die Parameterwerte message_in werden von Form Builder bei der Übergabe an den Editor immer in VARCHAR2 konvertiert. Wenn Sie jedoch message_out an ein anderes Objekt als ein Objekt vom Typ VARCHAR2 übergeben, müssen Sie zuerst die Konvertierung durchführen, indem Sie den Wert an eine Variable übergeben und dann die Typkonvertierung für diese Variable mit den PL/SQL-Funktionen TO_DATE oder TO_NUMBER durchführen.

•	Die Breite muß mindestens groß genug zur Anzeige der Schaltflächen am unteren Ende des Editorfensters sein.


Beispiele für SHOW_EDITOR

/*

** Built-in:  SHOW_EDITOR
** Example:   Accept input from the operator in a user-defined
**            editor. Benutzen Sie die vordefinierte Prozedur system editor if the user has
**            checked the "System_Editor" menu item under the
**            "Preferences" menu in our custom menu module.
*/
DECLARE
  ed_id   Editor;
  mi_id   MenuItem;
  ed_name VARCHAR2(40);
  val     VARCHAR2(32000);
  ed_ok   BOOLEAN;
BEGIN
  mi_id := Find_Menu_Item('PREFERENCES.SYSTEM_EDITOR');
  IF Get_Menu_Item_Property(mi_id,CHECKED) = 'TRUE' THEN
    ed_name := 'system_editor';
  ELSE
    ed_name := 'my_editor1';
  END IF;

  ed_id := Find_Editor( ed_name );
  /*
  ** Show the appropriate editor at position (10,14) on the
  ** screen.  Pass the contents of the :emp.comments item
  ** into the editor and reassign the edited contents if
  ** 'ed_ok' returns boolean TRUE.
  */
  val := :emp.comments;
  Show_Editor( ed_id, val, 10,14, val, ed_ok);
  IF ed_ok THEN
    :emp.comments := val;
  END IF;
END;


Vordefinierte Prozedur SHOW_KEYS

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Zeigt den Bildschirm Tastenbelegung an. Wenn der Endbenutzer eine Funktionstaste drückt, zeigt Form Builder die Form erneut so an, wie sie vor Aufruf der vordefinierten Prozedur SHOW_KEYS war.

Syntax

SHOW_KEYS;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Beispiele für SHOW_KEYS

/*

** Built-in:  SHOW_KEYS
** Example:   Display valid function key bindings
*/
BEGIN
  Show_Keys;
END;


Vordefinierte Prozedur SHOW_LOV

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Zeigt ein Wertelistenfenster bei den angegebenen Koordinaten an und gibt TRUE zurück, wenn der Endbenutzer einen Wert aus der Liste auswählt, bzw. FALSE, wenn der Endbenutzer die Liste abbricht und verwirft.

Syntax

SHOW_LOV
  (lov_id  LOV);

SHOW_LOV
  (lov_id  LOV,
   x       NUMBER,
   y       NUMBER);
SHOW_LOV
  (lov_name  VARCHAR2);
SHOW_LOV
  (lov_name  VARCHAR2,
   x         NUMBER,
   y         NUMBER);

Prozedurtyp  Uneingeschränkte Funktion

Returns  BOOLEAN

Abfragemodus  Ja

Parameter

lov_id	Gibt die eindeutige ID an, die Form Builder der Werteliste beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_LOV, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist LOV.

lov_name	Der Name, den Sie der Werteliste bei der Definition zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

x	Gibt die x-Koordinate der Werteliste an.

y	Gibt die y-Koordinate der Werteliste an.

Verwendungshinweise

Wenn SHOW_LOV benutzt wird, um eine Werteliste anzueigen, ignoriert Form Builder das Attribut Automatisches Überspringen der Werteliste.

Wenn der Cursor zu dem nächsten navigierbaren Objekt gesetzt werden soll, benutzen Sie die vordefinierte Prozedur LIST_VALUES.


Einschränkungen bei SHOW_LOV

Wenn das Argument lov_name nicht angegeben wird und mit dem aktuellen Objekt keine Werteliste verknüpft ist, gibt Form Builder eine Fehlermeldung aus.

Wenn die der Werteliste zugrundeliegende Datensatzgruppe 0 Datensätze enthält, ist der BOOLESCHE Rückgabewert für SHOW_LOV FALSE.


Beispiele für SHOW_LOV

/*

** Built-in:   SHOW_LOV
** Example:    Display a named List of Values (LOV)
*/
DECLARE
  a_value_chosen BOOLEAN;
BEGIN
  a_value_chosen := Show_Lov('my_employee_status_lov');
  IF NOT a_value_chosen THEN
    Message('You have not selected a value.');
    Bell;
    RAISE Form_Trigger_Failure;
  END IF;
END;


Vordefinierte Prozedur SHOW_MENU

 Beispiele	   Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

Zeigt das aktuelle Menü an, wenn es noch nicht angezeigt wird. Aktiviert das Menü nicht.

Weil das Menü mit SHOW_MENU nicht aktiviert wird, läßt Form Builder nicht zu, daß das Menü einen Teil der aktuellen Leinwand verdeckt. Deshalb wird das Menü ganz oder teilweise nicht auf dem Bildschirm angezeigt, wenn es von der aktuellen Leinwand verdeckt würde.

Syntax

SHOW_MENU;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Einschränkungen bei SHOW_MENU

Nur zur Benutzung in Zeichenmodus-Umgebungen.


Beispiele für SHOW_MENU

/*

** Built-in:  SHOW_MENU
** Example:   Display the menu if no canvas overlays it.
*/
BEGIN
  Show_Menu;
END;


Vordefinierte Prozedur SHOW_VIEW

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Zeigt die angegebene Leinwand bei den Koordinaten an, die mit den Leinwandattributen X-Position und Y-Position angegeben werden. Wenn die Ansicht schon angezeigt wird, setzt SHOW_VIEW sie vor alle anderen Ansichten in demselben Fenster.

Syntax

SHOW_VIEW
  (view_id  ViewPort);

SHOW_VIEW
  (view_name  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

view_id	Gibt die eindeutige ID an, die Form Builder der Ansicht beim Erstellen des Objekts zuweist. Benutzen Sie die vordefinierte Prozedur FIND_VIEW, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ViewPort.

view_name	Gibt den Namen an, den Sie der Ansicht bei der Definition zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.


Beispiele für SHOW_VIEW

/*

** Built-in:  SHOW_VIEW
** Example:   Programmatically display a view in the window to
**            which it was assigned at design time.
*/
BEGIN
  Show_View('My_Stacked_Overlay');
END;


Vordefinierte Prozedur SHOW_WINDOW

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Zeigt das angegebene Fenster bei den optional enthaltenen x,y-Koordinaten oder bei den aktuellen x,y-Koordinaten des Fensters an. Wenn es sich bei dem angegebenen Fenster um ein modales Fenster handelt, wird SHOW_WINDOW als ein GO_ITEM-Aufruf des ersten navigierbaren Objekts im modalen Fenster ausgeführt.

Syntax

SHOW_WINDOW
  (window_id  Window);

SHOW_WINDOW
  (window_id  Window,
   x          NUMBER,
   y          NUMBER);
SHOW_WINDOW
  (window_name  VARCHAR2);
SHOW_WINDOW
  (window_name  VARCHAR2,
   x            NUMBER,
   y            NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

window_id	Gibt die eindeutige ID an, die Form Builder dem Fenster beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_WINDOW, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist Window.

window_name	Gibt den Namen an, den Sie dem Fenster bei der Definition zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

x	Gibt die x-Koordinate des Fensters an. Geben Sie eine Ganzzahl für dieses Argument an.

y	Gibt die y-Koordinate des Fensters an. Geben Sie diesen Wert als Ganzzahl an.


Beispiele für SHOW_WINDOW

/*

** Built-in:  SHOW_WINDOW
** Example:   Override the default (x,y) coordinates for a
**            windows location while showing it.
*/
BEGIN
  Show_Window('online_help',20,5);
END;


Vordefinierte Prozedur SYNCHRONIZE

 Beispiele	   Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

Synchronisiert den Terminalbildschirm mit dem internen Status der Form. Das heißt, SYNCHRONIZE aktualisiert die Bildschirmanzeige so, daß die Informationen reflektiert werden, die Form Builder in der internen Darstellung des Bildschirms enthält.

Syntax

SYNCHRONIZE;

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Einschränkungen bei SYNCHRONIZE

SYNCHRONIZE aktualisiert die Bildschirmanzeige nur, wenn die beiden folgenden Bedingungen erfüllt sind:

•	Form Builder befindet sich in der Formshierarchie auf Objektebene (d.h. SYSTEM.CURRENT_ITEM ist nicht NULL).


Beispiele für SYNCHRONIZE

/*

** Built-in:  SYNCHRONIZE
** Example:   Achieve an odometer effect by updating the
**            screen as an items value changes quickly.
**            Without synchronize, the screen is typically
**            only updated when Form Builder completes all trigger
**            execution and comes back for user input.
*/
BEGIN
  FOR j IN 1..1000 LOOP
    :control.units_processed := j;
    SYNCHRONIZE;
    Process_Element(j);
  END LOOP;
END;


Vordefinierte Prozedur TERMINATE

 Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

TERMINATE beendet die Eingabe in einer Form oder einem Dialogfeld. Diese Funktion ist gleichbedeutend mit dem Drücken der Taste [BEENDEN] durch den Operator.

Syntax

TERMINATE;

Prozedurtyp   Eingeschränkte Funktion

Parameter

Keine


Einschränkungen bei TERMINATE

Terminate ist nur im Dialogfeld Parameterwerte eingeben gültig.


Vordefinierte Prozedur TO_VARIANT

 Alle vordefinierten Prozeduren

Beschreibung

Erstellt eine OLE-Variante und weist dieser einen Wert zu. Es gibt vier Versionen der Funktion.

Syntax

FUNCTION TO_VARIANT
  (newval NUMBER,
   vtype VT_TYPE
   persistence BOOLEAN)
RETURN newvar OLEVAR;

...or...

FUNCTION TO_VARIANT
  (newval VARCHAR2,
   vtype VT_TYPE
   persistence BOOLEAN)
RETURN newvar OLEVAR;

...or...

FUNCTION TO_VARIANT
  (source_table,
   vtype VT_TYPE
   arrspec VARCHAR2, persistence BOOLEAN)
RETURN newvar OLEVAR;

...or...

FUNCTION TO_VARIANT
  (var OLEVAR,
   vtype VT_TYPE
   arrspec VARCHAR2, persistence BOOLEAN)
RETURN newvar OLEVAR;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Neu erstellte OLE-Variante

Parameter

newval	Der Wert, der der neu erstellten OLE-Varianten zugewiesen wird.
Vtype	Der OLE VT_TYPE, der der neu erstellten Varianten zugewiesen wird. Dies ist ein optionaler Parameter. Wenn er nicht angegeben wird, ist der Standardwert für die NUMBER-Version der Funktion VT_R8. Bei der VARCHAR2-Version ist der Standardwert VT_BSTR. Bei der Tabellenversion wird der Standardwert anhand der PL/SQL-Typen der Tabelle bestimmt. Bei der OLEVAR-Version entspricht der Standardwert dem Typ der Quellvarianten.
Persistence	Steuert die Persistenz der Varianten nach dem Erstellen. Ein Boolescher Wert von TRUE legt die Variante als persistente Variante fest. Ein Wert von FALSE legt die Variante als nicht-persistent fest. Dies ist ein optionaler Parameter. Wenn er nicht angegeben wird, ist der Standardwert nicht-persistent.
Source_table	Eine bestehende PL/SQL-Tabelle, mit der die Grenzwerte und Werte der neu erstellten Variantentabelle festgelegt werden. Die Quelltabelle kann einen beliebigen Typ aufweisen.
Arrspec	Gibt an, welches ausgewählte Element bzw. welche ausgewählten Elemente einer Quelltabelle beim Erstellen der neuen Varianten benutzt werden sollen. Der untere Grenzwert beginnt immer bei 1. Weitere Informationen finden Sie unter Bezeichner für OLE-Arrays. Dies ist ein optionaler Parameter. Wenn er nicht angegeben wird, wird die gesamte Quelltabelle oder Quellvariante benutzt.
var	Eine bestehende OLE-Variante, deren Wert der neuen Varianten zugewiesen werden muß. (Bei dieser Quellvarianten kann es sich um eine Tabelle handeln.)
Verwendungshinweise

•	Diese Funktion erstellt zuerst eine leere Variante und gibt dieser dann einen Wert. Sie ermöglicht eine kombinierte Version der Vorgänge CREATE_VAR und SET_VAR.

•	Diese Funktion TO_VARIANT kann auch als umgekehrte Version der Funktion VAR_TO_* betrachtet werden.

•	Beachten Sie, daß die OLEVAR-Version dieser Funktion sich insofern von den NUMBER-, VARCHAR2- und Tabellenversionen unterscheidet, als eine bestehende OLE-Variante als Quelle und kein äquivalenter PL/SQL-Wert benutzt wird.


Vordefinierte Prozedur UNSET_GROUP_SELECTION

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Syntax

UNSET_GROUP_SELECTION
  (recordgroup_id  RecordGroup,
   row_number      NUMBER);

UNSET_GROUP_SELECTION
  (recordgroup_name  VARCHAR2,
   row_number        NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Beschreibung

Hebt die Markierung einer bestimmten Zeile in der angegebenen Datensatzgruppe auf. Benutzen Sie die Prozedur, um die Markierung von Zeilen aufzuheben, die programmgesteuert durch einen vorherigen Aufruf von SET_GROUP_SELECTION ausgewählt wurden.

Zeilen werden fortlaufend ab 1 numeriert. Wenn Sie z.B. die Zeilen 3, 8 und 12 auswählen, geht Form Builder davon aus, daß diese Zeilen die Auswahlen 1, 2 und 3 sind. Sie können die Auswahl von Zeilen für die ganze Gruppe rückgängig machen, indem Sie die vordefinierte Prozedur RESET_GROUP_SELECTION aufrufen.

Parameter

recordgroup_id	Gibt die eindeutige ID an, die Form Builder der Datensatzgruppe beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_GROUP, um die ID an eine Variable zurückzugeben. Der Datentyp der ID ist RecordGroup.

recordgroup_name	Gibt den Namen der Datensatzgruppe an, den Sie der Gruppe beim Erstellen zugewiesen haben. Der Datentyp des Namens ist VARCHAR2.

row_number	Gibt die Nummer der auszuwählenden Zeile in der Datensatzgruppe an. Der angegebene Wert hat den Datentyp NUMBER.


Beispiele für UNSET_GROUP_SELECTION

/*

** Built-in:  UNSET_GROUP_SELECTION
** Example:   Clear all of the even rows as selected in the
**            record group whose id is passed-in as a
**            parameter.
*/
PROCEDURE Clear_Even_Rows ( rg_id RecordGroup ) IS
BEGIN
  FOR j IN 1..Get_Group_Row_Count(rg_id) LOOP
    IF MOD(j,2)=0 THEN
      Unset_Group_Selection( rg_id, j );
    END IF;
  END LOOP;
END;


Vordefinierte Prozedur UP

  Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Navigiert zu der Instanz des aktuellen Objekts in dem Datensatz mit der niedrigsten Sequenznummer.

Syntax

UP;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Keine


Vordefinierte Prozedur UPDATE_CHART

 Alle vordefinierten Prozeduren

Beschreibung

Ein Datenblock wird immer dann aktualisiert, wenn er abgefragt wird oder wenn Änderungen an dem Datenblock gespeichert werden. Wenn der Block aktualisiert wird, werden standardmäßig Diagramme, die auf dem Datenblock basieren, automatisch aktualisiert. Sie können die vordefinierte Prozedur UPDATE_CHART verwenden, um ein Diagrammobjekt explizit zu aktualisieren, selbst wenn der Datenblock, auf dem es basiert, nicht aktualisiert wurde. Möglicherweise möchten Sie das Diagramm aktualisieren, um nicht festgeschriebene Änderungen in dem Datenblock zu berücksichtigen.

Syntax

PROCEDURE UPDATE_CHART
  (chart_name VARCHAR2,
   param_list_id TOOLS.PARAMLIST
);

PROCEDURE UPDATE_CHART
  (chart_name VARCHAR2,
   param_list_name VARCHAR2
);

PROCEDURE UPDATE_CHART
  (chart_id FORMS4C.ITEM,
   param_list_id TOOLS.PARAMLIST
);

PROCEDURE UPDATE_CHART
  (chart_id FORMS4C.ITEM,
   param_list_name VARCHAR2
);

PROCEDURE UPDATE_CHART
  (chart_id FORMS4C.ITEM
);

PROCEDURE UPDATE_CHART
  (chart_name VARCHAR2
);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

chart_id	Gibt die eindeutige ID des Diagramms an.

chart_name	Gibt den eindeutigen Namen des Diagramms an.

param_list_id	Gibt die eindeutige ID der Diagrammparameterliste an.

param_list_name	Gibt den eindeutigen Namen der Diagrammparameterliste an.


Vordefinierte Prozedur UPDATE_RECORD

 Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

Wenn diese Prozedur aus einem On-Update-Trigger aufgerufen wird, wird die Standardverarbeitung von Form Builder für das Aktualisieren eines Datensatzes in der Datenbank während der Abschicken- und Speichern-Transaktion ausgelöst.

Diese vordefinierte Prozedur ist im wesentlichen für Anwendungen gedacht, die mit fremden Datenquellen ausgeführt werden.

Syntax

UPDATE RECORD;

Prozedurtyp    Eingeschränkte Prozedur

Abfragemodus  Nein

Parameter

Keine


Einschränkungen bei UPDATE_RECORD

Ist nur in einem On-Update-Trigger gültig.


Vordefinierte Prozedur USER_EXIT

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Ruft den User Exit auf, der in user_exit_string angegeben wird.

Syntax

USER_EXIT
  (user_exit_string  VARCHAR2);

USER_EXIT
  (user_exit_string  VARCHAR2,
   error_string      VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

user_exit_string	Gibt den Namen des User Exit an, einschließlich eventueller Parameter.

error_string	Gibt eine benutzerdefinierte Fehlermeldung an, die Form Builder anzeigen soll, wenn der User Exit nicht erfolgreich verläuft.


Beispiele für USER_EXIT

/*

** Built-in:  USER_EXIT
** Example:   Invoke a 3GL program by name which has been
**            properly linked into your current Form Builder
**            executable. The user exit subprogram must parse
**            the string argument it is passed to decide what
**            functionality to perform.
*/
PROCEDURE Command_Robotic_Arm( cmd_string VARCHAR2 ) IS
BEGIN
  /*
  ** Call a C function 'RobotLnk' to initialize the
  ** communication card before sending the robot a message.
  */
  User_Exit('RobotLnk INITIALIZE Unit=6,CmdToFollow=1');
  IF NOT Form_Success THEN
    Message('Failed to initialize Robot 6');
    RAISE Form_Trigger_Failure;
  END IF;
  /*
  ** Pass the string argument as a command to the robot
  */
  User_Exit('RobotLnk SEND Unit=6,Msg='||cmd_string );
  IF NOT Form_Success THEN
    Message('Command not understood by Robot 6');
    RAISE Form_Trigger_Failure;
  END IF;
  /*
  ** Close the robot's communication channel
  */
  User_Exit('RobotLnk DEACTIVATE Unit=6');
  IF NOT Form_Success THEN
    Message('Failed to Deactivate Robot');
    RAISE Form_Trigger_Failure;
  END IF;

  /*
  ** The user exit will deposit a timing code into the item
  ** called 'CONTROL.ROBOT_STATUS'.
  */
  Message('Command Successfully Completed by Robot 6'||
      ' in '||TO_CHAR(:control.robot_timing)||
      ' seconds.');
END;


Vordefinierte Prozedur VALIDATE

 Beispiele	     Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Mit VALIDATE wird Form Builder gezwungen, die Validierungsverarbeitung für den angegebenen Validierungsgeltungsbereich sofort auszuführen.

Syntax

VALIDATE
  (validation_scope  NUMBER);

Prozedurtyp:

Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

validation scope	Gibt einen der folgenden Geltungsbereiche an:

DEFAULT_SCOPE  Führt eine normale Validierung für den Standardgeltungsbereich durch, wie mit der Laufzeitplattform bestimmt.

Hinweis:  Wenn Sie den Geltungsbereich über SET_FORM_PROPERTY(VALIDATION UNIT) ändern und danach VALIDATE(DEFAULT_SCOPE) aufrufen, setzen Sie den Standardgeltungsbereich außer Kraft, wie im Formmodul definiert. In diesem Fall validiert Form Builder nicht im Standardgeltungsbereich, sondern in dem von SET_FORM_PROPERTY definierten Geltungsbereich.

FORM_SCOPE  Führt eine normale Validierung für die aktuelle Form durch.

BLOCK_SCOPE  Führt eine normale Validierung für den aktuellen Block durch.

RECORD_SCOPE  Führt eine normale Validierung für den aktuellen Datensatz durch.

ITEM_SCOPE  Führt eine normale Validierung für das aktuelle Objekt durch.

Hinweis zum Laufzeitverhalten

Wenn ein ungültiges Feld bei der Validierung entdeckt wird, wird der Cursor nicht in dieses Feld bewegt, sondern bleibt an seiner vorherigen Position.


Beispiele für VALIDATE

/*

** Built-in:  VALIDATE
** Example:  Deposits the primary key value, which the user
**           has typed, into a global variable, and then
**           validates the current block.
** Trigger:  When-New-Item-Instance
*/
BEGIN
  IF :Emp.Empno IS NOT NULL THEN
   :Global.Employee_Id := :Emp.Empno;
    Validate(block_scope);
      IF NOT Form_Success THEN
        RAISE Form_Trigger_Failure;
      END IF;
    Execute_Query;
  END IF;
END;


VARPTR_TO_VAR

 Alle vordefinierten Prozeduren

Beschreibung

Ändert einen Varianten-Pointer in eine einfache Variante.

Syntax

FUNCTION VARPTR_TO_VAR
  (variant OLEVAR, vtype VT_TYPE)
RETURN changed OLEVAR;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Transformierte Variante.

Parameter

variant	Der OLE Varianten-Pointer, der in eine Variante geändert werden soll.
Vtype	Der OLE VT_TYPE, der der transformierten Varianten zugewiesen werden soll. Dies ist ein optionaler Parameter. Wenn er nicht angegeben wird, ist der Standardwert VT_VARIANT.
Verwendungshinweise

•	Diese Funktion entfernt den Typ VT_BYREF aus der Varianten.

•	Wenn der Typ der Varianten nicht VT_BYREF war, wird davon ausgegangen, daß die Variante eine Adresse zu dem in vtype angegebenen Typ enthält und entsprechend de-referenziert wird.

•	Wenn der Pointer NULL war oder die Variante vom Typ VT_NULL, wird VT_EMPTY zurückgegeben.


VAR_TO_TABLE

 Alle vordefinierten Prozeduren

Beschreibung

Liest eine OLE-Array-Variante und füllt eine PL/SQL-Tabelle mit dieser Varianten auf.

Syntax

PROCEDURE VAR_TO_TABLE
  (var OLEVAR,
   target_table,
   arrspec VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Parameter

var	Die OLE-Variante, bei der es sich um den Quell-Array handelt.
Target_table	Die aufzufüllende PL/SQL-Tabelle.
Arrspec	Gibt an, welche Zeilen, Spalten oder Elemente des Quell-Array benutzt werden sollen. Weitere Informationen finden Sie unter Bezeichner für OLE-Arrays. Dies ist ein optionaler Parameter. Wenn er nicht angegeben wird, werden alle Elemente in dem Quell-Array benutzt.
Verwendungshinweise

Bei ähnlichen Vorgängen mit anderen Datentypen benutzen Sie die Funktion VAR_TO_type.


VAR_TO_<type>

 Alle vordefinierten Prozeduren

Beschreibung

Liest eine OLE-Variante und transformiert ihren Wert in einen äquivalenten PL/SQL-Typ.

Es gibt drei Versionen der Funktion (wie mit dem Wert in type angegeben), eine für jeden der Typen CHAR, NUMBER und OBJ.

Syntax

FUNCTION VAR_TO_CHAR
  (var OLEVAR, arrspec VARCHAR2)
RETURN retval VARCHAR2;

...or...

FUNCTION VAR_TO_NUMBER
  (var OLEVAR, arrspec VARCHAR2)
RETURN retval NUMBER;

...or...

FUNCTION VAR_TO_OBJ
  (var OLEVAR, arrspec VARCHAR2)
RETURN retval OLEOBJ;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Die Variante, deren Wert in den entsprechenden PL/SQL-Typ geändert wurde. Beachten Sie, daß der Typ des Rückgabewerts von der ausgewählten Version der Funktion abhängig ist.

Parameter

var	Die zu lesende OLE-Variante.
Arrspec	Dieser Parameter wird nur benutzt, wenn die OLE-Variante ein Array ist. Mit ihm wird angegeben, welches Element des Array gelesen und zurückgegeben werden muß. Weitere Informationen finden Sie unter Bezeichner für OLE-Arrays.
Verwendungshinweise

•	Um eine Tabelle zurückzugeben, benutzen Sie die Prozedur VAR_TO_TABLE.

•	Bei der Version VAR_TO_OBJ dieser Funktion ist das zurückgegebene Objekt lokal (nicht-persistent).


VAR_TO_VARPTR

 Alle vordefinierten Prozeduren

Beschreibung

Erstellt eine OLE-Variante, die auf eine bestehende Variante zeigt.

Syntax

FUNCTION VAR_TO_VARPTR
  (variant OLEVAR, vtype VT_TYPE)
RETURN newpointer OLEVAR;

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Die erstellte Variante

Parameter

variant	Die bestehende OLE-Variante, auf die gezeigt werden soll.
Vtype	Der Typ, der der erstellten OLE-Varianten zugewiesen werden soll. Zulässige Typen sind VT_BYREF, VT_PTR und VT_NULL. Dies ist ein optionaler Parameter. Wenn er nicht angegeben wird, ist der Standardwert VT_BYREF.
Verwendungshinweise

•	Wenn die Variante, auf die gezeigt werden soll, den Typ VT_EMPTY hat, hat der erstellte Pointer den Typ VT_NULL, unabhängig von der vtype-Spezifikation in der Funktion.

•	Wenn vtype als VT_BYREF angegeben ist oder standardmäßig VT_BYREF benutzt wird, hat der erstellte Pointer den Typ VT_BYREF plus dem Typ der Quellvarianten.

•	Wenn der vtype kein VT_BYREF enthält, hat der erstellte Pointer den Typ VT_PTR und zeigt auf den Inhalt innerhalb der Varianten.


VBX.FIRE_EVENT

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Löst ein Ereignis für das VBX-Steuerelement aus.

Syntax

VBX.FIRE_EVENT
  (item_id       ITEM,
   event_name    VARCHAR2,
   paramlist_id  PARAMLIST);

VBX.FIRE_EVENT
  (item_id         ITEM,
   event_name      VARCHAR2,
   paramlist_name  VARCHAR2);
VBX.FIRE_EVENT
  (item_name     VARCHAR2,
   event_name    VARCHAR2,
   paramlist_id  PARAMLIST);
VBX.FIRE_EVENT
  (item_name       VARCHAR2,
   event_name      VARCHAR2,
   paramlist_name  VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.

item_name	Gibt den Namen des beim Entwurf erstellten Objekts an. Der Datentyp des Namens ist VARCHAR2.

event_name	Gibt den Namen eines VBX-Ereignisses an, das an das VBX-Steuerelement gesendet wird. Der Datentyp des Namens ist VARCHAR2.

paramlist_id	Gibt die eindeutige ID an, die Form Builder beim Erstellen einer Parameterliste zuweist. Der Datentyp der ID ist PARAMLIST.

paramlist_name	Der Name, den Sie dem Parameterlistenobjekt bei der Definition zuweisen. Der Datentyp des Namens ist VARCHAR2.


Einschränkungen bei VBX.FIRE_EVENT

Nur bei Microsoft Windows gültig.


Beispiele für VBX.FIRE_EVENT

/*

** Built-in:  VBX.FIRE_EVENT
** Example:   The VBX.FIRE_EVENT built-in triggers a SpinDown
**            event for the SpinButton VBX control.
** Trigger:   When-Button-Pressed
*/
DECLARE
 ItemName VARCHAR2(40) := 'SPINBUTTON';
 PL_ID  PARAMLIST;
 PL_NAME  VARCHAR2(20) := 'EName';
BEGIN
 PL_ID := Get_Parameter_List(PL_NAME);
 IF id_null(PL_ID) THEN
  PL_ID := Create_Parameter_List(PL_NAME);
  END IF;
 VBX.FIRE_EVENT(ItemName,'SpinDown',PL_ID);
END;


VBX.GET_PROPERTY

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Ruft den Wert eines Attributs aus einem VBX-Steuerelement ab.

Syntax

VBX.GET_PROPERTY
  (item_id   ITEM,
   property  VARCHAR2);

VBX.GET_PROPERTY
  (item_name  VARCHAR2,
   property   VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  VARCHAR2

Abfragemodus  Ja

Parameter

item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.

item_name	Gibt den Namen des beim Entwurf erstellten Objekts an. Der Datentyp des Namens ist VARCHAR2.

Property	Gibt ein Attribut oder ein Element eines Attribut-Arrays für ein VBX-Steuerelement an. Für ein bestimmtes VBX-Steuerelement ist eine Gruppe mit VBX-Attributen vorhanden. Beispiele für VBX-Attribute sind Breite, Höhe und Schriftgrad. Der Datentyp des Attributs ist VARCHAR2.


Einschränkungen bei VBX.GET_PROPERTY

Nur bei Microsoft Windows gültig.


Beispiele für VBX.GET_PROPERTY

/*

** Built-in:  VBX.GET_PROPERTY
** Example:   Uses the VBX.GET_PROPERTY built-in to obtain the
**            CURRTAB property of the VBX item named TABCONTROL.
**            The property value of CURRTAB is returned to the
**            TabNumber variable and is used as input in the
**            user-defined Goto_Tab_Page subprogram.
** Trigger:   When-Custom-Item-Event
*/
DECLARE
 TabEvent varchar2(80);
 TabNumber char;
BEGIN
 TabEvent := :system.custom_item_event;
 IF (UPPER(TabEvent) = 'CLICK') then
  TabNumber := VBX.Get_Property('TABCONTROL','CurrTab');
  Goto_Tab_Page(TO_NUMBER(TabNumber));
 END IF;
END;


VBX.GET_VALUE_PROPERTY

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Liest das VBX-Steuerelementwertattribut eines VBX-Steuerelements ein.

Syntax

VBX.GET_VALUE_PROPERTY
  (item_id  ITEM);

VBX.GET_VALUE_PROPERTY
  (item_name  VARCHAR2);

Prozedurtyp  Uneingeschränkte Funktion

Rückgabewert  Attribut

Abfragemodus  Ja

Parameter

item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.

item_name	Gibt den Namen des beim Entwurf erstellten Objekts an. Der Datentyp des Namens ist VARCHAR2.


Einschränkungen bei VBX.GET_VALUE_PROPERTY

Nur bei Microsoft Windows gültig.


Beispiele für VBX.GET_VALUE_PROPERTY

/*

** Built-in:  VBX.GET_VALUE_PROPERTY
** Example:   Passes the VBX Control Value to the user-defined
**            Verify_Item_Value subprogram. Verify_Item_Value
**            ensures the display value is the expected value.
*/
DECLARE
 ItemName VARCHAR2(40) := 'SPINBUTTON';
 VBX_VAL_PROP VARCHAR2(40);
BEGIN
 VBX_VAL_PROP := VBX.Get_Value_Property(ItemName);
 Verify_Item_Value(VBX_VAL_PROP);
END;


VBX.INVOKE_METHOD

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Syntax

VBX.INVOKE_METHOD(item_id, method_name, w, x, y, z);

VBX.INVOKE_METHOD(item_name, method_name, w, x, y, z);

Prozedurtyp:

Uneingeschränkte Prozedur

Abfragemodus  Ja

Beschreibung

Ruft die angegebene Methode für ein Objekt auf. Wenn für die Methode Argumente erforderlich sind, müssen diese angegeben werden. Die Argumente müssen in der Reihenfolge angegeben werden, in der sie von dem VBX-Steuerelement erwartet werden. Die Methoden, die für VBX-Steuerelemente gültig sind, und eine Liste der erwarteten Argumente finden Sie in der Dokumentation für das VBX-Steuerelement.

Parameter

item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.

item_name	Gibt den Namen des beim Entwurf erstellten Objekts an. Der Datentyp des Namens ist VARCHAR2.

method_name	Gibt den Namen der aufzurufenden Methode an. Der Datentyp des Namens ist VARCHAR2.

w, x, y, z	Gibt optionale Argumente an, die möglicherweise für VBX-Steuerelemente erforderlich sind. Der Datentyp der Argumente ist VARCHAR2-Zeichenfolge.


Einschränkungen bei VBX.INVOKE_METHOD

Nur bei Microsoft Windows gültig.


Beispiele für VBX.INVOKE_METHOD

/*

** Built-in:  VBX.INVOKE_METHOD_PROPERTY
** Example:   Adds an entry to a combobox. The entry to
**            add to the combobox is the first optional argument.
**            The position where the entry appears is the second
**            optional argument.
*/
DECLARE
 ItemName VARCHAR2(40) := 'COMBOBOX';
BEGIN
 VBX.Invoke_Method(ItemName,'ADDITEM','blue','2');
END;


VBX.SET_PROPERTY

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Legt das angegebene Attribut für ein VBX-Steuerelement fest.

Syntax

VBX.SET_PROPERTY
  (item_id   ITEM,
   property  VARCHAR2,
   value     VARCHAR2);

VBX.SET_PROPERTY
  (item_name  VARCHAR2,
   property   VARCHAR2,
   value      VARCHAR2);

Prozedurtyp:

Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.

item_name	Gibt den Namen des beim Entwurf erstellten Objekts an. Der Datentyp des Namens ist VARCHAR2.

Property	Gibt ein Attribut oder ein Element eines Attribut-Arrays für ein VBX-Steuerelement an. Für ein bestimmtes VBX-Steuerelement ist eine Gruppe mit VBX-Attributen vorhanden. Beispiele für VBX-Attribute sind Breite, Höhe und Schriftgrad. Der Datentyp des Attributs ist VARCHAR2.

Value	Gibt den Wert an, der für das VBX-Attribut angewendet werden soll. Der Datentyp des Wertes ist VARCHAR2.


Einschränkungen bei VBX.SET_PROPERTY

Nur bei Microsoft Windows gültig.


Beispiele für VBX.SET_PROPERTY

/*

** Built-in:  VBX.SET_PROPERTY
** Example:   Uses the VBX.SET_PROPERTY built-in to set the Index
**            property of the SpinButton VBX control.
** Trigger:   When-Button-Pressed
*/
DECLARE
 ItemName VARCHAR2(40) := 'SPINBUTTON';
 VBX_VAL_PROP VARCHAR2(40);
 VBX_VAL  VARCHAR2(40);
BEGIN
 IF :System.Custom_Item_Event = 'SpinDown' THEN
  VBX_VAL_PROP := 'Index';
  VBX_VAL := '5';
  VBX.Set_Property(ItemName,VBX_VAL_PROP,VBX_VAL);
 END IF;
END;


VBX.SET_VALUE_PROPERTY

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Bestimmt das VBX-Steuerelementwertattribut eines VBX-Steuerelements.

Syntax

VBX.SET_VALUE_PROPERTY
  (item_id   ITEM,
   property  VARCHAR2);

VBX.SET_VALUE_PROPERTY
  (item_name  VARCHAR2,
   property   VARCHAR2);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

item_id	Gibt die eindeutige ID an, die Form Builder dem Objekt beim Erstellen zuweist. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp der ID ist ITEM.

item_name	Gibt den Namen des beim Entwurf erstellten Objekts an. Der Datentyp des Namens ist VARCHAR2.

Property	Gibt ein Attribut für das VBX-Steuerelementwertattribut von Form Builder an. Für ein bestimmtes VBX-Steuerelement ist eine Reihe von VBX-Attributen vorhanden. Beispiele für VBX-Attribute sind Breite, Höhe und Schriftgrad. Der Datentyp des Attributs ist VARCHAR2.


Einschränkungen bei VBX.SET_VALUE_PROPERTY

Nur bei Microsoft Windows gültig.


Beispiele für VBX.SET_VALUE_PROPERTY

/*

** Built-in:  VBX.SET_VALUE_PROPERTY
** Example:   Uses the VBX.SET_VALUE_PROPERTY built-in to set the
**            VBX Control Value property.
*/
DECLARE
 ItemName VARCHAR2(40) := 'SPINBUTTON';
 VBX_VAL_PROP VARCHAR2(40);
BEGIN
 IF :System.Custom_Item_Event = 'SpinDown' THEN
  VBX_VAL_PROP := 'Index';
  VBX.Set_Value_Property(ItemName,VBX_VAL_PROP);
 END IF;
END;


WEB.SHOW_DOCUMENT;
Vordefinierte Prozedur WEB.SHOW_DOCUMENT

 Alle vordefinierten Prozeduren

Syntax

SHOW_DOUMENT(url, target);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Beschreibung:

Gibt die URL und das Zielfenster einer Web-Anwendung an.

Parameter:

url	Der Datentyp ist VARCHAR2. Gibt den Uniform Resource Locator des zu ladenden Dokuments an.

target	Der Datentyp ist VARCHAR2. Gibt eines der folgenden Ziele an:

_SELF Veranlaßt, daß das Dokument in denselben Rahmen oder dasselbe Fenster wie das Quelldokument gesetzt wird.

_PARENT Veranlaßt, daß das Zieldokument in das übergeordnete Fenster oder die übergeordnete Rahmengruppe geladen wird, die die Hypertext-Referenz enthält. Wenn die Referenz in einem Fenster oder einem Rahmen der obersten Ebene steht, ist sie gleichbedeutend mit dem Ziel _self.

_TOP Veranlaßt, daß das Dokument in das Fenster mit dem Hypertext-Link geladen wird, wobei momentan in dem Fenster angezeigte Rahmen ersetzt werden.

_BLANK Veranlaßt, daß das Dokument in ein neues unbenanntes Fenster auf oberster Ebene gesetzt wird.

Einschränkungen

Kann nur aus einer Form verwendet werden, die aus dem Web ausgeführt wird.

Beispiel:

/*

** Built-in:  WEB.SHOW_DOCUMENT
** Example:   Display the specified URL in the target window.
*/
BEGIN
  Web.Show_Document(‘http://www.abc.com’, ‘_self’);
END;


Vordefinierte Prozedur WHERE_DISPLAY

 Einschränkungen	 Alle vordefinierten Prozeduren

Beschreibung

Schaltet die Navigationsoption für das Where-Menü ein und aus. Bei einem Gesamtbildschirmmenü zeigt die Where-Option Informationen über die aktuelle Position des Operators in der Menühierarchie an.

Syntax

WHERE_DISPLAY;

Prozedurtyp:

Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

Keine


Einschränkungen bei WHERE_DISPLAY

WHERE_DISPLAY ist nur in einem Gesamtbildschirmmenü gültig.


Vordefinierte Prozedur WRITE_IMAGE_FILE

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Schreibt ein Bild aus einem Bildobjekt von Form Builder in die angegebene Datei.

Syntax

WRITE_IMAGE_FILE
 (file_name            VARCHAR2,
  file_type            VARCHAR2,
  item_id              ITEM,
  compression_quality  NUMBER,
  image_depth          NUMBER);

WRITE_IMAGE_FILE
  (file_name            VARCHAR2,
   file_type            VARCHAR2,
   item_name            VARCHAR2,
   compression_quality  NUMBER,
   image_depth          NUMBER);

Prozedurtyp   Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter

file_name	Der Name der Datei, in der das Bild gespeichert ist. Der Dateiname muß den Anforderungen Ihres Betriebssystems entsprechen.

file_type	Der Dateityp des Bildes ist BMP, CALS, GIF, JFIF, JPEG, PICT, RAS, TIFF oder TPIC. Für den Parameter wird ein VARCHAR2-Argument angegeben.

item_id	Die eindeutige ID, die Form Builder dem Bildobjekt beim Erstellen zugewiesen hat. Benutzen Sie die vordefinierte Prozedur FIND_ITEM, um die ID an eine Variable des entsprechenden Typs zurückzugeben. Der Datentyp ist ITEM.

item_name	Der Name, den Sie dem Bildobjekt bei der Definition gegeben haben. Der Datentyp ist VARCHAR2.

compression_quality	Der Komprimierungsgrad, den Form Builder für das Bild anwendet, wenn dieses in der Datei gespeichert wird (optional). Der Datentyp ist VARCHAR2. Gültige Werte sind: NO_COMPRESSION, MINIMIZE_COMPRESSION, LOW_COMPRESSION, MEDIUM_COMPRESSION, HIGH_COMPRESSION, MAXIMIZE_COMPRESSION.

image_depth	Der 3D-Effekt, den Form Builder für das Bild anwendet, wenn dieses in der Datei gespeichert wird (optional). Der Datentyp ist VARCHAR2. Gültige Werte sind: ORIGINAL_DEPTH, MONOCHROME, GRAYSCALE, LUT (Verweistabelle), RGB (Rot, Grün, Blau).


Einschränkungen bei WRITE_IMAGE_FILE

•	Der angegebene Dateityp muß mit dem tatsächlichen Dateityp des Bildes kompatibel sein.

•	Wenn Sie das Bild in eine bestehende Datei schreiben, überschreiben Sie wie bei jeder anderen Datei den Inhalt dieser Datei mit dem Inhalt des Bildobjekts.

•	Auch wenn Sie PCD- und PCX-Dateien aus dem Dateisystem oder der Datenbank lesen können, können Sie keine Bilddateien im PCD- oder PCX-Format (mit WRITE_IMAGE_FILE) in das Dateisystem schreiben. (Wenn Sie beim Schreiben von Bildern in das Dateisystem einen eingeschränkten Dateityp verwenden, benutzt Form Builder standardmäßig das TIFF-Format für die Bilddatei.)

•	Wenn Sie eine JPEG-Datei aus einem Form Builder-Bildobjekt schreiben, führt dies zu einem Auflösungsverlust.


Beispiele für WRITE_IMAGE_FILE

/* Built-in: WRITE_IMAGE_FILE

**
** Save the contents of an image item out to a file
** on the filesystem in a supported image format.
*/
BEGIN
  WRITE_IMAGE_FILE('output.tif',
                   'TIFF',
                   'emp.photo_image_data',
                   maximize_compression,
                   original_depth);
END;


Vordefinierte Prozedur WRITE_SOUND_FILE

 Einschränkungen	    Verwandte Themen	 Alle vordefinierten Prozeduren

Beschreibung

Schreibt Klangdaten aus dem angegebenen Klangobjekt in die angegebene Datei.

Syntax

WRITE_SOUND_FILE(file_name     VARCHAR2,
                  file_type     VARCHAR2,
                  item_id       ITEM,
                  compression   NUMBER,
                  sound_quality NUMBER,
                  channels      NUMBER);

WRITE_SOUND_FILE(file_name      VARCHAR2,
                 file_type      VARCHAR2,
                 item_name      VARCHAR2,
                 compression    NUMBER,
                 sound_quality  NUMBER,
                 channels       NUMBER);

Prozedurtyp  Uneingeschränkte Prozedur

Abfragemodus  Ja

Parameter:

file_name	Der vollständige Dateiname der Datei, in die die Klangdaten geschrieben werden sollen.

file_type	Der Dateityp für die Datei mit den Klangdaten. Gültige Werte sind AU, AIFF, AIFF-C und WAVE. Hinweis:  Der Dateityp ist optional, sollte jedoch, wenn er bekannt ist, angegeben werden, um die Leistung zu verbessern. Wenn der Dateityp weggelassen wird, verwendet Form Builder einen Standarddateityp: WAVE (Microsoft Windows), AIFF-C (Macintosh) oder AU (alle anderen).

item_id	Die eindeutige ID, die Form Builder dem Klangobjekt beim Erstellen zugewiesen hat.

item_name	Der Name, den Sie dem Klangobjekt beim Erstellen zugewiesen haben.

Compression	Gibt an, ob die Klangdaten komprimiert werden sollen, bevor Form Builder die Daten in die Datei schreibt. Mögliche Werte sind COMPRESSION_ON, COMPRESSION_OFF und ORIGINAL_SETTING (die Standard-Komprimierungseinstellung für die Daten wird beibehalten). Die Komprimierung ist optional: Wenn keine Komprimierung angegeben wird, entspricht der Standardwert ORIGINAL_SETTING.

sound_quality	Die Qualität der Datenabtastrate und der Tiefe für die Klangdaten. Mögliche Werte sind: HIGHEST_SOUND_QUALITY, HIGH_SOUND_QUALITY, MEDIUM_SOUND_QUALITY, LOW_SOUND_QUALITY, LOWEST_SOUND_QUALITY und ORIGINAL_QUALITY. Die Klangqualität ist optional: Wenn keine Klangqualität angegeben wird, entspricht der Standardwert ORIGINAL_QUALITY.

Channels	Gibt an, ob Form Builder die Klangdateien monophon oder stereophon in die Datei schreiben soll. Gültige Werte sind MONOPHONIC, STEREOPHONIC und ORIGINAL_SETTING (die Standard-Kanaleinstellung für die Daten wird beibehalten). Channels ist optional: Wenn keine Angabe gemacht wird, entspricht der Standardwert ORIGINAL_SETTING.


Einschränkungen bei WRITE_SOUND_FILE

•	Um die vordefinierten Prozeduren PLAY_SOUND, READ_SOUND_FILE und WRITE_SOUND_FILE zu verwenden, um Klangdaten in einer Datei wiederzugeben und/oder aufzuzeichnen, müssen Sie ein Klangobjekt erstellen und den Fokus in dieses Objekt setzen, bevor die vordefinierten Prozeduren aufgerufen werden. Auch wenn das Klangobjekt beim Entwurf durch das Klangobjekt-Steuerelement dargestellt wird, funktioniert das Steuerelement zur Laufzeit für Endbenutzer nicht. Deshalb müssen Sie das Klangobjekt hinter einem anderen Objekt auf der Leinwand "verbergen", damit die Benutzer das Steuerelement zur Laufzeit nicht sehen. (Damit der Fokus in ein Objekt gesetzt werden kann, darf dieses keiner Null-Leinwand zugewiesen sein, bzw. darf das Attribut Angezeigt nicht auf Nein eingestellt sein.) Um z.B. die vordefinierten Prozeduren READ_SOUND_FILE und PLAY_SOUND aus einem When-Button-Pressed-Trigger aufzurufen, setzen Sie den Fokus in das "verborgene" Klangobjekt, indem Sie einen Aufruf der vordefinierten Prozedur GO_ITEM in dem Triggercode aufnehmen, bevor Sie READ_SOUND_FILE und PLAY_SOUND aufrufen.


Was sind berechnete Objekte?

  Verwandte Themen

Berechnete Objekte sind Objekte, denen Sie deklarativ Werte aufgrund von Berechnungen zuweisen, bei denen ein oder mehrere Variablenwerte verwendet werden. Ein Beispiel für ein berechnetes Objekt ist eine Zwischensumme der Mitarbeitervergütungen, die sich immer ändert, wenn sich ein Teilwert des Gesamten (z.B. das Gehalt, der Bonus usw. eines einzelnen Mitarbeiters) ändert.

Gültige Objekttypen  In einem berechneten Objekt muß ein Wert gespeichert werden können. Sie können jeden der folgenden Objekttypen als berechnetes Objekt definieren:

•	Kontrollkästchen

•	Anzeigeobjekt

•	Listenobjekt

•	Optionsgruppe

•	Textobjekt

•	VBX-Steuerelement


Richtlinien für das Arbeiten mit berechneten Objekten

  Verwandte Themen

•	Berechnete Objekt sind Nur-Anzeige-Steuerobjekte.

•	Berechnete Objekte dürfen keine Datenbankobjekte sein.

•	Während Sie die Attribute Aktiviert, Mausnavigation und Tastaturnavigation auf Ja einstellen können, können Sie die Attribute Einfügen erlaubt oder Aktualisieren erlaubt nicht auf Ja einstellen.


Über Berechnungsmodi

  Verwandte Themen

Der Wert eines berechneten Objekts beruht auf einer Berechnung. Um die Berechnung zu definieren, müssen Sie zuerst einen Berechnungsmodus angeben - Summe oder Formel:

•	Summe - Der Wert des berechneten Objekts entspricht der Summe aller Werte eines einzelnen Objekts in einem einzelnen Block.

•	Formel - Der Wert des berechneten Objekts ist das Ergebnis einer Formel, die Berechnungen mit einem oder mehreren Werten durchführt.


Über Summenberechnungen

  Verwandte Themen

Eine Summenberechnung für ein berechnetes Objekt besteht aus einer einfachen Berechnung, die mit allen Datensätzen eines einzelnen Objekts in einem einzelnen Datensatz vorgenommen wird.

Bei Summenberechnungen muß zwischen zwei ähnlichen Begriffen unterschieden werden:

•	Das Summenobjekt ist das berechnete Objekt, dem Sie einen Wert zuweisen. Dieses Objekt muß entweder in einem Steuerblock stehen, bei dem das Attribut Einzelner Datensatz auf Ja eingestellt ist, oder im selben Block wie das summierte Objekt.

•	Die Werte des summierten Objekts werden summiert (d.h. der Mittelwert wird berechnet, sie werden addiert usw.) und werden dann dem Summenobjekt zugewiesen. Das summierte Objekt muß in einem Datenblock stehen, bei dem das Attribut Alle Datensätze abfragen oder Summen im voraus berechnen auf Ja gesetzt ist, oder in einem Steuerblock.

Nullwert  Wenn der Block des summierten Objekts leer ist - oder wenn jede Instanz des Objekts einen Nullwert hat -, ist der Wert des Objekts null, es sei denn, das Attribut Summenfunktion ist auf Anzahl eingestellt. In diesem Fall ist der Wert des Objekts null. Um Summenobjekte zu berechnen, wird ein Block als leer behandelt, während er sich im Abfragemodus befindet und während er ausgewählt wird (bis zum Auslösen eines ONCLOSE-Triggers, dieses jedoch nicht eingeschlossen), es sei denn, das Attribut Summen im voraus berechnen des Blocks ist auf Ja eingestellt.

Gültige Datentypen Sie müssen das Attribut Datentyp eines Summenobjekts auf Zahl setzen, es sei denn, das Attribut Summentyp des Objekts ist Max oder Min. In diesem Fall muß der Datentyp den Datentyp des zugeordneten summierten Objekts spiegeln. So muß z.B. ein berechnetes Objekt, das das letzte (d.h. maximale) Datum in der Spalte HIRE_DATE anzeigt, den Datentyp Date haben.


Über Formelberechnungen

  Verwandte Themen

Eine Formelberechnung weist einem berechneten Objekt einen Wert zu, indem Berechnungen mit einer oder mehreren Bindevariablen oder Konstanten durchgeführt werden. Bindevariablen umfassen Formobjekte, Parameter, globale Variablen und Systemvariablen.

Berechnungsausdruck  Um die Berechnung zu definieren, die einem Formelobjekt Werte zuweist, müssen Sie einen einzelnen PL/SQL-Ausdruck in dem Objektattribut Formel angeben. Der Ausdruck, den Sie schreiben, kann vordefinierte oder benutzerdefinierte Prozeduren referenzieren.

Sie können keine ganze PL/SQL-Anweisung in das Attributfeld Formel eingeben. Form Builder fügt den eigentlichen Zuweisungscode intern zu der Formel hinzu. Deshalb fügen Sie den Code nicht selbst hinzu bzw. beenden Sie den Berechnungsausdruck nicht mit einem Semikolon. Wenn Sie das Attribut Formel z.B. auf den Ausdruck:

   :emp.sal + :emp.comm

setzen, konvertiert Form Builder diesen Ausdruck intern in eine vollständige Anweisung:

   :emp.gross_comp := (:emp.sal + :emp.comm);

Nullwert  Der Wert eines Formelobjekts ist NULL, wenn (1) ein Endbenutzer nicht zu dem Block des Objekts navigiert ist und wenn keinem Objekt in dem Block des Formelobjekts ein Wert von einer PL/SQL-Anweisung zugewiesen wurde, oder wenn (2) sich der Block des Formelobjekts im Abfragemodus befindet.


Über die Neuberechnung von berechneten Objekten

  Verwandte Themen

Form Builder markiert ein berechnetes Objekt automatisch zur Neuberechnung, sobald ein Wert einer Bindevariablen, die in der Berechnung benutzt wird, auf irgendeine Weise geändert wird.

Beachten Sie, daß die tatsächliche Neuberechnung nicht sofort erfolgt, sondern an einem späteren Zeitpunkt, nachdem das Objekt markiert wurde - jedoch bevor der neue Wert des berechneten Objekts referenziert oder für den Endbenutzer angezeigt wird. Die Logik Ihrer Anwendung darf nicht von der Neuberechnung eines berechneten Objekts zu einem bestimmten Zeitpunkt abhängen.

Datensatzstatus  Die Neuberechnung ändert den Status eines Datensatzes eines berechneten Objekts nicht, selbst wenn der Status NEW ist.


Über die Neuberechnung von Summenobjekten

  Verwandte Themen

Form Builder markiert ein Summenobjekt zur Neuberechnung, wenn ein Wert des zugehörigen summierten Objekts in einer Zeile des Blocks eingefügt, geändert oder gelöscht wird.


Über die Neuberechnung von Formelobjekten

  Verwandte Themen

Ein Formelobjekt wird zur Neuberechnung markiert, wenn eine Änderung in einer Nicht-System-Bindevariablen (d.h. globalen Variablen, Parameter oder Objekt) auftritt, die in der Formel oder in einem benutzerdefinierten Unterprogramm steht, das von der Formel referenziert wird. Beachten Sie, daß Form Builder ein Objekt nicht automatisch zur Neuberechnung markiert, wenn sich der von einer vordefinierten Funktion oder Systemvariablen (die von der Formel referenziert wird) zurückgegebene Wert ändert.

Indirekte Referenzen  Die Benutzung von vordefinierten Prozeduren, wie z.B. COPY, NAME_IN, DO_KEY und EXECUTE_TRIGGER kann zu einer indirekten Referenz auf eine Bindevariable führen. Wenn Sie derartige vordefinierte Prozeduren in einer Formel benutzen, erkennt Form Builder nicht, daß eine Bindevariable (bei der Kompilierung) referenziert wurde, und markiert somit das zugehörige berechnete Objekt nicht zur Neuberechnung, wenn sich die Bindevariable (zur Laufzeit) ändert. Um dies zu vermeiden, codieren Sie eine explizite Referenz für jede Bindevariable (in jedem Programmblock, der direkt oder indirekt von der Formel aufgerufen wird), die indirekt referenziert wird. Verwenden Sie hierzu die vordefinierte Prozedur DUMMY_REFERENCE:

   temp_sal := NAME_IN('emp.sal');
   DUMMY_REFERENCE(:emp.sal);

Hinweis:  DUMMY_REFERENCE muß nicht ausgeführt werden, damit die referenzierte Bindevariable von Form Builder erkannt wird (wodurch das zugehörige berechnete Objekt zur Neuberechnung markiert wird).

Vordefinierte Prozedur RECALCULATE  Benutzen Sie RECALCULATE, um ein Formelobjekt explizit zur Neuberechnung zu markieren. Verwenden Sie dies, wenn eine Formel eine Systemvariable oder eine vordefinierte Funktion referenziert und eine Änderung eingetreten ist, die dazu führt, daß die Systemvariable oder vordefinierte Prozedur einen anderen Wert zurückgibt. Beachten Sie, daß selbst wenn RECALCULATE bei einem Formelobjekt aufgerufen wird, die Neuberechnung nicht sofort erfolgt. Das Objekt wird zu irgendeinem Zeitpunkt vor der nächsten Referenz auf das Objekt neu berechnet.

Warnung:  Bei Formelobjekten sollten Sie eine Situation vermeiden, bei der die Formel für das berechnete Objekt A ein Unterprogramm aufruft, das den Wert einer Bindevariablen ändert, der sich auf den Wert des berechneten Objekts B auswirkt. In einem solchen Fall kann nicht unbedingt gewährleistet werden, daß der Wert der Bindevariablen in bezug auf die Auswirkung auf den Wert der Objekte A oder B akkurat ist (da Form Builder nicht genau garantieren kann, wann A und B neu berechnet werden).


Berechnete Objekte erstellen

  Nächster Schritt	   Beispiele	   Einschränkungen	    Verwandte Themen

So erstellen Sie ein berechnetes Objekt:

1.	Erstellen Sie das neue Schnittstellenobjekt im Objektnavigator (wobei es sich um ein Steuerobjekt handeln muß).

Tip:  Der Datentyp des Objekts muß mit der Berechnung kompatibel sein, mit der Sie den Wert des Objekts berechnen möchten. Wenn Sie z.B. den Wert des Objekts mit der Funktion Summe berechnen möchten, erstellen Sie ein Schnittstellenobjekt mit dem Datentyp Number.

2.	Doppelklicken Sie auf das Symbol für das Objekt, um die Attributpalette anzuzeigen.

3.	Setzen Sie das Attribut Berechnungsmodus unter dem Knoten Berechnung auf Formel oder Summe.

4.	Wenn Sie den Berechnungsmodus auf:

•	Formel gesetzt haben, klicken Sie auf das Attribut Formel, klicken Sie auf die Schaltfläche Weiter, um das Dialogfeld Formel anzuzeigen, und geben Sie einen PL/SQL-Ausdruck zur Definition der Formel ein. Klicken Sie auf OK, um den Ausdruck zu kompilieren.

•	Summe gesetzt haben, verwenden Sie die Popup-Liste Summenfunktion, um einen Summentyp auszuwählen. Danach verwenden Sie die Popup-Listen Summierter Block und Summiertes Objekt, um den Block und das Objekt auszuwählen, dessen Werte zur Berechnung eines Werts für das berechnete Objekt summiert werden.


Einschränkungen beim Erstellen eines berechneten Objekts

•	Für die folgenden Objektattribute wird bei der Kompilierung standardmäßig Nein verwendet: Datenbankobjekt, Einfügen erlaubt, Primärschlüssel, Abfrage erlaubt, Erforderlich, Aktualisieren erlaubt und Nur aktualisieren, wenn NULL.

•	Die folgenden Objektattribute werden bei der Kompilierung ignoriert: Wert aus Objekt kopieren, Ausgangswert, Höchster zulässiger Wert und Niedrigster zulässiger Wert.

•	Sie können einen Wert einem berechneten Objekt nicht direkt mit PL/SQL zuweisen.

•	Endbenutzer können ein berechnetes Objekt nicht einfügen oder ändern.

•	Ein berechnetes Objekt kann kein Rückgabeobjekt in Form einer Werteliste sein.

•	Ein berechnetes Objekt darf kein übergeordnetes oder untergeordnetes Spiegelobjekt sein.

•	Wenn der Wert eines Formelobjekts in einem Master-Block von Werten der Detail-Block-Objekte abhängt - und mehr als eine Zeile des Master-Blocks angezeigt wird -, sind die Werte des berechneten Objekts für die nicht aktuellen Zeilen des Master-Blocks bedeutungslos.

•	Eine Formel (und alle vom Benutzer geschriebenen Unterprogramme, die von der Formel aufgerufen werden) kann keine eingeschränkte vordefinierte Prozedur referenzieren.

•	Eine Formel (und alle vom Benutzer geschriebenen Unterprogramme, die von der Formel aufgerufen werden) kann keine DML-Anweisungen ausführen.

•	Sie können keine Endlosschleifen unter den berechneten Objekten einer Form erstellen.

•	Sie können keinen When-Validate-Item-Trigger in Verbindung mit einem berechneten Objekt verwenden. Da ein berechnetes Objekt per Definition ein gültiges Objekt ist, wird dieses Trigger-Ereignis niemals eintreten.


Beispiele für das Erstellen von berechneten Objekten

Beispiel

/* Example 1: Define a summary calculation to display the

** maximum salary of all employees. Create display item MAX_SAL
** in the EMP block, set its Calculation Mode property to
** Summary, set its Summary Function property to Max, set its
** Summarized Block property to EMP, and set its Summarized
** Item property to SAL.
**
** Example 2: Define a formula calculation to compute an
** employee's gross total compensation. Create display item
** TOTAL_COMP in the EMP block, set its Calculation Mode
** property to Formula, and set its Formula property to the
** following PL/SQL expression:
*/
   :emp.sal + :emp.comm

/* Example 3: Define a Formula item to compute a different
** value for total compensation depending on the block where
** the cursor currently is positioned. Form has 3 blocks:
** 2 data blocks (EMP1 and EMP2), and one control block
** (COMP). Create a display item TOTAL_COMP in the COMP block
** that displays total compensation. Set the Formula property
** for COMP.TOTAL_COMP to an expression (a function call):
*/
   total_comp_func

/* Function TOTAL_COMP_FUNC is defined as follows: */

   FUNCTION total_comp_func RETURN number IS
   BEGIN
     IF :system.cursor_block = 'emp1' THEN
        RETURN :emp1.sal + :emp1.comm;
     END IF;
     IF :system.cursor_block = 'emp2' THEN
        RETURN :emp2.sal + :emp2.comm;
     END IF;
     RETURN null;
   END;

/* Form Builder automatically recalculates COMP.TOTAL_COMP
** whenever a change occurs to the value of :EMP1.SAL,
** :EMP1.COMM, :EMP2.SAL, or :EMP2.COMM.  Form Builder
** will not, however, recalculate COMP.TOTAL_COMP when an
** end user navigates between blocks, since changes to
** system variables don't automatically cause recalculation.
** To ensure that the correct value always is displayed,
** define a PRE-BLOCK trigger at the form level, containing
** the statement:
*/
   RECALCULATE('comp.total_comp');


Oberfläche des Datenbanktrigger-Editors

  Verwandte Themen

Mit dem Datenbanktrigger-Editor können Sie BEFORE/AFTER-Trigger für Tabellen und INSTEAD OF-Trigger für Ansichten und Objektansichten erstellen (wenn Sie bei Oracle8 angemeldet sind).

So definieren Sie einen neuen Trigger:

1	Wählen Sie einen Benutzernamen (ein Schema) aus der Dropdown-Liste Eigentümer Tabelle.

2	Wählen Sie einen Tabellennamen aus der Dropdown-Liste Tabelle.

In der Dropdown-Liste Tabelle finden Sie eine Liste der Tabellennamen, die dem Benutzer gehören, der in dem Feld Eigentümer Tabelle angegeben wird. Wenn Sie in dem Feld Eigentümer Tabelle einen anderen Benutzernamen als Ihren eigenen auswählen, werden in der Dropdown-Liste Tabelle nur die Tabellen angezeigt, zu denen Sie eine Zugriffsberechtigung haben.

(Nur bei Ansichten.) Um einen INSTEAD OF-Trigger für eine Objektansicht zu definieren, klicken Sie auf den Pfeil neben Tabelle, um eine Dropdown-Liste anzuzeigen, und wählen Ansicht:. Danach wählen Sie einen Namen aus der Dropdown-Liste Ansicht.

3	Klicken Sie auf Neu, um einen neuen Datenbank-Trigger zu erstellen.

Dem neuen Trigger wird automatisch ein eindeutiger Triggername (bezogen auf die anderen Trigger in demselben Schema) in der Dropdown-Liste Name zugewiesen. Sie können den Triggernamen ändern.

In der Dropdown-Liste Name wird eine Liste mit Triggernamen angezeigt, die mit der Tabelle (oder der Ansicht) verknüpft sind, die in dem Feld Tabelle (oder Ansicht) dargestellt wird. In der Dropdown-Liste Name werden nur die Namen der Datenbanktrigger angezeigt, die mit den Tabellen verknüpft sind, zu denen Sie eine Zugriffsberechtigung haben.

4	Geben Sie die Triggeroptionen an.

Die folgenden Abschnitte enthalten Informationen über die verschiedenen Optionen, die Sie in dem Datenbanktrigger-Editor benutzen können, um einen Datenbanktrigger zu definieren.

5	Nachdem Sie die Triggeroptionen und die Aktion angegeben haben, klicken Sie auf Speichern, um den Trigger zu kompilieren.

Triggerauslösende Optionen:

Before/After	(Nur bei Tabellen.) Entspricht der Option BEFORE oder AFTER des SQL-Befehls CREATE TRIGGER. Gibt an, wann der Triggerrumpf in bezug auf die triggerauslösende Anweisung ausgelöst wird (z.B. UPDATE, INSERT oder DELETE), die gerade ausgeführt wird. BEFORE-Trigger werden vor der triggerauslösenden Anweisung ausgelöst. AFTER-Trigger werden nach Ausführung der triggerauslösenden Anweisung ausgeführt. BEFORE- und AFTER-Trigger gelten sowohl für Zeilen- als auch für Anweisungstrigger.
Instead Of	(Nur bei Ansichten.) Enspricht der Option INSTEAD OF des SQL-Befehls CREATE TRIGGER. Oracle löst den Trigger aus, anstatt die triggerauslösende Anweisung auszuführen. Der Trigger führt die Einfügen-, Aktualisieren- oder Löschen-Aktionen direkt mit den Basistabellen der Ansicht aus.

Anweisungs-Kontrollkästchen:

UPDATE INSERT DELETE	Gibt den Typ der SQL-Anweisung an (triggerauslösende Anweisung), die den Triggerrumpf auslöst. Die möglichen Optionen sind UPDATE, INSERT und DELETE.  Wählen Sie eines oder mehrere der Kontrollkästchen, um die Option in der triggerauslösenden Anweisung aufzunehmen. Wenn die triggerauslösende Anweisung UPDATE angibt, kann eine optionale Liste mit Spalten in der triggerauslösenden Anweisung aufgenommen werden. Hierzu wird auf die Option Der Spalten unten verwiesen. Wenn mehr als eine Option ausgewählt ist, können Sie die bedingten Prädikate UPDATING, INSERTING und DELETING verwenden, um bestimmte Codeblöcke im Triggerrumpf auszuführen. Hierzu wird auf Triggerrumpf unten verwiesen.

Option Der Spalten:

Der Spalten	(Nur bei Tabellen.) Entspricht der OF-Klausel in der triggerauslösenden UPDATE-Anweisung des SQL-Befehls CREATE TRIGGER. Zeigt eine Liste der Spalten für die Tabelle an, die in dem Feld Tabelle ausgewählt wurde. Diese Liste ist nur aktiv, wenn die triggerauslösende Anweisung UPDATE angibt. Klicken Sie auf eine oder mehrere Spalten in diesem Listenfeld, um anzugeben, daß der Trigger nur ausgelöst wird, wenn eine der ausgewählten Spalten aktualisiert wird. Wenn der Trigger ausgelöst werden soll, sobald eine beliebige Spalte in der Tabelle aktualisiert wird, klicken Sie auf keinen der Spaltennamen in der Liste. Diese Option ist bei INSTEAD OF-Triggern nicht verfügbar. Oracle löst INSTEAD OF-Trigger immer dann aus, wenn ein UPDATE einen Wert in einer Spalte der Ansicht ändert. Oracle8-Objekte: Hier können Sie keine verschachtelten Tabellenspalten bzw. LOB-Spalten angeben.

Option Für jede Anweisung:

Anweisung	Entspricht der Option FOR EACH STATEMENT des SQL-Befehls CREATE TRIGGER.  Bezeichnet den Trigger als Anweisungstrigger. Oracle löst einen Anweisungstrigger nur einmal aus, wenn die triggerauslösende Anweisung ausgegeben wird (unabhängig von der Anzahl von betroffenen Zeilen), wenn die optionale Trigger-Integritätsregel in der WHEN-Klausel erfüllt wird. Diese Option ist bei INSTEAD OF-Triggern nicht verfügbar.

Optionen Für jede Zeile:

Zeile	Entspricht der Option FOR EACH ROW des SQL-Befehls CREATE TRIGGER.  Bezeichnet den Trigger als Zeilentrigger. Oracle löst einen Zeilentrigger einmal für jede Zeile aus, die von der triggerauslösenden Anweisung betroffen ist und die optionale Trigger-Integritätsregel erfüllt, die in der WHEN-Klausel angegeben wird.
Referenziert	Gibt Korrerlationsnamen an. Sie können Korrelationsnamen im Triggerrumpf und in der WHEN-Klausel eines Zeilentriggers angeben, um alte und neue Werte der aktuellen Zeile speziell zu referenzieren. Die Standard-Korrelationsnamen sind OLD und NEW. Wenn Ihr Zeilentrigger mit einer Tabelle mit der Bezeichnung OLD oder NEW verknüpft ist, benutzen Sie diese Option, um andere Korrelationsnamen anzugeben, damit es zu  keinem Konflikt zwischen dem Tabellennamen und dem Korrelationsnamen kommt. Gilt nur für Zeilentrigger.
OLD als	Gibt einen Korrelationsnamen an, um einen Konflikt zwischen dem Korrelationsnamen und einer Tabelle zu vermeiden, die den Namen OLD hat.
NEU als	Gibt einen Korrelationsnamen an, um einen Konflikt zwischen dem Korrelationsnamen und einer Tabelle zu vermeiden, die den Namen NEW hat.
Wenn	(Nur bei Tabellen.) Entspricht einem Booleschen SQL-Ausdruck in der WHEN-Klausel des SQL-Befehls CREATE TRIGGER. Gilt nur für Zeilentrigger. Gibt eine optionale Triggereinschränkung an. Wenn er aufgenommen ist, wird der SQL-Ausdruck für jede Zeile ausgewertet, die von dem Trigger betroffen ist. Wenn die Auswertung des Ausdrucks TRUE für eine Zeile ergibt, wird der Triggerrumpf ausgelöst. Wenn die Auswertung des Ausdrucks für eine Zeile FALSE der NOT TRUE ergibt (d.h. unbekannt, wie bei Nullen), wird der Triggerrumpf nicht ausgelöst. Oracle8-Objekte: Sie können Objektspalten oder deren Attribute, VARRAY, verschachtelte Tabellen- oder LOB-Spalten referenzieren. Sie können keine PL/SQL-Funktionen oder -Methoden in der Triggereinschränkung aufrufen.

Angabe der Triggeraktion in:

Triggerrumpf	Der PL/SQL-Block, den Oracle zur Auslösung des Triggers ausführt. Hier handelt es sich um ein mehrzeiliges Textfeld mit Bildlaufmöglichkeit, in dem Sie einen PL/SQL-Block eingeben und bearbeiten können. Triggerrümpfe können SQL- und PL/SQL-Anweisungen umfassen. Die Schlüsselwörter BEGIN und END sind erforderlich. Der Triggerrumpf für Zeilentrigger kann Korrelationsnamen und die Option REFERENZIERT sowie die bedingten Prädikate INSERTING, DELETING und UPDATING enthalten. Wenn mehr als ein Typ einer triggerauslösenden Anweisung für den Zeilentrigger angegeben wird, z.B. INSERT und UPDATE, können Sie die folgenden Bedingungen aufnehmen, um bestimmte Codeblöcke im Triggerrumpf auszuführen: IF INSERTING THEN...END IF; IF UPDATING THEN...END IF;

Die Schaltflächen im Editor sind:

Neu	Erstellt einen neuen Datenbanktrigger. Klicken Sie auf Neu, um mit der Definition eines neuen Triggers zu beginnen.
Speichern	Speichert die Triggeroptionen und kompiliert die Quelle, die im Feld Triggerrumpf angezeigt wird. Als Folge der Kompilierung generierte Fehlermeldungen werden in dem Meldungsfeld angezeigt.
Wiederherstellen	Stellt den Datenbanktrigger in dem Status wieder her, den er beim letzten Speichern- oder Wiederherstellenvorgang hatte.
Löschen	Löscht den aktuellen Datenbanktrigger mit einer entsprechenden Bestätigung aus der Datenbank.
Schließen	Schließt den Datenbanktrigger-Editor.
Hilfe	Zeigt dieses Hilfethema an.


Über Datenbanktrigger

Datenbanktrigger sind Prozeduren, die in der Datenbank gespeichert sind und implizit ausgeführt werden, wenn eine triggerauslösende Anweisung, wie z.B. INSERT, UPDATE oder DELETE für die verknüpfte Tabelle ausgegeben wird. Trigger können nur auf Tabellen und nicht auf Ansichten definiert werden. Allerdings werden Trigger auf der Basistabelle einer Ansicht ausgelöst, wenn eine INSERT-, UPDATE- oder DELETE-Anweisung für die Ansicht ausgegeben wird.

Ein Trigger kann SQL- und PL/SQL-Anweisungen enthalten, die als eine Einheit ausgeführt werden. Außerdem können sie andere gespeicherte Prozeduren aufrufen. Benutzen Sie Trigger nur, wenn erforderlich. Die übermäßige Benutzung von Triggern kann zu kaskadierenden oder rekursiven Triggern führen. Wenn z.B. ein Trigger ausgelöst wird, kann eine SQL-Anweisung im Triggerrumpf potentiell andere Trigger auslösen.

Mit Datenbanktriggern können Sie komplexe Geschäftsregeln erzwingen und sicherstellen, daß sich alle Anwendungen auf dieselbe Weise verhalten. Beim Entwurf von Triggern berücksichtigen Sie folgende Richtlinien:

•	Benutzen Sie Trigger, um sicherzustellen, daß die zugehörigen Aktionen ausgeführt werden, wenn ein bestimmter Vorgang ausgeführt wird.

•	Benutzen Sie Datenbanktrigger nur für zentralisierte, globale Vorgänge, die für die triggerauslösende Anweisung ausgelöst werden sollen, unabhängig davon, welcher Benutzer oder welche Datenbankanwendung die Anweisung ausgibt.

•	Definieren Sie keine Trigger, die eine schon in Oracle integrierte Funktionalität duplizieren. So definieren Sie z.B. keine Trigger, um Regeln der Datenintegrität zu erzwingen, die jederzeit mit deklarativen Integritätsregeln erzwungen werden können.

•	Begrenzen Sie die Größe von Triggern (60 Zeilen oder weniger werden empfohlen). Wenn die Logik für Trigger mehr als 60 Zeilen mit PL/SQL-Code erfordert, wird empfohlen, den größten Teil des Codes in einer gespeicherten Prozedur aufzunehmen und die Prozedur dann aus dem Trigger aufzurufen.

•	Achten Sie darauf, daß Sie keine rekursiven Trigger erstellen. Wenn Sie z.B. einen AFTER UPDATE-Anweisungstrigger auf einer EMP-Tabelle erstellen, die selbst eine UPDATE-Anweisung für EMP ausgibt, wird der Trigger rekursiv ausgelöst, bis kein Speicherplatz mehr vorhanden ist.

Zusätzliche Informationen über die Benutzung von Triggern in Anwendungen finden Sie im racle8 Application Developer's Guide. Weitere Informationen über die verschiedenen Triggertypen finden Sie im Oracle8 Concepts Manual.


Zeigt die Benutzer-ID des Eigentümers der aktuellen Datenbanktabelle an. Klicken Sie auf den Pfeil rechts neben diesem Feld, um eine Dropdown-Liste der Benutzer aufzurufen.


Zeigt den Namen der aktuellen Datenbanktabelle oder Ansicht an. Klicken Sie auf den Pfeil rechts neben diesem Feld, um eine Dropdown-Liste der Tabellen oder Ansichten anzuzeigen, die dem Benutzer gehören, der in dem Feld Eigentümer Tabelle angegeben wird. Klicken Sie auf eine Tabelle oder Ansicht in der Liste, um sie auszuwählen. In der Lste werden nur die Namen der Datenbanktabellen oder Ansichten angezeigt, zu denen Sie Zugriff haben. (Ansichten sind nur bei Oracle8 zutreffend.)


Zeigt den Namen des aktuellen Datenbanktriggers an. Klicken Sie auf den Pfeil rechts neben diesem Feld, um eine Dropdown-Liste der Triggernamen für die Tabelle oder Ansicht in dem Feld Tabelle/Ansicht anzuzeigen. In der Namensliste werden nur die Namen der Datenbanktrigger angezeigt, zu denen Sie Zugriff haben.


Gibt an, wann der Triggerrumpf in bezug auf die auslösende Anweisung ausgelöst wird (z.B. UPDATE, INSERT oder DELETE), die gerade ausgeführt wird. Diese Gruppe mit Optionsschaltflächen entspricht den Optionen BEFORE/AFTER und INSTEAD OF des SQL-Befehls CREATE TRIGGER.


Gibt an, daß der Trigger vor der auslösenden Anweisung ausgelöst wird.


Gibt an, daß der Triggerrumpf nach der auslösenden Anweisung ausgelöst wird.


Gibt an, daß Oracle den Trigger auslöst, anstatt die triggerauslösende Anweisung auszuführen. Nur bei Ansichten.


Gibt den Typ von SQL-Anweisung an, der den Triggerrumpf auslöst. Die möglichen Optionen sind UPDATE, INSERT und DELETE. Nur bei Tabellen.


Gibt an, daß der Trigger bei einem INSERT-Ereignis ausgelöst wird.


Gibt an, daß der Trigger bei einem DELETE-Ereignis ausgelöst wird.


Gibt an, daß der Trigger bei einem UPDATE-Ereignis ausgelöst wird.


Zeigt eine Liste der Spalten für die Tabelle an, die in dem Feld Tabelle ausgewählt wurde. Diese Liste ist nur aktiv, wenn die Option UPDATE im Feld Anweisung aktiviert ist. Nur bei Tabellen.


Gibt einen Zeilentrigger an. Entspricht der Option FOR EACH ROW des Befehls CREATE TRIGGER.


Gibt einen Anweisungstrigger an. Entspricht der Option FOR EACH STATEMENT des Befehls CREATE TRIGGER.


Gibt einen Korrelationsnamen an, um einen Namenskonflikt zwischen den Korrelationsnamen und einer Tabelle oder Ansicht zu vermeiden, die den Namen OLD hat.


Gibt einen Korrelationsnamen an, um einen Namenskonflikt zwischen dem Korrelationsnamen und einer Tabelle oder Ansicht zu vermeiden, die den Namen NEW hat.


Gibt einen Booleschen SQL-Ausdruck in einer WHEN-Klausel an. Wenn er aufgenommen ist, wird der Ausdruck in der WHEN-Klausel für jede Zeile ausgewertet, die von dem Trigger betroffen ist. Wenn die Auswertung des Ausdrucks TRUE für eine Zeile ergibt, wird der Triggerrumpf ausgelöst. Wenn der Ausdruck für eine Zeile FALSE oder NOT TRUE ergibt (d.h. unbekannt, wie bei Nullen), wird der Triggerrumpf nicht ausgelöst. Nur bei Tabellen.


Hier handelt es sich um ein mehrzeiliges Auswahltextfeld, in dem Sie einen PL/SQL-Datenbanktriggerrumpf eingeben und bearbeiten können. Triggerrümpfe sind PL/SQL-Blöcke, die SQL- und PL/SQL-Anweisungen umfassen können.


Erstellt einen neuen, unbenannten Datenbanktrigger.


Speichert die Triggeroptionen und kompiliert die Quelle, die in dem Feld Triggerrumpf angezeigt wird. Fehlermeldungen, die als Folge der Kompilierung generiert werden, werden in einem separaten Meldungsfeld angezeigt.


Stellt den Datenbanktrigger in dem Status wieder her, den er beim letzten Speichern- oder Wiederherstellenvorgang hatte. Wenn kein Speichern- oder Wiederherstellenvorgang eingetreten ist, wird der Datenbanktrigger wieder in den Originalzustand versetzt.


Löscht den aktuellen Datenbanktrigger mit einer entsprechenden Bestätigung aus der Datenbank.


Oberfläche des PL/SQL-Interpreters

Der PL/SQL-Interpreter ist ein Debugging-Arbeitsbereich, in dem Sie Quellcode anzeigen, Debug-Aktionen erstellen, Programmblöcke sowie Interpreter-Befehle, PL/SQL- und SQL-Anweisungen ausführen können.

Standardmäßig sind immer zwei Ausschnitte im PL/SQL-Interpreter geöffnet: der Quellausschnitt und der Interpreter-Ausschnitt.

Standardmäßige Schaltflächen in der Symbolleiste  Alle Ausschnitte im Interpreter benutzen dieselbe Symbolleiste. Mit Ausnahme von Schließen werden die folgenden Schaltflächen nur während der unterbrochenen Ausführung eines Programmblocks aktiviert und werden für das Debugging benutzt.

Hinein		Nimmt die Ausführung des unterbrochenen Programmblocks bis zur nächsten ausführbaren Anweisung wieder auf.
Über		Nimmt die Ausführung des unterbrochenen Programmblocks bis zur nächsten ausführbaren Anweisung auf, wobei über Aufrufe von verschachtelten Unterprogrammen gegangen wird.
Heraus		Nimmt die Ausführung eines verschachtelten Unterprogramms wieder auf, wobei die Ausführung bei der nächsten ausführbaren Anweisung in dem aufrufenden Programmblock unterbrochen wird.
Go		Nimmt die Ausführung des unterbrochenen Programmblocks bis zum Ende des Programmblocks oder bis zur nächsten Debug-Aktion wieder auf.
Zurücksetzen		Beendet die aktuelle Debug-Ebene. Wenn die aktuelle Debug-Ebene 1 ist, wird die unterbrochene Ausführung abgebrochen.
Schließen		Schließt das PL/SQL-Interpreter-Fenster.
Hilfe		Zeigt dieses Hilfethema an.

Quellausschnitt  Im Quellausschnitt wird eine schreibgeschützte Kopie des gerade ausgewählten Programmblocks angezeigt. Schlüsselwörter, Kommentare, Zeichenfolgen und Symbole haben unterschiedliche Farben. Die erste Spalte am linken Rand ist für Symbole reserviert. Quellzeilen werden in der zweiten Spalte numeriert.

Folgende Symbole können angezeigt werden:

Gelber Pfeil		Gibt die aktuelle Ausführungsposition oder PC (Program Counter) an.
Rote Kugel		Gibt einen aktivierten Programmstop oder Trigger an.
Grüne Kugel		Gibt einen deaktivierten Programmstop oder Trigger an.

Außerdem können folgende Symbole im Quellausschnitt angezeigt werden:

|	Gibt die aktuelle Quellposition an. Die aktuelle Quellposition ändert sich je nach Interpreter-Befehlen (z.B. LIST) oder wenn die Ausführung des Programmblocks durch eine Debug-Aktion unterbrochen wird (z.B. einen Programmstop).
B(n)	Gibt die Position eines Programmstops an, wobei n die ID der entsprechenden Debug-Aktion ist.
T(n)	Gibt die Position eines Debug-Triggers an, wobei n die ID der entsprechenden Debug-Aktion ist.

Außerdem können im Quellausschnitt die folgenden Befehle aus einem Popup-Menü aufgerufen werden (wird in Windows mit der rechten Maustaste angezeigt):

Programmstop	Zeigt das Dialogfeld Programmstop an, in dem Sie einen neuen Programmstop definieren können.
Trigger	Zeigt das Dialogfeld Trigger an, in dem Sie einen neuen Debug-Trigger definieren können.
Bearbeiten	Zeigt den Programmblock-Editor an, in dem Sie den aktuellen Programmblock bearbeiten können.

Hinweis:  Nicht alle Systeme unterstützen Popup-Menüs. Die obigen Befehle können auch aus dem Menü Debug aufgerufen werden.

Bildschirmteiler  Mit Bildschirmteilern können Sie den relativen Platz ändern, der von jedem Ausschnitt im Interpreter belegt wird. Wenn der Interpreter das erste Mal angezeigt wird, befindet sich auch zwischen dem Quellausschnitt und dem Interpreter-Ausschnitt ein Bildschirmteiler. Wenn Sie den modalen Interpreter verwenden oder den Navigator-Ausschnitt im nicht-modalen Interpreter eingefügt haben, wird ein zweiter Bildschirmteiler angezeigt.

Interpreter-Ausschnitt  Der Interpreter-Ausschnitt stellt eine Befehlszeilenschnittstelle für PL/SQL, Procedure Builder und SQL dar. Sie können PL/SQL-Anweisungen oder -Blöcke, Befehle von Procedure Builder Interpreter oder SQL-Anweisungen im Anschluß an den PL/SQL> Prompt eingeben. (SQL*Plus-Anweisungen und -Syntax werden nicht unterstützt.)

Mehrzeilige Befehle  Während Sie die PL/SQL-Syntax bei dem PL/SQL> Prompt eingeben, können Sie jederzeit die Eingabetaste drücken, um einen zweiten Prompt in Form von +> aufzurufen. Sie können beliebig viele aufeinanderfolgende sekundäre Prompts anzeigen, bevor Sie den Code mit einem abschließenden Semikolon (;) ausführen.

Debug-Ebenen  Wenn die Programmausführung durch eine Debug-Aktion unterbrochen wird, legt der Interpreter eine Debug-Ebene fest. Auf einer Debug-Ebene können Sie Befehle und PL/SQL-Anweisungen eingeben, die wiederum unterbrochen werden können, so daß es zu verschachtelten Debug-Ebenen kommt. Die aktuelle Debug-Ebene wird durch einen neuen Prompt im Interpreter-Ausschnitt reflektiert, der ein Präfix mit der Nummer der aktuellen Debug-Ebene enthält. So wird z.B. hier der Interpreter-Prompt auf Debug-Ebene 1 dargestellt:

(debug 1)PL/SQL>

Popup-Menü  Der Interpreter-Ausschnitt enthält die folgenden Befehle aus einem Popup-Menü (wird bei Windows mit der rechten Maustaste aufgerufen):

Löschen	Verwirft den gesamten Text im Interpreter-Ausschnitt und gibt einen neuen Prompt aus.
Neuer Prompt	Gibt einen neuen Prompt im Interpreter-Ausschnitt aus. Jede Eingabe nach dem vorherigen Prompt wird ignoriert.
Hinweis:  Nicht alle Systeme unterstützen Popup-Menüs.

Navigator-Ausschnitt  In dem Navigator-Ausschnitt können Sie den aktuellen Aufrufstapel anzeigen sowie Werte von lokalen Variablen und Parametern im aktuellen Geltungsbereich anzeigen und ändern, während Sie debuggen.

Sie können einen Navigator-Ausschnitt zwischen dem Quellausschnitt und dem Interpreter-Ausschnitt einfügen, wenn Sie beim Debuggen von Programmblöcken ganz im Interpreter arbeiten möchten. Um einen Navigator-Ausschnitt einzufügen, wählen Sie Ansicht [image] Navigator-Ausschnitt aus dem Menü. Um den Navigator-Ausschnitt zu verbergen, wählen Sie denselben Befehl erneut. Sie können jeden anderen Ausschnitt ebenfalls verbergen, indem Sie den entsprechenden Befehl aus dem Menü Ansicht auswählen.

Navigator-Symbolleiste  Wenn der Navigator-Ausschnitt angezeigt wird, werden außerdem folgende Schaltflächen in der Symbolleiste angezeigt:

Erstellen		Erstellt eine neue Instanz des gerade ausgewählten Objekts bzw. Knotens.
Löschen		Löscht das ausgewählte Objekt mit einer entsprechenden Bestätigung.
Einblenden		Blendet die erste Unterknotenebene für den gerade ausgewählten Knoten ein.
Ausblenden		Blendet die aktuelle Unterknotenebene des momentan ausgewählten Knotens aus.
Alles einblenden		Blendet alle Unterknotenebenen für den momentan ausgewählten Knoten ein. Blendet jedoch Datentyp- und Attributknoten von Oracle8 nicht rekursiv ein.
Alles ausblenden		Blendet alle Unterknotenebenen für den momentan ausgewählten Knoten aus.
Suchen (Textfeld)		Ermöglicht die Suche nach einem Objekt im Navigator, indem der Name des Objekts ganz oder teilweise eingegeben wird.
Abwärts		Sucht nach dem nächsten Vorkommen der Suchkriterien, die im Feld Suchen angegeben werden.
Aufwärts		Sucht nach dem vorherigen Vorkommen der Suchkriterien, die im Feld Suchen angegeben werden.


Nimmt die Ausführung des unterbrochenen Programmblocks bis zur nächsten ausführbaren Anweisung wieder auf.


Nimmt die Ausführung des unterbrochenen Programmblocks bis zur nächsten ausführbaren Anweisung auf, wobei über Aufrufe von verschachtelten Unterprogrammen gegangen wird.


Nimmt die Ausführung eines verschachtelten Unterprogramms wieder auf, wobei die Ausführung bei der nächsten ausführbaren Anweisung in dem aufrufenden Programmblock unterbrochen wird.


Nimmt die Ausführung des unterbrochenen Programmblocks bis zum Ende des Programmblocks oder bis zur nächsten Debug-Aktion wieder auf.


Beendet die aktuelle Debug-Ebene. Wenn die aktuelle Debug-Ebene 1 ist, wird die unterbrochene Ausführung abgebrochen.


Erstellt eine neue Instanz des gerade ausgewählten Objekts bzw. Knotens.


Löscht das ausgewählte Objekt mit Bestätigung.


Blendet die erste Ebene des Unterknotens für den gerade ausgewählten Knoten ein.


Blendet die aktuelle Ebene des Unterknotens des gerade ausgewählten Knotens aus.


Blendet alle Unterknotenebenen für den gerade ausgewählten Knoten ein. Datentyp- und Attributknoten von Oracle8 werden nicht rekursiv eingeblendet.


Blendet alle Unterknotenebenen für den gerade ausgewählten Knoten aus.


Geben Sie den Namen eines Objekts ein, nach dem im Navigator gesucht werden soll.


Gibt den Namen des aktuellen Programmblocks an und gibt an, ob er sich auf dem Client oder dem Server befindet.


Im Quellausschnitt wird eine schreibgeschützte Kopie des gerade ausgewählten Programmblocks angezeigt. Quellzeilen werden in der zweiten Spalte numeriert.


Mit Bildschirmteilern können Sie den relativen Platz ändern, der von jedem Ausschnitt im Interpreter belegt wird. Wenn der Interpreter das erste Mal angezeigt wird, befindet sich zwischen dem Quellausschnitt und dem Interpreter-Ausschnitt ein Bildschirmteiler. Wenn Sie den modalen Interpreter verwenden oder den Navigator-Ausschnitt im nicht-modalen Interpreter eingefügt haben, wird ein zweiter Bildschirmteiler angezeigt.


In dem Objektnavigator-Ausschnitt können Sie den aktuellen Aufrufstapel anzeigen und die Werte von lokalen Variablen und Parametern im aktuellen Geltungsbereich anzeigen und ändern, während Sie debuggen.


Der Interpreter-Ausschnitt stellt eine Befehlszeilenschnittstelle für PL/SQL, Procedure Builder und SQL dar. Sie können PL/SQL-Anweisungen oder Blöcke, Befehle von Procedure Builder Interpreter oder SQL-Anweisungen im Anschluß an den PL/SQL> Prompt eingeben.


Über das PL/SQL V1-Konvertierungsdienstprogramm

  Verwandte Themen

Mit dem PL/SQL V1-Konvertierungsdienstprogramm können Sie die Umstellung von Anwendungen automatisieren, die in PL/SQL V1 oder V2 geschrieben wurden.

Wenn Trigger, Programmblöcke und PL/SQL-Blöcke in den Forms, Berichten und grafischen Anwendungen  in PL/SQL V1 oder V2 geschrieben sind, muß der Code umgestellt werden. Wenn dies nicht geschieht, kann es zu zwei Arten von Problemen kommen:

•	Ein Teil des PL/SQL V1- oder V2-Codes ist in späteren Versionen syntaktisch nicht gültig und erzeugt einen Kompilierungsfehler.

•	Ein Teil des PL/SQL V1- oder V2-Codes ist in späteren Versionen syntaktisch korrekt, hat jedoch eine andere Bedeutung, so daß es zu einem unerwarteten oder fehlerhaften Verhalten kommt.

Das Konvertierungsdienstprogramm löst diese beiden Probleme.


Wie funktioniert das PL/SQL V1-Konvertierungsdienstprogramm
Wie funktioniert das PL/SQLV1-Konvertierungsdienstprogramm?

  Verwandte Themen

Sie können das Konvertierungsdienstprogramm interaktiv oder im Stapelmodus benutzen. In beiden Fällen steuern Sie, ob das Dienstprogramm Ihren Code aktualisiert oder nicht. Der interaktive Modus bietet einen größeren Grad an Flexibilität, da Sie festlegen können, daß das Dienstprogramm einige Änderungen ausführt, während Sie andere manuell ausführen. Im Stapelmodus führt das Dienstprogramm entweder alle Konvertierungen oder gar keine Konvertierungen durch. Unabhängig davon, ob die Konvertierung im interaktiven oder Stapelmodus erfolgt, wird eine Zusammenfassung des Konvertierungsvorgangs in eine Protokolldatei mit der Bezeichnung module.plg geschrieben.

Um das Dienstprogramm interaktiv auszuführen, öffnen Sie gespeicherte Forms, Berichte, grafische Anwendungen oder Bibliotheken, die PL/SQL V1- oder V2-Code enthalten, in dem entsprechenden Builder.

Wenn Sie das Dienstprogramm im Stapelmodus ausführen, wird auf die folgenden Themen verwiesen:

•	Forms im Stapelmodus konvertieren

•	Berichte im Stapelmodus konvertieren

•	Grafische Anwendungen im Stapelmodus konvertieren

Tip

Während das Konvertierungsdienstprogramm Ihren Code umstellen kann, um verschiedene Imkompatibilitäten von V1 oder V2 zu lösen, gibt es doch einige Fälle, die dieses Dienstprogramm nicht lösen kann. Diese führen zu Compiler-Fehlern, die im Dialogfeld Zusammenfassung Konvertierung von PL/SQL V1 (im interaktiven Modus) oder in der Protokolldatei aufgeführt werden, damit Sie diese manuell lösen können. Weitere Informationen finden Sie unter Was kann das PL/SQL V1-Konvertierungsdienstprogramm nicht konvertieren?.

Nachdem das Dienstprogramm eine Anwendung konvertiert und gespeichert hat, wird es für diese Anwendung nie mehr aufgerufen, selbst wenn Sie festgelegt haben, daß alle empfohlenen Konvertierungen ignoriert werden sollen. Dadurch wird verhindert, daß das Dienstprogramm Änderungen überschreibt, die Sie manuell vorgenommen haben.


Bevor Sie entscheiden, welchen Modus Sie benutzen, versuchen Sie, einige Module jedes Typs interaktiv zu konvertieren. Dadurch erhalten Sie eine Vorstellung der Probleme, die bei jedem Modultyp auftreten können, und können Sie entscheiden, wie Sie verfahren. So könnten Sie z.B. feststellen, daß Ihre Forms die sorgfältige Überwachung benötigen, die der interaktive Modus bietet, während die Berichte und PL/SQL-Bibliotheken problemlos im Stapelmodus konvertiert werden können.


PL/SQL V1-Konvertierungsdienstprogramm interaktiv verwenden

  Verwandte Themen

Um das Konvertierungsdienstprogramm interaktiv auszuführen, öffnen Sie Forms, Berichte, grafische Anwendungen oder Bibliotheken, die PL/SQL-Code V1oder V2 enthalten, in dem entsprechenden Builder, und speichern Sie die Anwendung dann.

Wichtig:

•	Nachdem das Konvertierungsdienstprogramm eine Anwendung konvertiert und gespeichert hat, kann das Dienstprogramm nie wieder für diese Anwendung aufgerufen werden  - selbst wenn Sie festlegen, daß alle empfohlenen Konvertierungen ignoriert werden sollen. Dadurch wird verhindert, daß das Dienstprogramm Änderungen überschreibt, die Sie manuell durchgeführt haben.

Jede PL/SQL V1- oder V2-Anweisung in Ihrem Trigger, PL/SQL-Block oder Programmblock wird im Dialogfeld Konvertierung angezeigt. Dieses Dialogfeld enthält auch die Aktion, die das Konvertierungsdienstprogramm ausführt, wenn Sie festlegen, daß die Konvertierung durchgeführt werden soll. Sie haben vollständige Kontrolle darüber, ob die vorgeschlagene Änderung akzeptiert, ignoriert, die ganze Anwendung konvertiert oder der ganze Vorgang gestoppt werden soll. (Sie können auch das PL/SQL V1-Dialogfeld Konvertierungsoptionen benutzen, um die Parameter festzulegen, die den Konvertierungsvorgang im Hintergrund steuern.)

Das Dienstprogramm verfolgt die von Ihnen vorgenommen Änderungen (sowie die Änderungen, die Sie nicht durchführen wollten) und faßt diese am Ende des Konvertierungsvorgangs in einer Protokolldatei mit der Bezeichnung module.plg zusammen. Sie können dann den PL/SQL-Editor aufrufen, um die Anwendung manuell zu aktualisieren.)


PL/SQL V1-Konvertierungsdienstprogramm im Stapelmodus verwenden

  Verwandte Themen

Wenn Sie das Dienstprogramm im Stapelmodus ausführen möchten, wird auf die folgenden Themen verwiesen:

•	Forms im Stapelmodus konvertieren

•	Berichte im Stapelmodus konvertieren

•	Grafische Anwendungen im Stapelmodus konvertieren


Forms im Stapelmodus konvertieren

  Verwandte Themen

So konvertieren Sie eine Form im Stapelmodus:

1	Stellen Sie sicher, daß Sie alle der Form zugeordneten PL/SQL-Bibliotheken konvertiert haben.

2	Führen Sie einen der folgenden Schritte aus:

•	Führen Sie die GUI-Version von Forms Compiler aus.

•	Führen Sie Forms Compiler aus der Befehlszeile aus.

Unabhängig von der ausgewählten Methode wird eine Zusammenfassung des Konvertierungsvorgangs automatisch in die Protokolldatei module.plg geschrieben, wobei module der Name des konvertierten Formmoduls ist.

Verwendungshinweis:

•	Nachdem das Konvertierungsdienstprogramm eine Anwendung konvertiert und gespeichert hat, kann es nie mehr für diese Anwendung aufgerufen werden - selbst wenn Sie festlegen, daß alle empfohlenen Konvertierungen ignoriert werden sollen. Dadurch wird verhindert, daß das Dienstprogramm Änderungen überschreibt, die Sie manuell vorgenommen haben.


Forms mit der GUI-Version von Forms Compiler konvertieren

So konvertieren Sie eine Form mit der GUI-Version des Forms Compilers:

1	Doppelklicken Sie auf das Symbol Form Compiler.

2	Wählen Sie den entsprechenden Modultyp und Modulzugriff.

3	 Wählen Sie das Kontrollkästchen PL/SQL von V1 zu V2.3 umstellen?.

4	Klicken Sie auf OK.


Forms aus der Befehlszeile konvertieren

  Verwandte Themen

So konvertieren Sie eine Form mit dem Form Compiler auf der Befehlszeile:

  Geben Sie folgenden Befehl auf der Befehlszeile ein:

<Form Compiler> MODULE=form BATCH=yes UPGRADE_PLSQL=yes UPGRADE=yes

wobei:

<Form Compiler>	Der Name der ausführbaren Form Compiler-Datei auf Ihrer Plattform ist.
form	Der Name der zu konvertierenden Form ist.
Verwendungshinweise:

•	Wenn Sie UPGRADE_PLSQL=YES angeben, ohne UPGRADE=YES anzugeben, wird eine Fehlermeldung generiert. Da Sie PL/SQL in einer Form nicht konvertieren können, ohne die ganze Form auf 6.0 umzustellen, muß UPGRADE=YES angegeben werden, wenn UPGRADE_PLSQL= YES ist.

•	Wenn Sie viele grafische Anwendungen gleichzeitig konvertieren möchten, verwenden Sie Project Builder. In dem Hilfethema zur Auswahl der Umstellungsmethode in Project Builder finden Sie entsprechende Instruktionen.


Einer Form zugeordnete PL/SQL-Bibliotheken konvertieren

So konvertieren Sie eine PL/SQL-Bibliothek interaktiv:

  Öffnen Sie die Bibliothek in Form Builder, und speichern Sie sie dann.

So konvertieren Sie eine PL/SQL-Bibliothek mit der GUI-Version von Form Compiler:

1	Doppelklicken Sie auf das Symbol Form Compiler.

2	Wählen Sie im Feld Datei die zu konvertierende PL/SQL-Bibliothek aus.

3	Stellen Sie sicher, daß die Zieldatei im Feld Ausgabe in Datei schreiben die Erweiterung .PLL hat.

4	Klicken Sie auf OK.

So konvertieren Sie eine PL/SQL-Bibliothek mit Form Compiler auf der Befehlszeile:

  Geben Sie folgenden Befehl auf der Befehlszeile ein:

<Form Compiler> MODULE=library BATCH=yes UPGRADE_PLSQL=yes UPGRADE=yes

wobei:

<Form Compiler>	Der Name der ausführbaren Form Compiler-Datei auf Ihrer Plattform ist.
library	Der Name der zu konvertierenden Bibliothek ist.
Verwendungshinweis:

•	Wenn Sie UPGRADE_PLSQL=YES angeben, ohne auch UPGRADE=YES anzugeben, wird eine Fehlermeldung generiert. Da Sie PL/SQL in einer Form nicht konvertieren können, ohne die ganze Form auf 6.0 umzustellen, muß UPGRADE=YES angegeben werden, wenn UPGRADE_PLSQL= YES ist.

•	Wenn Sie viele grafische Anwendungen gleichzeitig konvertieren möchten, verwenden Sie Project Builder. In dem Hilfethema zur Auswahl der Umstellungsmethode in Project Builder finden Sie entsprechende Instruktionen.


Form Builder Compiler-Parameter angeben

In dieser Tabelle wird beschrieben, wie sich verschiedene Kombinationen der Parameter BATCH, UPGRADE und UPGRADE_PLSQL auf den Konvertierungsvorgang auswirken:

BATCH	UPGRADE_PLSQL	UPGRADE	Verhalten
NO	YES	YES	PL/SQL in Form wird im Stapelmodus konvertiert (auch wenn BATCH=NO ist). Das Dienstprogramm kann außerhalb von Builder nicht interaktiv aufgerufen werden.
YES	YES	YES	PL/SQL in Form wird im Stapelmodus konvertiert.
NO	NO	YES	PL/SQL in Form wird nicht konvertiert, allerdings wird eine Liste mit empfohlenen Konvertierungen in module.plg geschrieben. Die restliche Form wird auf Forms 6i umgestellt.
YES	NO	YES	PL/SQL in Form wird nicht konvertiert, allerdings wird eine Liste mit empfohlenen Konvertierungen in module.plg geschrieben. Die restliche Form wird auf Forms 6i umgestellt.
NO	NO	NO	Wird benutzt, um eine neue FMX zu kompilieren, ohne die FMB zu ändern. Wenn die Form 1.3 PL/SQL enthält, werden möglicherweise Compiler-Fehler angezeigt, oder der Code verhält sich in V2.3 anders.
YES	NO	NO	Wird benutzt, um eine neue FMX zu kompilieren ohne die FMB zu ändern. Wenn die Form 1.3 PL/SQL enthält, werden möglicherweise Compiler-Fehler angezeigt, oder der Code verhält sich möglicherweise in V2.3 anders.
Wichtig:

Wenn Sie von 45FMT zu 60FMB umstellen und die Option UPGRADE_PLSQL nicht angeben, wird der PL/SQL-Code in der Form nicht konvertiert. Statt dessen wird eine Liste mit empfohlenen Konvertierungen in eine Log-Datei geschrieben. Diese Log-Datei wird im aktuellen Arbeitsverzeichnis gespeichert, das möglicherweise nicht identisch mit dem Verzeichnis ist, in dem die FMT-Datei gespeichert ist.


Berichte im Stapelmodus konvertieren

So konvertieren Sie einen Bericht im Stapelmodus:

1	Stellen Sie sicher, daß Sie alle dem Bericht zugeordneten PL/SQL-Bibliotheken konvertiert haben.

2	Führen Sie einen der folgenden Schritte aus:

•	Führen Sie die GUI-Version von Report Compiler aus.

•	Führen Sie den Report Compiler aus der Befehlszeile aus.

Unabhängig von der ausgewählten Methode wird automatisch eine Zusammenfassung des Konvertierungsvorgangs in die Protokolldatei module.plg geschrieben, wobei module der Name des konvertierten Berichtmoduls ist. Für jedes Modul wird ein separates Protokoll generiert.

Verwendungshinweis:

•	Nachdem das Konvertierungsdienstprogramm eine Anwendung konvertiert und gespeichert hat, kann es nie wieder für diese Anwendung aufgerufen werden - selbst wenn Sie festlegen, daß alle empfohlenen Konvertierungen ignoriert werden sollen. Dadurch wird verhindert, daß das Dienstprogramm Änderungen überschreibt, die Sie manuell durchgeführt haben.


Berichte mit der GUI-Version von Report Compiler konvertieren
Berichte mit der GUI-Version von Reports Compiler konvertieren

So konvertieren Sie einen oder mehrere Berichte mit der GUI-Version von Reports Compiler:

1	Doppelklicken Sie auf das Symbol Report Compiler.

2	Wählen Sie im Feld Dokumenttyp Bericht aus.

3	Wählen Sie den entsprechenden Quell- und Ziel-Typ.

4	Mit der Schaltfläche Durchsuchen im Feld Quelle suchen Sie nach den zu konvertierenden Berichten.

5	Mit der Schaltfläche Durchsuchen im Feld Ziel wählen Sie das Ziel für den konvertierten Bericht aus.

6	Klicken Sie auf OK.


Berichte aus der Befehlszeile konvertieren

So konvertieren Sie einen oder mehrere Berichte aus der Befehlszeile:

  Geben Sie auf der Befehlszeile folgenden Befehl ein:

<Report Compiler> SOURCE=rep1,rep2, UPGRADE_PLSQL=yes

wobei:

<Report Compiler>	Der Name der ausführbaren Report Compiler-Datei auf Ihrer Plattform ist.
rep1,rep2,	Der Name des bzw. der zu konvertierenden Berichte ist.


Einem Bericht zugeordnete PL/SQL-Bibliotheken konvertieren

So konvertieren Sie eine PL/SQL-Bibliothek interaktiv:

  Öffnen Sie die Bibliothek in Report Builder, und speichern Sie sie dann.

So konvertieren Sie eine PL/SQL-Bibliothek mit der GUI-Version von Report Compiler:

1	Doppelklicken Sie auf das Symbol Report Compiler.

2	Geben Sie im Feld Dokumenttyp PL/SQL-Bibliothek an.

3	Geben Sie im Feld Quelltyp .PLL an.

4	Geben Sie im Feld Zieltyp .PLL oder .PLX an. Wenn Sie .PLD angeben, wird PL/SQL V1 oder V2 nicht konvertiert.

So konvertieren Sie eine PL/SQL-Bibliothek mit Report Compiler auf der Befehlszeile:

  Geben Sie auf der Befehlszeile folgenden Befehl aus:

<Report Compiler> SOURCE=lib1,lib2, UPGRADE_PLSQL=yes

wobei:

<Report Compiler>	Der Name der ausführbaren Report Compiler-Datei auf Ihrer Plattform ist.
lib1, lib2	Der Name der zu konvertierenden Bibliothek bzw. Bibliotheken ist.
Verwendungshinweis:

•	Wenn Sie viele grafische Anwendungen gleichzeitig konvertieren möchten, verwenden Sie Project Builder. In dem Hilfethema zur Auswahl der Umstellungsmethode in Project Builder finden Sie entsprechende Instruktionen.


Grafische Anwendungen im Stapelmodus konvertieren

So konvertieren Sie grafische Anwendungen im Stapelmodus:

1	Stellen Sie sicher, daß Sie alle der grafischen Anwendung zugeordneten PL/SQL-Bibliotheken konvertiert haben.

2	Geben Sie den folgenden Befehl aus:

<Graphics Builder> openfile=temp.ogd upgrade_plsql=yes savefile=temp1.ogd quit=yes

wobei:

<Graphics Builder>	Der Name der ausführbaren Graphics Builder-Datei auf Ihrer Plattform ist.
Openfile=temp.ogd	Die grafische Anwendung temp.ogd in Graphics Builder öffnet.
Upgrade_plsql=yes	Den V1 oder V2 PL/SQL-Code konvertiert.
Savefile=temp1.ogd	Die konvertierte grafische Anwendung in temp1.ogd speichert.
Quit=yes	Graphics Builder schließt, nachdem die grafische Anwendung konvertiert wurde.
Verwendungshinweise:

•	Eine Zusammenfassung des Konvertierungsvorgangs wird automatisch in die Protokolldatei mit der Bezeichnung module.plg geschrieben, wobei module der Name der konvertierten grafischen Anwendung ist.

•	Wenn Sie viele grafische Anwendungen gleichzeitig konvertieren möchten, verwenden Sie Project Builder. In dem Hilfethema zur Auswahl der Umstellungsmethode in Project Builder finden Sie entsprechende Instruktionen.

•	Nachdem das Konvertierungsdienstprogramm eine Anwendung konvertiert hat, kann es für diese Anwendung nie wieder aufgerufen werden - selbst wenn Sie festlegen, daß alle empfohlenen Konvertierungen ignoriert werden sollen. Dadurch wird verhindert, daß das Dienstprogramm Änderungen überschreibt, die Sie manuell vorgenommen haben.


Einer grafischen Anwendung zugeordnete PL/SQL-Bibliotheken konvertieren

So konvertieren Sie eine PL/SQL-Bibliothek interaktiv:

  Öffnen Sie die Bibliothek in Graphics Builder, und speichern Sie sie dann.

So konvertieren Sie eine PL/SQL-Bibliothek im Stapelmodus:

Geben Sie den folgenden Befehl aus:

<Graphics Builder> openfile=temp.lib upgrade_plsql=yes savefile=temp1.lib quit=yes

wobei:

<Graphics Builder>	Der Name der ausführbaren Graphics Builder-Datei auf Ihrer Plattform ist.
openfile=temp.lib	Die Bibliothek temp.lib in Graphics Builder öffnet.
Upgrade_plsql=yes	Den V1 oder V2 PL/SQL-Code konvertiert.
Savefile=temp1.lib	Die konvertierte Bibliothek in temp1.lib speichert.
Quit=yes	Graphics Builder schließt, nachdem die Bibliothek konvertiert wurde.
Verwendungshinweise:

•	Eine Zusammenfassung des Konvertierungsvorgangs wird automatisch in die Protokolldatei module.plg geschrieben, wobei module der Name der konvertierten Bibliothek ist.

•	Nachdem das Konvertierungsdienstprogramm eine Anwendung konvertiert hat,kann es nie wieder für diese Anwendung aufgerufen werden - selbst wenn Sie festlegen, daß alle empfohlenen Konvertierungen ignoriert werden sollen. Dadurch wird verhindert, daß das Dienstprogramm Änderungen überschreibt, die Sie manuell vorgenommen haben.

•	Wenn Sie viele grafische Anwendungen gleichzeitig konvertieren möchten, verwenden Sie Project Builder. In dem Hilfethema zur Auswahl der Umstellungsmethode in Project Builder finden Sie entsprechende Instruktionen.


Was konvertiert das PL/SQL V1-Konvertierungsdienstprogramm?

  Verwandte Themen

Das Konvertierungsdienstprogramm kann folgende Fälle innerhalb der Anwendung lösen:

CHAR ersetzt durch VARCHAR2

Zeichenfolgenlänge für VARCHAR2 erforderlich

Standardausdrücke für OUT und IN OUT nicht zulässig

RETURN erfordert einen Ausdruck

Veraltete vordefinierte Prozeduren ersetzt

Funktion Length gibt NULL für Zeichenfolgen mit der Länge null zurück

Übergabe von NULL an überladenes Unterprogramm wird nicht richtig aufgelöst

Fehlende RETURN-Anweisung in Funktion führt zu Laufzeitfehler

Längen-Integritätsregeln entfernt


CHAR ersetzt durch VARCHAR2

In PL/SQL V1 konnten die Datentypen CHAR und VARCHAR2 beliebig austauschbar benutzt werden. In den Versionen nach V1 wird der Datentyp CHAR rechtsbündig mit Leerstellen aufgefüllt.

In PL/SQL V1 ist diese Anweisung:

var1 CHAR(10) := 'hello';

. . .gleichbedeutend mit 'hello'.

In Versionen nach V1 ergibt diese Anweisung jedoch 'hello     ' (insgesamt zehn Zeichen).

Um das V1-Verhalten von CHAR-Variablen beizubehalten, ersetzt das Konvertierungsdienstprogramm alle CHAR(n)-Deklarationen durch die entsprechende VARCHAR2(n)-Anweisung. Im obigen Beispiel wird var1 zu VARCHAR2(10).

Außerdem ersetzt das Konvertierungsdienstprogramm alle VARCHAR-Anweisungen durch den entsprechenden VARCHAR2-Ausdruck.


Zeichenfolgenlänge für VARCHAR2 erforderlich

Versionen nach V1 erfordern eine Länge für alle Variablen vom Typ VARCHAR2. Wenn schon eine Länge für einen Datentyp CHAR angegeben ist, benutzt das Konvertierungsdienstprogramm diese Länge, wenn die Deklaration durch VARCHAR2 ersetzt wird (weitere Informationen finden Sie unter CHAR ersetzt durch VARCHAR2). Zum Beispiel:

var1 CHAR(10);

. . .wird konvertiert in:

var1 VARCHAR2(10);

Wenn das Konvertierungsdienstprogramm eine CHAR- oder VARCHAR2-Anweisung ohne eine Zeichenfolgenlänge entdeckt, empfiehlt es die Länge von einem Zeichen. Zum Beispiel:

var2 CHAR;

. . .wird konvertiert in:

var2 VARCHAR2(1);

Gleichermaßen wird

var3 VARCHAR2;

. . .konvertiert in:

var3 VARCHAR2(1);

Wenn Sie keine Länge für eine VARCHAR2-Deklaration angeben, generiert der Compiler die folgende Fehlermeldung:

FEHLER 215:  Längenintegritätsregel für Zeichenfolge muß im Bereich (1 . . 32767) liegen.


Standardausdrücke für OUT und IN OUT nicht zulässig

  Beispiel

In PL/SQL V1 konnte auf die Parameter OUT und IN OUT ein Standardausdruck folgen, obwohl dieser Ausdruck immer ignoriert wurde. Das Konvertierungsprogramm entfernt die Standardausdrücke für OUT- und IN-Parameter.

Wenn Sie bestehenden Code kompilieren, der OUT- und IN OUT-Parameter mit Standardausdrücken umfaßt, wird die :

Fehlermeldung 230 generiert, die besagt, daß formale OUT- und IN OUT-Parameter keine Standardausdrücke enthalten dürfen.


Beispiel für das Entfernen von Standardausdrücken

  Verwandte Themen 	   Alle Beispiele

Das Konvertierungsdienstprogramm konvertiert diesen PL/SQL V1-Code:

PROCEDURE p (p1 IN OUT NUMBER DEFAULT 25,
             p2 OUT NUMBER DEFAULT 16) IS

BEGIN
. . .
END;

. . . zu:

PROCEDURE p (p1 IN OUT NUMBER, p2 OUT NUMBER) IS

BEGIN
. . .
END;


RETURN erfordert einen Ausdruck

  Beispiel

In PL/SQL V1 konnten Sie eine RETURN-Anweisung ohne einen Ausdruck benutzen, um einen NULL-Wert zurückzugeben. Da alle Funktionen Werte zurückgeben sollten, betrachten Versionen nach V1 die RETURN-Anweisung als obligatorisch. Das Konvertierungsdienstprogramm ersetzt alle RETURN-Anweisungen, auf die kein Ausdruck folgt, durch RETURN NULL.

Wenn Sie bestehenden Code kompilieren, der eine RETURN-Anweisung ohne einen Ausdruck umfaßt, wird die :

Fehlermeldung 503 generiert, die besagt, daß eine RETURN-Anweisung für diesen Rückgabewert erforderlich ist


Beispiel für das Hinzufügen von NULL zu RETURN
Beispiel für Hinzufügen von NULL zu RETURN

  Verwandte Themen 	   Alle Beispiele

Das Konvertierungsdienstprogramm konvertiert diesen PL/SQL V1-Code:

FUNCTION f RETURN NUMBER IS
x NUMBER;
BEGIN
x :=13;
IF . . . THEN
RETURN;
END IF;
RETURN x;
END;

. . . zu:

FUNCTION f RETURN NUMBER IS
x NUMBER;
BEGIN
x :=13;
IF . . . THEN
RETURN NULL;	NULL hier hinzugefügt
END IF;
RETURN x;
END;


Veraltete vordefinierte Prozeduren ersetzt

  Beispiel

Die vordefinierte Prozedur TO_PLS_INTEGER, die Zeichenfolgen in PL/SQL-Ganzzahlen konvertiert, ist in Versionen nach V1 veraltet. Das Konvertierungsdienstprogramm ersetzt TO_PLS_INTEGER durch die vordefinierte Prozedur TO_NUMBER.

Wenn Sie die vordefinierte Prozedur TO_PLS_INTEGER nicht ersetzen, wird der Compiler-

Fehler 201 generiert, der besagt, daß der Bezeichner TO_PLS_INTEGER deklariert werden muß.

Hinweis: Andere veraltete vordefinierte Prozeduren müssen manuell ersetzt werden


Beispiel für das Ersetzen veralteter vordefinierter Prozeduren

  Verwandte Themen 	   Alle Beispiele

.Das Konvertierungsdienstprogramm konvertiert diesen PL/SQL V1-Code:

PROCEDURE foo IS
     v INTEGER;
BEGIN
     v := TO_PLS_INTEGER(24);
END;

. . .in:

PROCEDURE foo IS
     v INTEGER;
BEGIN
     v := TO_NUMBER(24); 	TO_PLS_INTEGER wird ersetzt durch TO_NUMBER
 END;


Funktion Length gibt NULL für Zeichenfolgen mit Nullänge zurück

  Beispiel

In PL/SQL V1 wurde die Funktion LENGTH bei der Anwendung auf einen Null-Ausdruck mit dem Wert null aufgelöst. In Versionen nach V1 wird die Funktion LENGTH bei der Anwendung auf einen Null-Ausdruck mit null ausgewertet.

Um das Verhalten von V1 beizubehalten, fügt das PL/SQL-Konvertierungsdienstprogramm das SQL-Prädikat NVL hinzu, um sicherzustellen, daß die Funktion LENGTH bei der Anwendung für einen Null-Ausdruck mit einem Nullwert aufgelöst wird


Beispiel für die Funktion Length

  Verwandte Themen 	   Alle Beispiele

Das Konvertierungsdienstprogramm konvertiert diesen PL/SQL V1-Code:

c:=null;
l=LENGTH( c );	In V1 ergibt dies 0.

in:

c:=null;
l=NVL(LENGTH( c ),0);	Der Converter bricht die Funktion LENGTH
                                                       mit der vordefinierten Prozedur NVL um,
                                                       und erzwingt somit, daß der Ausdruck mit 0 aufgelöst wird


Übergabe von NULL an überladenes Unterprogramm wird nicht richtig aufgelöst

  Beispiel

In PL/SQL V1 konnten Sie dasselbe Unterprogramm in einem Paket mit zwei verschiedenen Datentypen definieren: VARCHAR2 und RECORD. Dies wird als Überladen des Unterprogramms bezeichnet. Wenn Sie dann einen NULL-Wert an den Programmblock übergeben haben, ist PL/SQL von einem Datentyp VARCHAR2 ausgegangen. Wenn Sie in Versionen nach V1 jedoch einen NULL-Wert an ein überladenes Unterprogramm innerhalb eines Pakets übergeben, müssen Sie dessen Typ definieren.

Um das V1-Verhalten beizubehalten, führt das PL/SQL-Konvertierungsdienstprogramm je nachdem eine der folgenden Aktionen durch, wenn es auf einen NULL-Wert stößt, der an ein überladenes Unterprogramm übergeben wird:

•	Umbruch von NULL mit TO_CHAR( )

•	Umbruch von NULL mit TO_NUMBER( )

•	Umbruch von NULL mit TO_DATE( )

•	Umbruch von NULL mit NOT

Wenn Sie einen NULL-Wert an ein überladenes Unterprogramm übergeben, ohne den gewünschten Datentyp zu definieren, generiert der Compiler die :

Fehlermeldung 307 generiert, die besagt, daß zu viele Deklarationen des PU-Namens diesem Aufruf entsprechen.


Beispiel für die Übergabe von NULL an überladenes Unterprogramm

  Verwandte Themen 	   Alle Beispiele

Das Konvertierungsdienstprogramm konvertiert diesen PL/SQL V1-Code:.

PACKAGE ps1 IS
  TYPE foo IS RECORD(id PLS_INTEGER);
                                    Unterprogramm p ist überladen
  PROCEDURE p(a VARCHAR2);          a ist als Variable vom Typ VARCHAR2 definiert
  PROCEDURE p(a FOO);               a ist außerdem als anderer Datentyps definiert
END;

PROCEDURE foo2 IS
BEGIN
  ps1.p(NULL);                In PL/SQL V1 wird von einem Datentyp VARCHAR2
                                                                      ausgegangen.

END;

... zu:

PACKAGE ps1 IS
  TYPE foo IS RECORD(id PLS_INTEGER);

  PROCEDURE p(a VARCHAR2);
  PROCEDURE p(a FOO);

END;

PROCEDURE foo2 IS
BEGIN
  ps1.p(TO_CHAR(NULL));      Da a vom Typ VARCHAR2 ist, wird der NULL-
                             Wert mit TO_CHAR() umbrochen
END;


Fehlende RETURN-Anweisung in Funktion führt zu Laufzeitfehler

  Beispiel

Wenn die RETURN-Anweisung in einer Funktion in PL/SQL V1 weggelassen wird, führt dies zur Laufzeit zu keinem Problem. In Versionen nach V1 führt dies allerdings zu einem Laufzeitfehler.

Um das V1-Verhalten beizubehalten, fügt das PL/SQL-Konvertierungsdienstprogramm eine RETURN-Anweisung mit einem NULL-Argument zu Funktionen hinzu, die keine RETURN-Anweisung haben.

Hinweis: Eine fehlende RETURN-Anweisung in einer Funktion generiert keinen Compiler-Fehler, sondern einen Laufzeitfehler in Versionen nach V1.


Beispiel für fehlende RETURN-Anweisung

  Verwandte Themen 	   Alle Beispiele

Das Konvertierungsdienstprogramm konvertiert diesen PL/SQL V1-Code:

FUNCTION noreturn (arg IN NUMBER) RETURN char IS
BEGIN
  IF (arg > 100000) THEN
    TEXT_IO.PUT_LINE ('The point of no return.');
  ENDIF;
                         RETURN-Anweisung fehlt
END;

. . . zu:

FUNCTION noreturn (arg IN NUMBER) RETURN char IS
BEGIN
  IF (arg > 100000) THEN
    TEXT_IO.PUT_LINE ('The point of no return.');
  ENDIF;
  RETURN NULL;            RETURN NULL vom Converter hinzugefügt
END;


Längen-Integritätsregeln entfernt

  Beispiel

In PL/SQL V2 werden die Längen-Integritätsregeln bei DATE, BOOLEAN, MLSLABEL und ROWID ignoriert. Dies führt jedoch zu Kompilierungsfehlern in V8.

To preserve V2 behavior, the PL/SQL conversion utility removes the constraints.


Beispiel für das Entfernen von Längen-Integritätsregeln

  Verwandte Themen 	   Alle Beispiele

Das Konvertierungsdienstprogramm konvertiert diesen Code:

PROCEDURE badconstraint IS
d DATE(5);
b BOOLEAN(5);
d MLSLABEL(5); --V2 only
r ROWID(5); --V2 only
BEGIN
  null;
END;

. . . in:

PROCEDURE badconstraint IS
d DATE;
b BOOLEAN;
d MLSLABEL; --V2 only
r ROWID; --V2 only
BEGIN
  null;
END;


Was kann das PL/SQL V1-Konvertierungsdienstprogramm nicht konvertieren?

  Verwandte Themen

Das Konvertierungsdienstprogramm kann zwar viele der angetroffenen PL/SQL-Inkompatibilitäten konvertieren, einige Situationen müssen jedoch manuell gelöst werden:

Eindeutige Namen innerhalb eines Paketes erforderlich

Standard-Paketfunktion nicht mehr benutzt

Neue reservierte Wörter in PL/SQL V2.3 oder höher

%ROWTYPE oder %TYPE in Variablen-Deklarationen erforderlich

Die Warnung "Nicht behebbarer Fehler aufgetreten; Konvertierung in Zeile <Zeilennummer> Spalte <Spalte> abgebrochen" wird angezeigt, wenn ein Compiler-Abbruchfehler vorliegt und der Konvertierungsprozeß nicht fortgesetzt werden kann.


Eindeutige Namen innerhalb eines Pakets erforderlich
Eindeutige Namen innerhalb eines Paketes erforderlich

  Beispiel

Wenn Sie in PL/SQL V1 eine Variable mit demselben Namen wie eine Prozedur oder Funktion in demselben Paket erstellt haben, wurde immer die Variable benutzt. Die Prozedur oder Funktion mit demselben Namen wurde ignoriert. In Versionen nach V1müssen Variablen, Funktionen und Prozeduren innerhalb desselben Pakets eindeutig sein.

Um einen Fehler zu vermeiden, stellen Sie sicher, daß alle Prozeduren innerhalb eines Pakets eindeutige Namen haben, entweder indem Sie dies explizit sicherstellen, oder indem Sie das Wort Unused an den Prozedurnamen anhängen.

Hinweis:  In V1 konnten Sie bei Procedure Builder fälschlicherweise einen Programmblock mit demselben Namen wie ein vordefiniertes Paket erstellen. In Versionen nach V1 ist dies nicht zulässig. Wenn Procedure Builder einen Programmblock mit demselben Namen wie ein vordefiniertes Paket entdeckt, ändert Procedure Builder den Namen des Programmblocks beim Laden, indem zwei Dollarzeichen am Ende des Programmblocknamens angehängt werden. Somit wird  DEBUG zu DEBUG$$.


Beispiel für eindeutige Prozedurnamen in einem Paket

  Verwandte Themen 	   Alle Beispiele

In diesem Beispiel wird zuerst V1 PL/SQL-Code dargestellt, der einen V2.3 Compiler-Fehler erzeugt. Danach wird dargestellt, wie Sie den Code ändern könnten, um den Fehler zu vermeiden.

Ändern Sie diesen Code:

PACKAGE pk1 IS
  v1 NUMBER;	v1 ist als Variable festgelegt
  PROCEDURE v1;	v1 ist auch als Prozedur festgelegt
  PROCEDURE p2 (x OUT NUMBER);
END;

PACKAGE BODY pk1 IS
  PROCEDURE v1 IS
  BEGIN
   . . .
  END;

  PROCEDURE p2 (x OUT NUMBER) IS
  BEGIN
x := pk1.v1;
  END;

END;

. . . zu:

PACKAGE pk1 IS
  v1 NUMBER;
  PROCEDURE v1Unused;	Die Prozedur v1 ist als Unused deklariert
  PROCEDURE p2 (x OUT NUMBER);
END;

PACKAGE BODY pk1 IS
  PROCEDURE v1Unused IS
  BEGIN
   . . .
  END;

  PROCEDURE p2 (x OUT NUMBER) IS
  BEGIN
x := pk1.v1;
  END;

END;


Standard-Paketfunktion nicht mehr benutzt

  Beispiel

In PL/SQL V1 konnten Sie die Funktion FLOOR aus Ihrem eigenen Paket, p1, folgendermaßen aufrufen:

v : = p1.FLOOR(x).

Wenn das Paket p1 keine Funktion mit der Bezeichnung FLOOR hatte, hat PL/SQL die Funktion FLOOR im Standardpaket benutzt. Hier handelte es sich um einen PL/SQL-Codierungsfehler, der in PL/SQL V2.3 oder höher behoben wurde. Deshalb prüft der Compiler in PL/SQL V2.3 das Standardpaket nicht auf den Funktionsnamen, sondern gibt die Situation korrekt als Fehler mit der :

Fehlermeldung 302 an, die besagt, daß die Komponente 'CCCCC' deklariert werden muß,

. . . wobei 'CCCCC' der Funktions- oder Prozedurname ist, der in einem Standardpaket oder einer Standardpaketerweiterung vorhanden ist.

Die Meldung, daß falsche Referenzen in dem vordefinierten Paket V1 aufgelöst werden, wird in das Log geschrieben.

Um den Compiler an das Standardpaket zu verweisen, entfernen Sie den fehlerhaften Paketnamen


Beispiel für das Entfernen des Paketpräfix

  Verwandte Themen 	   Alle Beispiele

Das erste Beispiel enthält einen V1 PL/SQL-Code, der einen V2.3 Compiler-Fehler generiert. Danach wird dargestellt, wie Sie den Code ändern könnten, um den Fehler zu vermeiden.

Ändern Sie diesen Code:

PACKAGE pk1 IS a NUMBER;
END;

PROCEDURE p IS v NUMBER;
BEGIN
v := pk1.FLOOR(20.5);
END;

. . . in:

PACKAGE pk1 IS a NUMBER;
END;

PROCEDURE p IS v NUMBER;
BEGIN
v := FLOOR(20.5);	Präfix entfernt
END;


Neue reservierte Wörter in PL/SQL V2.3 oder höher

  Beispiels

Das Wort VARIANCE ist ein reserviertes Wort in PL/SQL V2.3. Wenn es benutzt wird, generiert es einen Compiler-Fehler.

In dem folgenden Beispiel wird dargestellt, wie VARIANCE benutzt wird, ohne einen Fehler zu generieren


Beispiele für reservierte Wörter

  Verwandte Themen 	   Alle Beispiele

In diesem Beispiel wird zuerst ein V1 PL/SQL-Code dargestellt, der einen V2.3 Compiler-Fehler generiert. Danach wird dargestellt, wie Sie den Code ändern könnten, um den Fehler zu vermeiden.

Beispiel 1:

Ändern Sie diesen Code:

FUNCTION variance (y IN NUMBER)
RETURN NUMBER IS

BEGIN
     . . .
     RETURN . . .;
END;

. . .in:

FUNCTION varianceUniqueName (y IN NUMBER) 	Ein eindeutiger Name wird an Variance angehängt.

RETURN NUMBER IS

BEGIN
     . . .
     RETURN . . .;
END;

Beispiel 2:

Beim Aufruf eines Unterprogramms ändern Sie diesen Code:

PROCEDURE foo IS
     x NUMBER;
     y NUMBER;
BEGIN
     . . .
     x := variance(someNumber);
END;

. . .in:

PROCEDURE foo IS
     x NUMBER;
     y NUMBER;
BEGIN
     . . .
     x := varianceUniqueName(someNumber);
END;


%ROWTYPE oder %TYPE in Variablen-Deklarationen erforderlich

  Beispiele

Der PL/SQL V8 Compiler gibt bei der folgenden unzulässigen Syntax eine Fehlermeldung aus (die der PL/SQL V2 Compiler fälschlicherweise zuläßt):

return variable-expression

procedure (parameter IN <table_name>)

procedure (parameter IN <table_name>.<column_name>)

Die korrekte Syntax wäre:

return variable-type

procedure (parameter IN <table_name>%ROWTYPE)

procedure (parameter IN <table_name>.<column_name>%TYPE)

Um den Fehler zu vermeiden, benutzen Sie den Datentyp des Ausdrucks und hängen %ROWTYPE an den Tabellennamen oder %TYPE an den Spaltennamen an.


Beispiele für Variablen-Deklarationen

  Verwandte Themen 	   Alle Beispiele

In diesen Beispiel wird zuerst PL/SQL V2-Code dargestellt, der den Fehler generiert. Danach wird dargestellt, wie Sie den Code bearbeiten können, um den Fehler zu vermeiden.

Beispiel 1:

Ändern Sie diesen Code:

FUNCTION return_column RETURN dept.dname IS
. . .

. . .in:

FUNCTION return_column RETURN dept.dname%TYPE IS
. . .

Ändern Sie diesen Code:

PROCEDURE foo (name IN dept.dname) IS
. . .

. . .in:

PROCEDURE foo (name IN dept.dname%TYPE) IS
. . .

Beispiel 2:

Ändern Sie diesen Code:

FUNCTION return_table RETURN dept IS
. . .

. . .in:

FUNCTION return_table RETURN dept.%ROWTYPE IS
. . .

Ändern Sie diesen Code:

PROCEDURE foo (name IN dept) IS
. . .

. . .in:

PROCEDURE foo (name IN dept%ROWTYPE) IS
. . .

Beispiel 3:

In diesem Beispiel wird eine Ausnahme dargestellt, in der Sie %TYPE nicht benutzen können.

Bei der Deklaration von Parametern ändern Sie diesen Code:

FUNCTION return_parm (x IN NUMBER)
  RETURN x IS
. . .

.. . in:

FUNCTION return_parm (x IN NUMBER)
  RETURN number IS
. . .


Server-Unterstützung

Dieses Release unterstützt den Oracle8 Datenbank-Server. Gleichzeitig wird der Oracle7-Server weiterhin unterstützt.

Neue Anwendungen

Sie können neue Oracle Developer-Anwendungen generieren, die mit einem Oracle8- oder Oracle7-Server ausgeführt werden können. Anwendungen, die Oracle8-Funktionen nutzen, müssen selbstverständlich mit dieser Server-Ebene ausgeführt werden.

Bestehende Anwendungen

Bestehende Oracle Developer-Anwendungen, die zur Ausführung mit einem Oracle7-Server entwickelt wurden, können weiter mit diesem Server ausgeführt werden. Wenn die Zieldaten der Anwendung von einem Oracle7- zu einem Oracle8-Server verschoben werden, kann eine bestehende Anwendung auch in dieser Oracle8-Umgebung ausgeführt werden.


Unterstützung von PL/SQL 8

Dieses Release von Form Builder verwendet PL/SQL 8 auf dem Client und dem Server. Client-seitige Programmblöcke können momentan die objektbezogene Funktionalität von Oracle8 nicht unterstützen. Gespeicherte Programmblöcke können hingegen alle neuen PL/SQL 8-Funktionen nutzen. In Anhang A im Handbuch PL/SQL User's Guide and Reference werden die neuen PL/SQL 8-Funktionen beschrieben.

Kompatibilität mit früheren Versionen von PL/SQL

Der Code von client-seitigen Programmblöcken, die in PL/SQL V1 oder V2 geschrieben sind, muß auf die neue Ebene konvertiert werden. Das im Lieferumfang enthaltene PL/SQL V1 Konvertierungsdienstprogramm automatisiert diesen Umstellungsprozeß.

In PL/SQL V2 geschriebene gespeicherte Programmblöcke können mit der PL/SQL V8-Engine auf dem Datenbank-Server ausgeführt werden, allerdings kommt es zu Kompilierungsfehlern. Diese Fehler treten in einigen Fällen auf, in denen die Syntax zwischen V2 und V8 nicht kompatibel ist. Mit einem V2-Kompatibilitätsflag in der V8-Datenbank können Sie einen V2-Kompatibilitätsmodus wählen, so daß die V8-Engine bei der Kompilierung von V2-Code keine derartigen Fehler ausgibt. In Kapitel 8 im Handbuch Oracle8 Migration werden die Fälle beschrieben, die von diesem Kompatibilitätsflag abgedeckt werden.


Neue und erweiterte Attribute

In der folgenden Tabelle werden die Form Builder-Attribute aufgeführt, die in diesem Release neu sind oder erweitert wurden.

Attribut	Status und Verwendung
Alias	Neu. Erstellt einen Alias für einen Oracle8-Tabellennamen.
Spaltenname	Erweitert. Umfaßt jetzt die Punktschreibweise für Elemente aus Spaltenobjekten.
Detail-Referenz	Neu. Identifiziert das REF-Element, das einen Master-/Detail-Link bildet.
DML-Rückgabewert	Neu. Steuert das Auffrischen des Bildschirms bei Forms durch geänderte Werte, nachdem Daten in die Datenbank eingefügt oder die Datenbank aktualisiert wurde.
Attribut Implementierungsklasse	Neu. Identifiziert den Klassennamen einer benutzerdefinierten Java-Komponente oder Bean-Klasse.
REF-Objekt aufnehmen	Neu. Erstellt ein verborgenes Objekt mit der Bezeichnung REF im Master-Block.
Beziehungstyp	Neu. Identifiziert den Typ des Master-/Detail-Links (relationaler Join oder Objekt-REF).


Laufzeitverhalten von Form Builder 4.5

Das Laufzeitverhalten von Forms, die mit Form Builder 5.0 bis 6.0 erstellt wurden, unterscheidet sich von dem Laufzeitverhalten bei Form Builder 4.5. Bei der Entwicklung können Sie wählen, welches Laufzeitverhalten für eine Form benutzt werden soll, indem Sie das Formebenen-Attribut Laufzeit-Kompatibilitätsmodus auf 4.5 (für Release 4.5) oder 5.0 (für Release 5.0 bis 6.0) einstellen.

Überblick

Das folgende Laufzeitverhalten hat sich in Form Builder 5.0 bis 6.0 geändert. In den folgenden Abschnitten wird das entsprechende Verhalten bei Form Builder 4.5 beschrieben:

•	Wann erfolgt die Validierung (Unterschiede bei Navigationsregeln)?

•	Standardmäßige Validierungsprüfungen (Validierungsschritte für verschiedene Elementtypen)

•	Attribut Validierung und Defer Required-Durchsetzung

•	Initialisierung von Spiegelobjekten (synchronisierten Objekten)

•	Validierung von Spiegelobjekten

•	Konvertierung zwischen Datums- und Zeichenfolgenformaten

•	Implizite Einstellung des Attributs Obligatorisch bei einem Objekt

•	Nullwerte in Popup-Listen und T-Listen

•	Nullwerte und das Auslösen des Triggers POST-CHANGE

Wann erfolgt die Validierung?

Die Validierungsregeln von Form Builder 4.5 für die Navigation lauten:

•	Wenn Sie in demselben Block von Objekt A zu Objekt B navigieren und die Validierung auf Objektebene wirksam ist, hängt die durchgeführte Aktion davon ab, wie die Navigation erfolgte:

•	Wenn die Navigation das Ergebnis von GO_ITEM (Mausklick) oder das Ergebnis von PREVIOUS_ITEM (Umschalttaste-Tabulatortaste) ist, wird nur das Objekt A validiert. (Dies ist identisch mit Form Builder 5.0.)

•	Wenn die Navigation das Ergebnis von NEXT_ITEM (Tabulatortaste) ist, werden Objekt A und alle Objekte zwischen A und B (bezogen auf die Sequenznummer innerhalb des Blocks und nicht bezogen auf deren Position in der Navigationsfolge des Blocks) validiert. Dies kann zu einer redundanten Validierung führen. Wenn Sie z.B. das Attribut Nächstes navigierbares Objekt verwenden, um eine Navigationsfolge festzulegen, die der Sequenz der Objekte innerhalb des Blocks (wie im Objektnavigator dargestellt) entgegengesetzt ist, werden alle Objekte in dem Block (mit Ausnahme des Objekts, zu dem Sie mit der Tabulatortaste navigieren) validiert. (In Form Builder 5.0 wird nur Objekt A validiert.)

•	Wenn Form Builder Sie bei der Validierung auf Objektebene zu dem ersten navigierbaren Objekt in einem Block führen muß, werden alle vorherigen Objekte in dem Block validiert. Dies führt gelegentlich dazu, daß Form Builder beendet wird, wenn eines dieser früheren Objekte die Validierung nicht besteht. (In Form Builder 5.0 werden die früheren Objekte nicht validiert.)

•	Wenn Sie bei der Validierung auf Objektebene versuchen, aus einem Obligatorischen Objekt mit einem Nullwert zu navigieren, und das Attribut Defer Required-Durchsetzung auf Nein eingestellt ist, hängt die durchgeführte Aktion davon ab, wie die Navigation erfolgte:

•	Wenn die Navigation das Ergebnis von GO_ITEM (Mausklick) oder das Ergebnis von NEXT_ITEM (Tabulatortaste) ist, wird folgende Fehlermeldung ausgegeben: FRM-40202 Feld muß eingegeben werden. (Dies ist identisch wie bei Form Builder 5.0.)

•	Wenn die Navigation das Ergebnis von PREVIOUS_ITEM (Umschalttaste-Tabulatortaste) ist, kommt es zu keinem Fehler, und die Navigation wird erfolgreich durchgeführt. (In Form Builder 5.0 wird der Fehler FRM-40202 ausgegeben.)

Standardmäßige Validierungsprüfungen

Bestimmte Schritte werden immer dann ausgeführt, wenn ein Objekt eines bestimmten Typs validiert wird. Die Validierungsschritte bei Textobjekten von Form Builder 4.5 werden in der folgenden Reihenfolge ausgeführt. Wenn einer der Schritte nicht erfolgreich verläuft, wird das Objekt als ungültig markiert, und die restlichen Schritte werden übersprungen.

1	Prüfen Sie, ob das Objekt Obligatorisch nicht null ist.

Dieser Schritt wird nur für folgende Objekte ausgeführt:

•	Kombinationsfelder

•	Popup-Listen und Objekte von T-Listen, die keine anderen Werte zulassen

•	Navigierbare Listenobjekte, die andere Objekte spiegeln

•	Navigierbare Textobjekte

Fehler bei Kombinationsfeldern oder Popup-Listen und Objekten von T-Listen, die keine anderen Werte zulassen, erzeugen die Fehlermeldung:
FRM-40212 Ungültiger Wert für Feld.

Andere Fehler erzeugen die Meldung: FRM-40202 Feld muß eingegeben werden.

Diese Validierung wird mit Objektinstanzen durchgeführt, die vor Aktualisierungen geschützt sind, selbst wenn die Validierungseinheit der Form ITEM ist.

2	Prüfen, ob ein Nicht-Null-Wert das richtige Format für den Datentyp hat.

Dieser Schritt wird nur für folgende Objekte ausgeführt:

•	Navigierbare Kombinationsfelder

•	Textobjekte

3	Prüfen, ob ein Objekt mit Fester Länge keinen Nicht-Null-Wert mit der falschen Länge enthält.

Dieser Schritt wird nur für aktivierte Textobjekte ausgeführt.

4	Prüfen, ob der Nicht-Null-Wert des Objekts in den für das Objekt angegebenen Bereich fällt.

Dieser Schritt wird nur für aktivierte Textobjekte ausgeführt.

5	Wenn das Attribut Werteliste für Validierung benutzen des Objekts auf Ja eingestellt ist, wird geprüft, ob der Nicht-Null-Wert des Objekts in der Werteliste des Objekts erscheint.

6	Wenn der Objektwert Nicht-Null ist, wird der Trigger POST-CHANGE ausgelöst.

7	Der Trigger WHEN-VALIDATE-ITEM wird ausgelöst.

Bei der Validierung von Nicht-Textobjekten werden die Schritte 3 bis 5 ausgelassen. Schritt 2 gilt nur für Textobjekte und Kombinationsfelder, da dies die einzigen Objekte sind, bei denen der Endbenutzer Werte eingeben kann.

Attribut Validierung und Defer Required-Durchsetzung

Dieses Attribut ist nur dann anwendbar, wenn die Validierung auf Objektebene wirksam ist.

Das Attribut verfügt über drei mögliche Werte: Ja, 4.5 und Nein. Nähere Einzelheiten finden Sie unter Attribut Defer Required-Durchsetzung.

Wenn Ja oder 4.5 ausgewählt ist, wird das Attribut Obligatorisch des Objekts nicht vor der Durchführung einer Validierung auf Datensatzebene durchgesetzt. Das Objekt kann auch den Wert Null aufweisen. Der When-Validate-Item-Trigger wird allerdings ausgelöst.

Aus der folgenden Tabelle geht hervor, wie Forms Runtime 4.5 und 5.0 sich bei den verschiedenen Einstellungen für Defer Required-Durchsetzung bei einem Objekt unterscheiden, das das Attribut Obligatorisch aufweist, aber einen Null-Wert enthält.

	Defer Required-Durchsetzung = Ja	Defer Required-Durchsetzung = 4.5	Defer Required-Durchsetzung = Nein
Laufzeit-Kompatibilitätsmodus = 4.5	Verhalten A	Verhalten A	Verhalten B
Laufzeit-Kompatibilitätsmodus = 5.0	Verhalten C	Verhalten D	Verhalten B
•	Verhalten A:  Der Null-Wert wird akzeptiert. Der When-Validate-Item-Trigger wird ausgelöst, und (angenommen, die Auslösung verläuft erfolgreich) die Objektinstanz wird als gültig markiert. Das Attribut Objekt ist gültig wird mit dem Wert Ja festgelegt. (Gültige Objektinstanzen mit Null-Wert werden während der Validierung auf Datensatzebene erneut validiert.)

Dieses Verhalten gilt nur für Textobjekte. (Das Attribut Defer Required-Durchsetzung wird bei Listenobjekten ignoriert.)

•	Verhalten B: Der Null-Wert wird nicht akzeptiert. Erst wenn ein gültiger Wert ungleich Null eingegeben wurde, kann zu einer anderen Objektinstanz navigiert werden.

•	Verhalten C: Der Null-Wert wird akzeptiert. Der When-Validate-Item-Trigger wird nicht ausgelöst. Es findet keine Validierung statt, und das Attribut Objekt ist gültig bleibt unverändert. (Entspricht der Wert immer noch Null, wenn die Validierung auf Datensatzebene durchgeführt wird, gibt Forms Runtime einen Fehler aus.)

•	Verhalten D: Der Null-Wert wird akzeptiert. Die Objektinstanz wird jedoch nicht als gültig markiert. Der When-Validate-Item-Trigger wird allerdings ausgelöst.

Dieses Verhalten bezieht sich sowohl auf Text- als auch auf Listenobjekte.

Initialisierung von Spiegelobjekten (synchronisierten Objekten)

Angenommen, in demselben Datenblock sind drei Objekte (A, B und C) vorhanden. Wenn Sie das Attribut Mit Objekt synchronisieren von A und B auf Objekt C einstellen, werden die Objekte A und B als untergeordnete Spiegelobjekte betrachtet. Objekt C ist das übergeordnete Spiegelobjekt.

Die Initialisierungsregeln für Spiegelobjekte bei Form Builder 4.5 unterscheiden sich wie folgt von den Regeln bei 5.0:

•	Innerhalb einer Gruppe von Objekten, die einander spiegeln (einschließlich dem übergeordneten Spiegelobjekt), stammt der Ausgangswert aus dem letzten Objekt innerhalb der Gruppe (bezogen auf die Sequenz innerhalb des Blocks), das einen anzeigbaren Ausgangswert angibt. Das heißt, jeder Ausgangswert wird zur Laufzeit angewendet, und der letzte Wert, der von dem Widget des Objekts angezeigt werden kann, setzt vorherige Ausgangswerte außer Kraft. Der Trigger ON-SEQUENCE-NUMBER (sofern vorhanden) wird ausgelöst, wenn der Ausgangswert des zugehörigen Objekts eingestellt wird (wobei davon ausgegangen wird, daß es sich um eine Sequenznummer handelt).

•	Der Ausgangswert wird zur Laufzeit ignoriert, wenn es sich bei dem Objekt um eine Popup-Liste, T-Liste, Optionsgruppe oder ein Kontrollkästchen handelt, das keine anderen Werte zuläßt und bei dem kein Element dem Ausgangswert entspricht. Spiegelnde Objekte werden nicht überprüft.

Validierung von Spiegelobjekten

Die Validierungsregeln bei Form Builder 4.5 für Spiegelobjekte unterscheiden sich wie folgt von den Regeln bei 5.0:

•	Bei einem untergeordneten Spiegelobjekt werden die Attribute Obligatorisch, RANGE_HIGH und RANGE_LOW sowie die Trigger POST-CHANGE und WHEN-VALIDATE-ITEM aus dem untergeordneten Spiegelobjekt genommen.

•	Während der Validierung auf Objektebene werden die Validierungsregeln stets aus dem Objekt genommen, das momentan validiert wird. Dies bedeutet, daß die Validierungsregeln für ein programmgesteuert eingestelltes Objekt von dem Objekt bestimmt werden, zu dem der Endbenutzer als erstes geht. Hier kann es sich um ein Objekt handeln, das dieses Objekt spiegelt, oder um das Objekt selbst.

•	Während der Validierung auf Datensatzebene validiert Form Builder innerhalb einer Gruppe von Spiegelobjekten das Objekt, das am frühesten in dem Block auftritt. Dies kann zu einem Validierungsproblem führen, wenn ungültige Daten in ein Textobjekt oder ein Kombinationsfeld eingegeben werden, das von einem anderen Objekt gespiegelt wird, das an früherer Stelle in dem Block auftritt.

Konvertierung zwischen Datums- und Zeichenfolgenformaten

Um ein Objekt mit dem Datentyp DATE oder DATETIME in eine interne Zeichenfolge (eine Zeichenfolge, die für den Benutzer nicht sichtbar ist) zu konvertieren oder umgekehrt, wählt Form Builder eine Datumsformatmaske für die Konvertierung.

In 5.0 benutzt Form Builder eine vordefinierte Datumsformatmaske für die Konvertierung. Dies umfaßt von PL/SQL durchgeführte Konvertierungen nicht.

Im Laufzeit-Kompatibilitätsmodus von Form Builder 4.5 verwendet Form Builder die Eingabe-, Ausgabe- oder vordefinierten Datumsformatmasken für die folgenden Fälle (unter Über Formatmasken für Datumsangaben finden Sie weitere Informationen über Eingabe-, Ausgabe- und vordefinierte Datumsformatmasken):

•	Bei der Ausführung von GET_ITEM_PROPERTY für ein Objekt mit dem Datentyp DATE oder DATETIME für die Attribute RANGE_HIGH und RANGE_LOW.

•	Bei der Ausführung von GET_ITEM_PROPERTY für ein Objekt mit dem Datentyp DATE oder DATETIME für das Attribut DATABASE_VALUE. Durch den Laufzeit-Kompatibilitätsmodus von Form Builder 4.5 erhalten Sie das Verhalten von Form Builder 4.5.7. (Frühere Releases verwenden das 5.0-Verhalten.)

•	Bei der Einstellung eines Wertes des Rückgabeobjekts einer Wertelistenspalte, wenn die Wertelistenspalte den Datentyp CHAR und das Rückgabeobjekt den Datentyp DATE oder DATETIME hat, oder umgekehrt. Durch den Laufzeit-Kompatibilitätsmodus von Form Builder 4.5 erhalten Sie das Verhalten von Form Builder 4.5.7. (Frühere Releases verwenden das 5.0-Verhalten.)

•	Bei der Einstellung des Ausgangswertes eines Objekts mit dem Datentyp DATE oder DATETIME, wenn der Ausgangswert aus einer Variablen (mit der Doppelpunkt-Schreibweise) mit dem Datentyp CHAR stammt. Durch den Laufzeit-Kompatibilitätsmodus von Form Builder 4.5 erhalten Sie das Verhalten von Form Builder 4.5.7. (Frühere Releases verwenden das 5.0-Verhalten.)

•	Bei der Einstellung des Ausgangswertes eines Objekts mit dem Datentyp CHAR, wenn der Ausgangswert als $$DATE$$, $$DATETIME$$, $$DBDATE$$ oder $$DBDATETIME$$ angegeben wird. Durch den Laufzeit-Kompatibilitätsmodus von Form Builder 4.5 erhalten Sie das Verhalten von Form Builder 4.5.7. (Frühere Releases verwenden das 5.0-Verhalten.)

•	In allen anderen Fällen benutzt Form Builder die vordefinierte Datumsformatmaske. Weitere Informationen über die verschiedenen Datumsformatmasken finden Sie in der Online-Hilfe zu den Formatmasken.

Implizite Einstellung des Attributs Obligatorisch für ein Objekt

Im Laufzeit-Kompatibilitätsmodus von Form Builder 4.5 wird das Attribut Obligatorisch eines Objekts implizit auf False eingestellt, wenn das Objekt durch die Einstellung des Attributs Aktiviert auf PROPERTY_FALSE mit der vordefinierten Prozedur SET_ITEM_PROPERTY deaktiviert wird.

Null-Werte in Popup-Listen und T-Listen

Im Laufzeit-Kompatibilitätsmodus von Form Builder 4.5 kann die programmgesteuerte Zuweisung eines Null-Wertes an eine Popup-Liste oder eine T-Liste nicht erfolgreich ausgeführt werden, wenn die folgenden Bedingungen alle erfüllt sind:

•	Attribut Obligatorisch auf True eingestellt.

•	Das Objekt enthält kein explizit angegebenes Element mit dem Wert Null.

•	Das Objekt läßt keine anderen Werte zu.

Unter diesen Bedingungen gibt Form Builder den folgenden Fehler aus: FRM-40212: Ungültiger Wert für Feld.

Wenn eine abgerufene Zeile einen Null-Wert in einer Spalte enthält, die einer derartigen Popup-Liste oder T-Liste zugewiesen werden soll, wird die abgerufene Zeile zurückgewiesen (wird in dem Block nicht angezeigt).

Im Laufzeit-Kompatibilitätsmodus von Form Builder 4.5 und 5.0 kann ein Null-Wert stets in einem Listenobjekt angezeigt werden, selbst wenn das Listenobjekt kein explizit angegebenes Element mit einem Null-Wert enthält und keine anderen Werte zuläßt. In einer T-Liste wird der Null-Wert angezeigt, indem keines der Elemente ausgewählt wird. In einer Popup-Liste wird ein impliziter Null-Wert temporär zu der Popup-Liste hinzugefügt.

Null-Werte und das Auslösen des POST-CHANGE-Triggers

Im Laufzeit-Kompatibilitätsmodus von Form Builder 4.5 wird der POST-CHANGE-Trigger niemals für einen Null-Wert ausgelöst, der durch eine Abfrage in ein Objekt abgerufen wurde. Bei einem Null-Wert, der einem Objekt programmgesteuert zugewiesen wurde oder vom Endbenutzer in das Objekt eingegeben wurde, wird der POST-CHANGE-Trigger jedoch ausgelöst. Dies erfolgt nur dann nicht, wenn es sich bei dem Objekt um ein Textobjekt handelt. Es wird davon abgeraten, den POST-CHANGE-Trigger bei neuen Anwendungen zu benutzen.


Objekt-Regeln

  Verwandte Themen

In der folgenden Tabelle werden Regeln dargestellt, die Form Builder für erstellte Objekte und für andere Elemente, die sich auf diese Objekte beziehen, anwendet.

Hinweis:

Obwohl durch Form Builder keine Einschränkungen hinsichtlich der Anzahl der in einer Form zu erstellenden Objekte angegeben werden, kann der verfügbare Speicher einen einschränkenden Faktor darstellen.

Element	Regel/Hinweis
Blöcke pro Form	Keine praktische Einschränkung
Leinwände/Fenster	Keine praktische Einschränkung
Leinwandbreite	Keine praktische Einschränkung
Länge Spaltenname	30 Zeichen
Boilerplate-Text	Keine praktische Einschränkung
Datenbankfeld-Referenzen	Keine praktische Einschränkung
Detail-Blöcke pro Master	Keine praktische Einschränkung
Länge globale Variablen	255 Zeichen
Bezeichner (Blocknamen, Feldnamen, Parameterlistennamen usw.)	30 Zeichen
Max. Länge Objekt	2.048 Zeichen bei CHAR-Werten
Objekte pro Block	Keine praktische Einschränkung
Join-Bedingung	255 Zeichen
Ebenen der Menüverschachtelung	8 - 10, je nach Betriebssystem (Bei der Benutzung von Pulldown-Menüs wird empfohlen, die Menüverschachtelung auf vier Ebenen zu begrenzen.)
Werteliste	Keine praktische Einschränkung
Menüpunkte	Keine praktische Einschränkung
Menüs	Keine praktische Einschränkung
Benannte visuelle Attribute	255 benannte visuelle Attribute
PL/SQL-Zeichenfolgen	Keine praktische Einschränkung
WHERE-Klausel und ORDER BY-Klausel	Insgesamt 32.000 Zeichen
Zeichen in Datensatzgruppen-Spalten	255 Zeichen
Datensatzgruppen;	255 Spalten
Substitutionsparameter	Keine praktische Einschränkung
Textobjektbereich Prüfungen pro Block	Keine praktische Einschränkung
Trigger	Keine praktische Einschränkung
Länge benutzerdefinierter lokaler Variablenname	30 Zeichen


Cursor-Regeln

  Verwandte Themen

Ein Datenbank-Cursor ist der Speicherplatz, den ORACLE RDBMS einem SQL-Befehl zuweist. Dies gilt für die SQL-Befehle, die für das Abschicken und Abfragen von Daten implizit sind, und die SQL-Befehle, die in Triggern explizit sind. Form Builder steuert die Cursorzuweisung für alle impliziten SQL-Befehle und die expliziten SQL-Befehle in V2-Triggern.

In der folgenden Tabelle werden die Regeln dargestellt, die für Datenbank-Cursor gelten.

Element	Regel/Hinweis
Offene Cursor (max)	Wert des Parameters OPENCURSORS in der Datei INIT.ORA
Offene Cursor (Minimum)	• 5 pro ORACLE-Verbindung
	• 4 pro Laufzeitsitzung, wenn mit ORACLE oder SQL*Connect ausgeführt
	• 5 pro Block (1 für SELECT, 1 für UPDATE, 1 für INSERT, 1 für DELETE und 1 für QUERY). Die ersten 4 werden nach Bedarf geöffnet, können jedoch durch die Ausführung im Modus OPTIMIZETP=YES  unterdrückt werden. Diese Einschränkung gilt unter normalen Bedingungen, die Anzahl von Cursorn kann jedoch geändert werden, indem Einstellungen in der Form Optionen festlegen geändert werden oder indem Befehlszeilenschalter verwendet werden. Ein Cursor für die Abfrage ist immer für jeden Block nach Bedarf geöffnet und wird niemals gemeinsam benutzt, selbst bei Ausführung im OPTIMIZETP=NO-Modus.
Offene Cursor (Minimum)	• 1 pro Datensatzgruppe, die mit der Abfrage erstellt wird
	• 1 Cursor wird benutzt, wenn die Datenbank-Datums- oder Zeit-Standardwerte ($$DBDATE$$) für ein Objekt referenziert werden.
	• 1 für eine beliebige SQL-Anweisung. Diese können in Triggern, Prozeduren oder Funktionen sein. Diese Einschränkung gilt unter normalen Bedingungen. Die Anzahl von Cursorn kann jedoch geändert werden, indem die Einstellungen in der Form Optionen festlegen geändert werden oder indem Befehlszeilenschalter verwendet werden. Die Cursor-Belegung durch V2-Trigger kann mit dem Befehlszeilenparameter OPTIMIZESQL individuell festgelegt werden.


Dialogfeld Datenbank-Bibliotheken

Im Dialogfeld Datenbank-Bibliotheken wird eine Liste der Bibliotheken angezeigt, die im Augenblick in der Datenbank gespeichert sind.

Bibliothek	Liste der Bibliotheken, die in der Datenbank verfügbar sind, bei der Sie angemeldet sind. Nur Bibliotheken, für die Sie die GRANT-Berechtigung haben, werden in der Liste angezeigt. Klicken Sie auf einen Bibliotheksnamen, um ihn auszuwählen.


Liste der Bibliotheken, die in der Datenbank verfügbar sind, bei der Sie angemeldet sind. Nur Bibliotheken, für die Sie die GRANT-Berechtigung haben, werden in der Liste angezeigt. Klicken Sie auf einen Bibliotheksnamen, um ihn auszuwählen.


Dialogfeld Neuer Programmblock

Im Dialogfeld Neuer Programmblock können Sie Namen und Typ eines zu erstellenden Programmblocks angeben.

Name	Geben Sie den Namen des Programmblocks ein.
Typ	Gibt den Typ des zu erstellenden Programmblocks an.
Prozedur	Ein PL/SQL-Unterprogramm, das eine bestimmte Folge von Aktionen ausführt.
Funktion	Ein PL/SQL-Unterprogramm, das eine bestimmte Folge von Aktionen ausführt und dann einen Wert zurückgibt.
Paketspez.	Datentypen und Unterprogramme, die von anderen Programmblöcken referenziert werden können.
Paketrumpf	Implementierung des Pakets. Kann private Unterprogramme und Datentypen enthalten. Ist optional, wenn das Paket nur aus Deklarationen besteht.
Typspez.	Deklariert Namen, Variablen (Attribute) und teilhabende Unterprogramme (Methoden) für einen Objekttyp oder Collection-Typ.
Typrumpf	Implementierung der teilhabenden Methoden (Funktionen und Prozeduren), die in der Typspezifikation für ein Objekt definiert sind. Für jede in einem Objekttyp angegebene Methode muß ein entsprechender Methodenrumpf vorhanden sein.
Hinweis: Typspez. Und Typrumpf sind nur aktiviert, wenn Sie bei Oracle8 angemeldet sind.


Geben Sie den Namen des Programmblocks ein.


Gibt den Typ des zu erstellenden Programmblocks an.


Dialogfeld Bibliothek öffnen

Im Dialogfeld Bibliothek öffnen können Sie bestehende Bibliotheken aus dem Dateisystem oder der Datenbank öffnen. Außerdem enthält dieses Dialogfeld eine grafische Benutzeroberfläche für den OPEN-Befehl des Interpreters.

Bibliothek	Geben Sie den Namen (und Pfad) der zu öffnenden Bibliothek ein.
Durchsuchen	Wenn im Feld In Dateisystem oder Beiden ausgewählt wurde, wird das Datei-Dialogfeld Ihres Betriebssystems angezeigt. Wenn im Feld In Datenbank ausgewählt wurde, wird das Dialogfeld Datenbank-Bibliotheken angezeigt.
In	Gibt an, ob die Bibliothek im Dateisystem oder in der Datenbank gespeichert ist.


Geben Sie den Namen (und Pfad) der zu öffnenden Bibliothek ein.


Wenn im Feld In Dateisystem oder Beiden ausgewählt wurde, wird das Datei-Dialogfeld Ihres Betriebssystems angezeigt. Wenn im Feld In Datenbank ausgewählt wurde, wird das Dialogfeld Datenbank-Bibliotheken angezeigt.


Gibt an, ob die Bibliothek im Dateisystem oder in der Datenbank gespeichert ist.


Dialogfeld Bibliothek zuordnen

Im Dialogfeld Bibliothek zuordnen können Sie Bibliotheken der aktuellen Sitzung zuordnen. Außerdem enthält dieses Dialogfeld eine grafische Benutzeroberfläche für den ATTACH-Befehl des Interpreters.

Bibliothek	Geben  Sie den Namen (und Pfad) der zuzuordnenden Bibliothek ein.
Durchsuchen	Wenn im Feld In Dateisystem oder Beiden ausgewählt wurde, wird das Datei-Dialogfeld Ihres Betriebssystems angezeigt. Wenn im Feld In Datenbank ausgewählt wurde, wird das Dialogfeld Datenbank-Bibliotheken angezeigt.
In	Gibt an, ob die Bibliothek im Dateisystem oder in der Datenbank gespeichert ist.
Zuordnen	Bestätigt Ihre Auswahlen, ordnet die Bibliothek zu und schließt das Dialogfeld.


Geben Sie den Namen (und Pfad) der zuzuordnenden Bibliothek ein.


Wenn im Feld In Dateisystem oder Beiden ausgewählt wurde, wird das Datei-Dialogfeld Ihres Betriebssystems angezeigt. Wenn im Feld In Datenbank ausgewählt wurde, wird das Dialogfeld Datenbank-Bibliotheken angezeigt.


Gibt an, ob die Bibliothek im Dateisystem oder in der Datenbank gespeichert ist.


Bestätigt Ihre Auswahlen, ordnet die Bibliothek zu und schließt das Dialogfeld.


Dialogfeld Interpreter-Protokoll

Im Dialogfeld Interpreter-Protokoll können Sie Protokollierungsaktivitäten verwalten. Außerdem stellt dieses Dialogfeld eine grafische Benutzeroberfläche für den LOG-Befehl des Interpreters dar.

Datei	Geben Sie den Namen der Datei ein, in der die zu protokollierende Sitzung aufgezeichnet werden soll.
Durchsuchen	Zeigt das Datei-Dialogfeld Ihres Betriebssystems an, in dem Sie nach einem Pfad bzw. einem bestehenden Dateinamen suchen und diesen auswählen können.
Anhängen	Wenn dieses Kontrollkästchen ausgewählt ist, wird die Option APPEND aktiviert, d.h. daß die aktuelle protokollierte Sitzung am Ende der bestehenden Protokoll-Datei angehängt wird, die Sie im Textfeld Datei angegeben haben. Sonst werden die aktuellen Protokollinformationen in der angegebenen Datei von der neuen zu protokollierenden Sitzung überschrieben.
Deaktiviert	Wenn dieses Kontrollkästchen ausgewählt ist, wird die Option DISABLED aktiviert, d.h. die Protokollierung in der angegebenen Datei wird vorübergehend unterbrochen, bis sie wieder aktiviert wird.
Protokoll anzeigen	Wenn dieses Kontrollkästchen ausgewählt ist, wird der Interpreter-Protokoll-Browser angezeigt, wenn das Dialogfeld Interpreter-Protokoll akzeptiert wird. Außerdem können Sie den Interpreter-Protokoll-Browser anzeigen, indem Sie Ansicht [image] Interpreter-Protokoll im Interpreter auswählen.


Geben Sie den Namen der Datei ein, in der die zu protokollierende Sitzung aufgezeichnet werden soll.


Zeigt das Datei-Dialogfeld Ihres Betriebssystems an, in dem Sie nach einem Pfad bzw. einem bestehenden Dateinamen suchen und diesen auswählen können.


Wenn dieses Kontrollkästchen ausgewählt ist, wird die Option APPEND aktiviert, d.h. daß die aktuelle protokollierte Sitzung am Ende der bestehenden Protokoll-Datei angehängt wird, die Sie im Textfeld Datei angegeben haben. Sonst werden die aktuellen Protokollinformationen in der angegebenen Datei von der neuen zu protokollierenden Sitzung überschrieben.


Wenn dieses Kontrollkästchen ausgewählt ist, wird die Option DISABLED aktiviert, d.h. die Protokollierung in der angegebenen Datei wird vorübergehend unterbrochen, bis sie wieder aktiviert wird.


IWenn dieses Kontrollkästchen ausgewählt ist, wird der Interpreter-Protokoll-Browser angezeigt, wenn das Dialogfeld Interpreter-Protokoll akzeptiert wird. Außerdem können Sie den Interpreter-Protokoll-Browser anzeigen, indem Sie Ansicht->Interpreter-Protokoll im Interpreter auswählen.


PL/SQL-Interpreter-Protokoll-Browser

Im PL/SQL-Interpreter-Protokoll-Browser werden die aufgezeichneten Meldungen aus der letzten protokollierten Sitzung angezeigt.

Deaktivieren/Aktivieren	Schaltet den aktiven Status der aktuellen Protokollierungssitzung um.
Aus	Beendet die aktuelle Protokollierungssitzung und schließt den Browser.
Listenfeld mit Meldungen	Ein schreibgeschützter Auswahlbereich, in dem eine Aufzeichnung der Ein- und Ausgabe im Interpreter-Ausschnitt angezeigt wird. Sie können den in dem Listenfeld angezeigten Text auswählen, kopieren und durchsuchen.


Schaltet den aktiven Status der aktuellen Protokollierungssitzung um.


Beendet die aktuelle Protokollierungssitzung und schließt den Browser.


Ein schreibgeschützter Auswahlbereich, in dem eine Aufzeichnung der Ein- und Ausgabe im Interpreter-Ausschnitt angezeigt wird. Sie können den in dem Listenfeld angezeigten Text auswählen, kopieren und durchsuchen.


Dialogfeld Anmelden

Im Dialogfeld Anmelden können Sie eine Verbindung zu einer Datenbankinstanz herstellen. Außerdem stellt dieses Dialogfeld eine grafische Benutzeroberfläche für den CONNECT-Befehl des Interpreters dar.

Benutzername	Geben Sie Ihre Datenbank-Benutzer-ID ein. Sie können die ganze DB-Adresse in dieses Textfeld eingeben, in diesem Fall wird das Kennwort jedoch zurückgegeben.
Kennwort	Geben Sie Ihr Datenbankkennwort ein. In diesem Feld wird das Kennwort nicht zurückgegeben, um die Kennwortsicherheit zu gewährleisten.
Datenbank	Geben Sie die DB-Adresse für die Datenbank ein, bei der Sie sich anmelden wollen. Diese Adresse hat im allgemeinen folgende Form:
	network_protocol:network_node[:database_name]
	Beachten Sie, daß die Felder durch einen Doppelpunkt (:) begrenzt werden. Der Datenbankadministrator gibt Ihnen die richtige DB-Adresse für Ihre Datenbank. Wenn Sie sich bei einer ODBC-Datenquelle anmelden, wird folgende Syntax verwendet:
	username/password@ODBC:datasource[:dbname] Wenn dbname nicht angegeben wird, wird die aktuelle Datenbank für die ODBC-Anmeldung benutzt.
Anmelden	Bestätigt die angegebenen Informationen und versucht, die Verbindung herzustellen. Wenn die Datenbankverbindung erfolgreich ist, wird das Dialogfeld geschlossen. Sonst wird eine Fehlermeldung ausgegeben.


Geben Sie Ihre Datenbank-Benutzer-ID ein. Sie können die ganze DB-Adresse in dieses Textfeld eingeben, in diesem Fall wird das Kennwort jedoch zurückgegeben.


Geben Sie Ihr Datenbankkennwort ein. In diesem Feld wird das Kennwort nicht zurückgegeben, um die Kennwortsicherheit zu gewährleisten.


Geben Sie die DB-Adresse für die Datenbank ein, bei der Sie sich anmelden wollen.


Bestätigt die angegebenen Informationen und versucht, die Verbindung herzustellen. Wenn die Datenbankverbindung erfolgreich ist, wird das Dialogfeld geschlossen. Sonst wird eine Fehlermeldung ausgegeben.


Dialogfeld Liste mit Zugriffsberechtigungen

Im Dialogfeld Liste mit Zugriffsberechtigungen können Sie die Zugriffsberechtigungen zu der gerade ausgewählten Bibliothek oder dem gespeicherten Programmblock im Datenbankserver anzeigen und ändern. Außerdem stellt dieses Dialogfeld eine grafische Benutzeroberfläche für die GRANT- und REVOKE-Befehle des Interpreters dar. Sie benötigen die GRANT-Zugriffsberechtigung für die Bibliothek, um anderen Benutzern eine Zugriffsberechtigung zu erteilen bzw. zu entziehen.

Listenfeld Benutzer	Listet die Benutzer auf, die im Augenblick eine Zugriffsberechtigung zu der ausgewählten Bibliothek oder dem gespeicherten Programmblock haben. Klicken Sie auf einen Benutzernamen, um diesen Namen in das Textfeld Benutzer einzugeben.
Benutzer	Geben Sie den Namen des Benutzers ein, dem Sie eine Zugriffsberechtigung für die ausgewählte Bibliothek oder den gespeicherten Programmblock erteilen oder entziehen wollen. Dieser Benutzername muß ein gültiger Benutzername für die aktuelle Datenbank sein. Wenn der Benutzer schon in dem Listenfeld Benutzer steht, klicken Sie einfach auf den Namen.
Hinzufügen	Fügt den Benutzernamen zu der Liste der Benutzer hinzu, die die GRANT-Zugriffsberechtigung zu der Bibliothek oder dem gespeicherten Programmblock  haben.
Löschen	Löscht den Benutzernamen aus der Liste der Benutzer, die die GRANT-Zugriffsberechtigung zu der Bibliothek oder dem gespeicherten Programmblock haben.


Listet die Benutzer auf, die im Augenblick eine Zugriffsberechtigung zu der ausgewählten Bibliothek haben. Klicken Sie auf einen Benutzernamen, um diesen Namen in das Textfeld Benutzer einzugeben.


Geben Sie den Namen des Benutzers ein, dem Sie eine Zugriffsberechtigung für die ausgewählte Bibliothek erteilen oder entziehen wollen. Dieser Benutzername muß ein gültiger Benutzername für die aktuelle Datenbank sein. Wenn der Benutzer schon in dem Listenfeld Benutzer steht, klicken Sie einfach auf den Namen.


Fügt den Benutzernamen zu der Liste der Benutzer hinzu, die die GRANT-Zugriffsberechtigung zu der Bibliothek haben.


Löscht den Benutzernamen aus der Liste der Benutzer, die die GRANT-Zugriffsberechtigung zu der Bibliothek haben.


Dialogfeld Bibliothek speichern

Im Dialogfeld Bibliothek speichern können Sie eine Bibliothek im Dateisystem oder der Datenbank speichern. Außerdem stellt dieses Dialogfeld eine grafische Benutzeroberfläche für den SAVE-Befehl des Interpreters dar.

Bibliothek	Geben Sie den Namen (und Pfad) der Bibliothek ein, die gespeichert werden soll.
Durchsuchen	Wenn in dem Feld In Dateisystem ausgewählt wurde, wird das Datei-Dialogfeld Ihres Betriebssystems angezeigt. Wenn in dem Feld In Datenbank ausgewählt wurde, wird das Dialogfeld Datenbank-Bibliotheken angezeigt.
In	Gibt an, ob die Bibliothek im Dateisystem oder in der Datenbank gespeichert wird.


Geben Sie den Namen (und Pfad) der Bibliothek ein, die gespeichert werden soll.


Wenn in dem Feld In Dateisystem ausgewählt wurde, wird das Datei-Dialogfeld Ihres Betriebssystems angezeigt. Wenn in dem Feld In Datenbank ausgewählt wurde, wird das Dialogfeld Datenbank-Bibliotheken angezeigt.


Gibt an, ob die Bibliothek im Dateisystem oder in der Datenbank gespeichert wird.


Dialogfeld Suchen/Ersetzen

Im Dialogfeld Suchen/Ersetzen können Sie Zeichenfolgen oder reguläre Ausdrücke in der Quelle Ihres Programmblocks suchen und ersetzen, die momentan im Programmblock- oder Gespeicherten Programmblock-Editor angezeigt werden.

Suchen nach	Geben Sie die zu suchende Zeichenfolge ein. Wenn diese Zeichenfolge als regulärer Ausdruck behandelt werden soll, klicken Sie auf das Kontrollkästchen Regulärer Ausdruck.
Ersetzen durch	Geben Sie die Zeichenfolge ein, durch die die gefundene Zeichenfolge ersetzt werden soll.
Regulärer Ausdruck	Wenn dieses Kontrollkästchen ausgewählt ist, wird die Suchfolge als regulärer Ausdruck und nicht als Zeichenfolge behandelt.
Groß-/Kleinschreibung beachten	Gibt an, ob bei der Suchfolge die Groß- und Kleinschreibung beachtet werden soll. Wenn dieses Kontrollkästchen nicht ausgewählt ist, werden alle Vorkommen der Suchfolge unabhängig von der Schreibweise gefunden.
Weitersuchen	Sucht nach dem nächsten Vorkommen der Suchfolge ab der Cursorposition.
Ersetzen	Ersetzt die zuletzt gefundene Zeichenfolge durch die Zeichenfolge, die in dem Textfeld Ersetzen durch angegeben wird. Wenn keine Übereinstimmung ausgewählt ist, wird nach dem nächsten Vorkommen der Suchfolge gesucht und diese ersetzt.
Alle ersetzen	Ersetzt jedes Vorkommen der Suchfolge durch die Ersetzenfolge (ab der Cursorposition bis zum Ende des Suchbereichs).


Geben Sie die zu suchende Zeichenfolge ein. Wenn diese Zeichenfolge als regulärer Ausdruck behandelt werden soll, klicken Sie auf das Kontrollkästchen Regulärer Ausdruck.


Geben Sie die Zeichenfolge ein, durch die die gefundene Zeichenfolge ersetzt werden soll.


Gibt an, ob bei der Suchfolge die Groß- und Kleinschreibung beachtet werden soll. Wenn dieses Kontrollkästchen nicht ausgewählt ist, werden alle Vorkommen der Suchfolge unabhängig von der Schreibweise gefunden.


Wenn dieses Kontrollkästchen ausgewählt ist, wird die Suchfolge als regulärer Ausdruck und nicht als Zeichenfolge behandelt.


Sucht nach dem nächsten Vorkommen der Suchfolge ab der Cursorposition.


Ersetzt die zuletzt gefundene Zeichenfolge durch die Zeichenfolge, die in dem Textfeld Ersetzen durch angegeben wird. Wenn keine Übereinstimmung ausgewählt ist, wird nach dem nächsten Vorkommen der Suchfolge gesucht und diese ersetzt.


Ersetzt jedes Vorkommen der Suchfolge durch die Ersetzenfolge (ab der Cursorposition bis zum Ende des Suchbereichs).


Dialogfeld PL/SQL-Programmstop

Das Dialogfeld PL/SQL-Programmstop stellt eine grafische Benutzeroberfläche für den BREAK-Befehl des Interpreters dar. Mit ihm können Sie Programmstops und Break-Trigger erstellen oder ändern.

Programmstop	Kennzeichnet den Programmstop und hat die Form Programmstop:  Neu oder Programmstop:  Zahl. Die Beschriftung ist "Neu", wenn Sie einen neuen Programmstop angeben, bzw. eine Zahl, wenn Sie einen bestehenden Programmstop ändern.
Aktiviert	Gibt an, ob der Programmstop aktiviert oder deaktiviert ist.
Programmblock	Kenzzeichnet den Zielprogrammblock, die Position, an der sich der bestehende Programmblock befindet oder an der der neue Programmstop erstellt wird.
Zeile	Kennzeichnet die Quellposition des Programmstops in dem Programmblock.
Trigger	Gibt einen Programmstop-Trigger ein. Falls erforderlich, geben Sie die PL/SQL-Anweisungen ein, die ausgelöst werden, wenn der Programmstop erreicht wird. BEGIN- und ENG-Schlüsselwörter sind in dem Trigger nicht erforderlich. Sie können z.B. DEBUG.INTERPRET verwenden, um einen Interpreter-Befehl auszuführen: DEBUG.INTERPRET('.SHOW LOCALS');.


Kennzeichnet den Programmstop und hat die Form Programmstop:  Neu oder Programmstop:  Zahl. Die Beschriftung ist "Neu", wenn Sie einen neuen Programmstop angeben, bzw. eine Zahl, wenn Sie einen bestehenden Programmstop ändern.


Gibt an, ob der Programmstop aktiviert oder deaktiviert ist.


Kennzeichnet den Zielprogrammblock, in dem sich der bestehende Programmstop befindet oder der neue  Programmstop erstellt wird.


Kennzeichnet die Quellposition des Programmstops in dem Programmblock.


Geben Sie die PL/SQL-Anweisungen ein, die ausgelöst werden, wenn der Programmstop erreicht wird. BEGIN- und END-Schlüsselwörter sind nicht erforderlich.


Dialogfeld PL/SQL-Trigger

Im Dialogfeld PL/SQL-Trigger können Sie einen Debug-Trigger erstellen. Außerdem stellt dieses Dialogfeld eine grafische Benutzeroberfläche für den TRIGGER-Befehl dar.

Trigger	Kennzeichnet den Debug-Trigger und hat die Form Trigger:  Neu oder Trigger:  Zahl. Die Beschriftung ist Neu, wenn Sie einen neuen Debug-Trigger angeben, bzw. eine Zahl, wenn Sie einen bestehenden Debug-Trigger ändern.
Aktiviert	Gibt an, ob der Debug-Trigger aktiviert oder deaktiviert ist.
Speicherort	Gibt die Quellposition des Debug-Triggers an.
	Mit der Option Programmblock (Standard) wird angegeben, daß sich der Debug-Trigger bei einer bestimmten Quellposition in dem Programmblock befindet.
	Mit der Option Debug-Anweisung wird angegeben, daß der Trigger ausgelöst wird, sobald die Ausführung des Programmblocks unterbrochen wird.
	Mit der Option Jede Anweisung wird angegeben, daß der Debug-Trigger direkt vor jeder ausführbaren Anweisung in dem Programmblock ausgelöst wird.
Programmblock	Gibt den Zielprogrammblock an.
Zeile	Gibt die Quellposition des Debug-Triggers in dem Programmblock an.
Triggerrumpf	Gibt die PL/SQL-Anweisungen ein, die als Rumpf der Debug-Trigger benutzt werden sollen. BEGIN- und  END-Schlüsselwörter sind nicht erforderlich. Ein Debug-Trigger kann mit einem bedingten Break-Trigger verglichen werden. Wenn Sie Bedingungen für das Auslösen einer Debug-Aktion angeben, wird der Trigger nur ausgelöst, wenn die Bedingungen wahr sind.   Sie können z.B. DEBUG.BREAK auslösen, wenn eine Variable gleich einem bestimmten Wert ist, z.B. 100.  IF DEBUG.GETC('vnumber') = 100 THEN   RAISE DEBUG.BREAK; END IF;.


Kennzeichnet den Debug-Trigger und hat die Form Trigger:  Neu oder Trigger:  Zahl. Die Beschriftung ist Neu, wenn Sie einen neuen Debug-Trigger angeben, bzw. eine Zahl, wenn Sie einen bestehenden Debug-Trigger ändern.


Gibt an, ob der Debug-Trigger aktiviert oder deaktiviert ist.


Gibt die Quellposition des Debug-Triggers an.


Gibt den Zielprogrammblock an.


Gibt die Quellposition des Debug-Triggers in dem Programmblock an.


Geben Sie die PL/SQL-Anweisungen ein, die als Rumpf des Debug-Triggers benutzt werden sollen.


Dialogfeld PL/SQL-Step

Im Dialogfeld PL/SQL-Step können Sie Optionen festlegen, mit denen Sie beim Debuggen schrittweise durch einen unterbrochenen Programmblockcode gehen können. Dieses Dialogfeld stellt außerdem eine grafische Benutzeroberfläche für den STEP-Befehl des Interpreters dar.

Modus	Gibt an, welche Step-Option benutzt werden soll.
	Bei HINEIN wird die Ausführung bis zur nächsten ausführbaren Anweisung wieder aufgenommen.
	Bei ÜBER wird die Ausführung bis zur nächsten ausführbaren Anweisung im aktuellen Programmblock wieder aufgenommen, wobei eventuelle Unterprogrammaufrufe übersprungen werden.
	Bei HERAUS wird die Ausführung über ein verschachteltes Unterprogramm wieder aufgenommen und bei der nächsten ausführbaren Anweisung in dem aufrufenden Programmblock angehalten.
	Bei AN wird die Ausführung wieder aufgenommen, bis der angegebene Speicherort erreicht ist.
Programmblock	Kennzeichnet den Ziel-Programmblockrumpf für die Befehlsoption STEP AN.
Zeile	Kennzeichnet den Speicherort innerhalb des Ziel-Programmblockrumpfs für die Befehlsoption STEP AN.
Anzahl	Gibt an, wie oft der STEP-Befehl wiederholt wird. Standardmäßig wird die Zahl eins benutzt.
Anwenden	Akzeptiert die angegebenen Optionen und nimmt die Ausführung des Programmblocks entsprechend wieder auf. Da Step-Vorgänge im allgemeinen nacheinander wiederholt werden, wird das Dialogfeld Step angezeigt, bis Sie es explizit schließen oder solange eine aktive Debug-Ebene vorhanden ist.


Gibt an, welche Step-Option benutzt werden soll.


Kennzeichnet den Ziel-Programmblockrumpf für die Befehlsoption STEP AN.


Kennzeichnet den Speicherort innerhalb des Ziel-Programmblockrumpfs für die Befehlsoption STEP AN.


Gibt an, wie oft der STEP-Befehl wiederholt wird. Standardmäßig wird die Zahl eins benutzt.


Akzeptiert die angegebenen Optionen und nimmt die Ausführung des Programmblocks entsprechend wieder auf. Da Step-Vorgänge im allgemeinen nacheinander wiederholt werden, wird das Dialogfeld Step angezeigt, bis Sie es explizit schließen oder solange eine aktive Debug-Ebene vorhanden ist.


Dialogfeld Programmblock laden

Im Dialogfeld Programmblock laden können Sie einen Programmblock importieren und kompilieren, der im Dateisystem gespeichert ist. Außerdem stellt dieses Dialogfeld eine grafische Benutzeroberfläche für den LOAD-Befehl des Interpreters dar.

Datei	Geben Sie den Namen (und Pfad) der Datei ein, die den Quelltext des Programmblocks enthält.
Durchsuchen	Zeigt das Datei-Dialogfeld des Betriebssystems an.
Bestätigungen unterdrücken	Unterdrückt alle Bestätigungsmeldungen während des Laden- und Kompilierenvorgangs, z.B. wenn ein bestehender Programmblock überschrieben wird. Dieses Kontrollkästchen ist standardmäßig deaktiviert, d.h. daß die Bestätigungen nicht unterdrückt werden.
Laden	Bestätigt Ihre Auswahlen, lädt den Programmblock und schließt das Dialogfeld.


Geben Sie den Namen (und Pfad) der Datei ein, die den Quelltext des Programmblocks enthält.


Zeigt das Datei-Dialogfeld des Betriebssystems an.


Unterdrückt alle Bestätigungsmeldungen während des Laden- und Kompilierenvorgangs, z.B. wenn ein bestehender Programmblock überschrieben wird. Dieses Kontrollkästchen ist standardmäßig deaktiviert, d.h. daß die Bestätigungen nicht unterdrückt werden.


Bestätigt Ihre Auswahlen, lädt den Programmblock und schließt das Dialogfeld.


Dialogfeld Debug-Skript interpretieren

Im Dialogfeld Debug-Skript interpretieren können Sie ein Skript importieren und ausführen, das eine beliebige Kombination von Interpreter-Befehlen, PL/SQL-Quellcode oder SQL-Anweisungen enthält. Dieses Dialogfeld stellt außerdem eine grafische Benutzeroberfläche für den INTERPRET-Befehl dar.

Datei	Geben Sie den Namen (und Pfad) der Datei ein, die das zu interpretierende Debug-Skript enthält.
Durchsuchen	Zeigt das Datei-Dialogfeld Ihres Betriebssystems an.
Anzeigen Quelltext	Aktiviert oder deaktiviert das Anzeigen des Quelltextes. Standardmäßig ist dieses Kontrollkästchen deaktiviert, d.h. daß nicht jede Zeile des Skripts auf der Interpreter-Befehlszeile beim Laden des Skripts wiedergegeben wird.
Meldungn nicht anzeigen	Aktiviert oder deaktiviert die Anzeige von Meldungen. Standardmäßig ist dieses Kontrollkästchen deaktiviert, d.h. beim Laden des Skripts werden Statusmeldungen angezeigt.
Bestätigungen unterdrücken	Unterdrückt alle Bestätigungen während des Vorgangs, z.B. beim Überschreiben eines bestehenden Programmblocks. Standardmäßig ist diese Option deaktiviert, d.h. die Bestätigungen werden nicht unterdrückt.
Interpretieren	Bestätigt Ihre Auswahlen, führt das Skript aus und schließt das Dialogfeld.


Geben Sie den Namen (und Pfad) der Datei ein, die das zu interpretierende Debug-Skript enthält.


Zeigt das Datei-Dialogfeld Ihres Betriebssystems an.


Aktiviert oder deaktiviert das Anzeigen des Quelltextes. Standardmäßig ist dieses Kontrollkästchen deaktiviert, d.h. daß nicht jede Zeile des Skripts auf der Interpreter-Befehlszeile beim Laden des Skripts wiedergegeben wird.


Aktiviert oder deaktiviert die Anzeige von Meldungen. Standardmäßig ist dieses Kontrollkästchen deaktiviert, d.h. beim Laden des Skripts werden Statusmeldungen angezeigt.


Unterdrückt alle Bestätigungen während des Vorgangs, z.B. beim Überschreiben eines bestehenden Programmblocks. Standardmäßig ist diese Option deaktiviert, d.h. die Bestätigungen werden nicht unterdrückt.


Bestätigt Ihre Auswahlen, führt das Skript aus und schließt das Dialogfeld.


Dialogfeld Kompilieren

Im Dialogfeld Kompilieren werden Kompilierungsfehlermeldungen während der Stapelkompilierung angezeigt. In diesem Dialogfeld können Sie die Kompilierung anhalten und wieder aufnehmen und zu der Fehlerquelle gehen.

Statuszeile	Zeigt folgende Informationen an, während Programmblöcke kompiliert werden:
	Name und Typ des gerade kompilierten Programmblocks
	[UNTERBROCHEN], wenn Sie auf Unterbrechen klicken
	Prozentsatz von Programmblöcken, die kompiliert wurden
Listenfeld mit Kompilierungs-fehlern	Ein Auswahlbereich, der auf Mausaktionen reagiert und in dem Fehler angezeigt werden, die während der Kompilierung der ausgewählten Programmblöcke auftreten. Klicken Sie auf einen Fehler in dem Listenfeld mit den Kompilierungsfehlern, um den Programmblock-Editor und den Programmblock aufzurufen, in dem der Fehlker aufgetreten ist. Wenn Sie während einer unterbrochenen Kompilierung (nach Klicken auf Unterbrechen) auf einen Fehler in dem Listenfeld mit den Kompilierungsfehlern klicken, werden Sie in einem Warnfenster unterrichtet, daß die Stapelkompilierung abgebrochen wird, wenn Sie zu der Quelle eines Fehlers gehen.
Unterbrechen	Unterbricht die Kompilierung vorübergehend, z.B. wenn zu viele Fehler generiert wurden.
Wiederaufnehmen	Nimmt die Kompilierung nach einer Unterbrechung wieder auf.
Gehe zu Fehler	Zeigt den Programmblock-Editor an, der die Programmblockquelle bei der Position des ersten Fehlers enthält. Wenn Sie während einer unterbrochenen Kompilierung (nach Klicken auf Unterbrechen) auf diese Schaltfläche klicken, werden Sie in einem Warnfenster unterrichtet, daß die Stapelkompilierung abgebrochen wird, wenn Sie zu der Quelle eines Fehlers gehen. Zeigt außerdem das Dialogfeld PL/SQL-Kompilierungsmeldungen an, ein Auswahlfeld, in dem Sie nach allen Fehlern suchen können, die während der Kompilierung der ausgewählten Programmblöcke aufgetreten sind. Klicken Sie auf einen Fehler in dem Listenfeld, um den Programmblock-Editor und den Programmblock anzuzeigen, in dem der Fehler aufgetreten ist.
Gehe zu Fehler	Zeigt den PL/SQL-Editor an, der die Programmblockquelle bei der Position des ersten Fehlers enthält.

Wenn die Kompilierung fehlerfrei beendet wird, wird die Meldung Erfolgreich kompiliert in der Statuszeile angezeigt. Wenn die Kompilierung mit Fehlern beendet wird, wird die Meldung Fehler bei Kompilierung angezeigt.

Das Dialogfeld PL/SQL-Kompilierungsmeldungen ein Auswahlfeld, in dem Sie nach allen Fehlern suchen können, die während der Kompilierung der ausgewählten Programmblöcke aufgetreten sind. Klicken Sie auf einen Fehler in dem Listenfeld, um den Programmblock-Editor und den Programmblock anzuzeigen, in dem der Fehler aufgetreten ist.


Zeigt folgende Informationen an, während Programmblöcke kompiliert werden: Name und Typ des gerade kompilierten Programmblocks, sowie Prozentsatz von Programmblöcken, die kompiliert wurden.


Unterbricht die Kompilierung vorübergehend, z.B. wenn zu viele Fehler generiert wurden. Wenn Sie auf Unterbrechen klicken, wird [UNTERBROCHEN] in der Statuszeile angezeigt.


Nimmt die Kompilierung nach einer Unterbrechung wieder auf.


Zeigt den Browser für PL/SQL-Kompilierungsmeldungen an und ruft den Programmblock-Editor auf, der die Programmblockquelle bei der Position des ersten Fehlers enthält.


 Reguläre Ausdrücke

Reguläre Ausdrücke sind Zeichenfolgen, die eines der folgenden Stellvertreterzeichen enthalten können.

.	Entspricht einem einzelnen Zeichen. So würde z.B. .ie sowohl die als auch sie entsprechen.
( )	Wird benutzt, um die Prioritätsfolge von Operatoren zu erzwingen (z.B. +), wenn die Standardprioritätsfolge nicht eingehalten werden soll. So kommt z.B. die Verkettung von Zeichen (z.B. die) vor anderen Operatoren wie +, so daß die+A gleichbedeutend mit (die)+A ist. Wenn Sie nun dieeeeeeA suchen möchten, können Sie mit Klammern erzwingen, daß + vor der Verkettung steht: di(e+)A.
[ ]	Entspricht einem einzelnen Zeichen in eckigen Klammern. Die eckigen Klammern sind ein logischer OR-Operator. So würde z.B. t[hr]e dem the in Othello und dem tre in Trend entsprechen.
|	Wird zwischen zwei regulären Ausdrücken benutzt. Eine Übereinstimmung wird gefunden, wenn einer der regulären Ausdrücke übereinstimmt.
\	Entspricht dem Sonderzeichen, das auf den umgekehrten Schrägstrich folgt. So würde z.B. \*  dem Zeichen *. entsprechen. Der Backslash ist das Escape-Zeichen. Ein Sonderzeichen, das auf den Backslash folgt, wird nicht als Sonderzeichen behandelt. Nachfolgend einige Verwendungszwecke für das Escape-Zeichen:
	\n entspricht dem Zeichen für neue Zeile
	\t entspricht dem Tabulatorzeichen
	\b entspricht einem Leerzeichen
	\w entspricht \n, \t, \b oder \0
*	Entspricht 0 oder mehreren Vorkommen des regulären Ausdrucks. So würde z.B. (die)*A dem Ausdruck A, dieA und diedieA entsprechen.
+	Entspricht einem oder mehreren Vorkommen des regulären Ausdrucks. So würde z.B. (die)+A sowohl dieA als auch diedieA entsprechen, würde jedoch dem A alleine nicht entsprechen, wie dies bei (die)*A der Fall wäre.

Diese Zeichen haben in eckigen Klammern eine besondere Bedeutung:

~	Entspricht als erstes Zeichen einem Zeichen, das nicht in den Zeichen oder Bereichen innerhalb der eckigen Klammern gefunden wird. So würde z.B. t[~hr]e dem Wort tie, jedoch nicht dem Wort the entsprechen.
-	Entspricht zwischen Zeichenpaaren beliebigen Zeichen in dem Bereich. So würde z.B. [A-E] den Buchstaben A, B, C, D und E entsprechen. Paare von Zeichenbereichen können sein:
	• Buchstaben in derselben Schreibweise, wobei das erste Zeichen vor dem zweiten Zeichen in dem Alphabet steht (bzw. identisch mit diesem ist).
	• Ziffern, wobei die erste Ziffer kleiner als oder gleich der zweiten Ziffer ist  (z.B. [4-9] oder [0-3]).
	Sie können auch das Escape-Zeichen in eckigen Klammern benutzen.
Regeln:  Die Prioritätsfolge von Sonderzeichen in regulären Ausdrücken ist wie folgt: ( ), [ ], verkettete Zeichen (z.B. abc), *, +, ~,  , |, .

In den folgenden Beispielen werden einige der Implikationen der Prioritätsfolge dargestellt:

•	Start|Ende ist gleichbedeutend mit (Start)|(Ende)

•	Start* ist gleichbedeutend mit (Start)*

•	Start|Ende* ist gleichbedeutend mit (Start)|((Ende)*)


Auswahl PL/SQL-Tabellenelemente

Das Dialogfeld Auswahl PL/SQL-Tabellenelemente enthält Indizes für Zeilen in einer ausgewählten Tabelle. In diesem Dialogfeld können Sie die Zeilen auswählen, die voll im Objektnavigator eingeblendet werden sollen.

Listenfeld Datensatzindex	Ein Auswahlbereich, der auf Mausaktionen reagiert und eine Liste mit Indizes für alle Zeilen in der gerade ausgewählten Tabelle enthält.
Alle auswählen	Wählt alle Elemente in der Tabelle aus.
Auswahl ganz aufheben	Hebt die Auswahl aller Elemente in der Tabelle auf.
Standardmäßig sind alle Indizes ausgewählt. Heben Sie einzelne Auswahlen auf, indem Sie mit gedrückter Strg-Taste in der Liste auf diese klicken.


Dialogfeld Suchen/Ersetzen in Programmblöcken

Mit dem Dialogfeld Suchen/Ersetzen in Programmblöcken können Sie einen globalen Suchen- und Ersetzenvorgang über mehrere Programmblöcke hinweg vornehmen.

Suchen nach	Geben Sie die zu suchende Zeichenfolge ein.   Wenn die Zeichenfolge als regulärer Ausdruck behandelt werden soll, wählen Sie das Kontrollkästchen Ausdruck verwenden aus.
Ausdruck	Zeigt eine Liste der regulären Ausdrücke an, die Sie in Ihren Suchkriterien verwenden können. Klicken Sie auf einen Ausdruck, um ihn in das Feld Suchen nach einzugeben.
Ersetzen durch	Geben Sie die Zeichenfolge ein, durch die die Suchfolge ersetzt werden soll.
Ausdruck verwenden	Wählen Sie dieses Kontrollkästchen aus, wenn Sie reguläre Ausdrücke in den Suchkriterien verwenden möchten. Heben Sie die Auswahl des Kontrollkästchens auf, wenn Sie keine regulären Ausdrücke in den Suchkriterien benutzen möchten.
Groß-/Kleinschreibung beachten	Wählen Sie dieses Kontrollkästchen aus, wenn die Schreibweise bei der Suche berücksichtigt werden soll. Heben Sie die Auswahl des Kontrollkästchens auf, wenn alle Vorkommen der Suchfolge unabhängig von der Schreibweise gefunden werden sollen.
Wo suchen	Geben Sie an, wo der Suchen- oder Suchen-/Ersetzen-Vorgang durchgeführt werden soll. In Procedure Builder Standalone stellt / den obersten Programmblöcke-Knoten im Objektnavigator dar. Alle geöffneten PL/SQL-Bibliotheken in der aktuellen Sitzung werden unter / aufgeführt.   Alle Knoten sind standardmäßig ausgewählt. Wenn Sie nur in einem bestimmten Knoten suchen möchten, klicken Sie auf den Knoten.
Alle suchen	Sucht nach jedem Vorkommen der angegebenen Suchfolge. Die Suchfolge wird nicht ersetzt.
All  ersetzen	Ersetzt jedes Vorkommen der Suchfolge durch die angegebene Ersetzenfolge. In einem Meldungsfeld werden Sie zur Bestätigung aufgefordert, bevor der Ersetzenvorgang im Stapelverfahren durchgeführt wird.
Schließen	Schließt das Dialogfeld.
Hilfe	Zeigt dieses Hilfethema an.
Listenfeld Ergebnisse	Zeigt die Vorkommen der gefundenen Zeichenfolgen an. Die Position jeder gefundenen Zeichenfolge wird mit dem Knoten, dem Namen des Programmblocks sowie den Zeilen- und Spaltennumern der Quellzeile angegeben. In der Statusleiste über dem Listenfeld wird die Anzahl von gefundenen Übereinstimmungen dargestellt. Klicken Sie auf ein Vorkommen, um es auszuwählen, damit es bearbeitet oder ersetzt werden kann. Sie können mehr als ein Vorkommen auswählen.
Ersetzen	Ersetzt die Suchfolge durch die Ersetzenfolge nur bei den Vorkommen, die im Listenfeld Ergebnisse ausgewählt wurden.
Bearbeiten	Öffnet die Quelle des ausgewählten Vorkommens im Programmblock-Editor.


Oberfläche des Programmblock-Editors

  Verwandte Themen

Folgende Schaltflächen und Dropdown-Listen sind vorhanden:

Kompilieren	Kompiliert den aktuellen Programmblock. Als Folge der Kompilierung generierte Fehlermeldungen werden in dem Auswahlausschnitt Kompilierungsmeldungen angezeigt.
Anwenden	Speichert Änderungen, die im Editor an dem Programmblock vorgenommen wurden, seit dieser das erste Mal geöffnet wurde oder seit dem letzten Anwenden- bzw. Wiederherstellenvorgang. Der Programmblock wird nicht neu kompiliert. Der Editor bleibt geöffnet. Der Rückgängig-/Wiederholen-Stack wird gelöscht.
Wiederherstellen	Stellt den Programmblock in dem Status wieder her, den er beim letzten Anwenden- oder Wiederherstellenvorgang hatte. Wenn kein Anwenden- oder Wiederherstellenvorgang stattfand, wird der Programmblock in seinen Originalzustand versetzt.
Neu	Zeigt das Dialogfeld Neuer Programmblock an, in dem Sie Typ und Namen des zu erstellenden Programmblocks angeben können.
Löschen	Löscht den angezeigten Programmblock. Sie werden in einem Meldungsfeld zur Bestätigung aufgefordert.
Schließen	Schließt den Programmblock-Editor.
Hilfe	Zeigt dieses Hilfethema an.
Name	Zeigt den Namen des aktuellen Programmblocks an. Klicken Sie auf den Pfeil rechts neben dem Feld, um eine Dropdown-Liste anderer bestehender Programmblöcke anzuzeigen. Klicken Sie auf einem Programmblock in dieser Liste, um diesen Programmblock im Editor anzuzeigen.

Der Editor enthält außerdem folgende Elemente:

Quellausschnitt	In diesem Ausschnitt wird der Quelltext des PL/SQL-Programmblocks eingegeben und bearbeitet. Mit Bildschirmteilern können Sie bis zu vier separate Ansichten des aktuellen Programmblocks erstellen. Durch jede Ansicht kann ein unabhängiger Bildlauf durchgeführt werden. Um horizontale Ansichten im Quellausschnitt zu erstellen, setzen Sie den Cursor zu dem Bildschirmteiler am oberen Rand der vertikalen Bildlaufleiste und doppelklicken Sie. Dadurch wird der Quellausschnitt horizontal in zwei Ansichten mit gleicher Größe geteilt. Sie können auch auf den Bildschirmteiler klicken und diesen nach unten ziehen, um die gewünschten Ansichtgrößen zu erstellen. Um vertikale Ansichten im Quellausschnitt zu erstellen, setzen Sie den Cursor zu dem Bildschirmteiler ganz außen links in der horizontalen Bildlaufleiste und doppelklicken Sie. Dadurch wird der Quellausschnitt vertikal in zwei Ansichten mit gleicher Größe geteilt. Sie können auch auf den Bildschirmteiler klicken und diesen nach rechts ziehen, um die gewünschten Ansichtgrößen zu erstellen. Um die Größe der Ansichten zu ändern, klicken Sie auf den Bildschirmteiler, der die Ansichten teilt, und ziehen Sie ihn. Um eine horizontale oder vertikale Ansicht zu entfernen, doppelklicken Sie auf den Bildschirmteiler, der die Ansichten teilt, und ziehen Sie diesen an den Rand des Ausschnitts. Um alle vier Ansichten gleichzeitig zu entfernen, setzen Sie den Cursor auf den Schnittpunkt der Bildschirmteiler und ziehen ihn in eine Ecke des Ausschnitts. Um eine Codezeile auszuwählen, setzen Sie den Cursor auf den linken Rand und klicken Sie.
Ausschnitt Kompilierungs-meldungen	Zeigt gegebenenfalls Fehlermeldungen an, die als Folge der Kompilierung generiert wurden. Wenn Sie auf eine Fehlermeldung klicken, wird diese markiert, wird im Quellausschnitt zu der Quellanweisung gegangen, die den Fehler erzeugt und der Cursor an die Position des Fehlers gesetzt. Standardmäßig wird der Ausschnitt Kompilierungsmeldungen nur angezeigt, wenn Kompilierungsfehlermeldungen generiert wurden. Sie können den Ausschnitt Kompilierungsmeldungen jedoch jederzeit manuell anzeigen, indem Sie den Cursor in die untere rechte Ecke des Editor-Fenster verschieben, bis er die Form eines Fadenkreuzes annimmt. Danach klicken und ziehen Sie den Cursor nach oben. Dadurch wird der Bildschirmteiler nach oben verschoben und der Ausschnitt Kompilierungsmeldungen wird sichtbar..
Bildschirmteiler	Der Bildschirmteiler trennt den Quellausschnitt und den Ausschnitt Kompilierungsmeldungen. Mit dem Bildschirmteiler können Sie die relative Größe der Ausschnitte ändern. Wenn der Ausschnitt Kompilierungsmeldungen nicht angezeigt wird, befindet sich der Bildschirmteiler am unteren Rand des Editor-Fensters.
Statuszeile	Zeigt Informationen über den aktuellen Status des Programmblocks am unteren Rand des Editors an.


Kompiliert den Programmblock, der im Quellausschnitt angezeigt wird. Als Folge der Kompilierung generierte Fehlermeldungen werden in dem Auswahlausschnitt Kompilierungsmeldungen angezeigt.


Speichert Änderungen, die im Editor an dem Programmblock vorgenommen wurden, seit dieser das erste Mal geöffnet wurde oder seit dem letzten Anwenden- bzw. Wiederherstellenvorgang. Der Programmblock wird nicht neu kompiliert. Der Editor bleibt geöffnet.


Stellt den Programmblock in dem Status wieder her, den er beim letzten Anwenden- oder Wiederherstellenvorgang hatte. Wenn kein Anwenden- oder Wiederherstellenvorgang stattfand, wird der Programmblock in seinen Originalzustand versetzt.


Zeigt das Dialogfeld Neuer Programmblock an, in dem Sie Typ und Namen des zu erstellenden Programmblocks angeben können.


Löscht den angegebenen Programmblock mit Bestätigung.


Versucht, den Editor zu schließen. Wenn Änderungen vorgenommen, jedoch nicht angewandt wurden, werden Sie in einem Meldungsfeld aufgefordert, die Änderungen anzuwenden oder wiederherzustellen bzw. den Vorgang abzubrechen. Nachdem alle Änderungen angewandt oder wiederhergestellt wurden, wird der Programmblock-Editor geschlossen.


Gibt den Typ des Programmblocks (Trigger, Prozedur usw.) an, der gerade im Editor angezeigt wird.


Gibt an, mit welchem Objekt das Programm verknüpft ist.


Zeigt den Namen des aktuellen Programmblocks an. Klicken Sie auf den Pfeil rechts neben dem Feld, um eine Dropdown-Liste anderer bestehender Programmblöcke anzuzeigen. Klicken Sie auf einem Programmblock in dieser Liste, um diesen Programmblock im Editor anzuzeigen.


Geben Sie den Quelltext des PL/SQL-Programmblocks ein bzw. bearbeiten Sie diesen.


Zeigt Fehlermeldungen an, die während der Kompilierung aufgetreten sind. Klicken Sie auf einen Fehler, um zu der Quelle im Programmblock zu gehen.


Mit dem Bildschirmteiler können Sie den relativen Platz ändern, den zwei Ausschnitte (Quelle und Kompilierungsmeldungen) im Programmblock-Editor belegen. Standardmäßig wird der Ausschnitt Kompilierungsmeldungen nur angezeigt, wenn während der Kompilierung Fehlermeldungen generiert werden.


Auf der linken Seite der Statusleiste werden folgende Meldungen angezeigt:

Nicht geändert	Es wurden keine Änderungen an dem Programmblock vorgenommen, seit dieser das erste Mal angezeigt oder das letzte Mal angewandt wurde.
Geändert	Eine oder mehrere Änderungen wurden an dem Programmblock vorgenommen, seit er das erste Mal angezeigt oder das letzte Mal angewandt wurde.

Auf der rechten Seite der Statusleiste werden die folgenden Meldungen angezeigt:

Nicht kompiliert	Der gerade angezeigte Quelltext des Programmblocks wurde nicht kompiliert.
Erfolgreich kompiliert	Der gerade angezeigte Quelltext des Programmblocks wurde ohne Fehler kompiliert.
Mit Fehlern kompiliert	Der gerade angezeigte Quelltext des Programmblocks wurde mit Fehlern kompiliert. Die Fehler werden im Ausschnitt Kompilierungsmeldungen angezeigt.


Editierfunktionen

  Verwandte Themen

Diese Editierfunktionen werden nur im Programmblock-Editor (und dem Gespeicherten Programmblock-Editor) unterstützt:

Automatisches Ein-/ Ausrücken	Während Sie Code in den Editoren eingeben, werden Zeilen automatisch entsprechend den Syntaxregeln von PL/SQL ein- oder ausgerückt.
Farbige Markierung der Syntax	Schlüsselwörter, Kommentare, Zeichenfolgen und Symbole wie z.B. = und || werden mit verschiedenen Farben dargestellt.
Auswahl von Spalten und Zeilen	Sie können Textspalten und Zeilen mit Quellcode auswählen. Um eine Spalte auszuwählen, drücken Sie die ALT-Taste. Danach klicken und ziehen Sie horizontal. Um eine Zeile auszuwählen, klicken Sie auf dem äußersten linken Rand der Zeile im Quellausschnitt.
Textverarbeitung mit Drag-and-Drop	Der ausgewählte Text kann mit Drag-and-Drop kopiert oder verschoben werden. Um Text zu kopieren, drücken Sie die Strg-Taste und ziehen den ausgewählten Text. Um Text zu verschieben, ziehen Sie einfach den ausgewählten Text.
Zeilen ein-/ausrücken	Mit den Befehlen Einrücken/Ausrücken im Menü Bearbeiten können Sie ausgewählte Quellzeilen ein- oder ausrücken. Sie können Zeilen auch mit TAB und Umschalttaste-TAB ein- und ausrücken.
Mehrere geteilte Ansichten	Sie können bis zu vier separate Ansichten des aktuellen Programmblocks erstellen. Um horizontale Ansichten zu erstellen, setzen Sie den Cursor auf den Bildschirmteiler am oberen Rand der vertikalen Bildlaufleiste. Danach klicken und ziehen Sie den Bildschirmteiler nach unten. Um vertikale Ansichten zu erstellen, setzen Sie den Cursor auf den Bildschirmteiler ganz außen links in der horizontalen Bildlaufleiste. Danach klicken und ziehen Sie den Bildschirmteiler nach rechts. Um eine horizontale oder vertikale Ansicht zu entfernen, doppelklicken Sie auf den Bildschirmteiler, der die Ansichten teilt.
Drucken	Wählen Sie Datei [image] Drucken, um den aktuellen Programmblock zu drucken.
Unbegrenzte Wiederholung der Befehle Rückgängig/Wieder-holen	Mit den Befehlen Rückgängig/Wiederholen im Menü Bearbeiten können Sie Änderungen bis zum letzten Speichernvorgang rückgängig machen bzw. wiederholen.

Hinweis: Diese Funktionen sind nur in Microsoft Windows verfügbar. In UNIX können Sie nur folgende Funktionen ausführen:

•	Aktuellen Programmblock ausführen

•	Ausgewählte Zeilen mit TAB und Umschalttaste-Tab ein- und ausrücken

•	Ausgewählten Text mit Drag-and-Drop verschieben


 Maus im Editor benutzen

  Verwandte Themen

Die folgenden Mausaktionen werden bei der Benutzung des Programmblock-Editors (oder Gespeicherten Programmblock-Editors) in Microsoft Windows unterstützt:

Funktion:	Mausaktion:
Zeichen in einem Bereich auswählen	Klicken und ziehen Sie den Cursor vom ersten Zeichen bis zum letzten Zeichen in dem auszuwählenden Bereich (wird auch bei UNIX unterstützt). Oder Klicken Sie auf das erste Zeichen, drücken Sie die Umschalttaste, und klicken Sie auf das letzte Zeichen in dem auszuwählenden Bereich.
Wort unter Cursor auswählen	Doppelklicken Sie auf das Wort (wird auch in UNIX unterstützt). Oder  Drücken Sie die Strg-Taste, und klicken Sie dann auf das auszuwählende Wort.
Wörter in einem Bereich auswählen	Drücken Sie die Strg-Taste, klicken Sie, und ziehen Sie den Cursor vom ersten Wort bis zum letzten Wort in dem auszuwählenden Bereich.
Zeile auswählen	Setzen Sie den Cursor auf den linken Rand der auszuwählenden Zeile. Klicken Sie, wenn der Cursor die Form eines Pfeils annimmt.
Mehrere Zeilen auswählen	Setzen Sie den Cursor auf den linken Rand der ersten auszuwählenden Zeile. Wenn der Cursor die Form eines Pfeils annimmt, klicken und ziehen Sie den Cursor zur letzten auszuwählenden Zeile.
Textspalten auswählen	Drücken Sie die Alt-Taste, klicken Sie, und ziehen Sie den Cursor von der ersten Spalte bis zur letzten Spalte in dem auszuwählenden Bereich.
Ausgewählten Text verschieben	Markieren Sie zuerst den Text. Danach klicken und ziehen Sie den ausgewählten Text an die gewünschte Stelle (wird auch in UNIX unterstützt).
Ausgewählten Text kopieren	Markieren Sie zuerst den Text. Danach drücken Sie die Strg-Taste, und ziehen Sie den ausgewählten Text an die Stelle, an der eine Kopie stehen soll, und lassen Sie die Maustaste los.
Fenster in zwei horizontale Ansichten teilen	Doppelklicken Sie auf den Bildschirmteiler am oberen Rand der vertikalen Bildlaufleiste. Oder Klicken und ziehen Sie den Bildschirmteiler am oberen Rand der vertikalen Bildlaufleiste.
Fenster in zwei vertikale Ansichten teilen	Doppelklicken Sie auf den Bildschirmteiler am äußersten linken Rand der horizontalen Bildlaufleiste. Oder Klicken und ziehen Sie den Bildschirmteiler am äußersten linken Rand der horizontalen Bildlaufleiste.
Relative Größe von geteilten Ansichten anpassen	Klicken und ziehen Sie den Bildschirmteiler, der die Ansichten teilt.
Geteilte Ansichten entfernen	Doppelklicken Sie auf den Bildschirmteiler, der die Ansichten teilt. Oder Klicken und ziehen Sie den Bildschirmteiler bis zum Rand des Fensters. Um alle vier Ansichten gleichzeitig zu entfernen, doppelklicken Sie auf den Schnittpunkt, an dem die Bildschirmteiler aufeinandertreffen, oder ziehen Sie den Bildschirmteiler in eine beliebige Ecke des Fensters.


Tastatur im Editor benutzen

  Verwandte Themen

Die folgenden Tastaturaktionen werden unterstützt, wenn Sie den Programmblock-Editor (und Gespeicherten Programmblock-Editor) in Microsoft Windows und UNIX verwenden:

Funktion:	Tastenkombination:
Cursor ein Zeichen nach links verschieben	Pfeiltaste nach links
Zeichen auswählen, während Cursor nach links verschoben wird	Umschalttaste + Pfeiltaste nach links
Cursor ein Zeichen nach rechts verschieben	Pfeiltaste nach rechts
Zeichen auswählen, während Cursor nach rechts verschoben wird	Umschalttaste + Pfeiltaste nach rechts
Ausgewählte Zeichen oder Wörter kopieren	Strg + C
Ausgewählte Zeichen oder Wörter ausschneiden	Strg + X
Inhalt der Zwischenablage einfügen	Strg + V
Zeichen rechts neben der Cursorposition löschen bzw. ausgewählte Zeichen oder Wörter löschen	Entf-Taste
Zeichen links neben der aktuellen Cursorposition löschen	Rücktaste
Cursor zum Ende des Programmblocks verschieben	Strg + Ende	(nur Windows)
Cursor an den Anfang des Programmblocks verschieben	Strg + Pos1	(nur Windows)
Quellzeilen von der aktuellen Cursorposition bis zum Ende des Programmblocks auswählen	Strg + Umschalttaste + Ende	(nur Windows)
Quellzeilen von der aktuellen Cursorposition bis zum Anfang des Programmblocks auswählen	Strg + Umschalttaste + Pos1	(nur Windows)
Cursor zum Ende der aktuellen Zeile verschieben	Ende	(nur Windows)
Cursor zum Anfang der aktuellen Zeile verschieben	Pos1	(nur Windows)
Zeichen von der aktuellen Cursorposition bis zum Ende der aktuellen Zeile markieren	Umschalttaste + Ende	(nur Windows)
Zeichen von der aktuellen Cursorposition bis zum Anfang der aktuellen Zeile markieren	Umschalttaste + Pos1	(nur Windows)
Ausgewählte Zeile oder Zeichen rechts neben der aktuellen Cursorposition	Tabulatortaste
Ausgewählte Zeile ausrücken	Umschalttaste + Tabulatortaste
Cursor eine Zeile nach unten verschieben	Pfeiltaste nach unten
Zeile markieren, während der Cursor nach unten verschoben wird	Umschalttaste + Pfeiltaste nach unten
Cursor eine Zeile nach oben verschieben	Pfeiltaste nach oben
Zeile markieren, während der Cursor nach oben verschoben wird	Umschalttaste + Pfeiltaste nach oben
Um die Anzahl von Zeilen, die im Quellausschnitt dargestellt werden, im Programmblock nach unten blättern	Bild-Ab-Taste
Um die Anzahl von Zeilen, die im Quellausschnitt dargestellt werden, im Programmblock nach unten blättern und die Zeilen gleichzeitig markieren	Umschalttaste + Bild-Ab-Taste
Um die Anzahl von Zeilen, die im Quellausschnitt dargestellt werden, im Programmblock nach oben blättern	Bild-Auf-Taste
Um die Anzahl von Zeilen, die im Quellausschnitt dargestellt werden, im Programmblock nach oben blättern und die Zeilen gleichzeitig markieren	Umschalttaste + Bild-Auf-Taste
Letzte Aktion rückgängig machen	Strg + Z	(nur Windows)
Letzte Rückgängig-Aktion wiederherstellen	Strg + Y	(nur Windows)


Über die Ziele beim Entwurf von Forms

Bevor Sie Ihre Anwendung entwerfen, berücksichtigen Sie die folgenden Aspekte:

Produktivität  Mit der Anwendung muß der Endbenutzer produktiver arbeiten als mit dem vorher benutzten System. Die Anwendung muß eine einfache, leicht verständliche Präsentation der Informationen verwenden.

Einfach erlernbar  Die Anwendung muß einfach erlernbar und intuitiv sein. Die Produkte müssen konsistent, vertraut und ihr Verhalten muß vorhersehbar sein. Es müssen eindeutige und verständliche Methoden für Erstbenutzer kombiniert mit schnellen und leistungsfähigen Methoden für Experten vorhanden sein.

Erfahrung der Benutzer  Der Benutzer darf keine Angst vor der Anwendung haben. Die Anwendung muß einem Benutzer die Informationen und Werkzeuge bereitstellen, die erforderlich sind, um Aufgaben schnell auszuführen. Außerdem muß die Anwendung den Benutzer mit neuesten und aussagefähigen Informationen versorgen. Die Anwendung sollte ein Experimentieren erlauben, ohne daß der Benutzer Angst vor nicht wiedergutzumachenden Konsequenzen hat.

Gleichzeitig muß zwischen dem Erzielen der "optimalen Benutzeroberfläche" und der Zeit und den Ressourcen, die für das Generieren und Verwalten dieser Oberfläche erforderlich sind, sowie der Zuweisung der Ressourcen für das Generieren der grundlegenden Produktfunktionalität Ausgewogenheit bestehen. Ein Produkt mit der besten Benutzeroberfläche erfüllt die Anforderungen nicht, wenn es zu spät verfügbar ist oder den Unternehmensanforderungen nicht gerecht wird.


Anforderungen analysieren

Die Benutzeroberfläche des Produkts muß basierend auf dem Feedback erfahrener Benutzer entwickelt werden. So sollten Sie z.B. einen Bildschirm für Journaleinträge auf den Kommentaren der Buchhalter aufbauen, die diesen Bildschirm den ganzen Tag über benutzen. Dieses scheinbar einfache Konzept wird häufig übersehen. Statt dessen beruht die Entwicklung von Benutzeroberflächen auf 'Tests', die der Entwickler durchführt, der im Büro nebenan sitzt. Nur der tatsächliche Benutzer des Produktes kann Kommentare über die Nützlichkeit der Benutzeroberfläche abgeben. Sie müssen eine Vielzahl von Benutzern befragen.

Das Feedback von Benutzern bei einem einzigen Standort führt dazu, daß die Aufgabe entsprechend deren spezifischen Implementierungen durchgeführt wird. Wenn möglich, fordern Sie Feedback aufgrund praktischer Erfahrung und nicht anhand von Prototypen auf Papier an.


Taskablauf analysieren

Für jede Task, die ein Produkt unterstützen soll, sollte ein Ablaufdiagramm der Schritte angefertigt werden, die zur Durchführung der Task erforderlich sind. Nur wenn alle Aspekte einer bestimmten Task identifiziert sind, werden Möglichkeiten zur Optimierung deutlich. Sobald der gewünschte Ablauf einer Task dokumentiert ist, können Sie die folgenden Punkte analysieren, damit Sie die richtige Benutzeroberfläche für die Bildschirme zur Unterstützung dieser Task entwickeln können:

•	Welche zusammengehörigen Informationen werden zur Durchführung der Task benötigt? Welche Informationen muß der Benutzer ignorieren?

•	Wie häufig werden Daten für den Bildschirm benutzt, und wie umfangreich sind diese Daten?

•	Welche Widgets sind am geeignetsten? Wird der Bildschirm von Schreibkräften benutzt, die eine schnelle Dateneingabe vornehmen?

•	Welche Schulung braucht der Benutzer für die bestimmte Task und den Bildschirm?

•	Was geschieht, wenn ein Benutzer einen Fehler bei einem bestimmten Schritt macht oder versucht, einen Schritt zu umgehen? Müssen die Schritte der Aufgabe folgerichtig erfolgen oder können sie parallel ausgeführt werden?

•	Welche Entscheidungen muß der Benutzer während der Ausführung der Task fällen? Was geschieht, wenn diese Entscheidungen nur in Sonderfällen erforderlich sind?

•	Mit welchen anderen Werkzeugen sollte der Benutzer vertraut sein? Was sind die Erwartungen der Benutzer an Ihr Produkt basierend auf diesen anderen Werkzeugen?


Über die Portabilität

 Beispiele	     Verwandte Themen

Mit Portabilität wird die Gleichförmigkeit in verschiedenen Umgebungen bezeichnet. Im Idealfall bedeutet Portabilität, daß Sie eine Anwendung auf einer Plattform, wie z.B. einer UNIX-Workstation entwickeln und transparent (ohne Änderungen) auf mehreren anderen Plattformen ausführen können, wie z.B. Microsoft Windows und Macintosh.

In Wirklichkeit bedeuten die verschiedenen Möglichkeiten, mit denen verschiedene Plattformen und Fenstersysteme die Grundlagen implementieren, die deren "Look-and Feel" darstellen, daß die unterscheidenden Eigenschaften einer Benutzeroberfläche auf einer anderen Benutzeroberfläche anders aussehen. So sind z.B. Position und Präsentation des Hilfe-Menüs bei Microsoft Windows, Macintosh und Motif unterschiedlich.


Entwurf Hinblick auf Portabilität

  Verwandte Themen

Einschränkungen, die sich aus der Unterstützung aller Plattformen und aus Übersetzungsanforderungen ergeben, müssen in einem frühen Stadium des Entwurfs berücksichtigt werden.

Wenn eine Anwendung in mehreren Umgebungen eingesetzt wird, muß sie allen Anforderungen dieser Umgebungen gerecht werden. Wenn Sie nur in einer einzigen Umgebung eingesetzt wird, muß die Anwendung nur den Anforderungen dieser einen Umgebung entsprechen. Selbst ein Produkt, das zur Benutzung auf allen Plattformen ausgelegt ist, kann eine zusätzliche Logik enthalten, die nur bei bestimmten Plattformen aufgerufen wird. Sie als Entwickler müssen sicherstellen, daß Ihre Anwendung auf allen Plattformen, auf denen sie laufen soll, die erwartete Leistung bringt


Beispiele zur Portabilität

•	Plattformportabilität: die Möglichkeit, dieselbe Anwendung plattformübergreifend einzusetzen.

Beispiel Entwicklung auf UNIX, Benutzung auf Microsoft Windows und Macintosh.

•	Geräteportabilität (einschließlich Varianten bei Bildschirmgröße und -auflösung sowie Monochrom-/Farbdifferenzen): Entwicklung und Einsatz auf derselben Plattform, jedoch mit unterschiedlichen Geräten.

Beispiel Entwicklung auf Microsoft Windows, Benutzung sowohl auf Microsoft Windows-Großbildschirm mit hoher Auflösung als auch auf Microsoft Windows-Kleinbildschirm mit niedriger Auflösung.

•	UI-Portabilität: Einsatz derselben Anwendung auf GUI- und Zeichenmodus-Geräten.

Beispiel Entwicklung auf Microsoft Windows, Benutzung auf Microsoft Windows und VT220.


Über das Portieren

  Verwandte Themen

Der allgemeine Vorgang beim Erstellen portierbarer Anwendungen umfaßt:

1	Erstellen von Standards für Ihre Anwendung, um ein ähnliches "Look-and-Feel" innerhalb der Anwendung und plattformübergreifend zu gewährleisten.

2	Erstellen der Anwendung auf der Basisplattform.

3	Kopieren, Neukompilieren und Ausführen auf der Zielplattform, Testen auf Bereiche, bei denen im Hinblick auf optimales Erscheinungsbild eine Änderung erforderlich ist.

Wenn Sie eine Anwendung portieren, können Sie sie direkt auf der Zielplattform ausführen. Die Toolkit-Ebene, auf der Form Builder generiert ist, stellt alle Widgets mit einem originalen Look-and-Feel der Zielplattform dar.

Aufgrund der Unterschiede zwischen den Plattformen können Sie eventuell kleine Änderungen an dem Original-Quellcode vornehmen, so daß dieser den Anforderungen auf der Original- und der Zielplattform gerecht wird.

4	Optimierung der Anwendung auf der Basisplattform in Form Builder.


Plattformspezifische Funktionalität

Die plattformspezifische Funktionalität kann bei Forms codiert werden, die auf mehreren Plattformen ausgeführt werden, vorausgesetzt, die grundlegenden Unternehmensanforderungen an das Produkt werden auf allen Plattformen erfüllt. So kann z.B. ein HR-Produkt einen Texteditor zur Verwaltung von Management-Hierarchien erstellen, der auf allen Plattformen läuft, und diesen durch einen grafischen Editor auf einer bestimmten Plattform ergänzen.

Trotz der Verfügbarkeit einer bestimmten Funktion auf einer bestimmten Plattform ist deren Benutzung möglicherweise nicht ratsam. In einem Bildschirm für die blinde Dateneingabe wäre es z.B. nicht richtig, Widgets zu benutzen, die nicht bedient werden können, ohne den Bildschirm zu betrachten.


Plattformspezifische Eigenschaften

Es gibt grundlegende Inkompatibilitäten unter allen unterstützten Benutzeroberflächen, wie z.B. Position und Größe von Bildern. In den Fällen, in denen derartige Inkonsistenzen vorhanden sind und nicht einfach gelöst werden können, befolgen diese Standards das bei MS Windows empfohlene Modell.

Viele Anzeigeeigenschaften von Widgets können mit einem Schema von referenzierten Attributklassen berücksichtigt werden, die ein korrektes Aussehen auf allen Plattformen gewährleisten. Allerdings ist der Entwickler dafür verantwortlich, einen Standardcode zur Berücksichtigung bestimmter Verhaltensweisen zu schreiben. So kann der Benutzer z.B. bei dem Macintosh nicht zu einem anderen Bild als einem Textobjekt navigieren.


Bildschirmeigenschaften

Im allgemeinen beträgt die maximale empfohlene Fenstergröße 7,8" (Breite) x 5,0" (Höhe). Diese maximale Größe ist auf die Anforderung zur Unterstützung des Zeichenmodus zurückzuführen. Wenn das generierte Produkt bzw. die generierte Form nicht im Zeichenmodus ausgeführt werden muß, kann eine größere Bildschirmgröße und somit eine größere Fenstergröße verwendet werden.

Um verschiedene Bildschirmauflösungen bei Bitmap-Monitoren zu unterstützen, sollten Forms mit Koordinatensystemen generiert werden, die auf logischen und nicht physikalischen Maßen beruhen. Deshalb gestalten Sie alle Bildschirme in Zoll.

Um schließlich Monochrom-Bildschirme und Benutzer zu berücksichtigen, die farbenblind sind, darf die Benutzung der Farbcodierung nur zur Ergänzung verwendet werden. Eine Summe in einer Finanzanwendung kann z.B. rot dargestellt werden, wenn sie negativ ist, muß jedoch auch so gezeichnet werden, daß diese Summe ohne Zuhilfenahme von Farbe gelesen werden kann (z.B. mit einem Negativ-Zeichen vor dem Wert).


Fragen im Zusammenhang mit dem Zeichenmodus

Der Zeichenmodus schränkt die Benutzeroberfläche auf verschiedene Arten ein:

•	Bei den Schriftarten handelt es sich um Festschrittschriftarten, die im Durchschnitt mehr Platz als Proportionalschriftarten belegen. Die Bildschirme müssen so ausgelegt sein, daß Boilerplate- und Text-Widgets mit einem Zeichen pro Zelle dargestellt werden können.

•	Die meisten Objekte müssen an dem Raster der Zeicheneinheit ausgerichtet sein, einschließlich Boilerplate (Prompts und Zeilen) und Widgets (Textobjekte, Kontrollkästchen usw.).

•	Jedes Widget muß über die Tastatur bedient werden können, selbst wenn es keinen Fokus hat.

•	Alle Bildschirme müssen in ein Zeicheneinheitenraster von 80 x 24 Zeichen passen.

•	Alle Bildschirme, bei denen ein Bildlauf vorgenommen werden muß, sind schwierig zu benutzen.

•	Schaltflächen in Form von Symbolen müssen verborgen werden, so daß ihre Funktionalität entweder im Zeichenmodus nicht benötigt wird oder daß es eine Alternative für den Aufruf gibt (wie z.B. das Menü Spezial).

•	Das Codieren von Daten mit Schriftart- oder Farbvarianten kann nur als sekundäre Methode zur Darstellung dieser Informationen benutzt werden.

Produkte oder Bildschirme, die nicht im Zeichenmodus ausgeführt werden müssen, sind von diesen Einschränkungen nicht betroffen, obwohl häufig eine GUI-Form einfacher zu entwickeln und benutzerfreundlicher ist, wenn viele dieser Einschränkungen befolgt werden. So ist z.B. ein Bildschirm, der voll über die Tastatur bedient werden kann, unabhängig davon, ob er im Zeichenmodus benutzt wird oder nicht, von großem Vorteil.


Ressourcenfragen bei Microsoft Windows.

Um die Benutzung von Systemressourcen bei der Arbeit mit Microsoft Windows zu verwalten, müssen Sie möglicherweise leicht von den Standards abweichen, um die Anzahl erstellter Widgets zu reduzieren.

Bei sehr großen Forms, die zu ernsthaften Ressourcenproblemen führen können, können folgende Richtlinien und Empfehlungen benutzt werden, um die Ressourcennutzung zu reduzieren:

•	Einige Befehle sollten als Einträge im Menü Spezial und nicht als Schaltflächen in der Form verfügbar sein.

•	Ändern Sie horizontale Bildlaufbereiche in alternative Bereiche, in denen immer nur eine Teilmenge der Spalten angezeigt wird.

•	Reduzieren Sie die Anzahl von Fenstern, indem Sie mehrere alternative Bereiche in einem Fenster verwenden oder indem Sie den Fensterfluß verbessern.

•	Zeigen Sie mehrere Zeilen mit bestimmten Informationen (Primärschlüssel- und Deskriptorfelder) und eine Zeile mit weniger wichtigen Informationen an, indem Sie Überlaufbereiche oder Kombinationsblöcke verwenden.


Übersetzung

Damit ein Produkt in der entsprechenden Landessprache ausgeführt werden kann, müssen alle Prompts, Titel, Meldungen und Daten, die für den Benutzer angezeigt werden, außer den Daten, die während der Benutzung des Produkts eingegeben werden, übersetzbar sein. Der Oracle Translation Manager übernimmt die meisten Aspekte dieser Anforderungen, mit Ausnahme von Meldungen, die vom Message Dictionary verwaltet werden. Der gesamte Text muß dem Benutzer in seiner eigenen Sprache angezeigt werden, mit Ausnahme von kritischen Fehlern, die der Entwickler für das Debuggen der Anwendung benötigt (sie sollten für den Benutzer niemals sichtbar sein).

Für alle Daten, die übersetzt werden, muß etwa 30% mehr Platz vorgesehen werden, wenn diese aus dem Englischen in andere Sprachen übersetzt werden. Je nach Widget und dessen Position muß dieser Platz links und/oder rechts verfügbar sein. Beachten Sie, daß diese Regel der 30%igen Erweiterung für die Anzahl von Zeicheneinheiten und nicht für Zoll gilt, es sei denn, die Form muß nicht im Zeichenmodus ausgeführt werden. Für alle Prompts muß mindestens ein Gesamtbereich von einem Zoll verfügbar sein, in dem der Prompt bei der Übersetzung erweitert werden kann, es sei denn, die übersetzten Längen sind im voraus bekannt.

Numerische Daten und Datumsangaben müssen im richtigen Format für die aktuelle Sprache angezeigt werden


So versteht der Benutzer Informationen

Fensterlayouts sollten auf der logischen Beziehung von Daten basieren und nicht auf den physikalischen Datenbanktabellen. In dem Sales and Marketing-Produkt nimmt ein Benutzer ein 'Account' als spezifische Daten des Accounts wahr ebenso wie die 'Kontakte' und 'Vorsitzende' dieses Accounts. Diese drei Entitäten werden in separaten physikalischen Tabellen gespeichert. Wenn sie jedoch alle in eine einzelne Fenstergruppe gesetzt werden, betrachtet der Benutzer sie weiter als ein logisches Objekt.

Hinweis:  Form Builder fordert den Benutzer zur Speicherung von Änderungen auf, wenn ein neuer Master-Datensatz ausgewählt ist und Änderungen in dem Detail-Block ausstehen. Dadurch wird die Einheit eines logischen Objekts und einer Transaktion aufgebrochen, indem die Attribute auf Block- und Datensatzebene aufgegliedert werden, die nicht umgangen werden konnten.


Summe versus Detail

Wenn Informationen in ein Fenster gesetzt werden, bedeutet dies immer einen Kompromiß zwischen dem Wunsch, viele Datensätze einer Entität gleichzeitig anzuzeigen und gleichzeitig alle Details zu jedem Datensatz zu sehen. Eine Summenansicht hat den Vorteil, daß mehr Datensätze einer Entität angezeigt werden, allerdings auf Kosten detaillierter Informationen über jeden Datensatz. Eine sorgfältige Analyse muß durchgeführt werden, um den besten Kompromiß zwischen Anzahl von Zeilen und Details für jede Funktion zu finden. Häufig ist eine Mischung der beiden Ansichten die beste Antwort.


Unübersichtliche Informationen vermeiden

Es gibt niemals zu viele Informationen - ein Benutzer kann niemals zu viele Informationen erhalten. Wenn Informationen jedoch nicht gut geordnet sind, werden sie einfach unübersichtlich. Wenn eine Entität mit einer großen Anzahl von Attributen sozusagen als Flut von Feldern dargestellt wird, würde der Benutzer gezwungen, den ganzen Bildschirm nach den Informationen zu durchsuchen, die ihn interessieren. Statt dessen sollten die Daten sorgfältig geordnet und gruppiert werden, damit ein Benutzer einfach und natürlich zu den Informationen navigieren kann.


Sichtbarkeit von Informationen

Eine Analyse des Taskablaufs sollte erkennen lassen, zu welchen Informationen ein Benutzer zu einem bestimmten Zeitpunkt Zugang haben muß. Wenn ein Benutzer z.B. die Information Bücher sehen muß, um ein Journal zu öffnen, muß entschieden werden, ob die Information Bücher jederzeit sichtbar sein muß oder ob der Benutzer einfach nur die Möglichkeit haben muß, diese Information bei Bedarf anzuzeigen. Dies wirkt sich wiederum darauf aus, welcher Umfang jeder Entität gleichzeitig angezeigt werden soll und wie viele Fenster erforderlich sind.


Allgemeine Layoutregeln

  Verwandte Themen

Die folgenden Regeln gelten für alle Bildschirme. Spezifische Ausnahmen werden im Verlauf dieses Dokuments aufgeführt.

•	Orientieren Sie das Bildschirmlayout aufgrund der Taskfolge von oben nach unten. Blöcke, Bereiche und Objekte werden nach Prioritätsfolge von links nach rechts und dann von oben nach unten angeordnet.

•	Verschwenden Sie keinen Platz auf dem Bildschirm. Machen Sie die Fenster nur so groß wie erforderlich. Verwenden Sie leeren Platz, um Informationen zu gruppieren.

•	Die meisten Widgets haben eine Höhe von 0,25 Zoll und eine Breite von einem Vielfachen von 0,1 Zoll. Zweidimensionale Widgets (mehrzeilige Textobjekte, T-Listen) haben eine Höhe eines Vielfachen von 0,25 Zoll. Die Höhe von Text-Schaltflächen variiert je nach Plattform.

•	In Blöcken mit einzelnen Datensätzen müssen Objekte, wenn möglich, linksbündig ausgerichtet werden. In Blöcken mit mehreren Datensätzen müssen Objekte horizontal gestapelt und am oberen Rand ausgerichtet werden.

•	Setzen Sie Titel und Prompts über oder links neben das Element, das diese beschreiben. Prompts in Blöcken mit einzelnen Datensätzen stehen immer links neben dem Feld. Prompts in Blöcken mit mehreren Datensätzen stehen über dem Feld und sind entsprechend den Daten innerhalb des Feldes ausgerichtet, das sie beschreiben. Ausnahmen gibt es für Layouts im Matrixstil, bei Feldern, für die keine Prompts erforderlich sind, beim Verbinden von Prompts und bei mehrzeiligen Prompts.

•	Zwischen den Objekten auf der Leinwand und dem Fensterrahmen sollte ein Platz mit einer Breite von mindestens einem Zeichen freigelassen werden. Es wird auch empfohlen, am Anfang und Ende eine Leerzeile vorzusehen, dies ist jedoch nicht erforderlich. Bei Zeilen und Rechtecken, mit denen Blöcke und Bereiche angegeben werden, gibt es Sonderfälle.

•	Heben Sie Dinge hervor, die ähnlich und verschieden sind, wenn dies für den Benutzer von Bedeutung ist. Das heißt, erstellen Sie keine Bereiche, oder benutzen Sie keine Boilerplate-Zeilen, um Objekte zu gruppieren, es sei denn, die Benutzung des Bildschirms wird dadurch verbessert.

•	Heben Sie Daten hervor, und gestalten Sie Steuerelemente für den Zugriff auf diese Daten intuitiv, jedoch nicht aufdringlich.

•	Benutzen Sie dasselbe Bild für dasselbe Attribut in allen Fenstern.


Über das Erstellen von Forms

  Verwandte Themen

Wie kommen Sie nun vom Beginn einer Form zu einer fertigen Anwendung, die die Operatoren ausführen können? Als nächstes werden die Grundlagen aufgeführt:

1	Module erstellen

2	Blöcke und Objekte erstellen

3	Verwenden Sie Benutzeroberflächenstandards für Ihre Objekte.

4	Layout optimieren

5	Attribute bestimmen

6	Code hinzufügen

7	Testen Sie Ihre Anwendung.

Um folgende Schritte auszuführen:	Benutzen Sie dieses Form Builder-Werkzeug:
Module erstellen	Objektnavigator
Blöcke und Objekte erstellen	Datenblock-Assistent
Standards anwenden	Objektbibliothek
Layout optimieren	Layout-Assistent oder Layouteditor
Attribute bestimmen	Attributpalette
Code hinzufügen	PL/SQL-Editor
Form testen	Forms Runtime Debugger


Über Blöcke in Forms

  Verwandte Themen

Ein Block ist ein Container, der eine zusammengehörige Gruppe von Objekten enthält, wie z.B. Textobjekte, Listen und Schaltflächen.

Blöcke haben keine physikalische Darstellung - nur die in einem Block enthaltenen Objekte sind in der Anwendungsoberfläche sichtbar. Wie andere Objekte haben Blöcke jedoch Attribute und können erstellt, kopiert und geändert werden.

Blöcke bieten eine Möglichkeit, zusammengehörige Objekte zu einer funktionalen Einheit zu gruppieren, um Datensätze zu speichern, anzuzeigen und zu verarbeiten. Genau wie Tabellen in der Datenbank aus zusammengehörigen Spalten und Zeilen bestehen, enthalten Blöcke zusammengehörige Objekte, in denen Datensätze angezeigt werden.

Es gibt praktisch keine Grenze für die Anzahl von Blöcken, die in einer Form definiert werden können. Ein Block ist nur eine logische Gruppierung; die Objekte in einem Block können auf verschiedene Leinwände positioniert und in verschiedenen Fenstern angezeigt werden.


Über Blocktypen

  Verwandte Themen

Es gibt zwei Blocktypen, Daten und Steuerelemente.

Datenblock	Datenblöcke sind mit Daten (Tabellenspalten) innerhalb einer Datenbank verknüpft.

Standardmäßig ermöglicht die Verbindung zwischen einem Datenblock und der Datenbank den Operatoren, Zeilen automatisch innerhalb einer Datenbank abzufragen, zu aktualisieren, einzufügen und zu löschen.

Datenblöcke können auf Datenbanktabellen, Ansichten, Prozeduren oder Transaktionstriggern basieren.

Steuerblock	Im Gegensatz dazu ist ein Steuerblock nicht mit der Datenbank verknüpft, und die Objekte in einem Steuerblock sind nicht mit Tabellenspalten innerhalb einer Datenbank verknüpft.

Alle Blöcke sind entweder Blöcke mit einem einzelnen oder mehreren Datensätzen:

•	Ein Block mit einem einzelnen Datensatz zeigt jeweils einen Datensatz an.

•	Ein Block mit mehreren Datensätzen zeigt mehr als einen Datensatz gleichzeitig an.

Außerdem kann ein Datenblock ein Master- oder Detail-Block sein:

•	Ein Master-Block zeigt einen Master-Datensatz an, der mit Detail-Datensätzen verknüpft ist, die in einem Detail-Block angezeigt werden.

•	Ein Detail-Block zeigt Detail-Datensätze an, die mit einem Master-Datensatz verknüpft sind, der in einem Master-Block angezeigt wird.


Blockdatenquellen

  Verwandte Themen

Ein Datenblock kann auf einer der folgenden Datenquellen basieren:

•	Tabelle

•	Ansicht

•	FROM-Klausel (nur Abfragedatenquelle)

•	Prozedur

•	Transaktionstrigger


Richtlinien für die Auswahl von Blockdatenquellen

  Verwandte Themen

Wenn Sie eine Entscheidung über eine Blockdatenquelle treffen, berücksichtigen Sie Ihre Anforderungen:

Wird der Block nur für die Abfrage von Datensätzen benutzt?

Wird der Block zur Durchführung von EINFÜGEN-, AKTUALISIEREN- und LÖSCHEN-Vorgängen (DML) benutzt?

Wird der Block benutzt, um sowohl eine Abfrage als auch DML auszuführen?

Eine Tabelle ist die am häufigsten benutzte Blockdatenquelle. Wenn keine besonderen Anforderungen bestehen, ist eine Tabelle immer noch die beste Auswahl für eine Blockdatenquelle.

Außerdem sollten Sie die funktionalen Einschränkungen für jeden Datenquelltyp berücksichtigen.

Datenquelle	Läßt Abfrage zu	Läßt DML zu (EINFÜGEN, AKTUALI-SIEREN und LÖSCHEN)	Läßt Array-Verarbeitung zu	Läßt Abfrage nach Muster zu
Tabelle	Ja	Ja	Ja	Ja
Ansicht	Ja	Ja (bestimmte Join-Ansichten lassen DML möglicherweise nicht zu)	Ja	Ja
FROM-Klausel	Ja	Nein	Ja (nur für abgefragte Datensätze)	Nein
Prozedur	Ja	Nein (wenn die Prozedur eine Ref-Cursor-Variable verwendet)	Nein (wenn die Prozedur eine Tabelle mit Datensätzen verwendet)	Nein
Transaktions-trigger	Ja	Ja	Nein (wenn der Trigger eine Tabelle mit Datensätzen benutzt)	Nein

Hinweis:  Sie können separate Abfrage- und DML-Datenquellen für einen Datenblock angeben.


Benutzung von Tabellen als Blockdatenquellen

  Verwandte Themen

Eine Tabelle ist die am häufigsten benutzte Blockdatenquelle. Wenn keine besonderen Anforderungen bestehen, ist eine Tabelle immer noch die beste Auswahl für eine Blockdatenquelle.

Mit einen Datenblock, der auf einer Tabelle basiert, kann der Endbenutzer:

•	Datensätze abfragen

•	Datensätze EINFÜGEN, AKTUALISIEREN und LÖSCHEN

•	Nach Muster abfragen

Ein Datenblock, der auf einer Tabelle basiert, reduziert außerdem den Netzwerkverkehr über Array-Verarbeitung.

Das Attribut Array-Größe abfragen aktiviert die Array-Verarbeitung für abgefragte Datensätze, während das Attribut DML-Array-Größe die Array-Abfrage für Datensätze aktiviert, die in DML-Vorgängen benutzt werden.


Transaktionstrigger als Blockdatenquelle benutzen

  Verwandte Themen

Sie können Transaktionstrigger benutzen, um Daten für Ihre Datenblöcke bereitzustellen. Transaktionstrigger werden typischerweise benutzt, wenn Form Builder mit einer fremden Datenquelle arbeitet. Wenn Sie einen Transaktionstrigger benutzen, wird die Standardfunktionalität von Form Builder ersetzt.

Eine Blockdatenquelle in Form eines Transaktionstriggers kann sowohl für die Abfrage als auch für DML verwendet werden. Die Array-Verarbeitung wird nicht unterstützt, wenn die Blockdatenquelle auf einem Transaktionstrigger basiert.


Gespeicherte Prozeduren als Blockdatenquellen benutzen

  Verwandte Themen

Wenn Sie eine gespeicherte Prozedur als Blockdatenquelle benutzen, entspricht dies einer erweiterten Option. Sie basieren einen Datenblock auf einer gespeicherten Prozedur, wenn Sie folgende Vorgänge ausführen möchten:

•	Kontrolle und Sicherheit verbessern

•	Mehrere Tabellen abfragen und aktualisieren

•	Komplexe Berechnungen durchführen

•	Validierung und DML auf Serverseite durchführen

•	Logik innerhalb eines Unterprogramms einkapseln

•	Netzwerkverkehr über Array-Verarbeitung reduzieren

Eine gespeicherte Prozedur gibt Daten an einen Datenblock zurück, indem entweder ein Ref-Cursor oder eine Tabelle mit Datensätzen benutzt wird.


Über Ref-Cursor

  Verwandte Themen

Ein Ref-Cursor ist ein Zeiger auf eine serverseitige Cursorvariable. Er ist analog mit einem Zeiger in "C" insofern, als es sich um die Adresse eines Speicherortes handelt. Die gespeicherte Prozedur gibt eine Referenz auf einen Cursor zurück, der geöffnet ist und mit einer SELECT-Anweisung aufgefüllt ist, um als Blockdatenquelle benutzt zu werden.

Eine gespeicherte Prozedur, die einen Referenzcursor benutzt, kann nur als Abfrage-Blockdatenquelle benutzt werden; sie kann nicht für DML-Blockdatenquellen verwendet werden. Die Benutzung eines Ref-Cursors ist ideal für Abfragen, die nur von Varianten in SQL-Anweisungen und nicht von PL/SQL abhängig sind.

Bei der Entscheidung, ob ein Ref-Cursor oder eine Tabelle mit Datensätzen benutzt werden soll, berücksichtigen Sie, daß

•	eine gespeicherte Prozedur, die einen Ref-Cursor benutzt, nur als Abfrage-Blockdatenquelle benutzt werden kann.

•	eine gespeicherte Prozedur, die eine Tabelle mit Datensätzen benutzt, sowohl als Abfrage- als auch als DML-Blockdatenquelle benutzt werden kann.


Über Tabellen mit Datensätzen

  Verwandte Themen

Eine Tabelle mit Datensätzen ist eine PL/SQL-Struktur, die einem Array mit Datensätzen entspricht. Die gespeicherte Prozedur konstruiert das Array und gibt die Ergebnismenge der Datensätze zurück, die als Blockdatenquelle benutzt werden sollen.

Die Benutzung einer Tabelle mit Datensätzen ist ideal für Abfragen, die von PL/SQL und SQL abhängig sind.

Die Benutzung einer Tabelle mit Datensätzen ist extrem effizient, was die Reduzierung des Netzwerkverkehrs betrifft, da sie einen einzigen Durchgang (vom Client zum Server) zur Ausführung der gespeicherten Prozedur durchführt und einen einzigen Durchgang für alle zurückgegebenen Datensätze.

Die Array-Verarbeitung ist keine Option, wenn ein Datenblock auf einer gespeicherten Prozedur basiert, die eine Tabelle mit Datensätzen zurückgibt. Statt dessen wird in Abfrage- und DML-Vorgängen ein einzelnes Array benutzt. Die Größe des Arrays entspricht der Anzahl von Datensätzen, die für den ganzen Vorgang verarbeitet werden. So ergibt z.B. eine Abfrage von 300 Datensätzen ein einzelnes Array, das eine Größe von 300 Datensätzen hat.

Da Sie keine Array-Verarbeitung benutzen können, werden möglicherweise zusätzliche Datensätze zurückgegeben, die nicht benötigt werden. Dies kann viel Speicherplatz beanspruchen, weil alle Datensätze gleichzeitig im Speicher stehen. Wenn Sie eine Tabelle mit Datensätzen benutzen, sollten Sie die Speicheranforderungen beim Entwurf der Anwendung berücksichtigen. Sie können die Speichernutzung auch begrenzen, indem Sie die Größe des Arrays in der gespeicherten Prozedur kontrollieren.

Bei der Entscheidung, ob ein Ref-Cursor oder eine Tabelle mit Datensätzen benutzt werden soll, berücksichtigen Sie, daß

•	eine gespeicherte Prozedur, die einen Ref-Cursor benutzt, nur als Abfrage-Blockdatenquelle benutzt werden kann.

•	eine gespeicherte Prozedur, die eine Tabelle mit Datensätzen benutzt, sowohl als Abfrage- als auch als DML-Blockdatenquelle benutzt werden kann.


FROM-Klausel als Blockdatenquelle benutzen

  Verwandte Themen

Sie können eine FROM-Klausel als Datenquelle für einen Datenblock benutzen. Eine FROM-Klausel ist ein Merkmal von Oracle8 Server, mit dem Sie eine SELECT-Anweisung in der FROM-Klausel einer SELECT-Anweisung verschachteln können. Eine FROM-Klausel ist eine gültige Abfrage-Blockdatenquelle, jedoch keine DML-Blockdatenquelle. Der Wert, der von einer FROM-Klausel zurückgegeben wird, entspricht einer Teilmenge der Datensätze aus der ursprünglichen Abfrage.

Mit FROM-Klauseln werden Joins, Referenzen und Berechnungen durchgeführt, ohne daß eine Ansicht auf dem Server erstellt werden muß. FROM-Klauseln können auch als Prototypansichten und zur Leistungsverbesserung benutzt werden.

Wenn Sie eine FROM-Klausel als Blockdatenquelle verwenden, entspricht dies der Benutzung einer aktualisierbaren Join-Ansicht als Blockdatenquelle. Eine FROM-Klausel gibt Ihnen jedoch mehr Kontrolle, weil zur Definition der Ansicht kein DBA präsent sein muß. Beachten Sie, daß die FROM-Klausel Ergebnisse erzeugt, die identisch mit einer aktualisierbaren Join-Ansicht von der Clientseite sind, daß jedoch auf der Serverseite keine definierte Ansicht vorhanden ist.

Die Array-Verarbeitung wird unterstützt, um die Leistung durch Reduzierung des Netzwerkverkehrs zu verbessern. Stellen Sie das Attribut Abfrage-Array-Größe ein, um die Array-Verarbeitung zu aktivieren.


Datenblock aus einer Tabelle erstellen

  Nächster Schritt	    Verwandte Themen

So erstellen Sie einen Datenblock aus einer Tabelle:

Wählen Sie Werkzeuge [image] Datenblock-Assistent, um einen Assistenten aufzurufen, der Sie durch die Schritte beim Erstellen eines Datenblocks führt.

Oder

1	Klicken Sie im Objektnavigator auf den Knoten Datenblöcke.

2	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

3	Wählen Sie Neuen Datenblock manuell erstellen im Dialogfeld Neuer Datenblock, und klicken Sie auf OK.

4	Doppelklicken Sie auf das Symbol für das Blockobjekt [image], um die Attributpalette anzuzeigen.

5	Unter dem Knoten Datenbank:

•	Stellen Sie das Attribut Abfrage-Datenquelltyp auf Tabelle ein.

•	Geben Sie den Namen einer Datenbanktabelle in das Textfeld Datenquellname abfragen ein.

6	Unter dem Knoten Komplexe Datenbank:

•	Stellen Sie das Attribut DML-Datenzieltyp auf Tabelle ein.

•	Geben Sie den Namen der Datenquelle in das Textfeld DML-Datenzielname ein.

7	Unter dem Knoten Allgemein klicken Sie auf das Attribut Name, und geben Sie einen Namen ein, oder akzeptieren Sie den Standardnamen.

Sie können einen beliebigen Namen verwenden, der den ORACLE-Benennungsregeln entspricht und unter den Blöcken in der Form eindeutig ist. Der Blockname ist ein interner Deskriptor, der zur Laufzeit nicht angezeigt wird.


Datenblock aus einem Transaktionstrigger erstellen

  Verwandte Themen

So erstellen Sie einen Datenblock aus einem Transaktionstrigger:

Wählen Sie Werkzeuge [image] Datenblock-Assistent, um einen Assistenten aufzurufen, der Sie durch die Schritte beim Erstellen eines Datenblocks führt.

Oder

1	Klicken Sie im Objektnavigator auf den Knoten Datenblöcke.

2	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

3	Wählen Sie Neuen Datenblock manuell erstellen im Dialogfeld Neuer Datenblock, und klicken Sie auf OK.

4	Doppelklicken Sie auf das Symbol für das Blockobjekt [image], um die Attributpalette anzuzeigen.

5	Stellen Sie das Attribut Abfrage-Datenquelltyp unter dem Knoten Datenbank auf Transaktionstrigger ein.

6	Definieren Sie die entsprechenden Transaktionstrigger.

7	Stellen Sie das Attribut DML-Datenzieltyp unter dem Knoten Komplexe Datenbank auf Transaktionstrigger ein.

8	Definieren Sie die entsprechenden Transaktionstrigger.

9	Unter dem Knoten Allgemein klicken Sie auf das Attribut Name, und geben Sie einen Namen ein, oder akzeptieren Sie den Standardnamen.

Sie können einen beliebigen Namen verwenden, der den ORACLE-Benennungsregeln entspricht und unter den Blöcken in der Form eindeutig ist. Der Blockname ist ein interner Deskriptor, der zur Laufzeit nicht angezeigt wird.


Datenblock aus einer Prozedur erstellen, die einen Ref-Cursor verwendet

 Beispiele	   Einschränkungen	    Verwandte Themen

So erstellen Sie einen Datenblock aus einer Prozedur, die einen Ref-Cursor verwendet:

Wählen Sie Werkzeuge [image] Datenblock-Assistent, um einen Assistenten aufzurufen, der Sie durch die Schritte beim Erstellen eines Datenblocks führt.

Oder

1	Klicken Sie im Objektnavigator auf den Knoten Datenblöcke.

2	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

3	Wählen Sie Neuen Datenblock manuell erstellen im Dialogfeld Neuer Datenblock, und klicken Sie auf OK.

4	Doppelklicken Sie auf das Symbol für das Blockobjekt [image], um die Attributpalette anzuzeigen.

5	Unter dem Knoten Datenbank:

•	Stellen Sie das Attribut Abfrage-Datenquelltyp auf Prozedur ein.

•	Geben Sie den Namen einer Prozedur in das Textfeld Abfrage-Datenquellname ein.

•	Geben Sie den Namen einer Prozedur in das Textfeld Abfrage-Datenquellname ein.

•	Doppelklicken Sie auf das Attribut Abfrage-Datenquellspalten, und geben Sie Spaltennamen, Typ, Länge, Genauigkeit und Skalierung für die Ergebnismenge, die von dem Ref-Cursor zurückgegeben wird, in dem Dialogfeld Abfrage-Datenquellspalten ein.

•	Doppelklicken Sie auf das Attribut Abfrage-Datenquellargumente, und geben Sie Namen, Datentyp, Modus und Wert für die Argumente, die an die Prozedur bzw. aus der Prozedur übergeben werden, im Dialogfeld Abfrage-Datenquellargumente ein.

6	Unter dem Knoten Allgemein klicken Sie auf das Attribut Name, und geben Sie einen Namen ein, oder akzeptieren Sie den Standardnamen.

Sie können einen beliebigen Namen verwenden, der den ORACLE-Benennungsregeln entspricht und unter den Blöcken in der Form eindeutig ist. Der Blockname ist ein interner Deskriptor, der zur Laufzeit nicht angezeigt wird.


Einschränkungen beim Erstellen eines Datenblocks aus einer Prozedur, die einen Ref-Cursor verwendet

•	Wenn die Abfrage-Datenquelle eines Blocks eine gespeicherte Prozedur ist, die eine Cursorvariable zurückgibt, und der Block ein Detail-Block in einer Beziehung ist, wird nur die Option für isolierte Löschvorgänge unterstützt. Nicht-isolierte Löschvorgänge und kaskadierende Löschvorgänge können nicht unterstützt werden, weil die entsprechenden SQL-Anweisungen nicht erzeugt werden (Cursor sind eine einzelne aktive Gruppe von Datensätzen, die sich aus einer einzelnen ausgegebenen SELECT-Anweisung ergeben). Um nicht-isolierte und kaskadierende Löschvorgänge durchzusetzen, machen Sie entsprechende Angaben in ON-DELETE-  oder PRE-DELETE Triggern.

•	Abfragetreffer zählen ist deaktiviert, wenn gespeicherte Prozeduren als Datenquelle verwendet werden. Wenn Sie versuchen, Abfragetreffer zur Laufzeit zu zählen, wird eine Fehlermeldung ausgegeben. Statt dessen können Sie den ON-COUNT -Trigger benutzen, um die Abfragetreffer zu zählen.

•	Sie können keine WHERE- oder ORDER BY-Klausel an eine gespeicherte Prozedur übergeben.


Beispiele für das Erstellen eines Datenblocks aus einer Prozedur, die einen Ref-Cursor verwendet

/*

This is an example of a stored procedure that returns a ref cursor as a block datasource.  A package is used to logically group the related data types and procedures.
*/
PACKAGE cv_datasource IS
TYPE emprec is RECORD (empno  emp.empno%TYPE,
         ename  emp.ename%TYPE,
         job    emp.job%TYPE,
         mgr    emp.mgr%TYPE,
         sal    emp.sal%TYPE,
         comm   emp.comm%TYPE,
         deptno emp.deptno%TYPE);
TYPE empcur is REF CURSOR RETURN emprec;
PROCEDURE empquery(resultset  IN OUT empcur,
         p_deptno  IN NUMBER);
END;

PACKAGE BODY cv_datasource IS
    PROCEDURE empquery(resultset IN OUT empcur,
            p_deptno  IN NUMBER) IS;
    BEGIN
      OPEN resultset FOR
      SELECT empno, ename, job, mgr, sal, comm, deptno
      FROM emp
      WHERE deptno = p_deptno
      ORDER BY empno;
    END;
END;


Datenblock aus einer Prozedur erstellen, die eine Tabelle mit Datensätzen verwendet

 Einschränkungen	    Verwandte Themen

So erstellen Sie einen Datenblock aus einer Prozedur, die eine Tabelle mit Datensätzen verwendet:

Wählen Sie Werkzeuge [image] Datenblock-Assistent, um einen Assistenten aufzurufen, der Sie durch die Schritte beim Erstellen eines Datenblocks führt.

Oder

1	Klicken Sie im Objektnavigator auf den Knoten Datenblöcke.

2	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

3	Wählen Sie Neuen Datenblock manuell erstellen im Dialogfeld Neuer Datenblock, und klicken Sie auf OK.

4	Doppelklicken Sie auf das Symbol für das Blockobjekt [image], um die Attributpalette anzuzeigen.

5	Unter dem Knoten Datenbank:

•	Stellen Sie das Attribut Abfrage-Datenquelltyp auf Prozedur ein.

•	Geben Sie den Namen einer Datenbankprozedur in das Textfeld Abfrage-Datenquellname ein.

•	Doppelklicken Sie auf das Attribut Abfrage-Datenquellspalten, und geben Sie Spaltennamen, Typ, Länge, Genauigkeit und Skalierung für die Ergebnismenge, die aus der Tabelle mit Datensätzen zurückgegeben wird, im Dialogfeld Abfrage-Datenquellspalten ein.

•	Doppelklicken Sie auf das Attribut Abfrage-Datenquellargumente, und geben Sie Name, Datentyp, Modus und Wert für die Argumente, die an die Prozedur bzw. aus der Prozedur übergeben werden, in das Dialogfeld Abfrage-Datenquellargumente ein.

6	Unter dem Knoten Komplexe Datenbank:

•	Stellen Sie das Attribut DML-Datenzieltyp auf Prozedur ein.

•	Wenn Sie einen EINFÜGEN-Vorgang aus der Prozedur durchführen, geben Sie den Namen der Prozedur in das Textfeld Prozedurname einfügen ein, doppelklicken Sie auf das Attribut Spalten für Prozedurergebnismengen einfügen, um die Informationen für die Ergebnismenge (Name, Typ, Länge, Genauigkeit und Skalierung) anzugeben, und doppelklicken Sie auf das Attribut Prozedurargumente einfügen, um die Argumentinformationen (Name, Datentyp, Modus, Wert) anzugeben.

•	Wenn Sie einen AKTUALISIEREN-Vorgang aus Ihrer Prozedur ausführen, geben Sie den Namen der Prozedur in das Textfeld Prozedurname aktualisieren ein, doppelklicken Sie auf das Attribut Spalten für Prozedurergebnismengen aktualisieren, um die Informationen für die Ergebnismengen (Name, Typ, Länge, Genauigkeit und Skalierung) anzugeben, und doppelklicken Sie auf das Attribut Prozedurargumente aktualisieren, um die Argumentinformationen (Name, Datentyp, Modus, Wert) anzugeben.

•	Wenn Sie einen LÖSCHEN-Vorgang aus Ihrer Prozedur ausführen, geben Sie den Namen der Prozedur in das Textfeld Prozedurname löschen ein, doppelklicken Sie auf das Attribut Spalten für Prozedurergebnismengen löschen, um die Informationen über die Ergebnismengen (Name, Typ, Länge, Genauigkeit und Skalierung) anzugeben, und doppelklicken Sie auf das Attribut Prozedurargumente löschen, um die Argumentinformationen (Name, Datentyp, Modus, Wert) anzugeben.

•	Wenn Sie einen SPERREN-Vorgang aus Ihrer Prozedur ausführen, geben Sie den Namen der Prozedur in das Textfeld Prozedurnamen sperren ein, doppelklicken Sie auf das Attribut Spalten für Prozedurergebnismengen sperren, um die Informationen für die Ergebnismenge (Name, Typ, Länge, Genauigkeit und Skalierung) anzugeben, und doppelklicken Sie auf das Attribut Prozedurargumente sperren, um die Argumentinformationen (Name, Datentyp, Modus, Wert) anzugeben.

7	Unter dem Knoten Allgemein klicken Sie auf das Attribut Name, und geben Sie einen Namen ein, oder akzeptieren Sie den Standardnamen.

Sie können einen beliebigen Namen verwenden, der den ORACLE-Benennungsregeln entspricht und unter den Blöcken in der Form eindeutig ist. Der Blockname ist ein interner Deskriptor, der zur Laufzeit nicht angezeigt wird.


Einschränkungen beim Erstellen eines Datenblocks aus einer Prozedur, die eine Tabelle mit Datensätzen verwendet

•	In einem Block, der auf einer gespeicherten Prozedur basiert, die einen AKTUALISIEREN-Vorgang ausführt, müssen Sie immer dieselben Spalten in der Prozedur und dem Block referenzieren. Geben Sie keine Werte aus der Prozedur oder Funktion zurück, die nicht als Datenbankobjekte in Ihrer Form benutzt werden. Wenn die Prozedur oder Funktion mehr Spalten zurückgibt, als in dem Block benutzt werden, gibt die Prozedur oder Funktion Nullwerte für die nicht benutzten Spalten zurück.

•	Weil das Attribut Geänderte Spalten aktualisieren bei Prozeduren oder Funktionen als Blockdatenquellen nicht unterstützt wird, muß die Prozedur oder Funktion immer alle Spaltenwerte zurückgeben. (Mit Geänderte Spalten aktualisieren wird angegeben, daß nur Spalten, deren Werte geändert wurden, in der UPDATE-Anweisung enthalten sind.) Sie können nicht feststellen, ob ein Nullwert, der an eine Prozedur oder Funktion übergeben wurde, eine nicht benutzte Spalte in dem Block oder einen absichtlichen Nullwert für eine Spalte darstellt, der benutzt wird. Wenn keine Prozedur oder Funktion vorhanden ist, bei der Sie alle Spaltenwerte zurückgeben müssen, können Sie keine Spalte in einer UPDATE-Anweisung auf einen Nullwert einstellen.

•	Abfragetreffer zählen ist deaktiviert, wenn gespeicherte Prozeduren als Datenquelle verwendet werden. Wenn Sie versuchen, Abfragetreffer zur Laufzeit zu zählen, wird eine Fehlermeldung ausgegeben. Statt dessen können Sie den ON-COUNT -Trigger benutzen, um die Abfragetreffer zu zählen.

•	Sie können keine WHERE- oder ORDER BY-Klausel an eine gespeicherte Prozedur übergeben.


Datenblock aus einer FROM-Klausel erstellen

  Verwandte Themen

So erstellen Sie einen Datenblock aus einer FROM-Klausel:

Wählen Sie Werkzeuge [image] Datenblock-Assistent, um einen Assistenten aufzurufen, der Sie durch die Schritte beim Erstellen eines Datenblocks führt.

Oder

1	Klicken Sie im Objektnavigator auf den Knoten Datenblöcke.

2	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

3	Wählen Sie Neuen Datenblock manuell erstellen im Dialogfeld Neuer Datenblock, und klicken Sie auf OK.

4	Doppelklicken Sie auf das Symbol für das Blockobjekt [image], um die Attributpalette anzuzeigen.

5	Unter dem Knoten Datenbank:

•	Stellen Sie das Attribut Abfrage-Datenquelltyp auf FROM-Klausel ein.

•	Geben Sie eine SELECT-Anweisung (Unterabfrage) in das Textfeld Abfrage-Datenquellname ein.

6	Unter dem Knoten Allgemein klicken Sie auf das Attribut Name, und geben Sie einen Namen ein, oder akzeptieren Sie den Standardnamen.

Sie können einen beliebigen Namen verwenden, der den ORACLE-Benennungsregeln entspricht und unter den Blöcken in der Form eindeutig ist. Der Blockname ist ein interner Deskriptor, der zur Laufzeit nicht angezeigt wird.


Steuerblöcke erstellen

  Nächster Schritt	    Verwandte Themen

So erstellen Sie einen Steuerblock:

1	Klicken Sie im Objektnavigator auf den Knoten Datenblöcke.

2	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

3	Wählen Sie Neuen Datenblock manuell erstellen im Dialogfeld Neuer Datenblock, und klicken Sie auf OK.

4	Doppelklicken Sie auf das Symbol für das Blockobjekt [image], um die Attributpalette anzuzeigen.

5	Unter dem Knoten Allgemein klicken Sie auf das Attribut Name, und geben Sie einen Namen ein, oder akzeptieren Sie den Standardnamen.

Sie können einen beliebigen Namen verwenden, der den ORACLE-Benennungsregeln entspricht und unter den Blöcken in der Form eindeutig ist. Der Blockname ist ein interner Deskriptor, der zur Laufzeit nicht angezeigt wird.


Über Blöcke mit mehreren Datensätzen

  Verwandte Themen

In einem Block mit mehreren Datensätzen werden mehrere Instanzen jedes Blockobjekts angezeigt.

Wenn z.B. das Attribut Anzahl angezeigter Datensätze auf 3 eingestellt ist, zeigt Form Builder drei Instanzen jedes Objekts in dem Block an - eine Instanz für jeden Datensatz, den der Block potentiell anzeigen kann. Sie können angeben, daß ein Objekt in dem Block weniger Datensätze anzeigt, indem Sie das Objektattribut Anzahl angezeigter Objekte entsprechend einstellen.


Blöcke mit mehreren Datensätzen erstellen

  Verwandte Themen

So erstellen Sie einen Block mit mehreren Datensätzen:

1	Klicken Sie im Objektnavigator auf den Knoten Datenblöcke.

2	Doppelklicken Sie auf das gewünschte Block-Objektsymbol [image], um die Attributpalette aufzurufen.

3	Stellen Sie das Attribut Anzahl angezeigter Datensätze unter dem Knoten Datensätze auf die gewünschte Anzahl von Datensätzen ein.

Hinweis: Der Standardwert ist 1. Wenn Sie Anzahl angezeigter Datensätze auf einen höheren Wert als 1 einstellen, wird der Block zu einem Block mit mehreren Datensätzen.


Blöcke löschen

So löschen Sie einen Block:

1	Klicken Sie auf das Symbol für das gewünschte Objekt im Objektnavigator.

2	Wählen Sie Navigator [image] Löschen.

Wenn ein Block gelöscht wird, werden auch die Objekte gelöscht, die der Block enthält, sowie eventuelle Trigger, die an dem Block oder dessen Objekten angehängt sind. Wenn es sich bei dem Block um einen Master- oder Detail-Block in einer Beziehung handelt, wird die Beziehung ebenfalls gelöscht.


Über Bildlaufleisten

  Verwandte Themen

Die Bildlaufleiste ist von den Objekten in dem Block separat und kann an eine beliebige Stelle auf jeder Leinwand in der Form positioniert werden.

Im Layouteditor können Sie die Bildlaufleiste verschieben und skalieren und die Farb- und Musterattribute festlegen. Allerdings können Sie eine Bildlaufleiste im Layouteditor nicht Ausschneiden, Kopieren, Löschen oder Duplizieren.


Block-Bildlaufleisten löschen

So löschen Sie eine Bildlaufleiste:

1	Doppelklicken Sie im Layouteditor auf die Bildlaufleisten, um die Attributpalette anzuzeigen.

2	2  Setzen Sie das Blockattribut Bildlaufleiste anzeigen auf Nein.


Funktion der Bildlaufleiste zur Laufzeit

Die Position des Daumens der Bildlaufleiste in der Bildlaufleisten-Schiene gibt dem Operator die relative Position des aktuellen Datensatzes innerhalb der aktuellen Ergebnismenge des Blocks an.

Beachten Sie jedoch, daß der Daumen der Bildlaufleiste bei einer Abfrage die Position des aktuellen Datensatzes innerhalb der Gruppe von Datensätzen angibt, die bislang abgerufen wurden. Dies umfaßt möglicherweise alle Datensätze, die den Abfragekriterien entsprechen oder auch nicht.

Wenn z.B. 100 Datensätze den Abfragekriterien entsprechen, jedoch immer nur 10 Datensätze gleichzeitig abgerufen werden, würde der 10. Datensatz angezeigt, wenn der Daumen der Bildlaufleiste an den unteren Rand der Schiene verschoben wird, und nicht der 100. Wenn Sie die Bildlaufleiste erneut nach unten ziehen, ruft Form Builder die nächste Gruppe mit 10 Datensätzen ab.

Hinweis:  Sie können den Standardmechanismus für Array-Abrufe für einen Block außer Kraft setzen, indem Sie die vordefinierte Prozedur EXECUTE_QUERY mit dem Parameter ALL_RECORDS aufrufen. Bei großen Datensatzmengen wird jedoch davon abgeraten.


Block-Bildlaufleisten erstellen

  Verwandte Themen

So erstellen Sie eine Block-Bildlaufleiste:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol Block [image] für den gewünschten Block, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Bildlaufleiste:

•	Stellen Sie das Attribut Bildlaufleiste anzeigen auf Ja ein.

•	Stellen Sie das Attribut Bildlaufleisten-Leinwand so ein, daß die Leinwand angegeben wird, auf der die Bildlaufleiste angezeigt werden soll.


Bei einer Datenbank anmelden

So melden Sie sich bei einer Oracle-Datenbank an:

1	Wählen Sie Datei [image] Anmelden.

2	Im Dialogfeld Anmelden:

• 	Geben Sie Ihren Benutzernamen, Ihr Kennwort und den Datenbanknamen ein.

• 	Klicken Sie auf Anmelden.

Wenn Sie sich erfolgreich bei der Datenbank angemeldet haben, wird in der Statusleiste die Anmelden-Anzeige <DB> angezeigt.


Über Objekte

  Verwandte Themen

Objekte sind Schnittstellenobjekte, die Informationen für Operatoren enthalten, damit diese mit Ihrer Anwendung kommunizieren können.

Jedes Objekt in einer Form (Textobjekt, Bildobjekt, Optionsgruppe usw.) gehört zu einem Block.

Form Builder unterstützt verschiedene Arten von Oberflächenobjekten, mit denen Sie die Oberfläche Ihrer Anwendung gestalten können.

ActiveX-Steuerelement	Ein benutzerdefiniertes Steuerelement, mit dem das Erstellen und Gestalten von Benutzeroberflächen vereinfacht wird.

Bean-Bereich	Ein schreibgeschütztes Textfeld, dessen Wert programmgesteuert abgerufen oder zugewiesen werden muß. Operatoren können nicht zu einem Bean-Bereich navigieren bzw. den darin enthaltenen Text bearbeiten.

Diagrammobjekt	Eine Identifikation eines JavaBean, das ein Steuerelement für dieses Objekt darstellt.

Benutzerbereich	Ein Bereich, in dem benutzerdefinierte Objekte gespeichert und angezeigt werden.

Bildobjekt	Ein eingerahmtes Rechteck mit einer beliebigen Größe, in dem Bilder angezeigt werden, die aus der Datenbank abgerufen oder aus dem Dateisystem eingelesen werden.

Hierarchischea Baumelement	Ein Bereich, in dem gruppierte Daten in der Form eines Standardnavigators mit erweiterungsfähigen Knoten angezeigt wird.

Diagrammobjekt	Ein eingerahmtes Rechteck einer beliebigen Größe, in dem ein Diagramm oder eine andere Anzeige ausgegeben werden kann, die von Graphics Builder generiert wird. Operatoren können nicht zu Diagrammobjekten navigieren bzw. diese bearbeiten.

Klangobjekt	Mit Klangobjekten können Benutzer Klänge laden, aufzeichnen, bearbeiten, wiedergeben und speichern.

Kontrollkästchen	Eine Textbeschriftung mit einer grafischen Statusanzeige, die den aktuellen Wert als ausgewählt oder nicht ausgewählt markiert. Wenn Sie auf ein Kontrollkästchen klicken, wird es in den entgegengesetzten Status umgeschaltet.

Listenobjekt	Eine Liste mit Auswahlen, die als Dropdown-Liste angezeigt wird, ein Listenfeld oder ein Kombinationsfeld.

OLE-Container	Ein Bereich, in dem ein OLE-Objekt gespeichert und angezeigt wird, das aus einer OLE-Serveranwendung erstellt wird.

Optionsgruppe	Eine Gruppe mit Optionsschaltflächen, von denen immer eine ausgewählt ist.

Schaltfläche	Ein Rechteck mit einer Beschriftung oder einem Symbol.

Textobjekt	Ein einzeiliges oder mehrzeiliges Textfeld, das eine Vielzahl von Datentypen, Formatmasken und Editiermöglichkeiten unterstützt.

VBX-Steuerelement 	Nur zur Benutzung in Microsoft Windows 3.1.


Über Daten- und Steuerobjekte

  Verwandte Themen

Datenobjekte entsprechen Tabellenspalten innerhalb der Datenbank. Durch Bearbeitung eines Datenobjekts (z.B. eines Textobjekts) kann der Operator Daten direkt beeinflussen, die in der Datenbank gespeichert sind.

Steuerobjekte haben keine Verbindung mit der Datenbank. Wenn der Operator ein Steuerobjekt bearbeitet, sind die Daten innerhalb der Datenbank nicht betroffen, es sei denn, Sie geben die entsprechenden SQL-Anweisungen an. Im allgemeinen erstellen Sie Steuerobjekte nicht, um Daten in der Datenbank zu ändern, sondern um dem Operator die Möglichkeit zu geben, allgemeine Anwendungsfunktionen auszuführen, wie z.B. von einem Bildschirm zu einem anderen zu navigieren.

Steuerobjekte können auch für folgende Funktionen verwendet werden:

•	Anzeige von Gesamtsummen, Durchschnittswerten, Rangfolgen und anderen Summeninformationen, die aus Werten in Datenobjekten und Datenbanktabellen berechnet werden.

•	Akzeptieren von Benutzereingaben, die von der Anwendung angefordert werden, jedoch nicht in der Datenbank gespeichert sind.

•	Anzeige von "Referenzwerten", d.h. Datenbankwerten, die aus einer anderen Tabelle abgeleitet werden.

Beim Erstellen eines Blocks berücksichtigen Sie folgendes:

•	Datenblöcke können sowohl Datenobjekte als auch Steuerobjekte enthalten.

Ein Datenblock könnte z.B. vier Datenobjekte enthalten, mit denen abgefragte Datenbankwerte angezeigt werden, und ein fünftes Objekt, das berechnete Werte anzeigt, jedoch keiner Spalte in der Datenbank entspricht. Das fünfte Objekt wäre ein Steuerobjekt, das von einer Zuweisungsanweisung in dem Trigger aufgefüllt wird, der die Berechnung durchführt.

•	Steuerblöcke können keine Datenobjekte enthalten.

Da Steuerblöcke nicht mit der Datenbank verknüpft sind, kann es sich bei keinem der Objekte in Steuerblöcken um Datenobjekte handeln. (Sie können Steuerobjekte mit Datenbankwerten auffüllen, indem Sie Ihre eigenen SQL-Anweisungen in einem Trigger-Code schreiben.)

•	Schaltflächen und Diagrammobjekte sind immer Steuerobjekte.

Weil diese Objekte keine Werte speichern, stehen sie in keiner Beziehung zu der Datenbank.

•	Sie können die Werte von Steuerobjekten im Code referenzieren, wie lokale und globale Variablen.


Über das Erstellen von Objekten

  Verwandte Themen

Nachdem Sie einen Daten- oder Steuerblock erstellt haben, können Sie jederzeit Objekte in diesem Block erstellen. Sie können Objekte im Objektnavigator erstellen, indem Sie sie unter dem gewünschten Block einfügen, oder im Layouteditor, indem Sie sie auf der gewünschten Leinwand zeichnen.

Beachten Sie, daß ein Block ein logischer und kein physikalischer Container für Objekte ist. Die Objekte in einem Block können in einem beliebigen Layout angeordnet und auf jeder gewünschten Leinwand angezeigt werden.

Bevor Sie ein Objekt erstellen, müssen Sie entscheiden, in welchem Block das Objekt stehen soll und ob es sich bei dem Objekt um ein Daten- oder Steuerobjekt handelt.

Objekte in Datenblöcken erstellen

Wenn Sie ein Objekt in einem Datenblock erstellen, geht Form Builder davon aus, daß es sich bei dem Objekt um ein Datenobjekt handelt, und stellt das Attribut Datenbankobjekt auf Ja ein. Datenobjekte sind automatisch in SELECT-, UPDATE- und INSERT-Anweisungen enthalten, die an die Datenbank ausgegeben werden.

Wenn es sich bei dem zu erstellenden Objekt um ein Steuerobjekt in einem Datenblock handelt, müssen Sie das Attribut Datenbankobjekt explizit auf Nein einstellen.

Objekte in Steuerblöcken erstellen

Wenn Sie ein Objekt in einem Steuerblock erstellen, ist dieses Objekt immer ein Steuerobjekt, unabhängig von der Einstellung des Attributs Datenbankobjekt. (Weil ein Steuerblock nicht mit einer Datenbanktabelle verknüpft ist, kann es sich bei keinem der Objekte in einem Steuerblock um Datenobjekte handeln.)


Datenobjekte erstellen

  Nächster Schritt	    Verwandte Themen

So erstellen Sie ein Datenobjekt:

Wählen Sie Werkzeuge [image] Datenblock-Assistent, um einen Assistenten aufzurufen, der Sie durch die einzelnen Schritte beim Erstellen eines Datenobjekts führt.

Oder

1	Klicken Sie im Objektnavigator auf das Plussymbol [image] neben dem Knoten Datenblöcke.

Form Builder blendet den Knoten Datenblöcke ein und zeigt dessen Unterknoten an.

2	Klicken Sie auf das Plussymbol [image] neben dem Knoten Objekte.

3	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

Unter dem Knoten Objekte wird ein neues Objekt mit einem Standardnamen eingefügt.

4	Doppelklicken Sie auf das Objektsymbol neben dem neu erstellten Objekt, um die Attributpalette anzuzeigen.

5	Unter dem Knoten Allgemein:

•	Stellen Sie das Attribut Name auf den Namen der gewünschten Datenbankspalte ein.

•	Stellen Sie das Attribut Objekttyp für das neue Objekt auf den gewünschten Objekttyp ein.

Der Standard-Objekttyp ist Textobjekt. Sie können den Standardwert ändern, indem Sie das Attribut Typ auf den gewünschten Objekttyp einstellen. (Kontrollkästchen, Optionsgruppe, Listenobjekt usw.).

6	Unter dem Knoten Physikalisch geben Sie bei dem Attribut Leinwand den Namen der gewünschten Leinwand an.

Hinweis:  Um ein Objekt zur Laufzeit anzuzeigen, müssen Sie jedes Schnittstellenobjekt in einer Form einer Leinwand zuweisen.


Steuerobjekte erstellen

  Nächster Schritt	    Verwandte Themen

So erstellen Sie ein Steuerobjekt:

1	Klicken Sie im Objektnavigator auf das Plussymbol [image] neben dem Knoten Datenblöcke.

Form Builder blendet den Knoten Datenblöcke ein und zeigt dessen Unterknoten an.

2	Klicken Sie auf das Plussymbol [image] neben dem Knoten Objekte.

3	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

Unter dem Knoten Objekte wird ein neues Objekt mit einem Standardnamen eingefügt.

4	Doppelklicken Sie auf das Objektsymbol neben dem neu erstellten Objekt, um die Attributpalette anzuzeigen.

5	Unter dem Knoten Datenbank:

•	Stellen Sie das Attribut Datenbankobjekt auf Nein ein.

Hinweis: Wenn Sie ein Objekt in einem Datenblock erstellen, geht Form Builder davon aus, daß es sich bei dem Objekt um ein Datenobjekt handelt, und stellt das Attribut Datenbankobjekt auf Ja ein. Datenobjekte sind automatisch in SELECT-, UPDATE- und INSERT-Anweisungen enthalten, die an die Datenbank ausgegeben werden. Wenn es sich bei dem erstellten Objekt um ein Steuerobjekt in einem Datenblock handelt, müssen Sie das Attribut Datenbankobjekt explizit auf Nein einstellen.

•	Stellen Sie das Attribut Typ auf den gewünschten Objekttyp ein.

Der Standard-Objekttyp ist Textobjekt. Sie können den Standardwert ändern, indem Sie das Attribut Typ auf den gewünschten Objekttyp einstellen. (Kontrollkästchen, Optionsgruppe, Listenobjekt usw.).

6	Unter dem Knoten Physikalisch geben Sie bei dem Attribut Leinwand den Namen der gewünschten Leinwand an.

Hinweis:  Um ein Objekt zur Laufzeit anzuzeigen, müssen Sie jedes Schnittstellenobjekt in einer Form einer Leinwand zuweisen.


Über den Blockkontext des Layouteditors

  Verwandte Themen

Jedes Layouteditor-Fenster enthält einen Blockkontext, der den aktuellen Block für Objektvorgänge identifiziert. Der Name des aktuellen Blocks wird in Klammern in der Titelleiste des Layouteditor-Fensters angezeigt.

Der Blockkontext wirkt sich wie folgt auf Objektvorgänge aus:

•	Objekte, die Sie im Layouteditor erstellen, werden automatisch dem aktuellen Block zugewiesen.

•	Objekte, die ausgewählt sind, wenn Sie den Befehl Block einstellen ausgeben, werden dem Block erneut zugewiesen.


Blockkontext des Layouteditors einstellen

  Verwandte Themen

So ändern Sie den Blockkontext innerhalb des Layouteditors:

1	Wählen Sie im Layouteditor einen Block aus dem Dropdown-Liste Block im oberen Bereich des Layouteditors aus..

2	Klicken Sie auf das Dropdown-Listenfeld, um eine Liste aller Blöcke anzuzeigen.


Über das Zuweisen von Objekten an Leinwände

  Verwandte Themen

Leinwände werden zur Laufzeit in Fenstern angezeigt; die Leinwand, der ein Objekt zugewiesen ist, bestimmt das Fenster, in dem das Objekt angezeigt wird. Es gibt verschiedene Möglichkeiten, die Zuweisung von Leinwänden an ein Objekt zu ändern:

Wenn Sie ein Objekt erstellen, indem Sie es im Layouteditor zeichnen, wird dieses Objekt automatisch der aktuellen Leinwand des Layouteditors zugewiesen. Um ein Objekt zur Laufzeit anzuzeigen, weisen Sie jedes Oberflächenobjekt in einer Form einer Leinwand zu, indem Sie das Attribut Leinwand des Objekts festlegen. Wenn das Attribut Leinwand für ein Objekt nicht angegeben wird, ist dieses Objekt ein sogenanntes NULL-Leinwand-Objekt.  NULL-Leinwand-Objekte werden zur Laufzeit oder beim Entwurf im Layouteditor nicht angezeigt. Sie können NULL-Leinwand-Objekte programmgesteuert als Variablen verwenden, indem Sie deren Werte in PL/SQL-Code zuweisen und referenzieren, wobei Sie die folgende Syntax verwenden:block_name.item_name .

Um ein Objekt zu einem NULL-Leinwandobjekt zu machen, lassen Sie das entsprechende Attribut Leinwand leer.


Leinwandzuweisung eines Objekts ändern

So ändern Sie die Leinwandzuweisung eines Objekts:

Stellen Sie das Objektattribut Leinwand in der Attributpalette auf den Namen der gewünschten Leinwand ein. Die angegebene Leinwand muß schon in der aktuellen Form definiert sein.

- Oder -

In einem Layouteditor schneiden Sie das gewünschte Objekt aus und fügen es dann in einem anderen Layouteditor-Fenster in eine andere Leinwand ein.

- Oder -

Wählen Sie im Objektnavigator Ansicht [image] Nach Bildschirmdarstellung anzeigen aus, um die Formshierarchie auf dem Bildschirm darzustellen. In der Ansicht Nach Bildschirmdarstellung werden die Objekte unter der Leinwand angezeigt, der sie zugeordnet sind. Blöcke werden nicht angezeigt. Klicken Sie auf das zu ändernde Objekt, und ziehen Sie ein Objekt mit der Maus in eine andere Leinwand.


Objekte in einen anderen Typ konvertieren

  Nächster Schritt	    Verwandte Themen

So konvertieren Sie ein Objekt in einen anderen Objekttyp:

1	Doppelklicken Sie im Objektnavigator oder im Layouteditor auf das zu konvertierende Objekt, um die Attributpalette anzuzeigen.

2	Stellen Sie das Attribut Objekttyp unter dem Knoten Allgemein auf den gewünschten Objekttyp ein.

Wenn Sie ein Objekt in einen anderen Objekttyp konvertieren, werden die Attribute des neuen Objekts wie folgt eingestellt:

•	Attribute, die nur für den neuen Objekttyp gelten, werden auf die Standardeinstellungen für diesen Objekttyp eingestellt.

•	Attribute, die sowohl für den Original-Objekttyp als auch für den neuen Objekttyp gelten, behalten die aktuellen Einstellungen bei.

Wenn Sie z.B. ein Textobjekt in ein Kontrollkästchen konvertieren, wird das Attribut Beschriftung (das nur für Objekte in Form von Kontrollkästchen gilt) auf den Standardwert eingestellt, das Attribut Datentyp (das sowohl für Textobjekte als auch für Kontrollkästchen gilt) behält die aktuelle Einstellung bei.


Über die Anzahl von Objekten in einem Block

  Verwandte Themen

Sie können das Attribut Anzahl angezeigter Objekte so einstellen, daß die Anzahl von Datensätzen angegeben wird, die in einem Objekt in einem Block mit mehreren Datensätzen angezeigt werden sollen. Wenn z.B. bei einem Block mit mehreren Datensätzen das Attribut Anzahl angezeigter Datensätze auf 3 eingestellt ist, könnte er vier Textobjekte mit mehreren Datensätzen und ein Bildobjekt mit einem Datensatz enthalten. Sie könnten auch eine einzelne Schaltfläche in einem Datenblock mit mehreren Datensätzen erstellen.


Anzahl von Objekten in einem Block angeben

  Verwandte Themen

So geben Sie die Anzahl von Datensätzen an, die ein Objekt anzeigen soll:

1	Doppelklicken Sie im Objektnavigator oder im Layouteditor auf das gewünschte Objekt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Datensätze stellen Sie das Attribut Anzahl angezeigter Objekte auf die Anzahl von Datensätzen ein, die in dem Objekt angezeigt werden sollen.

•	Um die Anzahl von Datensätzen anzuzeigen, die mit dem Attribut Anzahl angezeigter Datensätze angegeben wurde, stellen Sie das Attribut Anzahl angezeigter Objekte auf 0 (Standardwert).

•	Um weniger Datensätze anzuzeigen, stellen Sie Anzahl angezeigter Datensätze auf einen Wert ein, der kleiner ist als die Einstellung für Anzahl angezeigter Datensätze, jedoch größer als 0.

•	Die Einstellung für Anzahl angezeigter Objekte darf nicht größer sein als die Einstellung für das Blockattribut Anzahl angezeigter Datensätze.


Abstand zwischen Objekten in einem Block mit mehreren Datensätzen ändern

  Verwandte Themen

So ändern Sie den Abstand zwischen Objekten:

1	Wählen Sie das gewünschte Objekt im Layouteditor.

Daraufhin werden in der Mitte des oberen und unteren Rands der Objektumrandung besondere Abstandsmarkierungen angezeigt.

2	Klicken und ziehen Sie eine der Abstandsmarkierungen nach oben oder unten.

Wenn die Option An Raster ausrichten im Menü Ansicht aktiviert ist, muß der Abstand zwischen jeder Objektinstanz mindestens so groß wie der Abstand zwischen den Raster-Ausrichtungspunkten für das aktuelle Raster sein.

Wenn Sie mit Zeicheneinheiten arbeiten, muß der Abstand zwischen Objektinstanzen mindestens so groß wie die Höhe einer einzelnen Zelle sein. Um den Abstand zwischen den Datensätzen in einem Objekt mit fünf Datensätzen zu erhöhen, müssen Sie also die entsprechende Abstandsmarkierung mindestens vier Zeicheneinheiten nach oben oder unten ziehen - eine Einheit für jeden Abstand zwischen den Objektinstanzen.


Objekte löschen

So löschen Sie ein Objekt:

1	Klicken Sie im Objektnavigator auf das gewünschte Objekt.

2	Wählen Sie Navigator [image] Löschen.

Beim Löschen eines Objekts werden außerdem alle Trigger gelöscht, die diesem Objekt zugeordnet sind.


Über die Standardnavigationssequenz

  Verwandte Themen

Sie können den Navigationspfad durch eine Anwendung steuern, indem Sie die Reihenfolge kontrollieren, in der der Operator zu Objekten navigiert. Operatoren navigieren mit Navigationstasten und der Maus. Als Anwendungsentwickler können Sie die Navigation auch programmgesteuert einleiten, indem Sie vordefinierte Prozeduren wie GO_ITEM und GO_BLOCK aus Triggern und vordefinierten Unterprogrammen aufrufen.

Wenn Form Builder zu einem Objekt navigiert und auf die Eingabe wartet, hat das Objekt den "Eingabefokus". Das heißt, das Objekt ist zur Aufnahme einer Tastatureingabe vom Operator bereit. Es kann immer nur ein Objekt in einer Anwendung den Eingabefokus haben.

Die Sequenz von Blöcken in einer Form und von Objekten in einem Block definiert die Standardnavigationsfolge (die auch gelegentlich als TAB-Folge bezeichnet wird).

Blöcke und Objekte sind innerhalb einer Form entsprechend der Reihenfolge angeordnet, in der sie im Objektnavigator angezeigt werden. Jeder Block und jedes Objekt hat eine implizite Sequenznummer (1, 2, 3 usw.).

Beim Starten der Form setzt Form Builder den Eingabefokus zu dem ersten Objekt im ersten Block, wie mit der Sequenz angegeben. Wenn der Operator [Nächstes Objekt] drückt (bei den meisten Systemen die TAB-Taste), geht der Eingabefokus zum nächsten Objekt in demselben Block. Wenn Sie [Nächstes Objekt] im letzten Objekt in dem Block drücken, geht der Fokus wieder zu dem ersten Objekt. Wenn Sie umgekehrt [Vorheriges Objekt] im ersten navigierbaren Objekt drücken, wird der Eingabefokus zum letzten navigierbaren Objekt versetzt. Wenn Sie [Nächster Block] drücken, wird der Eingabefokus zu dem ersten Objekt in Block 2 bewegt.


Standardnavigationssequenz angeben

  Verwandte Themen

So definieren Sie die Standardnavigationssequenz:

1	Ordnen Sie alle Blöcke in der Form im Objektnavigator entsprechend der gewünschten Navigationssequenz.

Um einen Block zu verschieben, klicken und ziehen Sie ihn an die gewünschte Stelle unter dem Knoten Datenblöcke.

2	Ordnen Sie alle Objekte in jedem Block entsprechend der gewünschten Navigationsfolge an.

Um ein Objekt zu verschieben, klicken und ziehen Sie es an die gewünschte Stelle unter dem Knoten Objekte.

Hinweis: Die Folge von Blöcken innerhalb einer Form definiert außerdem die standardmäßige Commit-Folge, d.h. die Reihenfolge, in der Form Builder jeden Block während eines Speichern-/Commit-Vorgangs validiert.


 Oberfläche des Gespeicherten Programmblock-Editors

  Verwandte Themen Topics

Folgende Schaltflächen und Dropdown-Listen sind vorhanden:

Neu	Zeigt das Dialogfeld Neuer Programmblock an, in dem Sie Typ und Name des zu erstellenden gespeicherten Programmblocks angeben können.
Speichern	Kompiliert den gespeicherten Programmblock, der im Quellausschnitt angezeigt wird. Als Folge der Kompilierung generierte Fehlermeldungen werden in dem Auswahlausschnitt Kompilierungsmeldungen angezeigt. Der Rückgängig-/Wiederholen-Stack wird gelöscht
Wiederherstellen	Stellt den gespeicherten Programmblock in dem Status wieder her, den er bei dem letzten Speichern- oder Wiederherstellenvorgang hatte. Wenn kein Speichern- oder Wiederherstellenvorgang aufgetreten ist, wird der Programmblock wieder in seinen Originalzustand versetzt.
Löschen	Löscht den aktuellen gespeicherten Programmblock aus der Datenbank. Löscht den angezeigten Programmblock. Sie werden in einem Meldungsfeld zur Bestätigung aufgefordert.
Schließen	Schließt den Programmblock-Editor.
Hilfe	Zeigt dieses Hilfethema an.
Eigentümer	Zeigt die Datenbank-Benutzer-ID des Eigentümers des aktuellen Programmblocks an. Klicken Sie auf den Pfeil auf der rechten Seite dieses Feldes, um eine Dropdown-Liste mit Benutzernamen anzuzeigen. In der Liste Eigentümer werden nur die Namen der Benutzer angezeigt,  zu deren gespeicherten Programmblöcken Sie eine Zugriffsberechtigung haben.
Name	Zeigt den Namen des aktuellen gespeicherten Programmblocks an. Klicken Sie auf den Pfeil auf der rechten Seite dieses Feldes, um eine Dropdown-Liste der gespeicherten Programmblöcke anzuzeigen, die der Benutzer-ID gehören, die im Feld Eigentümer angezeigt wird. In der Namensliste werden nur die Namen der gespeicherten Programmblöcke angezeigt, zu denen Sie eine Zugriffsberechtigung haben.

Außerdem enthält das Editor-Fenster folgende Elemente:

Quellausschnitt	In diesem Ausschnitt wird der Quelltext des gespeicherten Programmblocks eingegeben und bearbeitet. Mit Bildschirmteilern können Sie bis zu vier separate Ansichten des aktuellen gespeicherten Programmblocks erstellen. Durch jede Ansicht kann ein unabhängiger Bildlauf durchgeführt werden. Um horizontale Ansichten im Quellausschnitt zu erstellen, setzen Sie den Cursor zu dem Bildschirmteiler am oberen Rand der vertikalen Bildlaufleiste und doppelklicken Sie. Dadurch wird der Quellausschnitt horizontal in zwei Ansichten mit gleicher Größe geteilt. Sie können auch auf den Bildschirmteiler klicken und diesen nach unten ziehen, um die gewünschten Ansichtgrößen zu erstellen. Um vertikale Ansichten im Quellausschnitt zu erstellen, setzen Sie den Cursor zu dem Bildschirmteiler ganz außen links in der horizontalen Bildlaufleiste und doppelklicken Sie. Dadurch wird der Quellausschnitt vertikal in zwei Ansichten mit gleicher Größe geteilt. Sie können auch auf den Bildschirmteiler klicken und diesen nach rechts ziehen, um die gewünschten Ansichtgrößen zu erstellen. Um die Größe der Ansichten zu ändern, klicken Sie auf den Bildschirmteiler, der die Ansichten teilt, und ziehen Sie ihn. Um eine horizontale oder vertikale Ansicht zu entfernen, doppelklicken Sie auf den Bildschirmteiler, der die Ansichten teilt, und ziehen Sie diesen an den Rand des Ausschnitts. Um alle vier Ansichten gleichzeitig zu entfernen, setzen Sie den Cursor auf den Schnittpunkt der Bildschirmteiler und ziehen ihn in eine Ecke des Ausschnitts. Um eine Codezeile auszuwählen, setzen Sie den Cursor auf den linken Rand und klicken Sie.
Ausschnitt Kompilierungs-meldungen	Zeigt gegebenenfalls Fehlermeldungen an, die als Folge der Kompilierung generiert wurden. Wenn Sie auf eine Fehlermeldung klicken, wird diese markiert, wird im Quellausschnitt zu der Quellanweisung gegangen, die den Fehler erzeugt und der Cursor an die Position des Fehlers gesetzt. Standardmäßig wird der Ausschnitt Kompilierungsmeldungen nur angezeigt, wenn Kompilierungsfehlermeldungen generiert wurden.  Sie können den Ausschnitt Kompilierungsmeldungen jedoch jederzeit manuell anzeigen, indem Sie den Cursor in die untere rechte Ecke des Editor-Fenster verschieben, bis er die Form eines Fadenkreuzes annimmt. Danach klicken und ziehen Sie den Cursor nach oben. Dadurch wird der Bildschirmteiler nach oben verschoben und der Ausschnitt Kompilierungsmeldungen wird sichtbar..
Bildschirmteiler	Der Bildschirmteiler trennt den Quellausschnitt und den Ausschnitt Kompilierungsmeldungen. Mit dem Bildschirmteiler können Sie die relative Größe der Ausschnitte ändern.  Wenn der Ausschnitt Kompilierungsmeldungen nicht angezeigt wird, befindet sich der Bildschirmteiler am unteren Rand des Editor-Fensters.
Statuszeile	Zeigt Informationen über den aktuellen Status des Programmblocks am unteren Rand des Editors an.


Zeigt das Dialogfeld Neuer Programmblock an, in dem Sie Typ und Name des zu erstellenden Programmblocks angeben können.


Kompiliert den gespeicherten Programmblock, der im Quellausschnitt angezeigt wird. Als Folge der Kompilierung generierte Fehlermeldungen werden in dem Auswahlausschnitt Kompilierungsmeldungen angezeigt.


Stellt den gespeicherten Programmblock in dem Status wieder her, den er bei dem letzten Speichern- oder Wiederherstellenvorgang hatte. Wenn kein Speichern- oder Wiederherstellenvorgang aufgetreten ist, wird der Programmblock wieder in seinen Originalzustand versetzt.


Löscht den aktuellen gespeicherten Programmblock aus der Datenbank, wobei eine Bestätigung angefordert wird.


Zeigt die Datenbank-Benutzer-ID des Eigentümers des aktuellen Programmblocks an. Klicken Sie auf den Pfeil auf der rechten Seite dieses Feldes, um eine Dropdown-Liste mit Benutzernamen anzuzeigen, zu deren gespeicherten Programmblöcken Sie eine Zugriffsberechtigung haben.


Zeigt den Namen des aktuellen gespeicherten Programmblocks an. Klicken Sie auf den Pfeil auf der rechten Seite dieses Feldes, um eine Dropdown-Liste der gespeicherten Programmblöcke anzuzeigen, die der Benutzer-ID gehören, die im Feld Eigentümer angezeigt wird. In der Namensliste werden nur die Namen der gespeicherten Programmblöcke angezeigt, zu denen Sie eine Zugriffsberechtigung haben.


Wird benutzt, um den Quelltext des Gespeicherten PL/SQL-Programmblocks einzugeben und zu bearbeiten.


Zeigt Syntaxfehler an, die während der Kompilierung angetroffen wurden. Klicken Sie auf einen Fehler, um zu dem Quellort in dem Programmblock zu gehen.


Mit dem Bildschirmteiler können Sie den relativen Platz ändern, den die beiden Ausschnitte im Gespeicherten Programmblock-Editor belegen. Beachten Sie, daß der Ausschnitt Kompilierungsmeldungen standardmäßig nur angezeigt wird, wenn Fehlermeldungen während der Kompilierung generiert werden.


Oberfläche Syntaxpalette

Mit der Syntaxpalette können Sie die Konstrukte von PL/SQL-Sprachelementen und vordefinierten Paketen anzeigen und kopieren. Mit ihr können Sie die ausgewählte Syntax nur in den Programmblock-Editor oder Gespeicherter Programmblock-Editor kopieren.

Die Syntaxpalette besteht aus folgenden Komponenten:

Register PL/SQL	Mit diesem Register können Sie PL/SQL-Sprachelemente anzeigen und auswählen, um sie zu kopieren. Die PL/SQL-Sprachelemente sind nach Kategorien gruppiert, wie z.B. Flußsteuerung, Cursor, Exceptions usw.
Register Vordefinierte Prozeduren	In diesem Register können Sie PL/SQL-Konstrukte (Funktion oder Prozedur) für das Kopieren anzeigen und auswählen. Die vordefinierten Pakete sind nach Paketnamen wie z.B. EXEC_SQL, DEBUG, DDE usw. gruppiert.

Jede Seite hat folgende Komponenten:

Dropdown-Liste	Zeigt einen PL/SQL-Kategoriennamen oder den Namen eines vordefinierten Pakets an. Klicken Sie auf den Pfeil auf der rechten Seite, um eine PL/SQL-Kategorie oder ein vordefiniertes Paket auszuwählen.
Listenbereich	Zeigt die einzelnen Sprachelemente in einer ausgewählten PL/SQL-Kategorie oder die Konstrukte in einem ausgewählten vordefinierten Paket an. Das erste Element in der Liste ist standardmäßig markiert (ausgewählt).  Klicken Sie auf ein Sprachelement oder Konstrukt, um es auszuwählen und die vollständige Syntax im Anzeigebereich anzuzeigen.
Anzeigebereich	Zeigt die vollständige Syntax eines ausgewählten PL/SQL-Sprachelements oder -Konstrukts an. Reservierte Wörter stehen in Objekten in Großbuchstaben. Nachdem die Syntax in den Editor eingefügt wurde, ersetzen Sie Objekte in Kleinbuchstaben, die nicht in Kommentaren stehen, durch die entsprechenden Werte.  Objekte in Kleinbuchstaben innerhalb von Kommentaren sind optional.
Einfügen	Klicken Sie, um das ausgewählte Objekt in dem Listenbereich an die aktuelle Cursorposition im aktiven Editor-Fenster zu kopieren.
Schließen	Klicken Sie, um die Syntaxpalette zu schließen.
Hilfe	Zeigt dieses Hilfethema an.


Syntaxpalette anzeigen

So zeigen Sie die Syntaxpalette an:

  Wählen Sie Programm [image] Syntaxpalette.


Syntaxpalette schließen

So schließen Sie die Syntaxpalette:

  Klicken Sie auf die Schaltfläche Schließen.


Syntax in einen Editor einfügen

  Verwandte Themen

So fügen Sie Syntax in einen Editor ein:

1	Prüfen Sie, ob der Programmblock-Editor oder Gespeicherter Programmblock-Editor das aktuelle (zuletzt ausgewählte) Fenster ist.

2	Setzen Sie den Cursor an der Stelle in den Editor, an der die Syntax eingefügt werden soll.

3	Klicken Sie in der Syntaxpalette auf das Register PL/SQL oder das Register Vordefinierte Prozeduren.

4	Wählen Sie eine PL/SQL-Kategorie oder ein vordefiniertes Paket aus der Dropdown-Liste.

Wenn Sie auf eine Kategorie oder ein Paket klicken, werden die PL/SQL-Sprachelemente oder PL/SQL-Konstrukte, die zur Auswahl verfügbar sind, in dem darunterstehenden Listenbereich angezeigt.

5	Wählen Sie ein PL/SQL-Sprachelement oder -Konstrukt in dem Listenbereich.

Wenn Sie auf ein PL/SQL-Sprachelement oder -Konstrukt klicken, wird die Syntax in dem Anzeigebereich unter dem Listenbereich angezeigt.

6	Klicken Sie auf Einfügen, um die ausgewählte Syntax zu kopieren.

Die ausgewählte PL/SQL-Syntax mit Platzhaltern wird bei der aktuellen Cursorposition in den aktiven Editor eingefügt.  Reservierte Wörter werden in Großbuchstaben geschrieben.

Ersetzen Sie alle Platzhalter in Kleinbuchstaben, die in innerhalb von Kommentaren stehen, durch die entsprechenden Werte. Objekte innerhalb von Kommentaren sind optional.


Liste der PL/SQL-Kategorien

Abfragen

Benutzertypen

Blöcke

Cursor

Datensätze

Datentypen

Exceptions

Flußsteuerung

Funktionen

Kommentare

Loops

Objekttypen

Pakete

PL/SQL-Tabellen

Prozeduren

SQL-Cursor

Tabellen/Ansichten

Transaktionen

Variablen


Liste der vordefinierten Pakete

EXEC_SQL

TOOL_SQL

ORA_FFI

ORA_DE

ORA_PROF

ORA_NLS

TOOL_RES

TOOL_ENV

TEXT_IO

TOOL_ERR

STPROC

LIST

OLE2

DDE

DEBUG

PLITBLM

STANDARD


Forms für die Abfrage gestalten

  Verwandte Themen

Datenblöcke, die einer bestimmten Datenbanktabelle entsprechen, unterstützen automatisch die Abfrage, das Aktualisieren, das Einfügen und das Löschen von Datensätzen, ohne daß Sie eine zusätzliche Codierung durchführen müssen. Durch Festlegen der Attribute für den Block und dessen Objekte können Sie Abfragen nach Bedarf steuern, ändern und sogar verhindern.

Eine Form kann in den Abfragemodus versetzt werden, wenn der Operator [Abfragemodus] drückt oder die vordefinierte Prozedur ENTER_QUERY ausführt. Form Builder bleibt im Abfragemodus, bis die Abfrage mit dem Vorgang EXECUTE_QUERY ausgeführt wird, oder bis der Operator [Abbrechen] drückt.

Während sich die Form im Abfragemodus befindet, setzen die Operatoren die Werte von Objekten im aktuellen Block so, daß die Kriterien für die Abfrage angegeben werden. Die Operatoren können einen Musterabgleich, relationale Operatoren und das Dialogfeld QUERY WHERE zur Definition des Beispieldatensatzes verwenden.

Die Vorgänge ENTER_QUERY und EXECUTE_QUERY werden stets auf Blockebene durchgeführt, unabhängig davon, ob sie vom Operator oder programmgesteuert ausgelöst werden. Sobald sich eine Form im Abfragemodus befindet, läßt Form Builder nicht mehr zu, daß der Operator oder die Anwendung zu einem anderen Block navigiert, bis die Abfrage ausgeführt ist oder der Operator den Abfragemodus abbricht.

Sie können angeben, ob ein Block abgefragt werden kann, indem Sie das Blockattribut Abfrage erlaubt einstellen. Um einen Block zu einem "Abfrage"-Block zu machen, stellen Sie Abfrage erlaubt auf Ja und Löschen erlaubt, Einfügen erlaubt und Aktualisieren erlaubt auf Nein ein.

Mit jedem Datenblock ist eine SELECT-Standardanweisung verknüpft. Zur Laufzeit führt Form Builder die SELECT-Anweisung aus, wenn eine Abfrage für den Block programmgesteuert oder vom Operator ausgeführt wird.

Die Syntax der SELECT-Standardanweisung für den Block wird von den Namen der Datenobjekte in dem Block abgeleitet. Ein Datenobjekt ist ein Objekt in einem Datenblock, für das das Attribut Datenbankblock auf Ja eingestellt ist. Der Name des Datenobjekts muß dem Namen einer Spalte in der Basistabelle des Blocks entsprechen. In der Beispiel-Form benutzt Form Builder z.B. die folgende Standardabfrage, wenn die Operatoren eine Abfrage in dem Block ORD_BLK ausführen:

SELECT id, customer_id, date_ordered, payment_type, order_filled,	   sales_rep_id	FROM   S_ORD

Die Objekte Customer_Name und Sales_Rep_Name stehen ebenfalls in dem Block ORD_BLK, hier handelt es sich jedoch um Steuerobjekte, deren Werte aus Spalten in verschiedenen Tabellen abgeleitet werden. Da das Attribut Datenbankblock für diese Objekte auf Nein gesetzt ist, nimmt Form Builder sie nicht in der SELECT-Standardanweisung auf.

Die Standardabfrage gibt einen Wert aus jeder Datenbankspalte zurück, für die ein entsprechendes Objekt in dem Block vorhanden ist. Standardmäßig ist die Abfrage uneingeschränkt und lädt alle Zeilen aus der Basistabelle in keiner bestimmten Reihenfolge.

Die Operatoren können die von einer Abfrage abgerufenen Zeilen einschränken, indem sie Werte in Datenobjekte eingeben. Form Builder benutzt diese Werte dann, um die WHERE-Klausel für die SELECT-Standardanweisung zu erzeugen.

Wenn der Operator z.B. zu dem Block ORD_BLK navigiert, [Abfragemodus] drückt, 55 in das Textobjekt ID eingibt und die Abfrage dann ausführt, gibt Form Builder die folgende SELECT-Anweisung aus:

SELECT id, customer_id, date_ordered, payment_type, order_filled,	   sales_rep_id 	FROM   S_ORD	WHERE  id = '55'

Sie können die WHERE- und ORDER BY-Klauseln auch angeben, indem Sie die Blockattribute WHERE und ORDER BY beim Entwurf oder zur Laufzeit setzen. Wenn Sie z.B. das Attribut ORDER BY-Klausel für den Block ORD_BLK auf "id DESC" gesetzt hätten, würde die SELECT-Anweisung aus dem vorigen Beispiel wie folgt ausgegeben:

SELECT  id, customer_id, date_ordered, payment_type, order_filled,	    sales_rep_id 	FROM  S_ORD	WHERE id = '55'	ORDER BY id DESC

Wenn Form Builder eine Abfrage ausführt, werden die Zeilen in der Datenbank gekennzeichnet, die den Abfragekriterien entsprechen. Danach wird die Anzahl von Zeilen abgerufen, wie von dem Block gefordert. Sie können die Anzahl von Datensätzen steuern, die Form Builder abruft, indem Sie das Blockattribut Maximal abgerufene Datensätze setzen.


Über die Definition der WHERE- und ORDER BY-Klauseln eines Blocks

  Verwandte Themen

Mit den WHERE- und ORDER BY-Blockattributen können Sie die Datensätze einschränken und deren Reihenfolge festlegen, die von der SELECT-Standardanweisung, die mit diesem Block verknüpft ist, an einen Datenblock zurückgegeben wird.

Sie können die WHERE- und ORDER BY-Klauseln programmgesteuert zur Laufzeit ändern, indem Sie die vordefinierte Prozedur SET_BLOCK_PROPERTY ausführen.

Denken Sie auch daran, daß Operatoren die Form in den Abfragemodus versetzen und die WHERE-Standardklausel weiter einschränken können, indem sie zusätzliche Abfragebedingungen in Datenobjekten angeben.

Sie können die WHERE- und ORDER BY-Standardklauseln für einen Block in der Attributpalette festlegen. Um einen Texteditor in der Attributpalette aufzurufen, doppelklicken Sie auf das gewünschte Attribut.

Tip: Wählen Sie Werkzeuge [image] Tabellen/Spalten, um den Tabellen-/Spalten-Browser aufzurufen, wenn Sie die Tabellen- und Spaltennamen in der Datenbank nachschlagen müssen.

Gültige SQL WHERE- und ORDER BY-Klauseln können in die Attribute der WHERE-Standardklausel und ORDER BY-Standardklausel eingegeben werden. Einige zusätzliche Erwägungen gelten speziell für Form Builder:

•	Sie müssen die reservierten Wörter WHERE und ORDER BY nicht aufnehmen. Form Builder fügt sie implizit zu dem von Ihnen eingegebenen Text hinzu. So kann die Klausel

ORDER BY last_name

als

last_name

eingegeben werden. Die folgende Klausel ist eine gültige WHERE-Klausel:

account_balance > 5000

•	Sie können keine LONG-Datenbankspalten in den WHERE/ORDER BY-Standardklauseln referenzieren.


Über die Definition von Objekten für den Abfragemodus

  Verwandte Themen

Die folgenden Objekttypen können im Abfragemodus abgefragt werden:

•	Kontrollkästchen

•	Listenobjekte

•	Optionsgruppen

•	Textobjekte

•	Benutzerdefinierte OLE-Containerobjekte

Alle anderen Objekttypen sind nicht navigierbar, wenn sich eine Form im Abfragemodus befindet, und ihre Werte können nicht in dem Beispieldatensatz aufgenommen werden.

Wenn der Operator oder die Anwendung eine Abfrage ausführt, umfaßt die SELECT-Anweisung, die Form Builder an die Datenbank sendet, die WHERE-Klausel, die von den Attributen WHERE und ORDER BY des Blocks definiert wurde, plus eventuell zusätzlichen Abfragekriterien, die vom Operator angegeben wurden. Wenn sich eine Form im Abfragemodus befindet, können Operatoren Beispielwerte in Objekten eingeben, um die Abfrage wie folgt weiter einzugrenzen:

Textobjekte	Um den Wert eines Textobjekts in einer Abfrage aufzunehmen, geben die Operatoren einen Wert in das Objekt ein. Um das Objekt aus der Abfrage auszuschließen, lassen die Operatoren das Objekt leer.
Kontrollkästchen	Um den Wert des aktuellen Kontrollkästchens in einer Abfrage aufzunehmen bzw. auszuschließen, klicken die Operatoren bei gedrückter Umschalttaste, um zwischen dem Status Abfrage aktiviert und Abfrage deaktiviert umzuschalten. Wenn das Kontrollkästchen abfrage-aktiviert ist, wird der Wert in der Abfrage aufgenommen.
Optionsgruppen	Um den Wert einer Optionsgruppe in einer Abfrage aufzunehmen, wählen Operatoren eine beliebige Schaltfläche in der Optionsgruppe. Um die Optionsgruppe aus der Abfrage auszuschließen, heben die Operatoren die Auswahl der gerade ausgewählten Optionsschaltfläche auf, damit keine Optionsschaltflächen in der Gruppe ausgewählt sind.
Listenobjekte	Um den Wert eines Listenobjekts in einer Abfrage aufzunehmen, wählen die Operatoren einen beliebigen Wert eines Listenobjekts. Um das Listenobjekt aus der Abfrage auszuschließen, wählen die Operatoren das leere Element in der Liste.
Attribut Abfrage erlaubt  Sie können das Attribut Abfrage erlaubt eines Kontrollkästchens, Listenobjekts, einer Optionsgruppe oder eines Textobjekts so einstellen, daß angegeben wird, ob Operatoren im Abfragemodus zu dem Objekt navigieren können.

Wenn sich eine Form im Abfragemodus befindet, überspringt Form Builder Objekte, bei denen das Attribut Abfrage erlaubt auf Nein eingestellt ist, selbst wenn diese Objekte im Normalmodus navigierbar sind.

Attribut Abfragelänge Mit der Abfragelänge wird die Anzahl von Zeichen angegeben, die ein Operator in ein Textobjekt eingeben kann, wenn sich die Form im Abfragemodus befindet. Die Abfragelänge muß mindestens so viele Zeichen umfassen, wie mit dem Attribut Maximale Länge für das Textobjekt angegeben.

Das Attribut Abfragelänge gilt nur für Textobjekte.

Wenn Sie das Attribut Abfragelänge auf einen größeren Wert als Maximale Länge setzen, können Operatoren relationale Operatoren in das Textobjekt eingeben, wenn eine Abfrage nach Muster benutzt wird. In einem Textobjekt SALARY mit einer Maximalen Länge von 6 könnten Operatoren Abfragewerte wie die folgenden eingeben:

<=52200

oder

#BETWEEN 30000 and 40000

Wenn Sie das Attribut Abfragelänge für das Objekt SALARY auf 26 festlegen, können Operatoren diese Abfragen direkt in das Textobjekt eingeben, ohne das Dialogfeld QUERY WHERE aufrufen zu müssen.

Attribut Einschränkung Schreibweise Das Attribut Einschränkung Schreibweise gilt nur für Textobjekte. Mit ihm wird festgelegt, ob Form Builder Werte in Groß- und Kleinschreibung bei der Verarbeitung einer Abfrage gleich behandeln soll.


Über die Definition von Kontrollkästchen, Optionsgruppen und Listenobjekte für die Abfrage

  Verwandte Themen

Kontrollkästchen, Optionsgruppen und Listenobjekte verfügen über vordefinierte Werte, die mit bestimmten Auswahlzuständen oder Listenelementen verknüpft sind. Wenn z.B. ein Kontrollkästchen mit der Beschriftung Sicherheit angekreuzt ist, könnte der tatsächlich gespeicherte Wert die Zeichenfolge "TOP_SECRET" sein.

Bei der Definition eines Kontrollkästchens, einer Optionsgruppe oder eines Listenobjekts geben Sie an, ob dieses abgerufene oder zugewiesene "andere Werte" akzeptieren soll. Ein "anderer Wert" ist ein Wert, der keinem der Werte entspricht, die Sie mit einem bestimmten Auswahlstatus (ausgewählt oder nicht ausgewählt), einer Optionsschaltfläche in einer Gruppe oder einem Listenelement in einer Liste verknüpft haben.

Um anzugeben, wie Form Builder andere Werte behandelt, stellen Sie das entsprechende Objektattribut ein. Für Kontrollkästchen stellen Sie z.B. das Attribut Kontrollkästchenzuordnung anderer Werte ein, für Optionsgruppen und Listenobjekte stellen Sie das Attribut Attribut Zuordnung anderer Werte  ein.  Für ein Kontrollkästchen könnten Sie z.B. das Attribut Kontrollkästchenzuordnung anderer Werte% auf Ausgewählt einstellen, um anzugeben, daß ein anderer Wert, der in das Kontrollkästchen abgerufen wird, als der Wert Ausgewählt interpretiert werden soll.

Wenn Sie das Attribut Zuordnung anderer Werte eines Kontrollkästchens, einer Optionsgruppe oder eines Listenobjekts so einstellen, daß das Objekt keine anderen Werte akzeptiert, können die Operatoren keine Datensätze mit anderen Werten in der entsprechenden Datenbankspalte abrufen.

Wenn ein Block z.B. ein Kontrollkästchen enthält, das keine anderen Werte akzeptiert, können Operatoren nur Datensätze mit Spaltenwerten abrufen, die entweder genau mit Wert, wenn aktiviert oder Wert, wenn nicht aktiviert übereinstimmen. Jede Zeile, die einen anderen Wert in dieser Spalte enthält, entspricht den Abfragekriterien des Blocks nicht und wird somit nicht in dem Block angezeigt.

Wenn Sie ein Datenobjekt-Kontrollkästchen, eine Optionsgruppe oder ein Listenobjekt erstellen, müssen Sie auch berücksichtigen, wie der Wert dieses Objekts in dem Beispieldatensatz interpretiert wird, wenn der Operator Abfrage nach Muster im Abfragemodus benutzt. Hier soll von einem Kontrollkästchen namens Sicherheit ausgegangen werden, das einer Datenbankspalte SICHERHEIT entspricht und wie folgt definiert ist:

Attribut	Einstellung
Wert, wenn ausgewählt	TOP_SECRET
Wert, wenn nicht ausgewählt	NONE
Kontrollkästchenzuordnung anderer Werte	Nicht zulässig

 Wenn ein Formoperator dieses Kontrollkästchen in einer Abfrage aufnimmt, wird die WHERE-Klausel für die SELECT-Standardanweisung des Blocks wie folgt erstellt:

Status des Kontroll-kästchens	Ergebnis WHERE-Klausel
Ausgewählt	(CLEARANCE = TOP_SECRET)
Nicht ausgewählt	(CLEARANCE = NONE)

Form Builder könnte das Attribut Kontrollkästchenzuordnung anderer Werte alternativ auf Ausgewählt einstellen, damit das Objekt andere Werte akzeptiert (sie als ausgewählt anzeigt) wie hier dargestellt:

Attribut	Einstellung
Wert, wenn ausgewählt	TOP_SECRET
Wert, wenn nicht ausgewählt	NONE
Kontrollkästchenzuordnung anderer Werte	Aktiviert (andere Werte OK)

Wenn der Formoperator dieses Kontrollkästchen dann in einer Abfrage aufnimmt, wird die WHERE-Klausel für die SELECT-Standardanweisung des Blocks wie folgt erzeugt:

Status des Kontroll-kästchens	Ergebnis WHERE-Klausel
Ausgewählt	(CLEARANCE <> NONE)
Nicht ausgewählt	(CLEARANCE = NONE)


Über die programmgesteuerte Ausführung von Abfragen

  Verwandte Themen

Abfragen werden häufig programmgesteuert ausgelöst. Wenn Sie z.B. ein Menüobjekt oder eine Schaltfläche erstellen möchten, die Operatoren drücken können, um eine Abfrage auszuführen, müssen Sie den entsprechenden Befehl für den Menüpunkt oder When-Button-Pressed -Trigger schreiben.

Um eine Form programmgesteuert in den Abfragemodus zu versetzen, rufen Sie die vordefinierte Prozedur ENTER_QUERY auf. Operatoren können dann Abfragebedingungen angeben, bevor die Abfrage mit einem Menü- oder Schaltflächenbefehl ausgeführt wird. Um eine Abfrage sofort auszuführen, rufen Sie die vordefinierte Prozedur EXECUTE_QUERY auf.

In einigen Fällen werden Sie einen Trigger schreiben, der die Prozedur ENTER_QUERY oder EXECUTE_QUERY ausführt, je nachdem, ob sich die Form schon im Abfragemodus befindet. Hierzu müssen Sie den Wert der Systemvariablen SYSTEM.MODE lesen, um zu bestimmen, ob sich die Form im Normalmodus oder Abfragemodus befindet:

IF System.Mode = 'NORMAL' THEN	Enter_Query;ELSE 	Execute_Query;

Um eine Abfrage programmgesteuert auszuführen, muß der abzufragende Block der aktuelle Block sein. Gegebenenfalls können Sie vor Ausführung der Abfrage zu dem gewünschten Block navigieren:

IF System.Cursor_Block != 'ORD_BLK' THEN	Go_Block('ord_blk');	Execute_Query;END IF;


Über die Steuerung von Abfragen mit Pre-Query- und Post-Query-Triggern

  Verwandte Themen

Mit den Pre-Query- und Post-Query-Triggern können Sie die Abfrageverarbeitung steuern. Die Trigger können auf Form- oder Blockebene definiert werden. In den meisten Fällen werden Sie sie bestimmten Blöcken zuordnen, um die Abfragefunkionalität dieser Blöcke zu steuern.

Der Pre-Query-Trigger wird unmittelbar, bevor Form Builder die SELECT-Anweisung an die Datenbank ausgibt und nachdem der Operator den Beispieldatensatz durch Eingabe der Abfragekriterien im Abfragemodus definiert hat, ausgelöst.

Innerhalb eines Pre-Query-Triggers ist der von den Abfragekriterien definierte Beispieldatensatz der aktuelle Datensatz. Dies bedeutet, daß der Trigger-Code die Werte von Objekten in dem Beispieldatensatz mit der Standardsyntax :block_name.item_name lesen und bestimmen kann.

Mit einem Pre-Query-Trigger können Abfragebedingungen untersagt werden, die möglicherweise ungültig sind. Wenn sich eine Form im Abfragemodus befindet, wird die normale Validierung unterbrochen und werden keine Validierungs-Trigger ausgelöst, wie dies im Normalmodus der Fall ist. Mit dem Pre-Query-Trigger können Sie also überprüfen, ob vom Operator eingegebene Werte gültige Abfragebedingungen darstellen.

Wenn ungültige Abfragebedingungen eingegeben wurden, können Sie die Abfrage abbrechen, indem Sie die vordefinierte Exception FORM_TRIGGER_FAILURE im Pre-Query-Trigger auslösen.

Sie können auch SET_BLOCK_PROPERTY aufrufen, um die WHERE- und ORDER BY-Klauseln des Blocks innerhalb des Pre-Query-Triggers zu ändern, um die Datensätze, die mit der Abfrage abgerufen werden, weiter einzugrenzen oder deren Reihenfolge zu bestimmen.

Der Post-Query-Trigger wird ausgelöst, nachdem die Abfrage ausgeführt wurde, wenn Form Builder Datensätze in die Form abruft. Post-Query wird einmal für jeden Datensatz ausgelöst, der in die Form abgerufen wird. Auf diese Weise können Sie die Werte von Objekten in einem abgerufenen Datensatz lesen und bestimmen, bevor diese in dem Block für den Operator angezeigt werden.

Ein Post-Query-Trigger wird auch für das Auffüllen von Steuerobjekten verwendet, deren Werte von einer anderen Tabelle als der Basistabelle des Blocks abgeleitet werden.


Über die Definition von Triggern zur Auslösung im Abfragemodus

  Verwandte Themen

Wenn Sie bestimmte Trigger erstellen, können Sie angeben, ob diese ausgelöst werden sollen, wenn sich die Form im Abfragemodus befindet, indem Sie das Trigger-Attribut In Abfragemodus auslösen festlegen.

Hier wird von einer Schaltfläche ausgegangen, die Operatoren auswählen können, um eine Werteliste anzuzeigen. Der Text des When-Button-Pressed -Triggers, der der Schaltfläche zugeordnet ist, könnte folgendermaßen aussehen:

/*  When-Button-Pressed Trigger: */ DECLARE 	dummy_var BOOLEAN; BEGIN 	dummy_var := Show_LOV('Customers',10,20); END;

Wenn das Attribut In Abfragemodus auslösen für diesen Trigger auf Ja eingestellt ist, könnten die Operatoren die Werteliste sowohl im Abfragemodus als auch im Normalmodus aufrufen.

Die folgenden Trigger sind im Abfragemodus gültig:

•	key - *

•	On-Error

•	On-Message

•	When-Trigger, mit Ausnahme von:

•	When-Database-Record

•	When-Image-Activated

•	When-New-Block-Instance

•	When-New-Form-Instance

•	When-Create-Record

•	When-Remove-Record

•	When-Validate-Record

•	When-Validate-Item


Trigger erstellen, der im Abfragemodus ausgelöst wird

  Verwandte Themen

So erstellen Sie einen Trigger, der im Abfragemodus ausgelöst wird:

1	Wählen Sie den gewünschten Trigger im Objektnavigator.

2	Setzen Sie das Attribut In Abfragemodus auslösen in der Attributpalette auf Ja.

Standardmäßig ist das Attribut In Abfragemodus auslösen bei jedem Trigger auf Ja gesetzt, der im Abfragemodus gültig ist.


Über die Benutzung von SYSTEM.MODE zur Bestimmung des aktuellen Modus

  Verwandte Themen

Wenn Sie das Attribut In Abfragemodus auslösen eines Triggers auf Ja setzen, wird er sowohl im Abfragemodus als auch im Normalmodus ausgelöst. Möglicherweise soll ein Trigger unterschiedliche Funktionen ausführen je nachdem, ob sich die Form im Normalmodus oder im Abfragemodus befindet. Sie können dies erreichen, indem Sie den aktuellen Modus mit der Systemvariablen SYSTEM.MODE bestimmen.

Möglicherweise soll ein Trigger eine Reihe von Aktionen ausführen, wenn sich die Form im Abfragemodus befindet, und eine Reihe von anderen Aktionen, wenn sie im Normalmodus ist:

/*  Trigger with Fire in Enter Query Mode property to Yes: */

IF :System.Mode = 'ENTER-QUERY' THEN 	-- execute these statements ELSE

-- execute these other statements

Gleichermaßen können Sie einen Trigger schreiben, der nur ausgelöst wird, wenn sich Form Builder im Abfragemodus befindet:

/*  Trigger with Fire in Query Mode property to Yes:  */

IF :System.Mode = 'ENTER-QUERY' THEN 	-- execute these statements

END IF;

Hinweis:  Die Systemvariable SYSTEM.MODE gibt Auskunft über den Modus des aktuellen Blocks. Dies bedeutet z.B., daß Sie nicht davon ausgehen können, daß SYSTEM.MODE korrekt ist, wenn Sie deren Status in einem Trigger lesen, der einem Steuerblock zugeordnet ist, wie z.B. einem When-Button-Pressed. Da ein Steuerblock nicht auf einer Datenbanktabelle basiert, kann er niemals in den Abfragemodus versetzt werden.


Über vordefinierte Prozeduren, die im Abfragemodus nicht zulässig sind

  Verwandte Themen

Die folgenden vordefinierten Prozeduren können nicht aus einem Trigger aufgerufen werden, während sich Form Builder im Abfragemodus befindet:

ABORT_QUERY	LAST_RECORD
BLOCK_MENU	LOCK_RECORD
CALL_INPUT	LOGON/LOGON_SCREEN/LOGOUT
CLEAR_BLOCK	NEW_FORM
CLEAR_FORM	NEXT_BLOCK
COMMIT_FORM	NEXT_RECORD
CREATE_QUERIED_RECORD	NEXT_SET
CREATE_RECORD	POST
DELETE_RECORD	PREVIOUS_BLOCK
DOWN	PREVIOUS_RECORD
DUPLICATE_RECORD	SCROLL_DOWN
FETCH_RECORDS	SCROLL_UP
FIRST_RECORD	SELECT_RECORDS
GO_BLOCK	UP
GO_RECORD	UPDATE_RECORD
INSERT_RECORD

 Hinweis:  Da Form Builder die Navigation aus dem aktuellen Block im Abfragemodus verhindert, ist GO_ITEM nur zulässig, wenn sich das Zielobjekt im aktuellen Block befindet.


Über die Steuerung von Einfügen-, Aktualisieren- und Löschenvorgängen

  Verwandte Themen

Form Builder gibt Ihnen vollständige Kontrolle über Einfügen-, Aktualisieren- und Löschenvorgänge in einer Form, indem Sie eine Reihe von Attributen und Triggern erhalten, mit denen Sie diese Vorgänge zulassen, verhindern oder ändern können.

Sie können steuern, ob ein Block Einfügen-, Aktualisieren- und Löschenvorgänge unterstützt, indem Sie die folgenden Attribute einstellen:

•	Einfügen erlaubt

•	Aktualisieren erlaubt

•	Löschen erlaubt

Auf Objektebene können Sie die Einfügen- und Aktualisierenvorgänge mit folgenden Attributen bestimmen:

•	Einfügen erlaubt

•	Aktualisieren erlaubt

•	Nur aktualisieren, wenn NULL


Über das Steuern von Einfügenvorgängen

  Verwandte Themen

Sie können angeben, ob ein Block das Einsetzen neuer Datensätze in der Basistabelle unterstützen soll, indem Sie das Blockattribut Einfügen erlaubt setzen. Wenn Einfügen erlaubt auf Ja (Standardwert) eingestellt ist, bestimmt das Objektattribut Einfügen erlaubt, ob jedes einzelne Objekt in dem Block Einsetzen-Vorgänge unterstützt.

Das Objektattribut Einfügen erlaubt bestimmt insbesondere, ob Operatoren den Wert eines Objekts in einem neuen Datensatz ändern können (d.h. wenn der Status des Datensatzes NEW oder INSERT ist).

Wenn das Objektattribut Einfügen erlaubt auf Nein eingestellt ist und die Attribute Tastatur-navigierbar und/oder Aktiviert für das Objekt auf Ja eingestellt sind, können Operatoren zu dem Objekt navigieren, können jedoch dessen Wert nicht ändern, wenn er in einem neuen Datensatz steht.

Wenn ein Block das Einfügen neuer Datensätze unterstützt, erstellt Form Builder einen neuen Datensatz in dem Block, wenn eines der folgenden Ereignisse eintritt:

•	Der Operator wählt Datensatz [image] Einfügen aus dem Standard-Formmenü.

•	Die Anwendung führt die vordefinierte Prozedur CREATE_RECORD aus.

•	Der Operator oder die Anwendung geht zum nächsten Datensatz, wenn der Fokus im letzten Datensatz in dem Block steht.

Wenn der Fokus z.B. im letzten Datensatz in einem Block steht und der Operator die Nach-unten-Taste [Nächster Datensatz] drückt, erstellt Form Builder einen neuen Datensatz in dem Block.

Außerdem erstellt Form Builder einen neuen Datensatz in einem Block, wenn der Block das erste Mal während einer Sitzung benutzt wird. Wenn Form Builder z.B. beim Hochfahren der Form zu dem ersten navigierbaren Objekt in dem ersten Block in der Form navigiert, wird ein neuer Datensatz in diesem Block erstellt. Der Status eines Datensatzes ändert sich von NEW in INSERT, sobald der Operator Daten eingibt, die mit dem nächsten Speichern-/Commit-Vorgang in der Datenbank gespeichert werden müssen.


Über Standardwerte für Objekte in neuen Datensätzen

Sie können Standardwerte für Objekte angeben, indem Sie das Objektattribut Ausgangswert einstellen. Der Wert, den Sie angeben, muß kompatibel mit dem Datentyp des Objekts sein. Der Standardwert für ein Textobjekt mit einem Datentyp DATE muß ein Wert sein, der in einem gültigen Datumsformat angezeigt werden kann.

Form Builder weist einem Objekt einen Standardwert zu, wenn ein neuer Datensatz erstellt wird. Speziell weist Form Builder den Standardwert immer dann zu, wenn das Objekt Bestandteil eines Datensatzes ist, dessen Status als NEW markiert ist.

Als Standardwert kann einer der folgenden Werte benutzt werden:

•	RAW-Wert (216, 'TOKYO')

•	$$DATE$$, $$DBDATE$$, $$DATETIME$$, $$DBDATETIME$$

•	Form-Objektwert (:block_name.item_name)

•	Globale Variable (:GLOBAL.my_global)

•	Formparameter (:PARAMETER.my_param)

•	Eine Sequenz (:SEQUENCE.my_seq.NEXTVAL)

Üblicherweise werden Standardwerte für Kontrollkästchen, Optionsgruppen und Listenobjekte angegeben, damit die Objekte mit dem gewünschten Auswahlstatus (Ausgewählt oder Nicht ausgewählt usw.) angezeigt werden. Wenn Sie Standardwerte für diese Objekte festlegen, denken Sie daran, daß der Standardwert erst zugewiesen wird, wenn Form Builder einen neuen Datensatz im Block des Objekts erstellt. Sie können Form Builder zwingen, einen neuen Datensatz in einem Block zu erstellen, indem Sie programmgesteuert zu dem Block navigieren, z.B. in einem When-New-Form-Instance-Trigger.

Hinweis:  Beim einfachen Kopieren eines Wertes in ein Feld ist keine Navigation zu dem Block erforderlich, so daß kein neuer Datensatz in dem Block erstellt wird und keine Standardwerte angezeigt werden.


Über Hinweistext für Objekte

  Verwandte Themen

Form Builder kann objektspezifische Hilfetexte in der Meldungszeile der Konsole zur Laufzeit anzeigen. Der Hilfetext für ein Objekt bzw. der Hinweis kann nur angezeigt werden, wenn der Eingabefokus bei diesem Objekt steht. Um den Hinweistext anzuzeigen, der für das aktuelle Objekt definiert ist, führen Sie die vordefinierte Prozedur HELP aus.

Hinweistexte sind im allgemeinen Hinweise für den Operator, wie gültige Daten in das Objekt eingegeben werden. Der Hinweistext für ein Objekt, das Teilenummern enthält, könnte z.B. wie folgt lauten: "6-stellige Teilenummer eingeben". Sie steuern die Anzeige von Hinweistext, indem Sie die Attribute Hinweis und Hinweis automatisch anzeigen für ein Objekt festlegen.

Hinweisanzeige unterdrücken  Wenn Form Builder keinen Hinweistext für ein Objekt anzeigen soll, lassen Sie das Attribut Hinweis leer. Wenn das Attribut Hinweis leer ist, bleibt das Attribut Hinweis automatisch anzeigen wirkungslos, unabhängig davon, ob es auf Ja oder Nein eingestellt ist.

Hinweis:  Die Attribute Hinweis und Hinweis automatisch anzeigen gelten nur für Objekte, die einer Leinwand zugewiesen sind. (Hinweistext kann nicht für NULL-Leinwand-Objekte benutzt werden.)

Standardhinweise für Datenobjekte  Wenn Sie einen Datenblock mit dem Datenblock-Assistenten erstellen, stellt Form Builder die Attribute Hinweis und Hinweis automatisch anzeigen für jedes Objekt in dem Block wie folgt ein:

Hinweis	Der Standardhinweis ist Wert eingeben für: <Objekt_Name>, wobei Objekt_Name der Name des Datenobjekts ist, das mit dem Datenblock-Assistenten erstellt wurde.

Hinweis automatisch anzeigen	Auf Nein eingestellt (Form Builder zeigt den Hinweis nur an, wenn ein Operator [Hilfe] in diesem Objekt drückt).


Hinweistext für ein Objekt erstellen

  Verwandte Themen

So geben Sie Hinweistext für ein Objekt an:

1	Geben Sie den gewünschten Hinweistext in das Feld Hinweis im Attributblatt für das Objekt ein. Setzen Sie den Text nicht in Anführungszeichen.

2	Stellen Sie das Attribut Hinweis automatisch anzeigen auf Ja oder Nein ein, um anzugeben, wann Form Builder den Hinweistext anzeigen soll:

3	Stellen Sie das Attribut Hinweis automatisch anzeigen auf Ja oder Nein ein, um anzugeben, wann Form Builder den Hinweistext anzeigen soll.

•	Stellen Sie Hinweis automatisch anzeigen auf Ja ein, damit Form Builder den Hinweistext anzeigt, wenn der Eingabefokus zu dem Objekt gesetzt wird.

•	Stellen Sie Hinweis automatisch anzeigen auf Nein ein, damit Form Builder den Hinweistext anzeigt, wenn der Operator [Hilfe] oder den Menüpunkt ? (Hilfe) im Standardmenü auswählt, während er in dem Objekt arbeitet.


Über das Steuern von Aktualisierenvorgängen

  Verwandte Themen

Sie können angeben, ob Operatoren Datensätze aktualisieren können, die aus der Datenbank abgefragt wurden, indem Sie die Blockattribute Aktualisieren erlaubt and Spaltensicherheit durchsetzen einstellen.

Wenn für das Attribut Aktualisieren erlaubt auf Blockebene Ja angegeben wurde, können Sie die Attribute Aktualisieren erlaubt und Nur aktualisieren, wenn Null auf Objektebene festlegen, um anzugeben, welche Operatoren die jeweiligen Objekte in einem abgefragten Datensatz aktualisieren dürfen.

Diese sich gegenseitig ausschließenden Attribute geben Aktualisieren-Bedingungen für ein Objekt an, das Bestandteil eines Datensatzes ist, dessen Status QUERY ist. Form Builder markiert den Status eines Datensatzes als QUERY, wenn der Datensatz abgerufen oder gespeichert wurde, d.h. wenn der Datensatz eine Zeile in der Datenbank reflektiert.

Sie können das Attribut Spaltensicherheit durchsetzen festlegen, damit Form Builder das Attribut Aktualisieren erlaubt zur Laufzeit automatisch setzt, je nachdem, ob der aktuelle Operator die Aktualisierungsberechtigung für die entsprechende Spalte des Objekts in der Datenbank hat.

Wenn für Spaltensicherheit durchsetzen Ja angegeben wurde, muß der aktuelle Operator die Aktualisierungsberechtigung auf Spaltenebene für die Spalten haben, denen die Objekte des Blocks entsprechen. Form Builder setzt die Spaltensicherheit durch, indem er das Attribut Aktualisieren erlaubt beim Hochfahren der Form für Objekte dynamisch auf Nein setzt, die den Spalten entsprechen, für die der Operator keine Aktualisierungsberechtigung hat.

Wenn Sie Ja für Spaltensicherheit durchsetzen angeben, liest Form Builder die im Data Dictionary definierten Berechtigungen beim Hochfahren der Form.


Über das Validieren von Objektwerten bei der Dateneingabe

  Verwandte Themen

Form Builder verfügt über ein Daten-Validierungsmodell, mit dem Daten in Datensätzen, die vom Operator eingegeben oder aktualisiert wurden, einfach validiert werden können. Viele der gebräuchlichsten Validierungsanforderungen können gehandhabt werden, indem die folgenden Attribute auf Objektebene gesetzt werden:

•	Datentyp

•	Maximale Länge

•	Feste Länge

•	Erforderlich

•	Höchster zulässiger Wert/Niedrigster zulässiger Wert

Wenn Sie eine anwendungsspezifische Validierung hinzufügen müssen, können Sie When-Validate-Item oder When-Validate-Record-Trigger für das Objekt bzw. den Block schreiben. Der When-Validate-Item -Trigger wird während des Ereignisses Objekt verlassen ausgelöst, direkt, nachdem Form Builder seine eigene Validierung durchgeführt hat. Der When-Validate-Record-Trigger wird während des Ereignisses Datensatz verlassen ausgelöst, wenn Form Builder prüft, ob alle Objekte im aktuellen Datensatz als gültig markiert sind, bevor zum Zieldatensatz navigiert wird.

Eine gebräuchliche Validierungsanforderung besteht darin, daß Objekte, die Primärschlüsselspalten in der Datenbank entsprechen, eindeutige Werte haben. Oracle8 Server erzwingt NOT NULL- und UNIQUE-Integritätsregeln, die dies für Sie auf Kernel-Ebene gewährleisten. Im allgemeinen sollten die Operatoren jedoch einen sofortigen Feedback über Fehler während der Dateneingabe erhalten, anstatt warten zu müssen, bis ein ORACLE-Fehler beim Speichern angezeigt wird.

Um sofort nach der Eingabe durch den Operator zu prüfen, ob ein Primärschlüsselwert eindeutig ist, erstellen Sie einen When-Validate-Item-Trigger, der eine SELECT-Anweisung ausgibt, um zu prüfen, ob der Wert schon in der Datenquelle des Blocks vorhanden ist.

Hinweis: Sie können auch eindeutige Primärschlüssel durchsetzen, indem Sie das Blockattribut Primärschlüssel durchsetzen und das Objektattribut Primärschlüssel setzen. Wenn Sie diese Attribute einstellen, prüft Form Builder jedoch erst beim Speichern auf doppelt vorhandene Werte, wenn jeder AKTUALISIEREN- oder EINFÜGEN-Vorgang für den Block verarbeitet wird. Hierbei muß beachtet werden, daß das Einstellen dieser Attribute keinen Vorteil gegenüber vergleichbaren Datenbank-Integritätsregeln bietet, da in beiden Fällen doppelte Primärschlüsselwerte erst beim Speichern markiert werden.


Über das Auffüllen von Objekten mit Werten aus anderen Tabellen

 Beispiele	     Verwandte Themen

Häufig muß ein Objekt in einem Datenblock erstellt werden, dessen Wert von einer anderen Tabelle als der Datenquelle des Blocks abgeleitet wird. Derartige Objekte werden gelegentlich als Verweisfelder bezeichnet, da die Anwendung einen Wert für das Objekt abfragen oder "nachschlagen" muß, wenn eine Abfrage in dem Block ausgeführt wird oder wenn sich der aktuelle Datensatz ändert.

In den Beispieltabellen umfaßt die Tabelle S_ORD (Aufträge) z.B. eine Spalte CUSTOMER_ID, jedoch keinen Kundennamen. Im relationalen Schema ist Name ein Attribut eines Kunden und nicht eines Auftrags, und die Normungsregeln schreiben vor, daß er in der Tabelle S_CUSTOMER steht und nicht in der Tabelle S_ORD. Die Spalte CUSTOMER_ID ist das Join-Feld für S_ORD und S_CUSTOMER.

Wenn Sie jedoch einen Datenblock basierend auf der Tabelle S_ORD erstellen, möchten Sie wahrscheinlich den Namen des Kunden zusammen mit dem Auftrag und nicht nur die ID für diesen Kunden anzeigen. Hierzu müssen Sie ein Steuerobjekt im Block Orders erstellen und dieses Objekt dann programmgesteuert auffüllen, wann immer sich die Customer-ID ändert.


Objekte mit Werten aus einer anderen Tabelle auffüllen

  Verwandte Themen

So füllen Sie ein Objekt mit Werten aus einer anderen Tabelle auf:

1	Erstellen Sie ein Objekt des gewünschten Typs in dem entsprechenden Datenblock.

2	Doppelklicken Sie auf das Objekt, um die Attributpalette anzuzeigen.

3	Machen Sie das Objekt zu einem Steuerobjekt, indem Sie das Attribut Datenbankobjekt unter dem Knoten Datenbank auf Nein einstellen.

4	Stellen Sie die Attribute Datentyp, Maximale Länge und andere Attribute des Objektes unter dem Knoten Daten so ein, daß sie mit dem Typ der abgerufenen Werte kompatibel sind, die das Objekt anzeigt.

5	Schreiben Sie die erforderlichen Trigger, um das Steuerobjekt zur Laufzeit aufzufüllen.


Beispiele für das Auffüllen von Objekten mit Werten aus anderen Tabellen

Ein Post-Query-Trigger wird ausgelöst, wenn der Operator oder die Anwendung eine Abfrage ausführt. Er wird einmal für jeden abgerufenen Datensatz ausgelöst, d.h. der Code innerhalb des Triggers kann die Werte in jedem Datensatz lesen und einstellen.

Um ein Steuerobjekt namens CUSTOMER_NAME in einem Datenblock namens ORD_BLK aufzufüllen, könnten Sie den folgenden Post-Query-Trigger erstellen, der dem Block ORD_BLK zugeordnet ist.

Post-Query Trigger for ORD_BLK block: 	SELECT name	INTO :ord_block.customer_name	FROM s_customer	WHERE s_customer.id = :ord_blk.customer_id;

Der Post-Query-Trigger ruft den Kundennamen ab, wenn der Operator Aufträge in dem Block abfragt, Sie müssen jedoch den Kundennamen ebenfalls anzeigen, wenn der Operator das Objekt Customer_ID während der Dateneingabe eingibt bzw. aktualisiert. Hierzu erstellen Sie einen When-Validate-Item-Trigger, der dem Objekt Customer_ID zugeordnet ist.

Ein When-Validate-Item-Trigger wird ausgelöst, wenn der Operator oder die Anwendung aus dem Objekt navigiert. Danach haben Sie die Möglichkeit, eine SELECT-Anweisung auszugeben, mit der das Objekt Customer_Name aufgefüllt wird.

When-Validate-Item Trigger for Customer ID item: BEGIN	SELECT name	INTO :ord_block.customer_name	FROM s_customer	WHERE 	s_customer.id = :ord_blk.customer_id;EXCEPTION	WHEN	NO_DATA_FOUND THEN	Message('Invalid Customer ID. Please enter again.');	RAISE Form_Trigger_Failure;END;


Über das Steuern der Navigation

  Verwandte Themen

Sie geben die Standard-Navigationsfolge für Objekte in einem Block bzw. in Blöcken einer Form an, indem Sie die Objekte und Blöcke in der gewünschten Reihenfolge im Objektnavigator anordnen. Form Builder gibt Ihnen außerdem vollständige Kontrolle über die Navigation, indem Sie die Attribute auf Form-, Block- und Objektebene setzen können. Indem Sie diese Attribute beim Entwurf oder zur Laufzeit setzen, können Sie steuern, ob Navigatoren zu Objekten navigieren können und in welcher Reihenfolge.

Mit den folgenden Attributen kann die Navigation gesteuert werden:

Objekt	Attribute, die sich auf die Navigation auswirken
Form	Erster Navigationsblock
Block	Navigationsstil Nächster Navigationsblock Vorheriger Navigationsblock
Objekt	Ausgewählt Mausnavigation Tastatur-navigierbar Nächstes Navigationsobjekt Vorheriges Navigationsobjekt


Über das Ändern der Standard-Navigationsfolge

  Verwandte Themen

Sie können die Standard-Navigationsfolge auf Block- oder Objektebene außer Kraft setzen, indem Sie die Attribute Nächster Navigationsblock, Vorheriger Navigationsblock, Erster Navigationsblock, Nächstes Navigationsobjekt und Vorheriges Navigationsobjekt  einstellen.

Attribut Nächster/Vorheriger Navigationsdatenblock  Die Attribute Nächster Navigationsblock und  Vorheriger Navigationsblock setzen die Standard-Navigationsfolge außer Kraft, die mit der Reihenfolge der Blöcke im Objektnavigator definiert wurde. Speziell mit dem Attribut Nächster Navigationsblock können Sie einen anderen Block als den nächsten folgerichtigen Block benennen.

Ausgehend von einer Form mit drei Blöcken könnten Sie das Attribut Nächster Navigationsblock von Block 1 setzen, um den standardmäßig als nächstes benutzten Block von Block 2 in Block 3 zu ändern. Dabei käme es zu einer Blocknavigationsfolge von Block 1...Block 3...Block 1. In diesem Beispiel bleibt der nächste Block für Block 3 Block 1, und somit wird Block 2 während der Standard-Tastaturnavigation niemals berührt.

Sie können auch die Attribute Nächster Navigationsblock und Vorheriger Navigationsblock benutzen, um die Vorgänge Nächster Block und Vorheriger Block zu deaktivieren. Um z.B. die Taste [Nächster Block] in Block 2 nicht zuzulassen, setzen Sie das Attribut Nächster Navigationsblock von Block 2 auf Block 2.

Attribut Nächstes/Vorheriges Navigationsobjekt  Die Attribute , Nächstes Navigationsobjekt und Vorheriges Navigationsobjekt sind mit den Attributen Nächster und Vorherhiger Navigationsblock vergleichbar, nur steuern sie die Navigation auf Objektebene und nicht auf Blockebene.

Attribut Erster Navigationsdatenblock  Mit dem Attribut Erster Navigationsblock des Formmoduls können Sie einen anderen Block als den ersten Block in der Navigationsfolge als Zielblock beim Aufruf der Form angeben. Dieses Attribut kann in der Attributpalette oder programmgesteuert mit der vordefinierten Prozedur SET_FORM_PROPERTY eingestellt werden.


Über die Angabe des Navigationsstils für einen Block

  Verwandte Themen

Sie können die Navigationsfolge ändern, indem Sie das Blockattribut Navigationsstil einstellen. Mit Navigationsstil wird angegeben, wie ein Vorgang Nächstes Objekt oder Vorheriges Objekt aus dem letzten navigierbaren Objekt bzw. dem ersten navigierbaren Objekt in dem Block verarbeitet wird.

Für Navigationsstil gibt es folgende Einstellungen:

Selber Datensatz	Der Standard-Navigationsstil. Ein Vorgang Nächstes Objekt aus dem letzten Objekt eines Blocks setzt den Eingabefokus zu dem ersten navigierbaren Objekt in dem Block im selben Datensatz.
Datensatz ändern	Ein Vorgang Nächstes Objekt aus dem letzten Objekt eines Blocks setzt den Eingabefokus zu dem ersten navigierbaren Objekt in dem Block im nächsten Datensatz. Wenn der aktuelle Datensatz der letzte Datensatz in dem Block ist und keine Abfrage geöffnet ist, erstellt Form Builder einen neuen Datensatz. Wenn in dem Block eine geöffnete Abfrage vorhanden ist (der Block enthält abgefragte Datensätze), ruft Form Builder zusätzliche Datensätze nach Bedarf ab.
Datenblock ändern	Ein Vorgang Nächstes Objekt aus dem letzten Objekt eines Blocks setzt den Eingabefokus zu dem ersten navigierbaren Objekt im ersten Datensatz des nächsten Blocks. Gleichermaßen setzt ein Vorgang Vorheriges Objekt aus dem ersten Objekt in einem Block den Eingabefokus auf das letzte Objekt im aktuellen Datensatz des vorherigen Blocks. Beachten Sie, daß die Attribut Nächster Navigationsblock und Vorheriger Navigationsblock so eingestellt werden können, daß das nächste oder vorherige Objekt eines Blocks neu definiert werden kann.
Das Blockattribut Navigationsstil kann beim Entwurf in der Attributpalette und zur Laufzeit mit der vordefinierten Prozedur SET_BLOCK_PROPERTY festgelegt werden.

Der Standard-Navigationsstil ist Selber Datensatz. Anwendungen, die diesen Stil benutzen, müssen den Formoperatoren im allgemeinen verdeutlichen, welche Objekte zu welchen Blöcken gehören. Wenn Operatoren [Nächster Block] drücken müssen, um zu einem Objekt in einem anderen Block zu navigieren, muß es für den Operator erkennbar sein, welche Objekte in welchen Blöcken stehen.

Möglicherweise soll das Schema der Blocknavigation den Benutzern nicht unbedingt offengelegt werden. In diesem Fall können Sie die Navigationsstile Datensatz ändern oder Datenblock ändern verwenden, um die gewünschte Navigationsfolge zu erreichen. Die Einstellung Datenblock ändern wird häufig dann benutzt, wenn Navigatoren mit der Tabulatortaste zu allen Objekten in einem Fenster navigieren sollen, selbst wenn diese Objekte zu mehr als einem Block gehören.

Wenn Sie z.B. ein Fenster mit einer Reihe von Schaltflächen am unteren Rand erstellen, stehen die Schaltflächenobjekte häufig in einem anderen Block als die anderen Objekte im selben Fenster. Wenn Sie den Navigationsstil Block ändern für jeden Block benutzen, wird die Navigationseinschränkung Nächster Block eliminiert.

Der Navigationsstil Datensatz ändern wird besonders bei Datenbankblöcken benutzt, in denen mehrere Datensätze gleichzeitig gespeichert werden. Mit dieser Einstellung können Operatoren schnell durch mehrere Datensätze gehen, ohne mit einer anderen Taste oder mit der Maus explizit zum nächsten oder vorherigen Datensatz zu navigieren. Während der Dateneingabe können Operatoren mit dem Attribut Datensatz ändern schnell einen neuen Datensatz am Ende der Liste mit Datensätzen des Blocks einfügen.


Objekte navigierbar und aktiviert machen

  Verwandte Themen

Ein navigierbares Objekt ist ein Objekt, zu dem Operatoren während der Standardnavigation mit der Tabulatortaste navigieren können, bzw. zu dem Form Builder durch Ausführung einer vordefinierten Navigationsprozedur navigieren kann.

Wenn ein Operator z.B. [Nächstes Objekt] drückt oder die Anwendung die vordefinierte Prozedur NEXT_ITEM ausführt, setzt Form Builder den Eingabefokus zu dem nächsten navigierbaren Objekt, wobei nicht navigierbare Objekte in der Folge übersprungen werden.

Sie können die Attribute Tastatur-navigierbar and AKTIVIERT festlegen, um anzugeben, welche Operatoren zu den Objekten navigieren und mit diesen arbeiten dürfen. Mit dem Attribut Tastatur-navigierbar wird festgelegt, ob Form Builder den Eingabefokus während der Standardnavigation in ein Objekt setzen kann. Dieses Attribut gilt für alle Objekte mit Ausnahme von Diagrammobjekten und Anzeigeobjekten. Mit dem Attribut AKTIVIERT wird festgelegt, welche Operatoren ein Objekt mit der Maus bearbeiten können, für das das Attribut Tastatur-navigierbar auf Nein eingestellt ist.

Bei den meisten Fensterverwaltungsprogrammen werden deaktivierte Objekte grau angezeigt, um anzugeben, daß sie für die Eingabe oder Auswahl nicht verfügbar sind.

Wenn AKTIVIERT auf Ja gesetzt ist, kann das Attribut Tastatur-navigierbar Ja oder Nein sein. Wenn für Aktiviert Nein angegeben wurde, ist ein Objekt immer nicht-navigierbar.

In der folgenden Tabelle werden die gültigen Einstellungen für diese Attribute dargestellt und wird das Navigationsverhalten erläutert.

Tastatur-navigierbar	Aktiviert	Navigationsverhalten
Ja	Ja	Objekt ist navigierbar, und Form Builder kann den Eingabefokus während der Standardnavigation zu dem Objekt setzen.
Nein	Ja	Objekt wird normal angezeigt. Objekt ist nicht-navigierbar. Während der Standardnavigation überspringt Form Builder das Objekt und geht zum nächsten navigierbaren Objekt in der Folge. Das Objekt wird normal angezeigt, und Operatoren können mit der Maus zu dem Objekt navigieren und dieses bearbeiten.
Nein	Nein	Objekt ist nicht-navigierbar und wird grau angezeigt, um anzugeben, daß es für die Eingabe oder Mausbearbeitung nicht verfügbar ist.

 Hinweis:  Wenn Sie AKTIVIERT auf Nein setzen, können Operatoren den Wert des Objekts nicht aktualisieren, allerdings wird das Objekt auch deaktiviert und grau angezeigt. Wenn Sie das Objekt normal anzeigen und dennoch verhindern wollen, daß Operatoren den Wert ändern, können Sie die Objektattribute Einfügen erlaubt und/oder Aktualisieren erlaubt auf Nein setzen, um zu verhindern, daß Operatoren einen Datensatz ändern, dessen Status NEW/INSERT oder QUERY/CHANGED ist.


Über das Festlegen des Attributs Mausnavigation für GUI-Objekte

 Beispiele   [image]  Verwandte Themen

Operatoren können mit der Maus klicken, um eine Schaltfläche zu aktivieren, ein Kontrollkästchen umzuschalten, ein Element in einem Listenobjekt auszuwählen oder eine Optionsschaltfläche auszuwählen. Für jedes dieser Objekte können Sie mit dem Attribut Mausnavigation angeben, ob Form Builder bei einem Mausklick auf das Objekt den Eingabefokus zu dem Objekt setzt. Das Attribut Mausnavigation% gilt nur für GUI-Anwendungen und ist nur für die folgenden Objekte gültig:

•	Schaltfläche

•	Kontrollkästchen

•	Listenobjekt

•	Optionsgruppe

Wenn das Attribut Mausnavigation% auf Ja (Standardwert) eingestellt ist, führt Form Builder eine Standardnavigation durch, um den Fokus zu dem Objekt zu setzen, wenn der Operator das Objekt mit der Maus aktiviert.

Wenn für Mausnavigation% Nein angegeben wird, führt Form Builder keine Navigation (und nachfolgende Validierung) aus, um den Fokus zu dem Objekt zu setzen, wenn ein Operator das Objekt mit der Maus aktiviert.


Beispiele für das Attribut Mausnavigation für GUI-Objekte

Betrachten Sie zwei Blöcke, A und B, im selben Fenster. Block A enthält Textobjekte und Block B Schaltflächen. Wenn der Eingabefokus in einem Textobjekt in Block A steht, kann der Operator eine Schaltfläche in B aktivieren, indem er mit der Maus auf diese Schaltfläche klickt. Wenn der Operator auf die Schaltfläche klickt, wird das Ereignis When-Button-Pressed ausgelöst, und Form Builder führt den Code in dem When-Button-Pressed-Trigger aus, der dieser Schaltfläche zugeordnet ist.

Mit dem Attribut Mausnavigation der Schaltfläche wird festgelegt, wie Form Builder den Mausklick in der Schaltfläche verarbeitet:

Wenn Mausnavigation auf Ja eingestellt ist...  Form Builder navigiert zu der Schaltfläche und führt dabei die Standardvalidierung durch. So können die folgenden internen Navigations- und Validierungsereignisse eintreten:

•	Verlassen des Objekts (Quell-Textobjekt)

•	Validieren des Objekts

•	Verlassen des Datensatzes

•	Validieren des Datensatzes

•	Verlassen des Blocks (Block A)

•	Aufruf des Blocks (Block B)

•	Aufruf des Datensatzes (des "Datensatzes", in dem die Schaltfläche steht)

•	Aufruf des Objekts (Ziel-Schaltfläche)

Wenn Mausnavigation auf Nein eingestellt ist...  Form Builder löst den When-Button-Pressed-Trigger der Schaltfläche einfach aus, ohne eine interne Navigation zu der Schaltfläche vorzunehmen. Da keine Navigation erfolgt, bleibt der Eingabefokus im Quelltextobjekt, nachdem der Trigger ausgeführt wurde. (Dies gilt natürlich nicht, wenn der Trigger-Code zu einem anderen Objekt navigiert.)

Wenn für jedes dieser Standard-Navigations- bzw. -Validierungsereignisse Trigger definiert sind, werden diese an der entsprechenden Stelle während der internen Navigation zu der Schaltfläche ausgelöst.

Wenn z.B. dem Quellobjekt ein When-Validate-Item -Trigger zugeordnet ist, wird dieser ausgelöst, wenn der Operator die Schaltfläche drückt. (Wenn für das Schaltflächenattribut Mausnavigation Nein angegeben wurde, kommt es zu keiner Navigation, und der Validierungs-Trigger würde nicht ausgelöst.)

Hinweise zu dem Attribut Mausnavigation:

•	Wenn für Mausnavigation% Ja angegeben wurde, wird der When-Button-Pressed%-Trigger für die Schaltfläche nur ausgelöst, wenn die Navigation zu der Schaltfläche erfolgreich ist. Wenn Validierungsprüfungen nicht erfolgreich sind, ist die Navigation nicht erfolgreich, und der der When-Button-Pressed% -Trigger wird nicht ausgelöst. Dies bedeutet, daß Operatoren die Schaltfläche nicht aktivieren können, wenn obligatorische Felder ungültige Werte enthalten.

•	Einige Fensterverwaltungsprogramme zeigen nicht visuell an, daß der Eingabefokus in einem Objekt steht, wie z.B. einer Schaltfläche oder einem Kontrollkästchen. Wenn Sie bei diesen Plattformen das Attribut Mausnavigation% auf Ja lassen, denken Sie daran, daß die Operatoren kein visuelles Feedback bezüglich der Position des Eingabefokus erhalten.


Über die Navigation mit Code

Die Navigationstasten, mit denen Operatoren in einer Form navigieren können, haben entsprechende vordefinierte Prozeduren, mit denen Sie die Navigation programmgesteuert auslösen können. In der folgenden Tabelle werden einige der gebräuchlichsten Navigationstasten und die entsprechenden vordefinierten Prozeduren aufgeführt:

Runform-Funktionstaste	Entsprechende vordefinierte Prozedur
[Nächstes Objekt] (TAB)	NEXT_ITEM
[Vorheriges Objekt]	PREVIOUS_ITEM
[Nächster Block]	NEXT_BLOCK
[Vorheriger Block]	PREVIOUS_BLOCK
[Nächster Datensatz]	NEXT_RECORD
[Vorheriger Datensatz]	PREVIOUS_RECORD
[Nächste Taste]	NEXT_KEY

Andere vordefinierte Prozeduren navigieren direkt zu einem angegebenen Ziel:

•	GO_ITEM navigiert zu einem angegebenen Objekt.

•	GO_BLOCK navigiert zum ersten navigierbaren Objekt im angegebenen Block.

•	GO_FORM navigiert zum aktuellen Objekt in einer anderen geöffneten Form.


Über die Versionskontrolle

  Verwandte Themen

Mit der Versionskontrolle können mehrere Versionen derselben Datei in einem Archiv verwaltet und gepflegt werden.

Ein Archiv ist ein benutzerdefinierter Ordner, der eine Textversion der Datei sowie Informationen über jede Revision der Datei enthält, einschließlich einer Beschreibung aller Dateiänderungen und der Angabe des Zeitpunkts dieser Änderungen.

Mit einem Archiv kann ein Mitglied Ihres Entwicklungsteams jede Revision einer Datei sicher und konsistent abrufen, ändern und wieder zurückgeben.

Bei Komponenten (z.B. Form Builder) wird die Versionskontrolle über eine allgemeine Schnittstelle zu einem beliebigen Versionskontrollprogramm realisiert, das Sie verwenden möchten. Plugin-Module sind augenblicklich erhältlich für das Polytron Version Control System (PVCS) von INTERSOLV und Pure-Atria Clearcase, wobei weitere Hersteller hinzukommen werden.

Für Informationen über die Installation und Benutzung von PVCS wird auf die INTERSOLV-Dokumentation verwiesen.

PVCS unterstützt auch das Sperren von Dateien und das Erstellen von Archivberichten.


Über Konfigurationsdateien

Es gibt vier Umgebungsvariablen, die für eine optimale Leistung der Versionskontrolloberfläche eingestellt werden müssen. Unter Windows 3.1 werden sie in oracle.ini eingestellt, während sie unter Windows NT oder Windows 95/98 in der Registrierung in dem Schlüssel SOFTWARE/ORACLE festgelegt werden.

Mit DEV2000_SOURCECONTROL wird angegeben, welches Versionskontrollsystem benutzt werden soll. Diese Umgebungsvariable muß auf  "PVCS" eingestellt werden. Da Komponenten (z.B. Form Builder) standardmäßig PVCS benutzt, kommt es in dieser Version zu keinen spürbaren Auswirkungen, wenn diese Variable weggelassen wird. Sobald jedoch zusätzliche Versionskontrollsysteme hinzugefügt werden, stellt die Einstellung dieser Variablen sicher, daß die Versionskontrolle wie gewünscht funktioniert.

DEV2000_PROJECT tritt anstelle der Variablen TVCCFG aus Forms Developer Version 1.0 und 1.1. Sie identifiziert die PVCS-Projektkonfigurationsdatei (.CFG), die benutzt werden soll. Wenn Sie keine Projektkonfigurationsdatei über eine Umgebungsvariable angeben, müssen Sie in jeder Sitzung eine Datei aus dem Dialogfeld Versionskontrolloptionen auswählen.

Mit DEV2000_SCVIEWER wird festgelegt, welches Programm zur Anzeige der Ergebnisse eines Versionskontrollprotokolls oder eines Differenzberichts verwendet werden soll. Um die Anzeige der Ergebnisse zu dekativieren, muß diese Variable auf null (kein Wert) eingestellt werden.

Mit DEV2000_SCCONVERT wird festgelegt, ob Dateien in ASCII konvertiert werden, bevor sie in PVCS eingetragen werden, und wieder zurück in das Binärformat, bevor sie ausgetragen werden. Es sei denn, Sie haben PVCS schon mit einer früheren Version von Forms Developer benutzt und möchten dieses Verhalten beibehalten, sollten Sie bei diesem Eintrag den Standardwert FALSE beibehalten.

Hier ein Beispielauszug aus oracle.ini:

...

DEV2000_SOURCECONTROL=PVCS

DEV2000_PROJECT=C:\PROJECTS\MYPROJ\MYPROJ.CFG

DEV2000_SCVIEWER=NOTEPAD.EXE

DEV2000_SCCONVERT=FALSE

...


Über die Implementierung von PVCS

Wenn Sie bestimmte Objekte (Forms, Menüs, Berichte, grafische Anwendungen, PL/SQL-Bibliotheken) eintragen, wird die Binärdatei automatisch in ein Textdateiäquivalent konvertiert, und die Textdatei wird in die Versionskontrolle eingetragen. Wenn Sie z.B. MYFORM.FMB eintragen würden, würde MYFORM.FMB automatisch in MYFORM.FMT (das Textäquivalent) konvertiert und MYFORM.FMT in die Versionskontrolle eingetragen.

Wenn Sie eine archivierte Datei austragen, wird die Textversion der Datei wiederum in das entsprechende Binärformat konvertiert, das von den Designer-Schnittstellen gelesen werden kann. Wenn Sie z.B. MYFORM.FMT austragen würden, würde die Datei in MYFORM.FMB konvertiert, damit Sie sie bearbeiten können.

Die Archivierung erfolgt für die Textversion der Datei, damit aussagefähigere Differenzberichte zwischen verschiedenen Revisionen einer Datei generiert werden können. Während PVCS die Archivierung von Binärdateien unterstützt, sind Differenzberichte zwischen Revisionen von Binärdateien nicht möglich.

Diese Dateikonvertierung kann zu zusätzlichen Dateien führen, die in Ihrem Arbeitsordner stehen bleiben, je nach PVCS-Einstellungen. Wenn Ihr Projekt so konfiguriert ist, daß Arbeitsdateien nach dem Check-In schreibgeschützt werden, ist sowohl die Binärdatei als auch eine schreibgeschützte Datei im Textformat in Ihrem Ordner vorhanden. Wenn Ihr Projekt jedoch so konfiguriert ist, daß Arbeitsdateien nach dem Check-In gelöscht werden, bleibt nur die Binärdatei in Ihrem Arbeitsordner stehen.


Über das Eintragen einer Datei

  Verwandte Themen

Jedesmal, wenn Sie eine Datei ändern und in ein Archiv eintragen, wird sie zu einer neuen Revision. Wenn Sie eine Datei eintragen (z.B. eine PL/SQL-Bibliotheksdatei mit der Dateinamenerweiterung .pll), führt PVCS automatisch eine Binär-nach-Text-Konvertierung durch und archiviert die Datei in dem angegebenen Pfad als Textdatei mit der entsprechenden Dateinamenerweiterung (z.B. .pld). PVCS verwendet die Textdatei, um Archivberichte zu erstellen.

Eine Versionsbezeichnung kennzeichnet eine Revision als Bestandteil einer Gruppe von Revisionen, die normalerweise eine vollständige Version Ihrer Anwendung darstellen. Mit Versionsbezeichnungen können Sie mit allen Dateien, die mit einer bestimmten Version verknüpft sind, gleichzeitig arbeiten, indem Sie einen einzigen Namen referenzieren. Wenn Sie schon eine Version des aktuellen Moduls archiviert haben, werden die entsprechenden Informationen automatisch in das Feld Archiv eingegeben.


Über das Austragen einer Datei

  Verwandte Themen

Wenn Sie eine Datei aus einem Archiv austragen, können Sie die Datei durchsuchen, bearbeiten oder ausdrucken. Standardmäßig kann immer nur ein Benutzer gleichzeitig eine bestimmte Version mit einer Sperre austragen.

Wenn Sie eine Datei austragen, wird die Datei automatisch von der archivierten Textversion in das richtige Format konvertiert (z.B. wird eine PL/SQL-Bibliotheksdatei von .pld in .pll konvertiert). Die Datei, die Sie aus einem Archiv austragen, wird als Arbeitsdatei bezeichnet. Jedesmal, wenn Sie eine neue Variation einer Arbeitsdatei eintragen, wird sie zu einer Revision.


Über das Erstellen von Archivberichten

  Verwandte Themen

Mit PVCS können Sie Berichte generieren, in denen die folgenden Archivaktivitäten zusammengefaßt werden:

•	Erstellen von Archiven

•	Attribute von archivierten Dateien

•	Nachfolgende Revisionen

•	Bezeichnungen

•	In der letzten Revision geänderte Zeilen

•	Beschreibung der Arbeitsdatei


Über Promotionsmodelle

Ein Promotionsmodell entspricht einer Hierarchie von Meilensteinen in einem Entwicklungszyklus. Mit der Promotion kontrollieren Sie die Entwicklung des Quellcodes von der Entwurfsphase bis zum endgültigen Release. Jeder Meilenstein wird von einer Promotionsgruppe dargestellt. Beispiele für Promotionsgruppen umfassen Entwicklung, Qualitätssicherung und Produktion. Ein Promotionsmodell ist eine hochentwickelte Funktion. Es wird für Anlagen mit formalen Software-Turnover-Prozeduren empfohlen.

Ein Promotionsmodell kann eine oder mehrere Gruppen auf niedrigster Ebene bzw. Entwicklungsgruppen enthalten. Wenn ein Promotionsmodell aktiv ist, können Benutzer nur Revisionen ändern, die mit einer Entwicklungsgruppe verknüpft sind. Um eine mit einer höheren Gruppe verknüpfte Revision zu bearbeiten, muß ein Benutzer diese aus der Versionskontrolle austragen und beim Austragen wieder mit einer Entwicklungsgruppe verknüpfen. Nach dem erneuten Eintragen der Revision muß diese dann wieder auf eine höhere Ebene gesetzt werden.

Wenn das Promotionsmodell nur eine Entwicklungsgruppe enthält, kann immer nur eine Revision in dem Archiv gleichzeitig gesperrt werden. Um ein Promotionsmodell für die parallele Entwicklung zu entwerfen, müssen Sie mindestens zwei Entwicklungsgruppen vorsehen.

Sie können eine beliebige Anzahl von Zwischen-Promotionsgruppen über der bzw. den Entwicklungsgruppen für die verschiedenen Teststadien oder für Vorab-Releases definieren. Die höchste Ebene ist die Produktionsgruppe, die im allgemeinen darauf hinweist, daß Revisionen für das endgültige Release bereit sind.

Mit einem Promotionsmodell können Sie:

•	Den Projektstatus schnell bestimmen.  Sie können einen Archivbericht über ein Projekt in einem Projekt ausführen, um sofort festzustellen, welche Module einen bestimmten Meilenstein im Entwicklungszyklus noch nicht erreicht haben.

•	Den Revisionszugriff auf Nicht-Entwicklungs-Ebenen steuern.  Da Benutzer keine Revisionen ändern können, die mit Promotionsgruppen nach der Entwicklung verknüpft sind, ist gewährleistet, daß alle Revisionen sorgfältig getestet sind.

•	Ihr eigenes Modell individuell gestalten.  Sie können eine benutzerdefinierte Promotionsstruktur gestalten, die für jedes Projekt speziell zugeschnitten ist, wobei eine beliebige Anzahl von Meilensteinen in der Promotionsstruktur möglich ist.


Archivordner erstellen

  Nächster Schritt	  Verwandte Themen

So erstellen Sie einen Archivordner:  Hinweis:

1	Wählen Sie Datei [image] Verwaltung [image] Versionskontrolloptionen, um das Dialogfeld Versionskontrolle: Optionen anzuzeigen.

2	Wählen Sie das Registertab Projekt aus, wenn es noch nicht ausgewählt ist.

3	Geben Sie den Namen und Pfad Ihres Archivordners in das Feld Neuer Archivordner ein.

4	Klicken Sie auf Neuen Ordner zur Liste hinzufügen, und klicken Sie dann auf Schließen, um das Dialogfeld zu schließen.


Sie können nur dann Archivordner hinzufügen, wenn Sie schon den Parameter DEV2000_PROJECT in der Datei oracle.ini definiert haben. Bei Microsoft Windows definieren Sie den Parameter DEV2000_PROJECT wie folgt:

DEV2000_PROJECT=C:\PVCS\PROJECT1\PROJECT1.CFG

Sie bearbeiten den Parameter DEV2000_PROJECT mit der Datei Oracle.ini für Windows 3.1 und der Registrierung für Windows 95/98 and NT.


Dateien eintragen

  Nächster Schritt	  Verwandte Themen

So tragen Sie eine Datei ein:

1	Wählen Sie Datei [image] Verwaltung [image] Check-In, um das Dialogfeld Versionskontrolle: Check-In anzuzeigen.

2	Geben Sie den Namen der zu archivierenden Datei in das Textfeld Dateiname ein.

3	Geben Sie den Pfad für das Archiv in das Feld Archiv ein.

4	(Optional) Geben Sie gegebenenfalls eine Version, Promotionsgruppe und Beschreibung an.

5	(Optional) Klicken Sie auf das Kontrollkästchen Datei nach Check-In gesperrt lassen, wenn eine nicht schreibgeschützte Kopie der Archivdatei weiter lokal verfügbar sein soll, nachdem die Datei eingetragen wurde. Mit einer nicht schreibgeschützten Kopie der Datei können Sie nachfolgende Änderungen an der Datei ändern und prüfen, ohne die Datei zuerst austragen zu müssen.

6	Klicken Sie auf OK, um die Datei einzutragen.

PVCS archiviert die Datei.


Dateien austragen

  Nächster Schritt	  Verwandte Themen

So tragen Sie eine Datei aus:

1	Wählen Sie Datei [image] Verwaltung [image] Check-Out, um das Dialogfeld Versionskontrolle: Check-Out anzuzeigen.

2	Geben Sie den Pfad des Quellarchivs in das Feld Aus Archiv ein.

3	Geben Sie den Namen der auszutragenden Datei in das Textfeld Dateiname ein.

4	Wählen Sie die gewünschte Dateirevision im Feld Revisionen aus.

5	(Optional) Geben Sie das gewünschte Ziel an, indem Sie einen Pfad in das Feld Ziel eingeben.

6	(Optional) Wenn die auszutragende Datei gesperrt werden soll, müssen Sie die Promotionsgruppe auf Entwicklungsebene auswählen, die der auszutragenden Revision zugewiesen wird.

7	(Optional) Klicken Sie auf das Kontrollkästchen Datei bei Check-Out sperren. Hinweis:

8	(Optional) Klicken Sie auf das Kontrollkästchen  Datei nach Check-Out öffnen. Wenn dieses Kontrollkästchen ausgewählt ist, wird die ausgetragene Datei im Designer geöffnet, nachdem sie aus dem PVCS ausgetragen wurde.

9	Klicken Sie auf OK, um die Datei auszutragen.


Wenn Sie eine Archivdatei ändern möchten, müssen Sie das Kontrollkästchen Datei bei Check-Out sperren aktivieren, um die Änderungen eintragen zu können. Sonst wird eine schreibgeschützte Version der Datei ausgetragen.


Archivberichte erstellen

  Verwandte Themen

So erstellen Sie einen Archivbericht:

1	Wählen Sie Datei [image] Verwaltung [image] Versionskontrolloptionen.

2	Klicken Sie auf das Registertab Bericht, um das Register Versionskontrolle: Berichte anzuzeigen.

3	Geben Sie den Pfad des Archivs in das Feld Archiv ein.

4	Geben Sie den Namen der gewünschten Archivdatei in das Feld Quelldatei ein. PVCS generiert einen Bericht aufgrund des Vergleichs zwischen dieser Datei und der Zieldatei.

5	Geben Sie den Namen der Zieldatei in das Feld Zieldatei ein. Hinweis

6	Wählen Sie die gewünschten Dateirevisionen in den Feldern Quelle bzw. Ziel aus.

7	Geben Sie den Namen und Pfad Ihres Berichts in dem Feld Ausgabedatei an, und klicken Sie dann auf Bericht erstellen.

PVCS erstellt Ihren Bericht. Wenn über die Umgebungsvariable DEV2000_SCVIEWER oder einen Parameter in oracle.ini ein Anzeigeprogramm angegeben wurde, wird dieses zur Anzeige der Berichtausgabe aufgerufen. Sonst öffnen Sie die Berichtdatei mit einem Editor.


Wenn Sie zwei Revisionen mit demselben Archiv vergleichen, geben Sie den Namen der Archivdatei ein, den Sie in Schritt 4 angegeben haben. Wenn Sie unterschiedliche Archivdateien vergleichen, geben Sie eine andere Archivdatei in das Feld Ziel ein.


Dialogfeld Versionskontrolle: Check-In

  Verwandte Themen

In diesem Dialogfeld wird die gewünschte Datei in das angegebene Archiv gemischt.

Das Dialogfeld Check-In enthält die folgenden Optionen:

Arbeitsdatei	Gibt den Namen der einzutragenden Datei an. Wählen Sie Durchsuchen, um ein Datei-Dialogfeld aufzurufen, aus dem Sie eine Datei auswählen können.
In Archiv	Eine Dropdown-Liste aller verfügbaren Archive für das aktuelle Projekt. Wählen Sie ein Archiv aus der Liste, in das die Datei eingetragen werden soll.
Version	(Optional) gibt die Dateiversion an.
Promotionsgruppe	Wenn für Ihr PVCS-Projekt ein Promotionsmodell definiert ist, ist diese Liste aktiviert. Wählen Sie die Promotionsgruppe auf Entwicklungsebene, die der einzutragenden Revision zugewiesen werden soll.
Beschreibung	Gibt eine Beschreibung der Änderungen an, die für diese Revision vorgenommen werden. Auch wenn diese Angabe optional ist, wird empfohlen, daß Sie eine Änderungsbeschreibung eingeben, um die Revisionen beim Check-Out einfacher kennzeichnen zu können.
Datei nach Check-In gesperrt lassen	Gibt an, ob lokal eine nicht schreibgeschützte Kopie der Archivdatei behalten werden soll, selbst nachdem sie eingetragen wurde. Mit einer nicht schreibgeschützten Kopie der Datei können Sie nachfolgende Änderungen an der Datei vornehmen, ohne die Datei zuerst austragen zu müssen.


Dialogfeld Versionskontrolle: Check-Out

  Verwandte Themen

In diesem Dialogfeld wird die angegebene Datei aus einem Archiv abgerufen, damit Sie sie bearbeiten können.

Das Dialogfeld Check-Out enthält folgende Optionen:

Quellarchiv	Gibt den Ordnernamen des Archivs an, aus dem die Datei ausgetragen werden soll.
Dateiname	Gibt den Namen der Datei an, die aus der Versionskontrolle abgerufen werden soll. Wählen Sie Durchsuchen, um ein Datei-Dialogfeld aufzurufen, aus dem Sie eine Datei auswählen können.
Revisionen	Zeigt die verfügbaren Revisionen und Versionen der Datei an, die in dem Feld Dateiname ausgewählt wurden.
Beschreibung	Führt Beschreibungen der verfügbaren Revisionen auf, die in der Liste Revisionen angezeigt werden.
Ziel	(Optional) Gibt den Zielordner für die auszutragende Datei an.
Promotionsgruppe	Wenn ein Promotionsmodell für Ihr PVCS-Projekt definiert ist, ist diese Liste aktiviert. Wenn Sie die Datei nach dem Austragen sperren möchten, müssen Sie die Promotionsgruppe auf Entwicklungsebene wählen, die der auszutragenden Revision zugewiesen wird.
Datei bei Check-Out sperren	Gibt an, ob die auszutragende Datei als gesperrt markiert werden soll. Eine gesperrte Datei ist vor Aktualisierungen durch andere Benutzer geschützt.
Datei nach Check-Out öffnen	Wenn Sie dieses Kontrollkästchen auswählen, wird die ausgetragene Datei im Designer geöffnet, nachdem sie aus PVCS ausgetragen wurde.


Dialogfeld Versionskontrolle: Optionen

  Verwandte Themen

Das Dialogfeld Optionen enthält drei Register:

Projektoptionen

Dateioptionen

Berichtoptionen


Register Versionskontrolle: Projektoptionen

  Verwandte Themen

In diesem Register können Sie Archivordner aus der Projektkonfigurationsdatei hinzufügen und entfernen.

Das Register Projektoptionen enthält folgende Einstellungen:

Aktuelles Projekt	Der Name der aktuellen PVCS-Projektkonfigurationsdatei. Der Ausgangswert ist der Wert von DEV2000_PROJECT in der Datei oracle.ini. Sie können einen Dateinamen direkt eingeben oder können auf Durchsuchen klicken, um das Dialogfeld mit den Betriebssystemdateien anzuzeigen.
Neuer Archivordner	Gibt einen neuen Archivordner an, der zu der Liste mit verfügbaren Archivordnern im aktuellen Projekt hinzugefügt werden soll. Sie können einen Ordnernamen eingeben oder auf Durchsuchen klicken, um das Dialogfeld mit den Betriebssystemdateien anzuzeigen.
Archivordner-Liste	Zeigt die Archivordner an, die im aktuellen Projekt verfügbar sind.
Neuen Ordner zur Liste hinzufügen	Nachdem Sie einen Archivordner in das Textfeld Neuer Archivordner eingegeben haben, klicken Sie auf Neuen Ordner zur Liste hinzufügen, um den Ordner zu dem aktuellen Projekt hinzuzufügen. Der Ordner wird in der Liste angezeigt, nachdem er hinzugefügt wurde.
Ausgewählten Ordner aus der Liste entfernen	Wählen Sie einen Archivordner aus der Liste aus, und klicken Sie auf Ausgewählten Ordner aus der Liste entfernen, um den Ordner aus dem Projekt zu entfernen.


Register Versionskontrolle: Dateioptionen

  Verwandte Themen

Mit diesem Register können Sie ein Archiv sperren oder entsperren bzw. ein Protokoll der Aktivitäten für dieses Archiv generieren.

Das Register Dateioptionen enthält folgende Einstellungen:

Archiv	Eine Dropdown-Liste aller Archivordner in der aktuellen Projektkonfigurationsdatei.
Dateiname	Gibt die aufzurufende Archivdatei an. Sie können den Namen direkt eingeben oder eine Datei mit Durchsuchen wählen. Wenn das PVCS-Projekt so konfiguriert ist, daß Pfade von Arbeitsdateien ignoriert werden, können Sie entweder eine Arbeitsdatei oder eine Archivdatei angeben. Sonst dürfen Sie nur eine Archivdatei angeben.
Revision	In dieser Dropdown-Liste werden alle verfügbaren Revisionen und Versionen der ausgewählten Datei angezeigt. Außerdem enthält diese Liste einen leeren Eintrag, mit dem keine Auswahl angegeben wird. Wenn Sie eine bestimmte Revision auswählen, wird diese Revision gesperrt oder entsperrt. Wenn Sie keine Revision auswählen, hängt das Verhalten beim Sperren davon ab, ob ein Promotionsmodell definiert ist. Wenn kein Modell definiert ist, wird die Tip-Revision gesperrt. Wenn ein Modell definiert ist, wird die der angegebenen Promotionsgruppe zugewiesene Revision gesperrt. Das Verhalten bei Sperren aufheben ohne ausgewählte Revision besteht immer darin, daß alle Sperren freigegeben werden, die Sie für die Datei haben.
Promotionsgruppe	Wenn ein Promotionsmodell für Ihr PVCS-Projekt definiert ist, ist diese Liste aktiviert und enthält alle Promotionsgruppen auf Entwicklungsebene in Ihrem Promotionsmodell. Wenn Sie eine Revision sperren, wird die in dieser Liste angezeigte Promotionsgruppe der Revision zugewiesen.
Protokolldatei	Gibt den Namen der Protokolldatei an.
Protokolltyp	Gibt den Typ der Aktualisierungen an, die in die angegebene Protokolldatei eingetragen werden sollen, wenn eine Datei ein- oder ausgetragen wird.
Revision sperren	Sperrt die im Feld Dateiname angegebene Datei, ohne sie aus der Versionskontrolle abzurufen. Eine gesperrte Datei ist vor Aktualisierungen durch andere Benutzer geschützt. Wenn Sie eine bestimmte Revision aus der Liste Revisionen auswählen, wird diese Revision gesperrt. Wenn Sie keine Revision ausgewählt haben, wird die Tip-Revision (bzw. die Revision, die der angegebenen Promotionsgruppe aktuell zugewiesen ist, gesperrt). Wenn für Ihr PVCS-Projekt ein Promotionsmodell definiert ist, wird die angegebene Promotionsgruppe der gesperrten Revision zugewiesen.
Sperren aufheben	Hebt die Sperre der Datei auf, die in dem Feld Dateiname angegeben ist, so daß andere Benutzer die Archivdatei austragen und ändern können. Wenn Sie eine bestimmte Revision aus der Liste Revision ausgewählt haben, wird die Sperre dieser Revision aufgehoben. Wenn Sie keine Revision ausgewählt haben, werden alle Sperren, die Sie an Revisionen der Datei besitzen, aufgehoben.
Protokoll generieren	Generiert eine Protokolldatei mit dem angegebenen Namen. Der Typ der Einträge in der Protokolldatei wird von der Einstellung der Option Protokolltyp bestimmt. Wenn über die Umgebungsvariable DEV2000_SCVIEWER oder über einen Parameter in oracle.ini ein Editor angegeben wurde, wird dieser zur Anzeige der Ausgabe aufgerufen.


Register Versionskontrolle: Berichtoptionen

  Verwandte Themen

Mit diesem Register können Sie Archivberichte definieren und erstellen.

Das Register Berichtoptionen enthält die folgenden Einstellungen:

Archiv	Eine Dropdown-Liste aller Archivordner in der aktuellen Projektkonfigurationsdatei.
Quelldatei	Gibt die erste Datei zur Benutzung für Differenzberichte an. Sie können den Namen direkt eingeben oder eine Datei mit der Schaltfläche Durchsuchen auswählen. Wenn das PVCS-Projekt so konfiguriert ist, daß Pfade von Arbeitsdateien ignoriert werden, können Sie entweder eine Arbeitsdatei oder eine Archivdatei angeben. Sonst dürfen Sie nur eine Archivdatei angeben.
Quellrevision	Eine Dropdown-Liste aller verfügbaren Revisionen und Versionen der Quelldatei.
Zieldatei	Gibt den Namen der Zieldatei an. PVCS generiert einen Bericht aufgrund eines Vergleichs der Quelldatei mit der Zieldatei.
Zielrevision	Eine Dropdown-Liste aller verfügbaren Revisionen und Versionen der Zieldatei.
Ausgabedatei	Gibt den Ordner und Namen der Zieldatei an, in die der Differenzbericht geschrieben werden soll, nachdem die Dateien miteinander verglichen wurden.
Bericht erstellen	Erstellt einen Bericht entsprechend den angegebenen Optionen. Wenn über die Umgebungsvariable DEV2000_SCVIEWER oder einen Parameter in oracle.ini ein Editor angegeben wurde, wird dieses zur Anzeige der Ausgabe aufgerufen.


Fehlermeldungen

Als nächstes werden die Fehlermeldungen aufgeführt, die bei Benutzung der Versionskontroll-Dialogfelder angezeigt werden können:

D2SCP-001:	Dateizugriff vom Dateisystem abgelehnt

 Ursache:	Sie haben keine ausreichende Zugriffsberechtigung für das Lesen der Archivdatei, das Schreiben der Arbeitsdatei oder das Schreiben von Protokoll- bzw. Berichtdateien.

 Maßnahme:	Wenn Sie die Zugriffsberechtigung für diese Dateien benötigen, nehmen Sie Verbindung mit dem Systemadministrator auf.

D2SCP-002:	Zugriffsberechtigungen reichen nicht aus

 Ursache:	Sie haben die PVCS-Berechtigungen für den Zugriff auf das angegebene Archiv nicht. Diese Fehlermeldung wird auch angezeigt, wenn das Ändern von Archivordnern im Masterprojekt deaktiviert wurde und Sie versuchen, diese Ordner im Register Projektoptionen des Dialogfelds Optionen zu ändern.

 Maßnahme:	Wenn Sie die Berechtigung zu diesem Archiv benötigen, nehmen Sie Verbindung mit dem PVCS-Administrator auf.

D2SCP-003:	Archiv ist schon vorhanden

 Ursache:	Diese Fehlermeldung weist auf einen internen Fehler und sollte eigentlich nicht angezeigt werden.

 Maßnahme:	Wenn die Fehlermeldung bei Wiederholung des Vorgangs wieder angezeigt wird, nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

D2SCP-004:	Angegebenes Archiv nicht gefunden

 Ursache:	Sie haben eine Datei eingegeben oder ausgewählt, bei der es sich nicht um ein Archiv handelte, während eine Archivdatei erwartet wurde. Dieser Fehler ist im allgemeinen darauf zurückzuführen, daß eine Arbeitsdatei anstelle der Archivdatei ausgewählt wurde (z.B. MYFORM.FMB antelle von MYFORM.FMV).

 Maßnahme:	Klicken Sie auf die Schaltfläche Durchsuchen, um eine Archivdatei zu wählen.

D2SCP-005:	Ungültige Zeichen im Dateinamen bzw. ungültige Laufwerks- oder Pfadangabe

 Ursache:	Der eingegebene Dateiname ist kein gültiger Name einer Betriebssystemdatei.

 Maßnahme:	Prüfen Sie die Syntax des Dateinamens auf Fehler.

D2SCP-006:	Datei wird von einem anderen Prozeß benutzt

 Ursache:	Die Datei, die Sie aufrufen wollten, wird von einem anderen PVCS-Benutzer verwendet.

 Maßnahme:	Wenn Sie den Vorgang nach einer bestimmten Zeit wiederholen, verläuft er im allgemeinen erfolgreich.

D2SCP-007:	Konvertierung nicht erfolgreich. Die Arbeitsdatei ist schreibgeschützt oder wird nicht unterstützt.

 Ursache:	Dieser Fehler kann folgende Ursachen haben:

A.	Die Arbeitsdatei ist möglicherweise schreibgeschützt. Dies geschieht, wenn Sie die Datei austragen, ohne sie zu sperren und sie dann später aus dem Dialogfeld Optionen sperren.

B.	Sie haben versucht, eine Datei ein- oder auszutragen, die nicht erkannt wird.

 Maßnahme:	Dieser Fehler kann wie folgt behoben werden:

Bei A.	Benutzen Sie den Windows Datei-Manager oder Explorer, um den Schreibschutz der Datei aufzuheben, bevor Sie fortfahren.

Bei B.	Tragen Sie die Datei mit der eigenständigen PVCS-Oberfläche ein oder aus.

Sie können jede Datei austragen, können jedoch nur Dateien eintragen, die erkannt werden. Forms Developer nämlich nur anhand der Arbeitsdatei bestimmen, ob es sich um einen unterstützten Dateityp handelt. Beim Eintragen verwenden Sie die Arbeitsdatei, so daß Forms Developer die Datei vor dem Eintragen prüft. Beim Austragen wird die Datei zuerst ausgetragen, um dann die Arbeitsdatei zu erhalten. Nur dann kann Forms Developer die Datei testen. Sie können diesen Fehler also beim Austragen problemlos ignorieren, wenn Sie wissen, daß Sie einen fremden Dateityp austragen.

D2SCP-008:	Ungültige oder nicht ausreichende Werte

 Ursache:	Diese Meldung weist auf einen internen Fehler und sollte nicht angezeigt werden.

 Maßnahme:	Wenn diese Meldung nach Wiederholung des Vorgangs immer noch angezeigt wird, nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

D2SCP-010:	Angegebene Version ist schon vorhanden

 Ursache:	Sie haben eine Version im Dialogfeld Check-In angegeben, die schon für die einzutragende Datei vorhanden ist. Bei PVCS müssen Versionen eindeutig sein.

 Maßnahme:	Ändern Sie die Version. Um die benutzten Versionen anzuzeigen, verwenden Sie die Protokollfunktion aus dem Register Dateioptionen des Dialogfelds Optionen.

D2SCP-011:	Angegebene Revision ist nicht vorhanden

 Ursache:	Diese Fehlermeldung weist auf einen internen Fehler und sollte nicht angezeigt werden.

 Maßnahme:	Wenn die Fehlermeldung nach Wiederholung des Vorgangs immer noch angezeigt wird, nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

D2SCP-012:	Ungültige Konfigurationsdatei angegeben

 Ursache:	Dieser Fehler kann folgende Ursachen haben:

A.	Die Datei, die Sie im Register Projektoptionen im Dialogfeld Optionen ausgewählt haben, ist keine gültige PVCS-Konfigurationsdatei.

B.	Wenn dieser Fehler auftritt, während Sie die Dialogfelder Check-In oder Check-Out öffnen, bedeutet dies, daß die in der Umgebungsvariablen DEV2000_PROJECT angegebene Konfigurationsdatei ungültig ist.

 Maßnahme:	Dieser Fehler kann wie folgt behoben werden:

Bei A.	Wählen Sie eine andere, gültige Datei aus.

Bei B.	Ändern Sie die Variable, oder legen Sie im Register Projektoptionen im Dialogfeld Optionen eine gültige Konfigurationsdatei fest.

D2SCP-013:	Sie müssen zuerst ein Projekt aus 'Versionskontrolloptionen' auswählen

 Ursache:	Sie haben versucht, die Dialogfelder Check-In oder Check-Out zu öffnen, haben jedoch kein Projekt entweder über die Umgebungsvariable DEV2000_PROJECT in der Datei ORACLE.INI oder im Register Projektoptionen im Dialogfeld Optionen angegeben.

 Maßnahme:	Wählen Sie im Register Projektoptionen ein Projekt, bevor Sie fortfahren.

D2SCP-014:	Projektkonfigurationsdatei kann nicht aktualisiert werden.

 Ursache:	Sie haben versucht, Archivordner aus der Projektkonfigurationsdatei hinzuzufügen oder zu entfernen, haben jedoch keine Schreibberechtigung für die Datei oder den Ordner, in dem die Datei gespeichert ist.

 Maßnahme:	Wenn Sie diese Zugriffsberechtigung benötigen, nehmen Sie Verbindung mit dem PVCS- oder Systemadministrator auf.

D2SCP-015:	Revision ist nicht gesperrt.

 Ursache:	Sie haben versucht, eine Revision einzutragen, die Sie nicht gesperrt haben, bzw. die Sperre einer Revision aufzuheben, die nicht gesperrt war (aus dem Register Dateioptionen).

 Maßnahme:	Wenn Sie Änderungen vorgenommen haben, sperren Sie die Revision im Register Dateioptionen, bevor Sie sie eintragen.

D2SCP-016:	Angegebene Revision kann nicht gesperrt werden.

 Ursache:	Sie haben versucht, eine Revision mit einer Sperre aus dem Dialogfeld Check-Out auszutragen bzw. eine Revision im Register Dateioptionen zu sperren, PVCS konnte die Sperre jedoch nicht zuweisen. Dieser Fehler kann folgende Ursachen haben:

A.	Die Revision wurde schon von Ihnen oder einem anderen Benutzer gesperrt.

B. 	Ihr Projekt läßt mehrere Sperren nicht zu, und die Revision ist schon gesperrt.

C. 	Wenn das Projekt ein Promotionsmodell hat, ist die angegebene Promotionsgruppe möglicherweise schon einer gesperrten Revision zugewiesen.

 Maßnahme:	Dieser Fehler kann wie folgt behoben werden:

Bei A.	Ermitteln Sie mit der Protokollfunktion, welcher Benutzer die Sperre hat, und wenn Sie die Revision schon gesperrt haben, tragen Sie sie aus, ohne eine Sperre anzufordern. Wenn ein anderer Benutzer die Datei gesperrt hat, warten Sie, bis dieser die Sperre aufhebt, bevor Sie die Datei zur Änderung austragen.

Bei B.	Warten Sie, bis die Revision oder Datei verfügbar wird, oder lassen Sie möglicherweise mehrere Sperren pro Datei in dem Projekt zu.

Bei C.	Warten Sie, bis die Promotionsgruppe verfügbar wird (keiner gesperrten Revision zugewiesen ist), oder benutzen Sie eine andere Promotionsgruppe auf Entwicklungsebene.

D2SCP-017:	Angegebener Ordner ist nicht vorhanden.

 Ursache:	Sie haben einen nicht vorhandenen Ordner angegeben. Dieser Fehler ist wahrscheinlich darauf zurückzuführen, daß Sie eine Datei austragen, während der Pfad, aus dem sie eingetragen wurde, in Ihrer Workstation nicht vorhanden ist.

 Maßnahme:	Wenn dies der Fall ist, ändern Sie das Zielfeld so, daß es auf einen bestehenden Ordner zeigt.

D2SCP-018:	Ausgabe kann nicht an Datei umgeleitet werden

 Ursache:	Der Dateiname, den Sie für das Protokoll oder den Differenzbericht angegeben haben, ist ungültig, oder die Datei ist schreibgeschützt.

 Maßnahme:	Geben Sie eine gültige Datei ohne Schreibschutz an.

D2SCP-100:	PVCS Fehler-Nummer - Schlüsselwort

 Ursache:	Vom PVCS wurde ein Fehler zurückgegeben, den die Versionskontrolloberfläche von Developer/2000 nicht verarbeiten konnte.

Maßnahme:	Schlagen Sie in der PVCS-Dokumentation anhand der Fehlernummer oder dem Fehlerschlüsselwort nach, und beheben Sie den Fehler wie angegeben.


Warum zeigt die Oberfläche des PVCS-Konfigurationsmanagers die neuen Dateien oder Revisionen nicht an?

Nachdem Dateien eingetragen und Versionen zugewiesen wurden, zeigt die Oberfläche des PVCS-Konfigurationsmanagers die neuen Dateien oder Revisionen nicht an. Warum?

Der Projektordner muß mit den neuen Informationen aktualisiert werden, die in den Archiven stehen (neue Dateien und Revisionen). Hierzu wählen Sie Update Project Folder... aus dem Menü Project der obersten Ebene von PVCS. Die neuen Dateien sollten dann in dem PVCS-Fenster "Folders" angezeigt werden.


Warum sind die Versionskontroll-Menüoptionen nur in einem Produkt aktiviert?

Wenn mehrere Produkte ausgeführt werden, sind die Versionskontroll-Menüoptionen nur in einem Produkt aktiviert. Warum?

PVCS on Windows ist nicht reentrant. Dies bedeutet, daß nur ein Programm (entweder ein PVCS-aktiviertes Programm wie Report Builder oder die PVCS-Oberfläche selbst) gleichzeitig auf PVCS-Dienste zugreifen kann. Sie müssen sowohl das Programm beenden, in dem die Menüs aktiviert sind, als auch das Programm, aus dem Sie auf die PVCS-Dienste zugreifen möchten. Danach starten Sie das Programm neu, in dem Sie den PVCS-Zugriff benötigen.


Warum wird eine Fehlermeldung ausgegeben, daß PVCS das Archiv nicht finden kann?

Beim Versuch, einen Bericht auszutragen, wurde die .RDV-Datei (Archivdatei) ausgewählt. Daraufhin wird die Fehlermeldung ausgegeben, daß PVCS das Archiv nicht finden kann. Warum?

Auch wenn Sie eine .RDV-Datei gewählt haben, war diese möglicherweise nicht das Archiv. Report Builder schreibt die Zwischendateien (ASCII-Dateien) in eine Datei mit der Erweiterung .RDV, bevor sie eingetragen werden. (Weitere Einzelheiten finden Sie unter Über die Implementierung von PVCS.) Sie müssen unbedingt eine .RDV-Datei aus dem Archivordner und nicht aus dem Arbeitsordner auswählen. Es gibt drei Möglichkeiten, dieses Problem zu umgehen:

•	Stellen Sie die PVCS-Projektoption so ein, daß Arbeitsdateien nach der Eintragung gelöscht werden. Dadurch wird verhindert, daß .RDV-Zwischendateien von Reports weiter auf der Festplatte stehen.

•	Ändern Sie die Suffixregel, so daß einer .RDV-Datei beim Eintragen ein anderes Suffix zugewiesen wird, z.B. .VRD. Danach suchen Sie beim Austragen nach der .VRD-Datei und nicht nach .RDV.

•	Konfigurieren Sie das Projekt so, daß Arbeitsdateipfade ignoriert werden, wenn Sie nach Archiven suchen. Auf diese Weise können Sie die Arbeitsdatei (in diesem Fall .RDF) und nicht das Archiv beim Austragen angeben.

Diese Optionen können über die Benutzerschnittstelle des PVCS-Konfigurationsmanagers aus dem Menü Configure Project... ausgewählt werden.


Wie kann sichergestellt werden, daß der richtige Benutzername beim Sperren einer Datei benutzt wird?

Wenn eine Datei gesperrt (oder mit einer Sperre ausgetragen) wird, ist die Benutzer-ID auf "UNKNOWN" gesetzt. Auf diese Weise können andere Benutzer die Datei eintragen oder entsperren. Wie kann sichergestellt werden, daß der richtige Benutzername verwendet wird?

Es gibt eine PVCS-Option zur Projektkonfiguration, "Login Source", im Abschnitt "network" der PVCS-Optionen zur Projektkonfiguration (im PVCS Version Manager Interface), mit der Sie dies verhindern können. Mit dieser Option können Sie definieren, wie PVCS Ihre aktuelle Benutzer-ID bestimmt. Wenn Sie z.B. ein NETWARE-Netzwerk verwenden, können Sie PVCS anweisen, die aktuelle NETWARE Login-ID zu benutzen. Bei Windows NT können Sie die NT Login-ID verwenden, indem Sie die Login-Quelle "HOST" wählen. Weitere Einzelheiten finden Sie in der PVCS-Dokumentation.


Wie können Arbeitsdateien für das Austragen ausgewählt werden?

Wie können Arbeitsdateien und keine Archivdateien für das Austragen ausgewählt werden?

Es gibt eine PVCS-Option zur Projektkonfiguration, "Ignore Workfile Path", im Abschnitt "Archive Searching" der PVCS-Optionen zur Projektkonfiguration (im PVCS Version Manager Interface), die Sie verwenden können. Wenn Sie diese Option einschalten, können Sie Arbeitsdateien oder Archivdateien in den Dialogfeldern Check-Out und Versionskontrolle: Optionen auswählen.


Warum wird eine Fehlermeldung ausgegeben, daß VCSDIR in der Projektkonfigurationsdatei nicht zulässig ist?

Das Masterprojekt wurde so konfiguriert, daß das Ändern der Archivordner nicht zulässig ist. Im PVCS Version Manager Interface können Archivordner in einem Unterprojekt nicht geändert werden, was korrekt ist. In Forms Developer war dies jedoch möglich. Nachher wurde vom PVCS Version Manager Interface eine Fehlermeldung ausgegeben, daß VCSDIR in der Projektkonfigurationsdatei nicht zulässig ist. Warum?

Das PVCS Version Manager Interface sucht im Stammverzeichnis nach einer Standarddatei MASTER.CFG und hat diese wahrscheinlich gefunden. Deshalb wurde die Fehlermeldung ausgelöst, nachdem Sie Archivordner in geändert haben. Damit die Masterkonfigurationsdatei erkannt wird, müssen Sie PVCS mit dem Befehl VCONFIG konfigurieren. Dadurch wird der Name der Masterkonfigurationsdatei in den PVCS-Bibliotheken codiert und wird gewährleistet, daß niemand die Liste mit Archivordnern versehentlich ändern kann. Hierzu wird auf die Abschnitte über Masterkonfigurationsdateien und den Befehl VCONFIG in dem INTERSOLV PVCS Command-Line Reference Guide verwiesen.


• 9


Über den Datenblock-Assistenten

  Nächster Schritt	  Verwandte Themen

Über den Datenblock-Assistenten

Mit dem Datenblock-Assistenten können Sie schnell und einfach Datenblöcke zur Benutzung in Ihrer Anwendung erstellen oder ändern. Wenn Sie einen Datenblock mit dem Assistenten erstellen oder ändern, kann der Assistent automatisch Code generieren, um Integritätsregeln in der Datenbank durchzusetzen, und verschiedene Attribute und Einstellungen für Sie ändern, damit Sie mehr Zeit haben, um sich auf die anderen Aspekte der Anwendungsentwicklung zu konzentrieren.

Benutzen Sie den Datenblock-Assistenten, um folgende Aufgaben auszuführen:

•	Erstellen oder Ändern eines Datenblocks aufgrund einer Datenbanktabelle oder einer Ansicht bzw. aufgrund einer Reihe von gespeicherten Prozeduren (eine erweiterte Option)

•	Zuordnen von Spalten aus dem Ergebnis von Tabellen, Ansichten oder gespeicherten Prozeduren an Objekte in dem Datenblock

•	Angabe von Argumenten für Prozeduren, mit denen Daten für den Datenblock abgefragt, eingefügt, aktualisiert, gelöscht und gesperrt werden (nur erforderlich, wenn Sie den Datenblock auf gespeicherten Prozeduren aufbauen)

•	Festlegen von Master-Detail-Beziehungen zwischen den Datenblöcken eines Form-Moduls

Der Datenblock-Assistent ist reentrant

Eine wichtige Funktion des Datenblock-Assistenten ist die Möglichkeit, im reentranten Modus zu arbeiten. Das heißt, Sie können den Datenblock-Assistenten benutzen, um einen bestehenden Datenblock zu ändern - selbst wenn der Block ursprünglich nicht mit dem Assistenten erstellt wurde.

Um den Datenblock-Assistenten im reentranten Modus aufzurufen, wählen Sie den bestehenden Datenblock im Objektnavigator (bzw. wählen Sie ein Objekt in dem Block im Objektnavigator oder Layouteditor). Danach wählen Sie Werkzeuge [image] Datenblock-Assistent aus dem Menü.

Im Datenblock-Assistenten navigieren

Der Datenblock-Assistent verfügt über sechs Schaltflächen, mit denen Sie durch die einzelnen Register navigieren können:

•	Abbrechen - Bricht alle Änderungen, die Sie (gegebenenfalls) vorgenommen haben, ab und beendet den Assistenten.

•	Hilfe - Zeigt einen Online-Hilfetext für das aktuelle Register des Assistenten an.

•	Zurück - Geht zum vorherigen Register in dem Assistenten.

•	Weiter - Geht zum nächsten Register in dem Assistenten.

•	Anwenden - Wendet die vorgenommenen Änderungen an, ohne den Assistenten zu beenden (nur reentranter Assistent).

•	Fertig - Speichert die (gegebenenfalls) mit dem Assistenten vorgenommenen Änderungen und beendet den Assistenten.

Hinweis:  Wenn Sie auf Weiter oder Zurück klicken, bevor Sie alle erforderlichen Informationen für ein bestimmtes Register des Assistenten eingegeben haben, hindert der Assistent Sie daran, zu dem nächsten (oder vorherigen) Register zu navigieren. Wenn Sie nicht alle erforderlichen Informationen in den Assistenten eingegeben haben und auf Anwenden oder Fertig klicken, führt der Assistent Sie automatisch zu dem Register, in dem Sie die Eingabe der erforderlichen Daten abschließen können.


Datenblock-Assistent: Register Typ

  Nächster Schritt 	  Über den Assistenten

So wählen Sie einen Datenquelltyp:

1	Klicken Sie auf eine Optionsschaltfläche im Register Typ, um einen Typ anzugeben: Tabelle oder Ansicht bzw. Gespeicherte Prozedur.

Bei Auswahl von :

•	Tabelle oder Ansicht wählen Sie als nächstes die Tabelle oder Ansicht aus der Datenbank, danach ordnen Sie die Spalten aus der Tabelle oder Ansicht den Objekten im Datenblock zu.

•	Gespeicherte Prozedur wählen Sie als nächstes gespeicherte Prozeduren aus, um Daten für den Datenblock abzufragen, einzufügen, zu aktualisieren, zu löschen und zu sperren.

2	Um eine Datenquelle auszuwählen, klicken Sie auf Weiter, um das nächste Register des Assistenten anzuzeigen (entweder Tabelle oder Abfrage, je nach ausgewähltem Datenquelltyp).


Datenblock-Assistent: Register Tabelle

  Nächster Schritt 	  Über den Assistenten

Zuerst: Wählen Sie eine Tabelle oder Ansicht als Datenquelle aus

1	Geben Sie den Namen der Tabelle oder Ansicht im Register Tabelle in das Feld Tabelle oder Ansicht ein, und klicken Sie auf Abgleichen.

Wenn Sie eine Tabelle oder Ansicht aus einer Liste mit verfügbaren Tabellen und Ansichten in dem Datenbankschema (oder allen verfügbaren Schemata) auswählen möchten, klicken Sie auf Durchsuchen.

Wenn Sie nicht bei einer Datenbank angemeldet sind, zeigt der Assistent das Dialogfeld Anmelden an.

2	Wenn der Assistent automatisch in der Datenbank definierte Integritätsregeln durchsetzen soll, aktivieren Sie das Kontrollkästchen Datenintegrität erzwingen.

Als nächstes: Wählen Sie Spalten aus

Um eine oder mehrere Spalten aus einer Tabelle oder Ansicht einem Datenbankobjekt in dem Datenblock zuzuordnen, wählen Sie die Spalte(n) und gehen dann folgendermaßen vor:

•	Klicken Sie auf [image], um die ausgewählte(n) Spalte(n) aus der Liste Verfügbare Spalten in die Liste Datenbankobjekte zu verschieben. (Um alle verfügbaren Spalten zu verschieben, klicken Sie auf [image]).

oder

•	Ziehen Sie die Spalte(n) aus der Liste Verfügbare Spalten, und legen Sie sie in der Liste Datenbankobjekte ab.

Wenn Sie eine Spalte aus der Liste Verfügbare Spalten in die Liste Datenbankobjekte verschieben, geschieht folgendes:

•	Wenn das Objekt noch nicht in dem Datenblock vorhanden ist, erstellt der Assistent ein neues Objekt und stellt dessen Attribut Datenbankobjekt auf Ja ein.

•	Wenn das Objekt schon in dem Datenblock vorhanden ist, setzt der Assistent das Attribut Datenbankobjekt auf Ja.

Hinweis:  Sie müssen unbedingt alle Primärschlüssel- und anderen obligatorischen Spalten aus der Tabelle oder Ansicht dem bzw. den Objekten in dem Datenblock zuordnen.

So heben Sie die Auswahl einer Spalte auf

Um eine oder mehrere Spalten aus dem Datenblock heraus zu verschieben, wählen Sie die Spalten und:

•	Klicken Sie auf [image]  oder  [image].

oder

•	ziehen Sie die Spalten in die Liste Datenbankobjekte.

Wenn Sie eine Spalte aus der Liste Datenbankobjekte in die Liste Verfügbare Spalten verschieben, geschieht folgendes:

•	Wenn das Objekt in dem Datenblock noch nicht vorhanden ist, wird kein auf der Spalte basierendes Objekt im Datenblock angezeigt.

•	Wenn das Objekt schon in dem Datenblock vorhanden ist, bleibt das Objekt im Datenblock, der Assistent stellt jedoch automatisch das Attribut Datenbankobjekt für das Objekt auf Nein ein.

Über die Auswahl von Objekttabellen und Spaltenobjekten

Wenn es sich bei der ausgewählten Tabelle um eine benutzerdefinierte Objekttabelle oder einer relationale Tabelle handelt, die ein Spaltenobjekt enthält, wird diese in dem Fenster Verfügbare Spalten angezeigt, wobei das Objekt eingeblendet ist. Ein Gliederungsformat mit Einzügen (entsprechend dem vom Objektnavigator benutzten Format) wird benutzt, um die Bestandteile dieser Objekte darzustellen.

Forms Developer behandelt jede Komponente in einer Objekttabelle als separate Spalte. Sie können diese Spalten individuell auswählen. Die Tabelle muß nicht als einzelnes, homogenes Objekt behandelt werden. Gleichermaßen wird ein Spaltenobjekt in einer relationalen Tabelle in die einzelnen Bestandteile aufgegliedert - wobei ein jedes als separate Spalte behandelt wird und individuell ausgewertet werden kann.

Beispiele für Objekttabellen

Angenommen, der folgende Objekttyp wurde definiert, und auf diesem wurde eine Tabelle aufgebaut:

    CREATE TYPE addr_type AS OBJECT

                (street VARCHAR2(90),

                 city VARCHAR2(30),

                 area VARCHAR2(2));

    CREATE TABLE address OF addr_type;

In diesem Fall würde der Datenblock-Assistent alle Spalten (street, city und area) dieser Objekttabelle (address) im Bereich Verfügbare Spalten anzeigen, und Sie könnten einige oder alle Spalten als Datenblockobjekte auswählen.

Als zweites Beispiel soll eine Tabelle betrachtet werden, die auf einer Objektdefinition basiert, die wiederum auf einer anderen Objektdefinition aufgebaut ist:

     CREATE TYPE addr_type AS OBJECT
                 (street VARCHAR2(90),

                  city VARCHAR2(30),

                  area VARCHAR2(2));

     CREATE TYPE emp_type AS OBJECT

                 (empno NUMBER,

                  ename VARCHAR(80),

                  address addr_type,

                  salary NUMBER);

     CREATE TABLE emp_table of emp_type;

Der Objekttyp emp_type besteht aus vier Attributen, von denen eines (address) auf einer anderen Definition basiert - der Objekttypdefinition addr_type. Addr_type selbst definiert drei Attribute. Wenn also eine Tabelle basierend auf dem Typ emp_type erstellt wird, ergibt sich eine Tabelle mit sechs Spalten (empno, ename, street, city, area und salary). Wiederum würde der Datenblock-Assistent alle sechs Spalten anzeigen, und einige dieser Spalten bzw. alle Spalten können ausgewählt werden.

Beispiel für Spaltenobjekte

Betrachten Sie eine relationale Tabelle, die ein Spaltenobjekt basierend auf dem obigen Objekttyp addr_type enthält:

      CREATE TABLE customer (custname CHAR(20), custaddr addr_type);

Im Bereich Verfügbare Spalten würde der Datenblock-Assistent in diesem Fall folgende Angaben für die Kundentabelle machen:

      custname

      custaddr

         - street

         - city

         - area

Wiederum können einige oder alle Spalten custname, street, city und area ausgewählt werden. Beachten Sie, daß custaddr ebenfalls als Name des Spaltenobjekts angezeigt wird, das street, city und area enthält. Wenn Sie custaddr auswählen, werden alle Bestandteile von custaddr ausgewählt - custaddr selbst jedoch nicht. Der Name eines Spaltenobjekts ist nur eine Beschriftung und kann nicht in den Bereich Datenbankobjekte (in den Datenblock) verschoben werden.

Objektnamen für die ausgewählten Objekte

Nachdem Sie einen Teil eines verfügbaren Spaltenobjekts als Datenobjekt in dem Block ausgewählt haben, nimmt der Standardname des Objekts die Form ColumnObjectName_AttributeName an. Wenn Sie in dem obigen Beispiel mit der Kundentabelle z.B. city auswählen, wird dieses Objekt im Bereich Datenbankobjekte als custaddr_city angezeigt. Dieser zusammengesetzte Name würde bei jeder Codierung in Ihrer Anwendung für das Objekt benutzt. (Der Name des Spaltennamen-Attributs des Objekts hat ein etwas anderes Format; bei diesem Format wird ein Punkt als Verbindungszeichen benutzt und kein Unterstreichungszeichen.)

Über die Auswahl von REF-Spalten

Normalerweise enthalten Spaltenobjekte Daten. REF-Spalten stellen jedoch einen besonderen Typ von Objektspalte dar. Anstatt Daten zu enthalten, enthalten REF-Spalten Pointer auf Daten, die in anderen Objekttabellen gespeichert sind.

So werden REFs in dem Bereich Verfügbare Spalten angezeigt

REFs werden in eingeblendeter Form dargestellt, wobei die Objektattribute aufgeführt werden, auf die sie zeigen. Wenn z.B. dept_type als ein Objekttyp definiert würde, der drei Attribute hat - deptnum, deptname und deptloc, und wenn dann eine Tabelle mit einer REF-Spalte mit der Bezeichnung deptref mit dem Typ ref(dept_type) definiert würde, zeigen die Werte in der Spalte deptref auf Zeilen in einer Tabelle, die die Attribute deptnum, deptname und deptloc haben. Im Bereich Verfügbare Spalten würde folgendes angezeigt:

      R deptref

      + deptref

            - deptnum

            - deptname

            - deptloc

Beachten Sie, daß die REF-Spalte (in diesem Fall deptref) zweimal angezeigt wird. Das erste Mal ist REF ein Pointer. Beim zweiten Mal ist es eine Beschriftung für die Bestandteile (Attributspalten) des Objekts, auf das gezeigt wird. Aufgrund dieser doppelten Aufstellung können Sie verschiedene Auswahlen treffen, wie unten erläutert. Im wesentlichen bestimmt Ihre Auswahl, wo die Daten zur Laufzeit angezeigt werden - in dem zeigenden Block oder in dem Block, auf den gezeigt wird.

So treffen Sie die REF-Auswahl

Wie bei einem regulären Spaltenobjekt können Sie einige oder alle Attributspalten einer REF-Spalte auswählen. Wenn Sie die zweite Instanz des REF-Namens auswählen, werden alle Bestandteile ausgewählt.

Wenn Sie eine oder mehrere der Attributspalten der REF-Spalte auswählen, werden diese zur Laufzeit als normale Datenobjekte in dem Datenblock angezeigt. Forms Developer und Oracle8 erhalten die Datenwerte aus der referenzierten Tabelle und zeigen diese Werte in diesem Block an. (Dies wird gelegentlich als Verweistechnik bezeichnet.) Für den Benutzer sehen die REF-Datenobjekte nicht anders als reguläre Datenobjekte aus.

Sie können auch die REF-Spalte selbst (erster Eintrag im Bereich Verfügbare Spalten) auswählen, damit diese zu einem programmierbaren Objekt in Ihrer Anwendung wird. (Dies ist gegensätzlich zu den regulären Spaltenobjekten, bei denen der Name nur eine Beschriftung ist.) Wenn Sie die REF-Spalte selbst auswählen, kann der Datenblock ein Detail-Block in einer REF-basierten Master-Detail-Beziehung werden.

Wenn Sie die REF-Spalte selbst als Objekt auswählen, wird sie (standardmäßig) in die Null-Leinwand gesetzt. Auch wenn das REF-Objekt für den Laufzeitbenutzer nicht auf der Leinwand angezeigt wird, ist es doch in der Anwendung zu Codierungszwecken verfügbar.


Datenblock-Assistent: Wertelisten für REFs erstellen

  Nächster Schritt 	  Über den Assistenten

Wenn die Endbenutzer des Datenblocks Werte in einem REF-Verweisfeld ändern, benötigen sie eine Werteliste, aus der sie den entsprechenden neuen Wert auswählen können.

Der Datenblock-Assistent enthält dieses Fenster, mit dem Sie die Werteliste auf einfache Weise erstellen können.

Schritte beim Erstellen der Werteliste

Als erstes wählen Sie die gewünschte REF-Spalte. (Wenn nur eine REF-Spalte in diesem Block vorhanden ist, wird nur eine Spalte in diesem Fenster aufgeführt.)

Vor die ausgewählte REF-Spalte listet der Assistent alle zugehörigen Tabellen in der Datenbank auf. (Denken Sie daran, daß REFs auf Objekttypen und nicht auf spezifischen Tabellen definiert werden. Deshalb kann eine REF-Spalte möglicherweise auf mehrere Tabellen zeigen.)

Wählen Sie aus dieser Liste mit Tabellen die gewünschte Tabelle aus. Der Assistent generiert die Werteliste anhand der Werte in dieser Tabelle.

Dieselbe Werteliste wird allen Verweisobjekten zugeordnet, die mit einer bestimmten REF verknüpft sind.

Werteliste ändern

Der Datenblock-Assistent erstellt nur eine anfängliche Werteliste für Sie. Er verwaltet diese nicht.

Wenn Sie später Änderungen an der REF-Spalte oder an anderen Datenstrukturen vornehmen, die sich auf die Werteliste auswirken, sollten Sie die zugehörigen Änderungen, die in der Werteliste erforderlich sind, mit dem Wertelisten-Assistenten vornehmen.

Sie können den Wertelisten-Assistenten auch benutzen, wenn Sie das Format dieser anfänglichen Werteliste ändern möchten.

Erneuter Aufruf des Assistenten

Wenn Sie den Datenblock-Assistenten für diesen Block zu einem späteren Zeitpunkt wieder aufrufen und das Kontrollkästchen Werteliste erstellen auswählen, wird eine neue Werteliste erstellt. (Die alte Werteliste wird nicht gelöscht, die Verweisobjekte werden jedoch der neuen Werteliste zugeordnet.)


Datenblock-Assistent: Gespeicherte Prozedur auswählen

  Nächster Schritt 	  Über den Assistenten

Um eine gespeicherte Prozedur als Datenquelle für den Datenblock auszuwählen, müssen Sie eine individuelle Prozedur für die Abfrage von Datensätzen für den Datenblock angeben. Sie können auch Prozeduren für das Einfügen, Aktualisieren, Löschen und Sperren von Datensätzen angeben. Der Datenblock-Assistent verfügt über ein Register für jede der obigen Funktionen.

Hinweise:

Die Auswahl einer gespeicherten Prozedur als Datenquelle für Ihren Datenblock ist eine erweiterte Technik. Sie sollten mit der Oracle PL/SQL-Programmierung vertraut sein, bevor Sie diese Option wählen.

In Release 6.0 unterstützt Forms nur gespeicherte Prozeduren, die relationale, skalare Werte benutzen und zurückgeben. Gespeicherte Prozeduren, die Objektwerte benutzen bzw. zurückgeben, werden noch nicht unterstützt.


Datenblock-Assistent: Register Abfrage

  Nächster Schritt 	  Über den Assistenten

So wählen Sie eine ABFRAGE-Prozedur:

1	Geben Sie den Namen der Prozedur, die Informationen für den Datenblock empfängt, im Register Abfrage in das Feld Prozedur ein.

2	Klicken Sie auf Abgleichen.

Wenn Sie nicht bei einer Datenbank angemeldet sind, zeigt der Assistent das Dialogfeld Anmelden an.

So ordnen Sie eine Spalte aus der gespeicherten Prozedur einem Datenbankobjekt in dem Datenblock zu:

1	Wählen Sie die Spalte aus.

2	Ziehen Sie die Spalte, oder klicken Sie auf [image], um die ausgewählte(n) Spalte(n) aus der Liste Verfügbare Spalten in die Liste Datenbankobjekte zu verschieben.

3	Wenn Sie eine Spalte aus der Liste Verfügbare Spalten in die Liste Datenbankobjekte verschieben, geschieht folgendes:

•	Wenn das Objekt noch nicht in dem Datenblock vorhanden ist, erstellt der Assistent ein neues Objekt und stellt dessen Attribut Datenbankobjekt auf Ja ein.

•	Wenn das Objekt schon in dem Datenblock vorhanden ist, stellt der Assistent das Attribut Datenbankobjekt des Objekts automatisch auf Ja ein.

4	Um alle verfügbaren Spalten zu verschieben, klicken Sie auf [image].

Hinweis:  Sie müssen unbedingt alle Primärschlüssel- und anderen obligatorischen Spalten aus der gespeicherten Prozedur Objekten in dem Datenblock zuordnen.

So verschieben Sie eine Spalte aus dem Datenblock heraus:

1	Wählen Sie die Spalte aus.

2	Ziehen Sie die Spalte mit Drag-and-Drop in die Liste Datenbankobjekte, oder klicken Sie auf [image] bzw. .

3	Wenn Sie eine Spalte aus der Liste Datenbankobjekte in die Liste Verfügbare Spalten verschieben, geschieht folgendes:

•	Wenn das Objekt noch nicht in dem Datenblock vorhanden ist, wird kein auf der Spalte basierendes Objekt in dem Datenblock angezeigt.

•	Wenn das Objekt schon in dem Datenblock vorhanden ist, bleibt das Objekt im Datenblock, der Assistent stellt jedoch das Attribut Datenbankobjekt des Objekts automatisch auf Nein ein.

So geben Sie einen Wert für das Argument ein:

•	 Geben Sie den Wert in das Feld Wert ein.


Datenblock-Assistent: Register Einfügen

  Nächster Schritt 	  Über den Assistenten

So wählen Sie eine EINFÜGEN-Prozedur aus:

1	Geben Sie den Namen der Prozedur, die Informationen für den Datenblock einfügen wird, im Register Einfügen in das Feld Prozedur ein, und klicken Sie auf Abgleichen.

2	Um einen Wert für ein Argument anzugeben, geben Sie diesen in das Feld Wert ein.


Datenblock-Assistent: Register Aktualisieren

  Nächster Schritt 	  Über den Assistenten

So wählen Sie eine AKTUALISIEREN-Prozedur aus:

1	Geben Sie den Namen der Prozedur, die Informationen für den Datenblock aktualisieren wird, im Register Aktualisieren in das Feld Prozedur ein, und klicken Sie auf Abgleichen.

2	Um einen Wert für ein Argument anzugeben, geben Sie diesen in das Feld Wert ein.


Datenblock-Assistent: Register Löschen

  Nächster Schritt 	  Über den Assistenten

So wählen Sie eine LÖSCHEN-Prozedur aus:

1	Geben Sie den Namen der Prozedur, die Informationen für den Datenblock löschen wird, im Register Löschen in das Feld Prozedur ein, und klicken Sie auf Abgleichen.

2	Um einen Wert für ein Argument anzugeben, geben Sie diesen in das Feld Wert ein.


Datenblock-Assistent: Register Sperren

  Nächster Schritt 	  Über den Assistenten

So wählen Sie eine SPERREN-Prozedur aus:

1	Geben Sie den Namen der Prozedur, die Daten für den Datenblock sperren wird, im Register Sperren in das Feld Prozedur ein, und klicken Sie auf Abgleichen.

2	Um einen Wert für ein Argument anzugeben, geben Sie diesen in das Feld Wert ein.


Datenblock-Assistent: Register Master-Detail

  Nächster Schritt 	  Über den Assistenten

Dieses Register wird angezeigt, wenn Ihre Form schon einen oder mehrere abgeschlossene Datenblöcke enthält. Mit dem Assistenten können Sie eine Master-Detail-Beziehung zwischen dem Block, mit dem Sie gerade arbeiten, und einem dieser anderen Blöcke erstellen. (Der Assistent geht davon aus, daß der Block, mit dem Sie momentan arbeiten, der Detail-Block ist. Die schon erstellten Blöcke sind die potentiellen Master-Blöcke.)

Die logische Verknüpfung zwischen den Datenblöcken kann eine Join-Bedingung (Primärschlüssel-/Fremdschlüssel-Beziehung) oder ein REF-Pointer-Link sein.

Wenn nur ein Kandidat für den Master-Block und nur ein möglicher logischer Link vorhanden ist, kann die Master-Detail-Beziehung auf einfache Weise erstellt werden. Wenn mehrere Kandidatenblöcke und/oder mehrere logische Links vorhanden sind, führt der Assistent diese auf, und Sie wählen dann den Master-Block und den gewünschten spezifischen Link.

Mit dem Assistenten können Sie auch selbst eine Verknüpfungsbedingung erstellen. Der Assistent kann diese jedoch auch für Sie erstellen.

So erstellen Sie eine Master-Detail-Beziehung:

Als erstes wählen Sie eine Einstellung für das Kontrollkästchen Datenblöcke automatisch verknüpfen. Wenn Sie das Kontrollkästchen auswählen, bedeutet dies, daß der Assistent die Verknüpfungsbedingung für Sie generiert. In den meisten Fällen ist dies die einfachste und direkteste Lösung.

Wenn Datenblöcke automatisch verknüpfen ausgewählt ist:

1	Klicken sie auf Beziehung erstellen in Register Master-Detail.

(Wenn Sie nicht bei einer Datenbank angemeldet sind, zeigt der Assistent das Dialogfeld Anmelden an. Melden Sie sich bei der gewünschten Datenbank an.)

Wenn Sie auf Beziehung erstellen klicken, fragt der Assistent die Datenbank ab und zeigt (im Dialogfeld Datenblöcke) alle Datenblöcke in Ihrer Form an, bei denen es sich um potentielle Master-Blöcke handelt. Für jeden dieser potentiellen Master-Blöcke zeigt der Assistent außerdem den Namen der mit dem Block verknüpften Fremdschlüsselregel und/oder die REFs an, die auf diese zeigen.

Wenn keine potentiellen Master-Blöcke vorhanden sind, zeigt der Assistent eine Fehlermeldung an:
      FRM-10757: Keine Master-Datenblöcke verfügbar.

2	Wählen Sie einen Master-Datenblock und den gewünschten Link im Dialogfeld Datenblöcke, und klicken Sie auf OK.

3	Der Assistent interpretiert die Fremdschlüsselbeziehung oder den REF-Link zwischen den Tabellen der Datenblöcke automatisch, zeigt diese bzw. diesen in dem Feld Join-Bedingung an, und zeigt den Namen des Master-Blocks in dem Feld Master-Datenblöcke an. (Mit den Popup-Listen Detail-Objekt und Master-Objekt können Sie die automatisch erstellte Join-Bedingung ändern, auch wenn dies normalerweise nicht erforderlich ist.)

Wenn Datenblöcke automatisch verknüpfen nicht ausgewählt ist:

1	Klicken sie auf Beziehung erstellen in Register Master-Detail.

(Wenn Sie nicht bei einer Datenbank angemeldet sind, zeigt der Assistent das Dialogfeld Anmelden an. Melden Sie sich bei der gewünschten Datenbank an.)

Wenn Sie auf Beziehung erstellen klicken, fragt der Assistent die Datenbank ab und zeigt (im Dialogfeld Datenblöcke) alle Datenblöcke in Ihrer Form an, bei denen es sich um potentielle Master-Blöcke handelt. Der Assistent zeigt keine Fremdschlüssel- oder REF-Pointer-Informationen an.

2	Wählen Sie einen Master-Datenblock im Dialogfeld Datenblöcke, und klicken Sie auf OK. Der Assistent zeigt den Namen des Master-Blocks in dem Feld Master-Datenblöcke an.

3	Benutzen Sie die Popup-Listen Detail-Objekt und Master-Objekt, um eine Join-Bedingung manuell zu generieren.

Ergebnisse

Nachdem Sie den Master-Datenblock und die Join-Bedingung bzw. REF angegeben haben, geht der Assistent folgendermaßen vor:

•	Das neue Beziehungsobjekt wird unter dem Knoten des Master-Datenblocks im Objektnavigator angezeigt.

•	Die Attribute des neuen Beziehungsobjekts werden auf die Standardwerte eingestellt.

•	Wenn die Beziehung auf einem REF-Pointer basiert, wird das Attribut REF-Objekt aufnehmen in dem Master-Block auf Ja eingestellt. Das Attribut Copy_Value_From_Item in dem Detail-Block wird so eingestellt, daß auf dieses REF-Objekt zugegriffen wird.

•	Die Beziehung erhält einen Standardnamen in folgender Form:

      MasterDataBlock_DetailDataBlock

So löschen Sie eine Master-Detail-Beziehung:

Wählen Sie den Master-Block im Register Master-Detail aus der Liste aus, und klicken Sie dann auf Beziehung löschen. Der Assistent löscht die Beziehung und die mit der Beziehung verknüpften Trigger.


Datenblock-Assistent: Register Fertig

  Über den Assistenten 	  Verwandte Themen

Wie geht es weiter?

Nachdem Sie den Datenblock erstellt haben, haben Sie zwei Auswahlmöglichkeiten:

•	Sie können den Datenblock-Assistenten beenden und sofort den Layout-Assistenten aufrufen (in dem Sie das Layout der Objekte des Datenblocks in einem Rahmen auf einer Leinwand gestalten können).

•	Sie können den Datenblock-Assistenten auch einfach beenden.

Wenn Sie den Layout-Assistenten aufrufen, führt der Assistent Sie durch die einzelnen Schritte zur Auswahl einer Leinwand, auf der die Datenblockobjekte angezeigt werden sollen, zur Angabe der Objekte, die in dem Layout angezeigt werden sollen, zur Auswahl von Prompts sowie Höhe/Breite für die Objekte, zur Auswahl eines Rahmens (einschließlich Stil und Titel), in dem die Objekte angezeigt werden sollen, und zur Auswahl der Anzahl von in dem Rahmen anzuzeigenden Datensätze und dem Abstand zwischen den Datensätzen. Es wird unbedingt empfohlen, daß Sie das Layout der Objekte Ihres Datenblocks mit dem Layout-Assistenten bestimmen, da der Assistent alle Aufgaben automatisiert, mit denen das Grundlayout erstellt wird.

Wenn Sie den Datenblock-Assistenten einfach beenden, ohne den Layout-Assistenten aufzurufen, haben Sie zwei Möglichkeiten:

•	Sie können das Layout der Datenblockobjekte manuell festlegen.

•	Sie können den Layout-Assistenten zu einem späteren Zeitpunkt aufrufen.

Wenn Sie das Layout der Objekte Ihres Datenblocks manuell gestalten möchten, müssen Sie eine Leinwand erstellen, Rahmen auf dieser Leinwand erstellen (optional), Objekte in die Rahmen oder einfach auf die Leinwand setzen und alle Objekte in dem Rahmen oder auf der Leinwand anordnen.

Wenn Sie den Layout-Assistenten zu einem späteren Zeitpunkt aufrufen möchten, wählen Sie einfach den Rahmen des Datenblocks im Objektnavigator (unter dem Knoten Leinwände) oder im Layouteditor und wählen Werkzeuge [image] Layout-Assistent aus dem Menü.


Dynamischer Datenaustausch (Dynamic Data Exchange)

Dieses Kapitel enthält Informationen über den Dynamischen Datenaustausch (DDE) in Form Builder. Folgende Themen werden behandelt:

•	Über DDE  14 - 584

•	Einschränkungen  14 - 584

•	Überblick über die Funktionen  14 - 585

•	Funktionsbeschreibungen  14 - 586

•	Vordefinierte Microsoft Windows-Datenformate  14 - 597

•	Exceptions  14 - 598


Über DDE

Form Builder für Microsoft Windows unterstützt den Dynamischen Datenaustausch (DDE). DDE ist ein Mechanismus, über den Anwendungen kommunizieren und Daten austauschen können. Die Unterstützung von DDE-Clients ist eine prozedurale Erweiterung von Form Builder für Microsoft Windows. Ein PL/SQL-Paket für die DDE-Unterstützung, bietet Anwendungsentwicklern eine Application Programming Interface (API) für den Zugriff auf die DDE-Funktionalität aus PL/SQL-Prozeduren und -Triggern.

Mit den DDE-Funktionen kann Form Builder, eine DDE-Client-Anwendung, wie folgt mit DDE-Server-Anwendungen kommunizieren:

•	Durch Importieren von Daten

•	Durch Exportieren von Daten

•	Durch Ausführung von Befehlen für den DDE-Server


DDE-Einschränkungen bei Form Builder

Form Builder verfügt nicht über die folgenden Funktionen:

•	Daten-Verknüpfung (Advise-Transaktion)

Form Builder kann keine automatischen Aktualisierungshinweise empfangen, wenn ein Datenobjekt geändert wurde.

•	Server-Unterstützung

Form Builder kann nicht auf Befehle oder Datenanforderungen von einem DDE-Client reagieren. Form Builder muß den DDE-Dialog mit DDE.APP_BEGIN einleiten, auch wenn Daten in beiden Richtungen übertragen werden können.


Überblick über DDE-Funktionen

Im Rahmen des DDE-Pakets können die DDE-Funktionen, die aus PL/SQL-Prozeduren und -Triggern aufgerufen werden können, in die folgenden Kategorien unterteilt werden:

•	Unterstützende Funktionen

•	Anmelden-/Abmelden-Funktionen

•	Transaktions-Funktionen

•	Funktionen zur Umsetzung des Datentyps

Unterstützende Funktionen

Mit diesen Funktionen werden andere DDE-Server-Anwendungen gestartet und gestoppt.

DDE.APP_BEGIN	Beginnt eine DDE-Server-Anwendung.
DDE.APP_END	Beendet eine DDE-Server-Anwendung.
DDE.APP_FOCUS	Fokussiert eine DDE-Server-Anwendung.
Anmelden-/Abmelden-Funktionen

Diese  Funktionen werden für das Anmelden und Abmelden bei DDE-Server-Anwendungen verwendet.

DDE.INITIATE	Startet einen DDE-Dialog mit einer DDE-Server-Anwendung.
DDE.TERMINATE	Beendet einen DDE-Dialog mit einer DDE-Server-Anwendung.
Transaktionsfunktionen

Mit diesen Funktionen werden Daten zwischen DDE-Server-Anwendungen ausgetauscht.

DDE.EXECUTE	Führt einen Befehl aus, der von einer DDE-Server-Anwendung erkannt wird.
DDE.POKE	Liefert Informationen an eine DDE-Server-Anwendung.
DDE.REQUEST	Fordert Informationen von einer DDE-Server-Anwendung an.
Funktionen zur Umsetzung des Datentyps

Mit diesen Funktionen werden DDE-Datentyp-Konstanten in Zeichenfolgen konvertiert und umgekehrt. Außerdem können Benutzer mit DDE.GETFORMATNUM ein neues Datenformat registrieren, das von Microsoft Windows nicht vordefiniert ist. Beachten Sie, daß diese Funktionen nicht die Daten selbst umsetzen (alle DDE-Daten werden mit dem Datentyp CHAR in PL/SQL dargestellt), sondern nur die Datentyp-Konstanten.

DDE.GETFORMATNUM	Konvertiert/registriert eine Datenformat-Zeichenfolge in bzw. als eine Zahl.
DDE.GETFORMATSTR	Konvertiert eine Datenformatzahl in eine Zeichenfolge.


DDE.APP_BEGIN

 Beispiele

Beschreibung

Beginnt einen Dialog mit einem DDE-Server-Anwendungsprogramm.

Syntax

DDE.APP_BEGIN (Command, Mode)

Parameter

Parameter	Typ	Beschreibung
Command	VARCHAR2	Befehlszeile zur Ausführung eines Programms
Mode	PLS_INTEGER	Startmodus für Anwendungsfenster

Rückgabewert  PLS_INTEGER

Hinweise:

In der Befehls-Zeichenfolge kann der Programmname der DDE-Server-Anwendung einen Pfad enthalten. Wenn der Name der DDE-Server-Anwendung keinen Pfad enthält, werden die folgenden Ordner durchsucht:

•	Aktueller Ordner

•	Windows-Ordner

•	Windows-Systemordner

•	Ordner, der die ausführbare Datei für die aktuelle Task enthält

•	In der PATH-Umgebungsvariablen aufgeführte Ordner

•	In einem Netzwerk zugeordnete Ordner

Auf den Programmnamen der DDE-Server-Anwendung können Argumente folgen, die mit einem Leerzeichen vom Namen des Anwendungsprogramms getrennt werden müssen.

Mit dem Parameter mode können Sie die DDE-Server-Anwendung in Normalgröße, minimiert oder maximiert starten. Für DDE.APP_BEGIN gibt es folgende mode-Konstanten:

Mode	Beschreibung
DDE.APP_MODE_NORMAL	Startet das Anwendungsfenster in Normalgröße.
DDE.APP_MODE_MINIMIZED	Startet das Anwendungsfenster in minimierter Größe.
DDE.APP_MODE_MAXIMIZED	Startet das Anwendungsfenster in maximierter Größe.
Diese Funktion gibt einen Anwendungsbezeichner zurück, bei dem es sich um PLS_INTEGER handelt. Der Anwendungsbezeichner wird in allen nachfolgenden Aufrufen von DDE.APP_END und DDE.APP_FOCUS für dieses Anwendungsfenster benutzt.


Beispiele für DDE.APP_BEGIN

DECLARE
AppID   PLS_INTEGER;
BEGIN
/* Start Microsoft Excel with spreadsheet emp.xls loaded. */
AppID := DDE.App_Begin('C:\excel\excel.exe C:\emp.xls',
 DDE.APP_MODE_MINIMIZED);
END;


DDE.APP_END

 Beispiele  [image] Einschränkungen

Beschreibung

Beendet eine DDE-Server-Anwendung, die mit DDE_APP_BEGIN gestartet wurde.

Syntax

DDE.APP_END (AppID)

Parameter

Parameter	Typ	Beschreibung
AppID	PLS_INTEGER	Anwendungsbezeichner, der von DDE.APP_BEGIN zurückgegeben wird.
Hinweise:

Die DDE-Server-Anwendung kann auch auf die bei Microsoft Windows übliche Weise beendet werden, wie z.B. durch Doppelklicken auf das Systemmenü.


Einschränkungen bei DDE.APP_END

Um eine DDE-Server-Anwendung zu beenden, muß die DDE-Server-Anwendung vorher durch Aufruf von DDE.APP_BEGIN gestartet worden sein.


Beispiele für DDE.APP_END

DECLARE
AppID  PLS_INTEGER:
BEGIN
/* Start Microsoft Excel with spreadsheet emp.xls loaded. */
AppID := DDE.App_Begin('C:\excel\excel.exe C:\emp.xls'
DDE.APP_MODE_NORMAL);
...
/* End Microsoft Excel program. */
DDE.App_End(AppID);
END;


DDE.APP_FOCUS

 Beispiele  [image] Einschränkungen

Beschreibung

Aktiviert eine DDE-Server-Anwendung, die mit DDE.APP_BEGIN gestartet wurde.

Syntax

DDE.APP_FOCUS (AppID)

Parameter

Parameter	Typ	Beschreibung
AppID	PLS_INTEGER	Von DDE.APP_BEGIN zurückgegebener Anwendungsbezeichner
Hinweise:

Diese Anwendung kann auch in der bei Microsoft Windows üblichen Weise aktiviert werden, z.B. durch Klicken im Anwendungsfenster.


Einschränkungen bei DDE.APP_FOCUS

Um eine DDE-Server-Anwendung zu aktivieren, muß die DDE-Server-Anwendung zuvor mit DDE.APP_BEGIN gestartet worden sein.


Beispiele für DDE.APP_FOCUS

DECLARE
AppID   PLS_INTEGER;
BEGIN
/* Start Microsoft Excel application in fullscreen mode. */
AppID := DDE.App_Begin('C:\excel\excel.exe,
DDE.APP_MODE_MAXIMIZED);
/* Activate the application window. */
DDE.App_Focus(AppID);
END;


DDE.EXECUTE

 Beispiele

Beschreibung

Führt eine Befehlsfolge aus, die in der empfangenden DDE-Server-Anwendung akzeptiert wird.

Syntax

DDE.EXECUTE (ConvID, Command, Timeout)

Parameter

Parameter	Typ	Beschreibung
ConvID	PLS_INTEGER	DDE-Dialog-ID
Command	VARCHAR2	Befehlsfolge, die der Server ausführen muß
Timeout	PLS_INTEGER	Timeout-Dauer in Millisekunden
Hinweise:

Der Wert von Command hängt davon ab, welche Werte von der Server-Anwendung unterstützt werden.

Mit Timeout wird die maximale Dauer in Millisekunden angegeben, während der diese Routine auf eine Antwort von der DDE-Server-Anwendung wartet. Wenn der Benutzer eine ungültige Zahl angibt, wie z.B. eine negative Zahl, wird der Standardwert von 1000 ms benutzt. Die Dauer des Timeout hängt von der Maschinenkonfiguration und der DDE-Server-Anwendung ab.


Beispiele für DDE.EXECUTE

DECLARE
ConvID   PLS_INTEGER;
BEGIN
/* Open a DDE conversation with Microsoft Excel for Windows */
ConvID := DDE.Initiate('EXCEL', 'C:\abc.xls');
/* Recalculate the Excel spreadsheet.*/
DDE.Execute(ConvID, '[calculate.now()]', 1000);
END;


DDE.GETFORMATNUM

 Beispiele

Beschreibung

Setzt einen angegebenen Datenformatnamen um bzw. registriert einen angegebenen Datenformatnamen und gibt eine Formatzahl zurück.

Syntax

DDE.GETFORMATNUM (FormatStr)

Parameter

Parameter	Typ	Beschreibung
FormatStr	VARCHAR2	Zeichenfolge mit Name des Datenformats

Rückgabewert  PLS_INTEGER

Hinweise:

Diese Funktion konvertiert ein Datenformat von einer Zeichenfolge in eine Zahl. Diese Zahl kann in Poke- und Request-Transaktionen zur Darstellung des Parameters DataFormat benutzt werden.

Wenn der angegebene Name nicht registriert ist, registriert diese Funktion den Namen und gibt eine eindeutige Formatnummer zurück. Dies ist die einzige Möglichkeit, ein Format in einer Poke- oder Request-Transaktion zu benutzen, bei dem es sich nicht um eines der vordefinierten Formate handelt.

Diese Funktion gibt die numerische Darstellung der Datenformat-Zeichenfolge zurück, die PLS_INTEGER ist.

In Vordefinierte Microsoft Windows-Datenformate  finden Sie eine Liste der vordefinierten Datenformat-Konstanten.


Beispiele für DDE.GETFORMATNUM

DECLARE
FormatNum   PLS_INTEGER;
MyFormatNum PLS_INTEGER;
BEGIN
/* Get predefined format number for "CF_TEXT"
(should return CF_TEXT=1). */
FormatNum := DDE.GetFormatNum('CF_TEXT');
/* Register a user-defined data format called "MY_FORMAT". */
MyFormatNum := DDE.GetFormatNum('MY_FORMAT');
END;


DDE.GETFORMATSTR

 Beispiele

Beschreibung

Setzt eine Datenformat-Zahl in eine Formatnamen-Zeichenfolge um.

Syntax

DDE.GETFORMATSTR (FormatNum)

Parameter

Parameter	Typ	Beschreibung
FormatNum	PLS_INTEGER	Datenformatzahl

Rückgabewert  CHAR

Hinweise:

Diese Funktion gibt die Zeichenfolgendarstellung der Datenformatzahl zurück, bei der es sich um CHAR handelt.

Diese Funktion gibt einen Datenformatnamen zurück, wenn die Datenformatzahl gültig ist. Gültige Formatzahlen umfassen die vordefinierten Formate in Vordefinierte Microsoft Windows-Datenformate und vom Benutzer definierte Formate, die mit DDE.GETFORMATNUM registriert wurden.


Beispiele für DDE.GETFORMATSTR

DECLARE
FormatStr   CHAR(20);
BEGIN
/* Get a data format name
(should return the string 'CF_TEXT') */
FormatStr := DDE.GetFormatStr(CF_TEXT);
END;


DDE.INITIATE

 Beispiele

Beschreibung

Öffnet einen DDE-Dialog mit einer DDE-Server-Anwendung.

Syntax

DDE.INITIATE (Service, Topic)

Parameter

Parameter	Typ	Beschreibung
Service	VARCHAR2	DDE-Servicecode der DDE-Server-Anwendung
Topic	VARCHAR2	Topic-Name für den Dialog
Die Werte von Service und Topic hängen von den Werten ab, die von einer bestimmten DDE-Server-Anwendung unterstützt werden. Service ist im allgemeinen der Name der DDE-Server-Anwendung. Bei Anwendungen, die mit dateiorientierten Dokumenten arbeiten, ist Topic im allgemeinen der Dokument-Dateiname. Das Topic System wird im allgemeinen von jedem Dienst unterstützt.

Rückgabewert  PLS_INTEGER

Hinweise:

Eine Anwendung kann mehr als einen Dialog gleichzeitig mit mehreren Services und Topics starten, vorausgesetzt, die Dialog-Bezeichner sind eindeutig.

Diese Funktion gibt den DDE-Dialog-Bezeichner zurück, der eine PLS_INTEGER ist. Der zurückgegebene Dialog-Bezeichner muß in allen nachfolgenden Execute-, Poke-, Request- und Terminate-Aufrufen für diesen Dialog benutzt werden.

Um den Dialog zu beenden, müssen Sie DDE.TERMINATEaufrufen.


Beispiele für DDE.INITIATE

DECLARE
ConvID   PLS_INTEGER;
BEGIN
/* Open a DDE conversation with Microsoft Excel for Windows
 on topic abc.xls. */
ConvID := DDE.Initiate('EXCEL', 'c:\abc.xls');
END;


DDE.POKE

 Beispiele

Beschreibung

Sendet Daten an eine DDE-Server-Anwendung.

Syntax

DDE.POKE (ConvID, Item, Data, DataFormat, Timeout)

Parameter

Parameter	Typ	Beschreibung
ConvID	PLS_INTEGER	DDE-Dialog-Bezeichner, der von DDE.INITIATE zurückgegeben wird
Item	VARCHAR2	Name des Datenobjekts, an das die Daten gesendet werden sollen
Data	VARCHAR2	Zu sendender Datenpuffer
DataFormat	PLS_INTEGER	Format der abgehenden Daten
Timeout	PLS_INTEGER	Timeout-Dauer in Millisekunden
Der Wert von Item hängt davon ab, welche Werte von der DDE-Server-Anwendung bei dem aktuellen Dialog-Topic unterstützt werden.

Für DataFormat können die Vordefinierte Microsoft Windows-Datenformate benutzt werden. Ein benutzerdefiniertes Format, das mit DDE.GETFORMATNUM registriert ist, kann ebenfalls benutzt werden, vorausgesetzt, die DDE-Server-Anwendung erkennt das Format. Sie als Benutzer müssen gewährleisten, daß die DDE-Server-Anwendung das angegebene Datenformat verarbeiten kann.

Mit Timeout wird die maximale Dauer in Millisekunden angegeben, während der diese Routine auf eine Antwort von der DDE-Server-Anwendung wartet. Wenn Sie eine ungültige Zahl angeben, wie z.B. eine negative Zahl, wird der Standardwert von 1000 ms benutzt. Die Dauer des Timeouts hängt von der Maschinenkonfiguration und der DDE-Server-Anwendung ab.


Beispiele für DDE.POKE

DECLARE
ConvID   PLS_INTEGER;
BEGIN
/* Open a DDE conversation with Microsoft Excel for Windows on
topic abc.xls. */
ConvID = DDE.Initiate('EXCEL', 'C:\abc.xls');
/* Send data "foo" to cell at row 2, column 2. */
DDE.Poke(ConvID, 'R2C2', 'foo', DDE.CF_TEXT, 1000);
END;


DDE.REQUEST

 Beispiele

Beschreibung

Fordert Daten von einer DDE-Server-Anwendung an.

Syntax

DDE.REQUEST (ConvID, Item, Buffer, DataFormat, Timeout)

Parameter

Parameter	Typ	Beschreibung
ConvID	PLS_INTEGER	DDE-Dialog-Bezeichner, der von DDE.INITIATE zurückgegeben wird
Item	VARCHAR2	Angeforderter Datenobjektname
Buffer	VARCHAR2	Rückgabe-Datenpuffer
DataFormat	PLS_INTEGER	Format der angeforderten Daten
Timeout	PLS_INTEGER	Timeout-Dauer in Millisekunden
Der Wert von Item hängt davon ab, welche Werte von der DDE-Server-Anwendung bei dem aktuellen Dialog-Topic unterstützt werden.

Beachten Sie, daß der Parameter Buffer die Länge der Rückgabe-Zeichenfolge bestimmt. Sie als Benutzer müssen gewährleisten, daß der Rückgabe-Datenpuffer groß genug für die angeforderten Daten ist. Wenn die Puffergröße kleiner ist als die angeforderten Daten, werden die Daten abgeschnitten und es kommt zu einem Fehler.

Für DataFormat können die Vordefinierte Microsoft Windows-Datenformate benutzt werden. Ein benutzerdefiniertes Format, das mit DDE.GETFORMATNUM registriert wurde, kann ebenfalls benutzt werden, vorausgesetzt, die DDE-Server-Anwendung erkennt dieses Format. Sie als Benutzer müssen gewährleisten, daß die DDE-Server-Anwendung das angegebene Datenformat verarbeiten kann.

Mit Timeout wird die maximale Dauer in Millisekunden angegeben, während der diese Routine auf eine Antwort von der DDE-Server-Anwendung wartet. Wenn Sie eine ungültige Zahl angeben, z.B. eine negative Zahl, wird der Standardwert von 1000 ms benutzt. Die Dauer des Timeout hängt von der Maschinenkonfiguration und der DDE-Server-Anwendung ab.


Beispiele für DDE.REQUEST

DECLARE
ConvID   PLS_INTEGER;
Buffer   CHAR(100);
BEGIN
/* Open a DDE conversation with Microsoft Excel for Windows on
topic abc.xls. */
ConvID := DDE.Initiate('EXCEL', 'C:\abc.xls');
/* Request data from 6 cells between row 2, column 2
and row 3, column 4. */
DDE.Request(ConvID, 'R2C2:R3C4', Buffer, DDE.CF_TEXT,1000);
END;


DDE.TERMINATE

 Beispiele  [image] Einschränkungen

Beschreibung

Beendet den angegebenen Dialog mit einer DDE-Server-Anwendung.

Syntax

DDE.TERMINATE (ConvID)

Parameter

Parameter	Typ	Beschreibung
ConvID	PLS_INTEGER	DDE-Dialog-Bezeichner, wie von DDE.INITIATE zurückgegeben
Hinweise:

Nach einem DDE.TERMINATE-Aufruf führen alle nachfolgenden Execute-, Poke-, Request- und Terminate-Anforderungen, die den Bezeichner des beendeten Dialogs verwenden, zu einem Fehler.


Einschränkungen bei DDE.TERMINATE

Benutzen Sie DDE.INITIATE, um einen DDE-Dialog mit einer Server-Anwendung zu starten, bevor Sie DDE.TERMINATE verwenden können.


Beispiele für DDE.TERMINATE

DECLARE
ConvID   PLS_INTEGER;
BEGIN
/* Open a DDE conversation with Microsoft Excel for Windows
on topic abc.xls. */
ConvID := DDE.Initiate('EXCEL', 'C:\abc.xls');
...
/* Terminate the Microsoft Excel for Windows conversation */
DDE.Terminate(ConvID);
END;


Vordefinierte Microsoft Windows-Datenformate

Format	Beschreibung
DDE.CF_BITMAP	Bei den Daten handelt es sich um ein Bitmap.
DDE.CF_DIB	Bei den Daten handelt es sich um ein Speicherobjekt mit einer BITMAPINFO-Struktur, gefolgt von den Bitmap-Daten.
DDE.CF_DIF	Die Daten haben das Data Interchange Format (DIF).
DDE.CF_DSPBITMAP	Bei den Daten handelt es sich um eine Bitmap-Darstellung eines privaten Formats. Diese Daten werden im Bitmap-Format anstelle der privat formatierten Daten angezeigt.
DDE.CF_DSPMETAFILEPICT	Bei den Daten handelt es sich um eine Metadatei-Darstellung eines privaten Datenformats. Die Daten werden im Metadatei-Bildformat anstelle der privat formatierten Daten angezeigt.
DDE.CF_DSPTEXT	Bei den Daten handelt es sich um eine Textdarstellung eines privaten Datenformats. Die Daten werden im Textformat anstelle der privat formatierten Daten angezeigt.
DDE.CF_METAFILEPICT	Bei den Daten handelt es sich um eine Metadatei.
DDE.CF_OEMTEXT	Bei den Daten handelt es sich um ein Array mit Textzeichen im OEM-Zeichensatz. Jede Zeile endet mit einer Zeilenschaltungs-/Zeilenvorschub-Kombination (CR-LF). Ein Nullzeichen signalisiert das Ende der Daten.
DDE.CF_OWNERDISPLAY	Die Daten haben ein privates Format, das der Eigentümer der Zwischenablage anzeigen muß.
DDE.CF_PALETTE	Bei den Daten handelt es sich um eine Farbpalette.
DDE.CF_PENDATA	Die Daten sind für Stifterweiterungen des Microsoft Windows-Betriebssytems gedacht.
DDE.CF RIFF	Die Daten haben das Resource Interchange File Format (RIFF).
DDE.CF_SYLK	Die Daten haben das Microsoft Symbolic Link (SYLK) Format.
DDE.CF_TEXT	Bei den Daten handelt es sich um ein Array von Textzeichen. Jede Zeile endet mit einer Zeilenschaltungs-/Zeilenvorschub-Kombination (CR-LF). Ein Nullzeichen signalisiert das Ende der Daten.
DDE.CF_TIFF	Die Daten haben das Tag Image File Format (TIFF).
DDE.CF_WAVE	Die Daten beschreiben eine Klang-Wave. Hier handelt es sich um eine Teilmenge des CF_RIFF-Datenformats; es kann nur für RIFF WAVE-Dateien benutzt werden.


Exceptions

Exception	Beschreibung
DDE.DDE_APP_FAILURE	Ein Anwendungsprogramm, das in einem DDE.APP_BEGIN-Aufruf angegeben wurde, konnte nicht gestartet werden.
DDE.DDE_APP_NOT_FOUND	Eine Anwendungs-ID, die in einem DDE.APP_END- oder DDE.APP_FOCUS-Aufruf angegeben wurde, entspricht keiner gerade ausgeführten Anwendung.
DDE.DDE_FMT_NOT_FOUND	Eine Formatzahl in einem DDE.GETFORMATSTR-Aufruf ist nicht bekannt.
DDE.DDE_FMT_NOT_REG	Eine Formatzeichenfolge in einem DDE.GETFORMATNUM-Aufruf entspricht keinem vordefinierten Format und konnte nicht als benutzerdefiniertes Format registriert werden.
DDE.DDE_INIT_FAILED	Die Anwendung konnte die DDE-Kommunikationen nicht initialisieren, wodurch ein Aufruf der DDE-Layer gescheitert ist.
DDE.DDE_PARAM_ERR	Ein ungültiger Parameter, wie z.B. ein NULL-Wert, wurde an eine DDE-Paket-Routine übergeben.
DDE.DMLERR_BUSY	Eine Transaktion konnte nicht ausgeführt werden, weil die Server-Anwendung belegt ist.
DDE.DMLERR_DATAACKTIMEOUT	Bei einer Anforderung für eine synchrone Datentransaktion ist es zu einem Timeout gekommen.
DDE.DMLERR_EXECACKTIMEOUT	Bei einer Anforderung für eine synchrone Execute-Transaktion ist es zu einem Timeout gekommen.
DDE.DMLERR_INVALIDPARAMETER	Ein Parameter konnte nicht validiert werden. Hier einige der möglichen Ursachen: Die Anwendung hat ein Daten-Handle benutzt, das mit einem Handle mit einem anderen Objektnamen oder mit einem anderen Zwischenablage-Datenformat initialisiert wurde, als von der Transaktion angefordert. Die Anwendung hat einen ungültigen Dialog-Bezeichner benutzt. Mehr als eine Instanz der Anwendung hat dasselbe Objekt benutzt.
DDE.DMLERR_MEMORY_ERROR	Speicherplatz konnte nicht zugewiesen werden.
DDE.DMLERR_NO_CONV_ESTABLISHED	Ein Client konnte keine Verbindung mit dem Server aufbauen. Möglicherweise weist der Service- oder Topic-Name in einem DDE.INITIATE-Aufruf einen Fehler auf.
DDE.DMLERR_NOTPROCESSED	Eine Transaktion konnte nicht erfolgreich ausgeführt werden. Möglicherweise ist der Objektname in einer Poke- oder Request-Transaktion fehlerhaft.
DDE.DMLERR_POKEACKTIMEOUT	Bei einer Anforderung für eine synchrone Poke-Transaktion ist es zu einem Timeout gekommen.
DDE.DMLERR_POSTMSG_FAILED	Ein interner Aufruf der PostMessage-Funktion war nicht erfolgreich.
DDE.DMLERR_SERVER_DIED	Der Server wurde heruntergefahren, bevor eine Transaktion abgeschlossen war.
DDE.DMLERR_SYS_ERROR	In der DDE-Layer ist ein interner Fehler aufgetreten.


Über den Interpreter

  Verwandte Themen

Graphics Builder benutzt Funktionen und Funktionalität von Procedure Builder - insbesondere den Interpreter -, damit Sie die in den grafischen Anwendungen benutzten PL/SQL-Programmblöcke debuggen können.

Sie können Procedure Builder-Vorgänge mit Menüs, Editoren und Befehls-Dialogfeldern oder durch Eingabe von Befehlen über die Interpreter-Befehlszeile ausführen.

Der Interpreter ist der zentrale Debugging-Arbeitsbereich von Procedure Builder. Hier handelt es sich um ein in Bereiche unterteiltes Fenster, mit dem Sie die PL/SQL-Programmblöcke mit einer Befehlszeile definieren, anzeigen und debuggen können.

Je nach Kontext, in dem Procedure Builder aufgerufen wird, kann der Interpreter auf zwei verschiedene Arten angezeigt werden:

•	Modal

•	Nicht modal

Während Sie Befehle über die Befehlszeile eingeben, können Sie den Befehl Neuer Prompt aus dem Popup-Menü benutzen, um den Befehl abzubrechen und einen neuen PL/SQL-Prompt im Interpreter-Fensterbereich anzuzeigen.

Sie können die gesamte Ein- und Ausgabe von Interpreter in einer Protokolldatei aufzeichnen, wenn Sie eine Aufzeichnung der Debugging-Sitzung benötigen.


Über die Interpreter-Komponenten

Der Interpreter verfügt über fünf Hauptkomponenten:

Menüleiste (nur nicht-modaler Interpreter )

Steuerleiste

Quellausschnitt

Navigator-Ausschnitt

Interpreter-Ausschnitt

Beide Typen von Interpretern haben identische Funktionen. Da jedoch in modalen Fenstern nicht auf Menüs zugegriffen werden kann, enthält der modale Interpreter zusätzliche Schaltflächen für den Aufruf von Funktionen, die über Menüs im nicht-modalen Interpreter verfügbar sind.

Popup-Menüs mit vielen allgemeinen Befehlen sind in den verschiedenen Ausschnitten verfügbar.

Eine genaue Beschreibung des Interpreters finden Sie im Procedure Builder Developer's Guide.


Menüleiste (nur nicht-modaler Interpreter)

Zeigt die Menübefehle zur Ausführung der meisten Funktionen an.


Steuerleiste

Enthält Schaltflächen, die Sie als Schnelltasten für die gebräuchlichsten Aufgaben benutzen können.


Quellausschnitt

Mit dem Quellausschnitt können Sie die Quelle eines Programmblocks anzeigen und Debug-Aktionen definieren.


Navigator-Ausschnitt

Zeigt die Objekthierarchie für die aktuelle Sitzung an (nur Debugging-Knoten im modalen Interpreter).

Im nicht-modalen Interpreter kann der Navigator verborgen werden.


Interpreter-Ausschnitt

Der Interpreter-Ausschnitt enthält eine Befehlszeile, in die Sie PL/SQL-Konstrukte und Procedure Builder-Befehle eingeben können.


Modalen Interpreter anzeigen

So zeigen Sie den modalen Interpreter an:

  Der modale Interpreter wird automatisch von Graphics Builder angezeigt, während eine Anwendung ausgeführt wird (z.B. während der Laufzeitsimulation einer grafischen Anwendung stößt Graphics Builder auf einen Programmstop, den Sie in einem Programmblock eingerichtet haben. Wenn der modale Interpreter geöffnet wird, wird die Ausführung der Anwendung und des zugehörigen PL/SQL-Codes unterbrochen, bis Sie das modale Interpreter-Fenster schließen.


Nicht-modalen Interpreter anzeigen

So zeigen Sie den nicht-modalen Interpreter an:

  Wählen Sie Werkzeuge [image] PL/SQL-Interpreter.

Daraufhin wird der nicht-modale Interpreter angezeigt. Standardmäßig enthält der nicht-modale Interpreter keinen Navigator-Ausschnitt. Debugging-Aktionen, die Sie im nicht-modalen Interpreter ausführen, können über Objekte im Objektnavigator von Graphics Builder aufgerufen werden.

Alternativ können Sie den Navigator-Ausschnitt jederzeit einfügen, indem Sie Ansicht [image] Navigator-Ausschnitt aus dem Menü auswählen.

Sie können den nicht-modalen Interpreter jederzeit entweder im Graphics Builder oder während der Laufzeitsimulation aufrufen.


Über das Debuggen von grafischen Anwendungen

  Verwandte Themen

Je nach Fehler und Bedingungen, unter denen der Fehler aufgetreten ist, können Sie die Fehlerquelle im allgemeinen eingrenzen. Wenn verschachtelte Programmblöcke vorhanden sind, benutzen Sie den ersten Programmblock in der Folge, um den Fehler bis zur Fehlerquelle zu verfolgen.

So ist z.B. eine Schaltflächenprozedur A vorhanden, die Programmblock B aufruft, der wiederum Programmblock C aufruft. Während der Ausführung eines dieser Programmblöcke ist ein Fehler aufgetreten, und eine PL/SQL-Exception wurde ausgelöst. In diesem Fall würden Sie Programmblock A auswählen, um die Fehlerquelle einzugrenzen.

Wenn nicht sofort deutlich wird, wie ein Fehler behoben werden kann, können Sie eine Debug-Aktion einrichten, mit der Sie die Fehlerquelle suchen können. Möglicherweise enthält der das Problem verursachende Programmblock Aufrufe von Unterprogrammen, Schleifen oder andere Steuerausdrücke, aufgrund derer die genaue Fehlerquelle nur schwierig eingegrenzt werden kann.

Mit Debug-Aktionen können Sie die Ausführung der PL/SQL-Programmblöcke überwachen und/oder unterbrechen. Es gibt zwei Arten von Debug-Aktionen:

•	Programmstops

•	Debug-Trigger

Außerdem können Sie die vordefinierte Prozedur DEBUG verwenden, um Debugging-Aufgaben anzugeben, wie z.B. das Festlegen von Programmstops, die Unterbrechung der Ausführung des Programmblocks und die Rückgabe der Kontrolle an den Interpreter, das Abrufen und Einstellen von Variablen- und Parameterwerten oder die Interpretation von PL/SQL-Befehlen.

Sie können Debug-Aktionen im Graphics Builder oder im Debugger festlegen. Wo Sie die Debug-Aktion festlegen, hängt von der Komplexität Ihrer Programmblöcke und der grafischen Anwendung selbst ab.


Über das Testen der grafischen Anwendung in der Laufzeitsimulation

  Verwandte Themen

Am einfachsten können Sie Ihre grafische Anwendung mit dem Laufzeitsimulationsmodus von Graphics Builder (wird auch als Debugger bezeichnet) testen. Sie können die grafische Anwendung aus dem Graphics Builder ausführen und sie in einem separaten Debugging-Fenster testen. Auf diese Weise können Sie die grafische Anwendung schnell testen und debuggen und zum Builder zurückkehren, um die erforderlichen fehlerbehebenden Maßnahmen durchzuführen.

Wenn Sie eine grafische Anwendung in der Laufzeitsimulation testen, minimiert Graphics Builder alle gerade geöffneten Fenster, mit Ausnahme des Objektnavigators.


Über das Festlegen von Debug-Aktionen in Graphics Builder

Wenn Sie Debug-Aktionen im Graphics Builder festlegen und die grafische Anwendung dann ausführen, wird automatisch der modale Interpreter angezeigt, wenn eine Debug-Aktion, wie z.B. ein Debug-Trigger, angetroffen wird. Wenn der modale Interpreter angezeigt wird, wird die Ausführung der grafischen Anwendung und des zugehörigen PL/SQL-Codes unterbrochen, bis Sie den Interpreter schließen.

Beim Festlegen von Debug-Aktionen im Graphics Builder sollte folgendes berücksichtigt werden:

•	Sie sollten eine Debug-Aktion für einen Open Display-Trigger festlegen, der ausgelöst wird, sobald die grafische Anwendung ausgeführt wird.

•	Sie sollten die Debug-Aktion für den späteren Gebrauch beibehalten.

Wenn Sie eine Debug-Aktion im Graphics Builder festlegen und dann Änderungen an dem Programmblock vornehmen und diesen neu kompilieren, müssen Sie die Debug-Aktion möglicherweise ändern, um den Quellort zu ändern. Debug-Aktionen sind mit Zeilen-Nummern in der Programmblockquelle verknüpft.


Über das Festlegen von Debug-Aktionen im Debugger

Durch das Festlegen von Debug-Aktionen im Debugger können Sie im nicht-modalen Interpreter unmittelbar debuggen.

Nachdem Sie die grafische Anwendung im Debugger schließen, sind alle Debug-Aktionen, die Sie in Programmblöcken festgelegt haben, verloren. Wenn die Debug-Aktionen nur aus Programmstops und einfachen Debug-Triggern bestehen, ist dies möglicherweise für Sie nicht von Bedeutung.

Wenn Sie Ihre Programmblöcke direkt im Debugger debuggen, werden die Änderungen im Graphics Builder nicht berücksichtigt.


Über die Benutzung von Programmstops

Der gebräuchlichste Typ von Debug-Aktionen ist der Programmstop. Programmstops eignen sich besonders für die inkrementelle Überwachung der Ausführung von Programmblöcken.

Graphics Builder unterbricht die Ausführung des Programmblocks direkt, bevor die Zeile erreicht wird, auf der der Programmstop steht. An dieser Stelle können Sie den Programmstatus (d.h. Variablenwerte) mit den Funktionen von Procedure Builder überprüfen und/oder ändern. Nachdem Sie die Änderungen erfolgreich ausgeführt haben, können Sie die Ausführung mit den Befehlen GO oder STEP wieder aufnehmen oder können die Ausführung mit dem Befehl RESET abbrechen.

Angenommen, Sie verfügen über eine Prozedur, die eine Zählerschleife enthält. Die Schleife ruft eine Funktion auf und inkrementiert den Wert einer lokalen Variablen. Um sicherzustellen, daß der Variablen der richtige Wert für jeden Zyklus der Schleife zugewiesen wird, könnten Sie in die Zeile direkt hinter der Variablenzuweisung einen Programmstop setzen. Wenn der Programmstop erreicht und die Prozedur unterbrochen wird, können Sie den Aufrufstapel im Navigator überprüfen, um den Variablenwert zu testen. Danach verwenden Sie den Befehl STEP, um zum nächsten Programmstop zu gehen.


Über die Benutzung von Debug-Triggern

  Verwandte Themen

Debug-Trigger sind eine allgemeinere Form von Debug-Aktion. Ein Debug-Trigger verknüpft einen Block mit PL/SQL-Code mit einer bestimmten Quellzeile innerhalb eines Programmblocks.

Graphics Builder führt einen Debug-Trigger aus, direkt bevor die Zeile erreicht wird, auf der der Debug-Trigger angegeben ist. Sie können einen Debug-Trigger zuweisen, der an einer der folgenden Positionen ausgelöst wird:

•	Bei Erreichen einer einzelnen Zeile in einem Programmblock (z.B. der aktuellen Quellposition, Zeile 5, Zeile 23 usw.)

•	Bei jeder Übernahme der Kontrolle durch den Interpreter (d.h. jedesmal, wenn die Programmausführung wegen eines Programmstops, eines Programmschritts usw. unterbrochen wird)

•	In jeder PL/SQL-Quellzeile, die ausgeführt wird

Debug-Trigger eignen sich besonders für das Setzen bedingter Programmstops. Sie können die Exception DEBUG.BREAK aus dem Trigger-Rumpf auslösen. Der unten dargestellte Debug-Trigger setzt z.B. einen bedingten Programmstop in Zeile 10 von my_proc, der nur erreicht wird, wenn die lokale NUMBER-Variable my_sal den Wert 5000 überschreitet:

PL/SQL> .trigger proc my_proc line 10 is
     +> IF DEBUG.GETN('my_sal') > 5000 THEN
     +>   RAISE DEBUG.BREAK;
     +> END IF;


Über die Benutzung von Debug-Ebenen

  Verwandte Themen

Wenn eine Debug-Aktion die Programmausführung unterbricht, übernimmt der Interpreter die Kontrolle und legt eine sogenannte Debug-Ebene fest. Auf einer Debug-Ebene können Sie Befehle und PL/SQL-Anweisungen eingeben, um den Status des unterbrochenen Programmblocks zu überprüfen und zu ändern und die Ausführung wiederaufzunehmen.

Da jeder PL/SQL-Code, der interaktiv auf einer Debug-Ebene eingegeben wird, selbst unterbrochen werden kann (z.B. durch Antreffen eines anderen Programmstops), können Debug-Ebenen verschachtelt werden. Damit Debug-Ebenen einfacher voneinander unterschieden werden können, sind die Ebenen numeriert. Der am tiefsten verschachtelten Ebene wird die höchste Nummer zugewiesen. Die Numerierung beginnt bei null mit der äußersten Ebene.

Die Ebene Null bzw. die äußerste Ebene wird im allgemeinen als oberste Ebene bezeichnet. Mit der obersten Ebene ist kein Programmstatus verknüpft, da es sich um die äußerste Ebene handelt, auf der Programmblöcke anfänglich aufgerufen werden. Wenn ein Code, der von der obersten Ebene aufgerufen wird, unterbrochen wird, wird Debug-Ebene 1 erzeugt. Wenn ein Code, der von Debug-Ebene 2 aufgerufen wird, unterbrochen wird, wird Debug-Ebene 2 erstellt usw.

Der Interpreter-Befehlsprompt gibt die aktuelle Debug-Ebene an. Wenn der Interpreter Ebenen unter der obersten Ebene eingibt, umfaßt der Prompt ein Präfix mit der Nummer der aktuellen Debug-Ebene. So wird z.B. der Interpreter-Befehlsprompt auf Debug-Ebene 1 wie folgt angezeigt:

(debug 1)PL/SQL>

Mit dem RESET-Befehl können Sie die Kontrolle wieder an eine äußere Debug-Ebene zurückgeben, ohne die Ausführung in der aktuellen Debug-Ebene fortzusetzen.


Über die Kontrolle der Ausführung der Programmblöcke

Nachdem Sie den Programmstatus im Anschluß an eine Debug-Aktion überprüft und/oder geändert haben, können Sie die Ausführung des Programmblocks wie folgt steuern:

Schritt für Schritt durch den Programmblock gehen

Ausführung wiederaufnehmen

Ausführung des Programmblocks abbrechen


Über das Protokollieren der Interpreter-Eingabe und -Ausgabe

Mit Procedure Builder können Sie die Interpreter-Eingabe und -Ausgabe aufzeichnen, wenn Sie Programmblöcke debuggen. Nachdem Sie die Protokollierung aktiviert haben, werden in den Interpreter eingegebene Befehle - und eventuelle Interpreter-Ausgabemeldungen - an eine Protokolldatei angehängt bzw. in eine Protokolldatei geschrieben, bis Sie die Protokollierung deaktivieren oder beenden.


Über Befehlszeilenoptionen für das Protokollieren

Sie können das Protokollieren steuern, indem Sie einen der folgenden Befehle in den Interpreter eingeben:

•	LOG

•	DISABLE (Logging)

•	ENABLE (Logging)

Weitere Informationen über diese und andere Procedure Builder-Befehle erhalten Sie, indem Sie Interpreter-Befehlsreferenz aus den Hilfethemen auswählen.


Über die Fehlerbehebung

  Verwandte Themen

Sie können Fehler im Debugger oder im Procedure Builder beheben. Wenn Sie Programmblöcke im Debugger korrigieren und neu kompilieren, werden die Änderungen nicht automatisch im Graphics Builder berücksichtigt. Wenn Sie mehrere Änderungen an Programmblöcken im Debugger vornehmen, sollten Sie die Programmblöcke im Debugger mit den Programmblöcken im Graphics Builder synchronisieren. Wenn Sie die Änderungen im Graphics Builder vornehmen, denken Sie daran, daß Sie die grafische Anwendung speichern und erneut ausführen müssen, um sicherzustellen, daß der Fehler durch die Änderungen behoben wurde.


Über das Synchronisieren von Programmblöcken

Wenn Sie die PL/SQL-Fehler im Debugger behoben haben, sollten Sie den Inhalt der korrigierten Programmblöcke im Debugger mit dem Inhalt der Programmblöcke im Graphics Builder synchronisieren. Durch den Synchronisationsvorgang werden die Programmblöcke im Graphics Builder durch die Programmblöcke aus dem Debugger ersetzt.


Über den Umgang mit unbehandelten Exceptions

Wenn Graphics Builder während der Laufzeitsimulation auf Fehler trifft, wird ein Warnfenster mit einer Fehlermeldungsnummer angezeigt. Sie müssen unbedingt die Fehlermeldungsnummer und die Bedingungen aufschreiben, unter denen der Fehler aufgetreten ist. War dies beim Öffnen der grafischen Anwendung? Nachdem Sie versucht haben, ein Diagramm aufzugliedern, oder nachdem Sie auf eine Schaltfläche geklickt haben?

In dem Abschnitt Fehlerbehebung finden Sie weitere Informationen über die Fehlermeldungen von Graphics Builder.

Eine Fehlermeldung OG-00637 gibt an, daß eine nicht behandelte PL/SQL-Exception angetroffen wurde. Schreiben Sie die in der Fehlermeldung aufgeführte Exception-Nummer auf, da aus ihr hervorgeht, wie Sie den Fehlermeldungstext finden können, mit dem die mögliche Fehlerursache beschrieben wird.

Graphics Builder verfügt über eine Reihe von vordefinierten PL/SQL-Exceptions für Fehler, die in vordefinierten Graphics Builder-Prozeduren, Funktionen oder Datentypen angetroffen werden. Vordefinierte Graphics Builder-Exceptions werden im Graphics Builder Reference Manual sowohl mit Nummer als auch mit Name dokumentiert.


Grafische Anwendung in der Laufzeitsimulation testen

  Verwandte Themen

So testen Sie Ihre grafische Anwendung in der Laufzeitsimulation:

1	Wählen Sie das Werkzeug Ausführen im Objektnavigator oder dem Layouteditor, oder wählen Sie Datei [image] Ausführen, um die aktive grafische Anwendung auszuführen.

Wenn mehrere grafische Anwendungen geöffnet sind, wählen Sie das Objekt für die auszuführende grafische Anwendung im Objektnavigator, und wählen Sie dann das Werkzeug Ausführen.

Wenn die grafische Anwendung vorher nicht gespeichert wurde, erstellt Graphics Builder eine temporäre Datei des aktuellen Status der grafischen Anwendung und führt diese Datei aus. Wenn die grafische Anwendung überhaupt noch nicht gespeichert wurde, werden Sie zur Speicherung aufgefordert, bevor Graphics Builder die Anwendung ausführt.

Wenn im Graphics Builder momentan keine grafischen Anwendungen geöffnet sind, werden Sie aufgefordert, eine grafische Anwendung auszuwählen.

Die Laufzeitversion der ausgewählten grafischen Anwendung wird in einem separaten Debugger-Fenster von Graphics Builder geöffnet.

2	Testen Sie eventuelle Aufgliederungsbeziehungen und Schaltflächenprozeduren, um sicherzustellen, daß diese korrekt ausgeführt werden. Wenn aktive Timer vorhanden sind, prüfen Sie, ob diese funktionsfähig sind und die richtigen Ergebnisse erbringen.

Wenn die grafische Anwendung in der Laufzeitsimulation einwandfrei ausgeführt wird, können Sie die grafische Anwendung sicher generieren. Wenn Sie jedoch Änderungen an der grafischen Anwendung vornehmen, bevor Sie diese generieren, wird empfohlen, die grafische Anwendung erneut auszuführen, um die Änderungen zu testen.


Fehler verfolgen

  Verwandte Themen

So verfolgen Sie Fehler:

1	Blenden Sie den Knoten mit dem Namen der grafischen Anwendung<debug> im Objektnavigator ein.

2	Doppelklicken Sie auf den Programmblock, um diesen im Programmblockeditor anzuzeigen.

Wenn Sie in einer Folge von verschachtelten Programmblöcken nach einem Fehler suchen, öffnen Sie den ersten Programmblock in der Folge. Wenn der Fehler z.B. nach dem Klicken auf eine Schaltfläche aufgetreten ist, öffnen Sie die entsprechende Schaltflächenprozedur.

Die mit diesem Programmblock verknüpften Kompilierungsfehler werden in dem Ausschnitt unter der Programmblockquelle angezeigt. Wenn verschachtelte Programmblöcke vorhanden sind, wird der letzte Programmblock, der vor Auftreten des Fehlers aufgerufen werden muß, am Anfang des Fehlerstapels angezeigt.


Programmstops setzen

So setzen Sie einen Programmstop:

1	Wählen Sie Werkzeuge [image] PL/SQL-Interpreter, um den PL/SQL-Interpreter anzuzeigen.

2	Wählen Sie den zu debuggenden Programmblock im Navigator.

Der Programmblock wird im Quellausschnitt des Interpreters angezeigt. Jede Zeile ist numeriert.

3	Doppelklicken Sie auf die Zeile, auf der Sie den Programmstop setzen möchten. Der Programmstop wird eingefügt.

Sie können auch einen "Break-Trigger" für einen Programmstop definieren. Ein Break-Trigger ist ein PL/SQL-Block, der bei jedem Erreichen des Programmstops ausgeführt wird. Dieser Block könnte einen Procedure Builder-Befehl enthalten, der jedesmal ausgeführt wird, wenn der Programmstop erreicht wird.

Sie können den BREAK-Befehl im Interpreter-Ausschnitt benutzen, um einen Programmstop bei einer bestimmten Quellzeile einzufügen.


Debug-Trigger festlegen

So legen Sie einen Debug-Trigger fest:

1	Wählen Sie Werkzeuge [image] PL/SQL-Interpreter, um den PL/SQL-Interpreter anzuzeigen.

2	Wählen Sie den zu debuggenden Programmblock im Navigator.

Der Programmblock wird im Quellausschnitt des Interpreters angezeigt. Jede Zeile ist numeriert.

3	Wählen Sie die Zeile, in die Sie den Debug-Trigger setzen möchten.

4	Wählen Sie Trigger aus dem Popup-Menü, oder wählen Sie Debuggen [image] Trigger, um das Dialogfeld PL/SQL-Trigger anzuzeigen.

5	Geben Sie den Rumpf des Triggers in das Feld Triggerrumpf ein.

6	Klicken Sie auf OK, um den Trigger zu akzeptieren und das Dialogfeld zu schließen.

Weitere Informationen über das Erstellen von Debug-Triggern finden Sie in der Online-Hilfe zu Procedure Builder.


Schritt für Schritt durch den Programmblock gehen

So gehen Sie Schritt für Schritt durch den Programmblock:

  Benutzen Sie den STEP-Befehl, um Schritt für Schritt durch den unterbrochenen Programmblock zu gehen. Die Kontrolle wird an den Interpreter zurückgegeben, nachdem die angegebene Gruppe von Anweisungen ausgeführt wurde. Es gibt vier Varianten des STEP-Befehls, mit denen die Ausführung eines unterbrochenen Programmblocks temporär wieder aufgenommen werden kann.

Sie können den STEP-Befehl durch Auswahl einer der Schaltflächen aus der Steuerleiste oder durch Eingabe des Befehls über die Interpreter-Befehlszeile aufrufen.


Ausführung des Programmblocks wiederaufnehmen

So nehmen Sie die Ausführung eines Programmblocks wieder auf:

  Benutzen Sie den Befehl GO, um die Ausführung eines Programms unbestimmt wiederaufzunehmen - d.h. entweder, bis die gerade ausgeführte Ausführungsfolge abgeschlossen ist oder erneut aufgrund einer Debug-Aktion unterbrochen wird. Sie können den Befehl GO aufrufen, indem Sie die Schaltfläche Go in der Steuerleiste auswählen oder indem Sie den Befehl über die Interpreter-Befehlszeile eingeben.


Ausführung des Programmblocks abbrechen

So brechen Sie die Ausführung des Programmblocks ab:

  Benutzen Sie den Befehl RESET, um die Kontrolle an eine äußere Debug-Ebene zurückzugeben, ohne die Ausführung auf der aktuellen Debug-Ebene fortzusetzen. Somit bricht RESET die Ausführung auf der aktuellen (und möglicherweise höheren) Debug-Ebene effektiv ab.

Sie können den Befehl RESET durch Auswahl der Schaltfläche Zurücksetzen in der Steuerleiste oder durch Eingabe des Befehls über die Befehlszeile im Interpreter aufrufen.


Protokolldateien aktivieren

So aktivieren Sie eine Protokolldatei:

1	Wählen Sie Debuggen [image] Protokoll, um das Dialogfeld Interpreter-Protokoll aufzurufen.

2	Geben Sie einen Pfad und den Namen der Protokolldatei in das Feld Datei ein, oder klicken Sie auf Durchsuchen, um das Datei-Dialogfeld Ihres Betriebssystems zu öffnen, in dem Sie eine bestehende Protokolldatei auswählen können.

3	Wenn das aktuelle Protokoll an einer bestehenden Protokolldatei angehängt werden soll, wählen Sie das Kontrollkästchen Anhängen aus.

4	Klicken Sie auf OK, um die Änderungen zu akzeptieren und das Dialogfeld zu schließen.


Protokolldateien deaktivieren

So deaktivieren Sie eine Protokolldatei:

1	Wählen Sie Debuggen [image] Protokoll, um das Dialogfeld Interpreter-Protokoll aufzurufen.

2	Wählen Sie das Kontrollkästchen Deaktiviert aus.

3	Klicken Sie auf OK, um die Änderungen zu akzeptieren und das Dialogfeld zu schließen.


Protokolldateien anzeigen

So zeigen Sie den Inhalt einer bestehenden Protokolldatei an:

  Wählen Sie Debuggen [image] Interpreter-Protokoll, um den Browser Interpreter-Protokoll anzuzeigen.

Oder

1	Wählen Sie Debuggen [image] Protokoll, um das Dialogfeld Interpreter-Protokoll anzuzeigen.

2	Wählen Sie das Kontrollkästchen Protokoll anzeigen aus.

3	Klicken Sie auf OK, um die Änderungen zu akzeptieren und das Dialogfeld zu schließen.

Daraufhin wird der Browser Interpreter-Protokoll angezeigt.


Programmblöcke synchronisieren

So synchronisieren Sie Programmblöcke:

  Wählen Sie Bearbeiten [image] Programmblöcke synchronisieren aus dem Menü.


Vordefinierte Procedure Builder-Prozeduren

  Verwandte Themen

Neben den vordefinierten PL/SQL-Datentypen, Funktionen und Prozeduren von Graphics Builder stellt Procedure Builder die folgenden vordefinierten PL/SQL-Prozeduren bereit, die viele PL/SQL-Konstrukte enthalten, die Sie beim Debuggen Ihrer Programmblöcke referenzieren können:

DDE	ORA_PROF
DEBUG	TEXT_IO
LIST	TOOL_ENV
OLE2	TOOL_ERR
ORA_FFI	TOOL_RES
ORA_NLS


DDE

Stellt die Unterstützung des dynamischen Datenaustauschs (Dynamic Data Exchange) bereit.


DEBUG

Stellt Prozeduren, Funktionen und Exceptions für das Debuggen von PL/SQL-Programmblöcken bereit.


LIST

Stellt Prozeduren, Funktionen und Exceptions bereit, mit denen Sie Listen mit Zeichenfolgen (VARCHAR2) erstellen und verwalten können. Diese Prozedur bietet Ihnen die Möglichkeit, Arrays in PL/SQL Version 1 zu erstellen.


OLE2

Stellt eine PL/SQL API bereit, mit der Attribute von OLE2-Automationsobjekten erstellt, bearbeitet und aufgerufen werden können.


ORA-FFI

Stellt eine öffentliche Schnittstelle für den Aufruf fremder (C)-Funktionen aus PL/SQL bereit.


ORA-NLS

Mit dieser Prozedur können Sie Informationen auf hoher Ebene über die aktuelle Sprachumgebung extrahieren.


ORA-PROF

Stellt Prozeduren, Funktionen und Exceptions bereit, mit denen Sie Ihre PL/SQL-Programmblöcke optimieren können (d.h. prüfen, wieviel Zeit ein bestimmtes Codesegment zur Ausführung benötigt).


TEXT-IO

Stellt Konstrukte bereit, mit denen Sie Informationen aus Dateien lesen bzw. in Dateien schreiben können.


TOOL-ENV

Mit dieser Prozedur können Sie mit Umgebungsvariablen kommunizieren.


TOOL-ERR

Mit dieser Prozedur können Sie den Fehlerstapel aufrufen und bearbeiten, der von anderen vordefinierten Prozeduren erstellt wird, wie z.B. DEBUG.


TOOL-RES

Ermöglicht das Extrahieren von Zeichenfolgenressourcen aus einer Resource-Datei mit dem Ziel, den PL/SQL-Code portierbarer zu gestalten, indem alle Textdaten in der Resource-Datei isoliert werden.


Modulzugriff

Beschreibung:

Mit dem Dialogfeld Modulzugriff können Sie einem angegebenen Modul die Zugriffsberechtigung (Lesen/Schreiben/Ausführen) erteilen oder entziehen, wenn das Modul in der Datenbank gespeichert ist.

Dieses Dialogfeld enthält:

Module	Gibt den Benutzernamen an, für den die Berechtigung erteilt oder entzogen werden soll.
Liste abrufen	Ruft eine Liste mit Modulen ab, die in der Datenbank gespeichert sind, unter denen Sie wählen können.
Schaltfläche Liste abrufen	Geben Sie den neuen Namen des Moduls in dieses Textfeld ein.
Zeigen	Filtert die mit Liste abrufen zurückgegebene Liste mit Modulen in einen oder alle Modultypen: Forms, Menüs, PL/SQL-Bibliotheken, Objektbibliotheken.
Zeigen	Filtert die mit Liste abrufen zurückgegebene Liste mit Modulen in einen oder alle Modultypen: Forms, Menüs, PL/SQL-Bibliotheken, Objektbibliotheken.
Verwendungshinweise:

Bei in Dateien gespeicherten Modulen benutzen Sie die von Ihrem Betriebssystem bereitgestellte Methode für die Kontrolle der Zugriffsberechtigung.


Datenbankrollen

Beschreibung:

Mit Datenbankrollen wird ein Dialogfeld angezeigt, das zwei Befehle enthält:

Rolle	Mit diesem Befehl können Sie die Sicherheitsrollen definieren und ändern, die sich auf den Menüzugriff auswirken.

Rollenzugriff	Mit diesem Befehl können Sie kontrollieren, welche Benutzer die Berechtigung zur Rollenverwaltung haben.

Rolle    Mit Rolle können Sie Sicherheitsrollen definieren oder ändern, die sich auf die Menüsicherheit beziehen.

Neu	Mit diesem Befehl können Sie eine Sicherheitsrolle definieren, indem Sie das Dialogfeld Rollenliste anzeigen.

Bearbeiten	Mit diesem Dialogfeld können Sie eine Sicherheitsrolle bearbeiten, indem Sie das Dialogfeld Rolle für eine vorher definierte Rolle anzeigen. Sie können jedes der vorher für die Option Neu aufgeführten Felder ändern, einschließlich dem Hinzufügen oder Löschen von Benutzern aus der Rolle.

Entfernen	Mit diesem Befehl können Sie eine Rolle aus der Rollenliste entfernen.

Speichern	Mit diesem Befehl können Sie die geänderte Rollenliste speichern.

Beenden	Mit diesem Befehl können Sie das Dialogfeld beenden, ohne die Änderungen zu übernehmen.

Rollen-Dialogfeld     Oracle Forms zeigt das Dialogfeld Rollenliste einschließlich der folgenden Optionen an:

Rollenname	Gibt den Namen der Sicherheitsrolle an.

Benutzername	Gibt den Namen der Benutzer an, die Sie zu dieser Rolle hinzufügen möchten. (Benutzernamen sind nicht obligatorisch; Sie können jetzt eine Rolle erstellen und dieser später Benutzer zuweisen.)

Debug-Modus	Gibt an, daß Operatoren, denen diese Rolle zugewiesen wurde, ein Menü im Debug-Modus ausführen können.

BS-Befehl	Gibt an, daß Operatoren, denen diese Rolle zugewiesen wurde, aus einer Form auf Betriebssystemebene gehen können, wo sie Betriebssystembefehle eingeben können.

Hintergrund-Menü	Gibt an, daß Operatoren, denen diese Rolle zugewiesen wurde, das Hintergrund-Menü als Tastenbelegungs-Fenster anzeigen können.

Rollenzugriff     Mit Rollenzugriff können Sie Einzelpersonen Berechtigungen zur Verwaltung von Rollen erteilen oder entziehen. Oracle Forms zeigt das Dialogfeld Rolle erteilen einschließlich der folgenden Optionen an:

Vorgang	Gibt Erteilen oder Entziehen an.

Benutzer	Gibt den Benutzernamen an, für den Sie die Berechtigung zur Verwaltung von Rollen erteilen oder entziehen möchten.


Delete

Beschreibung:

Mit dem Dialogfeld Löschen können Sie ein Modul aus der Datenbank entfernen.

Dieses Dialogfeld enthält:

Delete	Ruft eine Liste von Modulen ab, die in der Datenbank gespeichert sind, unter denen Sie wählen können.
Neu	Geben Sie den neuen Namen des Moduls in dieses Textfeld ein.
Zeigen	Filtert die mit Liste abrufen zurückgegebene Liste mit Modulen in einen oder alle Modultypen: Forms, Menüs, PL/SQL-Bibliotheken, Objektbibliotheken.
Verwendungshinweise:

Um in Dateien gespeicherte Module zu löschen, verwenden Sie die von Ihrem Betriebssystem bereitgestellte Methode zur Kontrolle von Zugriffsberechtigungen.


Umbenennen

Beschreibung:

Mit dem Dialogfeld Umbenennen können Sie den Namen eines Moduls in der Datenbank ändern.

Dieses Dialogfeld enthält:

Neu	Geben Sie den Namen eines umzubenennenden bestehenden Moduls in dieses Textfeld ein.
Liste abrufen	Ruft eine Liste von Modulen ab, die in der Datenbank gespeichert sind, unter denen Sie wählen können.
Neu	Geben Sie den neuen Namen des Moduls in dieses Textfeld ein.
Zeigen	Filtert die mit Liste abrufen zurückgegebene Liste mit Modulen in einen oder alle Modultypen: Forms, Menüs, PL/SQL-Bibliotheken, Objektbibliotheken.
Verwendungshinweise:

Um in Dateien gespeicherte Module umzubenennen, verwenden Sie die von Ihrem Betriebssystem bereitgestellte Methode zur Kontrolle der Zugriffsberechtigung.


Generieren

Mit Generieren wird eine ausführbare Datei mit einer Dateinamenerweiterung entsprechend dem Modultyp (.FMX oder .MMX) erstellt, die die vorher generierte Version überschreibt.


Konvertieren

Beschreibung:

Mit dem Dialogfeld Konvertieren können Sie eine Binärdatei, wie z.B. eine .FMB-Form, in eine Textdatei konvertieren, wie z.B. .FMT. Sie können auch von .FMT zu .FMB konvertieren.

Dieses Dialogfeld enthält:

Datei	Geben Sie den Namen eines bestehenden, zu konvertierenden Moduls in dieses Textfeld ein.
Durchsuchen	Klicken Sie auf diese Schaltfläche, um das Dateisystem nach einem Modul zu durchsuchen.
Datei	Wählen Sie Text-zu-Binär oder Binär-zu-Text.
Typ	Wählen Sie den zu konvertierenden Objekttyp: Form, Menü, PL/SQL-Bibliotheken, Objektbibliotheken.


Farbmodus

Bestimmt, wie eine Form Builder-Farbpalette in das System geladen wird. Jedesmal, wenn Sie eine Form laden, öffnen oder erstellen, lädt Oracle Forms die Oracle Forms-Farbpalette in die aktuelle Systemfarbtabelle. Da diese Systemfarbtabelle jeweils nur eine beschränkte Anzahl von Farben gleichzeitig bearbeiten kann, kann Oracle Forms möglicherweise mehrere Forms nicht gleichzeitig korrekt ändern, wenn diese verschiedene Farbpaletten benutzen. Deshalb verwenden Sie die Option Schreibgeschützt - Gemeinsam genutzt, es sei denn, Sie ändern die Farbpalette von Oracle Forms aktiv.


Farbpalette

Beschreibung:

Dies ist die Farbpalette, die im Layouteditor benutzt werden kann.

Dieses Dialogfeld enthält:

Aktuelle Farbe	Dieses Textfeld enthält den Namen der momentan ausgewählten Farbe.
Bearbeiten	Klicken Sie auf Bearbeiten, um die momentan ausgewählte Farbe in eine andere Farbe zu ändern.
Palettenname	Der Name der Palette, die in die aktuelle Sitzung importiert wird. Leer, wenn keine Palette importiert wurde.
Umbenennen	Klicken Sie auf dieses Kontrollkästchen, um den Namen einer Farbe zu ändern, nachdem Sie den neuen Namen in das Textfeld Aktuelle Farbe eingegeben haben.
Zu bearbeitende Farbe auswählen	Zeigt alle Farben an, die momentan im Layouteditor verfügbar sind. Wählen Sie eine Farbe, indem Sie auf das entsprechende Quadrat klicken.


Generieren vor Ausführen

Bestimmt, ob Oracle Forms das aktive Modul automatisch generiert, wenn Sie eine Form aus dem Designer ausführen. Wenn die Option Generieren vor Ausführen eingeschaltet ist, geht Oracle Forms folgendermaßen vor, wenn Sie den Befehl Datei, Ausführen ausgeben und dann eine bestimmte Form ausführen:

•	Das aktive Form-, Menü- oder Bibliotheksmodul wird generiert, um eine ausführbare Datei zu erstellen, die denselben Namen wie das Modul hat.

•	Die .FMX-Datei (Form-Runfile), die Sie im Dialogfeld Ausführen angeben, wird ausgeführt.

Mit dieser Voreinstellung müssen Sie keine separaten Befehle Generieren und Ausführen ausgeben, wenn Sie eine Form ändern und dann ausführen. Mit dieser Voreinstellung wird das Modul jedoch nicht gespeichert. Sie müssen das Modul mit dem Befehl Datei, Speichern speichern.


Zugriff

Gibt den Speicherort an, von dem Sie Module öffnen oder speichern können:

Datei	Module werden im Dateisystem geladen und gespeichert.
Datenbank	Module werden in der Datenbank geladen und gespeichert.
Legen Sie Voreinstellung Zugriff fest, damit Form Builder dieses Dialogfeld nicht anzeigt, und um einen standardmäßigen Speicherorttyp anzugeben. Diese Voreinstellungen werden im Register Zugriff im Dialogfeld Voreinstellungen angezeigt, wenn Sie Werkzeuge [image] Voreinstellungen wählen.


Aus Datenbank öffnen/In Datenbank speichern

Führt die verfügbaren in der Datenbank gespeicherten Module auf.

Zeigen	Filtert die über die Schaltfläche Liste abrufen zurückgegebene Liste mit Modulen in einen oder alle Modultypen: Forms, Menüs, PL/SQL-Bibliotheken, Objektbibliotheken.
Schaltfläche Liste abrufen	Ruft eine Liste der in der Datenbank gespeicherten Module ab. Sie können einen Eintrag aus der Liste unter dieser Schaltfläche abrufen. Der Name wird im Textfeld Öffnen/Speichern unter unterhalb der Liste angezeigt. Wenn Sie den Anzeigefilter ändern, müssen Sie zum Auffrischen der Liste auf diese Schaltfläche klicken.
Öffnen/Speichern unter	Geben Sie den Namen des zu öffnenden oder zu speichernden Moduls in dieses Textfeld ein.


Drucker

Der Name des Standarddruckers. Der Name ist betriebssystemabhängig.


Neue Beziehung

  Verwandte Themen

Erstellt eine neue Beziehung auf der Grundlage des angezeigten Master-Blocks.

Detail-Block	Geben Sie den Namen eines Blocks an, der mit dem Master-Block verbunden werden soll, oder klicken Sie auf Auswählen, um aus einer Liste von verfügbaren Blocks auszuwählen. Der Detail-Block muß bereits vorhanden sein, bevor Sie ihm neue Beziehungen zuordnen können.
Master löscht	Legt fest, welcher Vorgang beim Löschen eines Datensatzes im Master-Block ausgeführt wird. Stellen Sie folgendes ein: Kaskadierend: Ermöglicht das Löschen des Master-Datensatzes. Die zugeordneten Detail-Datensätze werden nach Bestätigung automatisch gelöscht. Lediglich Datensätze im unmittelbaren Detail-Block werden gelöscht. Isoliert: Ermöglicht das Löschen des Master-Datensatzes. Die zugeordneten Detail-Datensätze werden nicht gelöscht. Nicht isoliert: Der Master-Datensatz wird nicht gelöscht, wenn ihm Detail-Datensätze zugeordnet wurden.
Synchronisation	Verzögert: Detail-Datensätze werden nicht automatisch abgerufen. Der Benutzer muß zum Detail-Block navigieren und explizit eine Abfrage ausführen. Autom. Abfrage: Detail-Datensätze werden abgerufen, wenn der Benutzer zum zugeordneten Detail-Block navigiert. Bestandteil der Einstellung Verzögert. Masterlose Vorgänge verhindern: Wenn kein zugeordneter Master-Datensatz vorhanden ist, können Datensätze weder im Detail-Block eingefügt noch abgefragt werden.
Join-Bedingung	Geben Sie eine gültige Join-Bedingung in das mehrzeilige Feld ein. Die Join-Bedingung definiert die Beziehung zwischen dem Master-Block, der im Textfeld Master angegeben wird, und dem im Feld Detail angegebenen Detail-Block. Siehe Join-Bedingungen für eine Master-Detail-Beziehung angeben. Beispiel: warehouse.region_id = region.id
Objekt-REF	Gibt eine Join-Bedingung auf der Grundlage eines Objekts an, das sowohl im Master-Block als auch im Detail-Block vorhanden ist. Wählen Sie ein Objekt aus der Dropdown-Liste aus.


Module asynchron ausführen

Bestimmt, ob die Forms, die Sie aus dem Designer aufrufen, synchron oder asynchron bezogen auf den Designer selbst ausgeführt werden:

•	Wenn die Option Module asynchron ausführen deaktiviert ist, werden die aus dem Designer ausgeführten Forms synchron ausgeführt. Das heißt, Sie können erst wieder im Designer arbeiten, wenn Sie die Form beenden.

•	Wenn die Option Module asynchron ausführen aktiviert ist, werden die Forms, die Sie aus dem Designer ausführen, asynchron ausgeführt, so daß Sie zwischen dem Designer und der Form wechseln können.

Wenn Sie eine Form synchron ausführen, unterrichtet Oracle Forms Sie über Fehler beim Starten von Runform, indem ein Warnfenster im Designer angezeigt wird. Wenn Sie eine Form asynchron ausführen, erfolgt keine derartige Kommunikation zwischen Runform und Designer, und die beim Starten von Runform auftretenden Fehler werden im Designer nicht berichtet.


Speichern

Bestimmt, ob Oracle Forms die aktuellen Einstellungen speichert, wenn Sie das Dialogfeld Optionen akzeptieren. Wenn Speichern aktiviert ist, schreibt Oracle Forms die aktuellen Optionen in die Standard-Optionsdatei (bei den meisten Plattformen PREFS.ORA). Oracle Forms liest die Einstellungen in der Optionsdatei bei jedem Hochfahren von Designer.


Speichern vor Generieren

Bestimmt, ob Oracle Forms das aktuelle Modul automatisch speichert, wenn Sie Datei, Generieren auswählen.


Hinweise unterdrücken

Bestimmt, ob Hinweise aus der Meldung unterdrückt werden, während Sie mit den Entwurfsfunktionen im Designer arbeiten.


Systemeditor benutzen

Bestimmt, welchen Editor Oracle Forms benutzt, wenn Sie einen Editor aus einem mehrzeiligen Feld in einem Attributblatt oder einer Entwurfsfunktion aufrufen. Wenn Systemeditor deaktiviert ist, zeigt Oracle Forms den Standardeditor von Oracle Forms an. Wenn Systemeditor aktiviert ist, zeigt Oracle Forms den Standard-Systemeditor Ihres Systems an.

Hinweis:  Wenn Systemeditor aktiviert ist und Sie einen Editor mit einem eigenen Dokumentformat benutzen, müssen Sie das Dokument als ASCII-Text (mit Zeilenumbrüchen) speichern, anstatt das Dokument im Format dieses Editors zu speichern.


Array-Verarbeitung

Wenn Sie die Array-Verarbeitung unterdrücken, fordert Oracle Forms, daß die Datenbank nur jeweils eine Zeile mit Abfrageergebnissen vom Server zum Client zurückgibt.

Das Unterdrücken der Array-Verarbeitung führt im allgemeinen dazu, daß der erste abgerufene Datensatz schneller angezeigt wird, als dies der Fall wäre, wenn Sie eine Reihe von Datensätzen mit der Array-Verarbeitung abrufen würden. Die Gesamtzeit, die für das Abrufen und die Anzeige einer Reihe von Datensätzen erforderlich ist, ist jedoch bei der Array-Verarbeitung kürzer, da die Netzwerkbelastung reduziert werden kann.


Datensätze in Datei puffern

Legt die Anzahl von Datensätzen, die im Speicher gepuffert werden, auf die minimal zulässige Anzahl von angezeigten Zeilen plus einer beliebigen Konstanten (für jeden Block fest). Wenn ein Block Datensätze durch eine Abfrage abruft, die über diesem Grenzwert liegen, puffert Oracle Forms diese zusätzlichen Datensätze in einer temporären Datei auf der Platte.

Mit dieser Voreinstellung wird Speicherplatz in Runform gespart, allerdings kann die Verarbeitung wegen der Platten-E/A verlangsamt werden.


Debug-Modus

Ruft den Debug-Modus für die Runform-Sitzung auf. Wenn Sie eine Form im Debug-Modus ausführen, wird der Debugger angezeigt, mit dem Sie Debug-Aktionen erstellen können.


Blockmenü anzeigen

Zeigt automatisch das Blockmenü als ersten Bildschirm (im Anschluß an den Anmelde-Bildschirm, sofern dieser angezeigt wird) anstelle der Form an.


SQL-Verarbeitung optimieren

Gibt an, daß Oracle Forms die Verarbeitung von SQL-Anweisungen in V2-Triggern optimieren soll, indem Datenbank-Cursor gemeinsam benutzt werden.

Standardmäßig weist Oracle Forms für jede SQL-Anweisung einen separaten Datenbank-Cursor zu, die eine Form explizit in einem V2-Trigger ausführt. Dadurch wird die Verarbeitung optimiert, da die Anweisungen in jedem Cursor nur das erste Mal analysiert werden müssen, wenn sie in einer Runform-Sitzung ausgeführt werden, und nicht jedesmal.

Wenn Sie die Option SQL-Verarbeitung optimieren deaktivieren, weist Oracle Forms einen einzigen Cursor für alle SQL-Anweisungen in V2-Triggern zu. Diese Anweisungen benutzen diesen Cursor gemeinsam bzw. benutzen ihn erneut. Dadurch wird Speicherplatz gespart, wird die Verarbeitung jedoch auch verlangsamt, da die SQL-Anweisungen bei jeder Ausführung analysiert werden müssen.

Sie können dieses Verhalten durch die Triggerschritt-Eigenschaft Neuer Cursorbereich optimieren. Wenn diese Eigenschaft bei einem Triggerschritt, der eine SQL-Anweisung enthält, aktiviert ist, weist Oracle Forms der Anweisung einen separaten Cursor zu und setzt dabei den Parameter SQL-Verarbeitung optimieren für diese Anweisung außer Kraft.


Transaktions-Verarbeitung optimieren

Optimiert die Transaktionsverarbeitung.

Standardmäßig weist Oracle Forms für jede SQL-Anweisung, die eine Form ausführt, implizit einen separaten Datenbank-Cursor beim Abschicken oder Abfragen von Daten zu. Dadurch wird die Verarbeitung optimiert, weil diese Anweisungen in jedem Cursor nur bei der ersten Ausführung in einer Runform-Sitzung und nicht jedesmal analysiert werden.

Beachten Sie, daß die Cursor, die SELECT-Abfrageanweisungen zugewiesen sind, bei jeder Ausführung analysiert werden müssen. Diese Ausnahme ist erforderlich, weil Abfragen von Ausführung zu Ausführung variieren können.

Wenn Sie die Option Transaktionsverarbeitung optimieren deaktivieren, weist Oracle Forms nur für jede SELECT-Abfrageanweisung einen separaten Cursor zu. Alle anderen impliziten SQL-Anweisungen benutzen Cursor gemeinsam bzw. verwenden die Cursor erneut. Dadurch wird Speicherplatz gespart, wird jedoch auch die Verarbeitung verlangsamt, da alle INSERT-, UPDATE-, DELETE- und SELECT FOR UPDATE-Anweisungen bei jeder Ausführung analysiert werden müssen.


Abfragemodus

Ruft die Form im Abfragemodus auf. Wenn Sie diese Voreinstellung einschalten, ist dies gleichbedeutend mit der Benutzung der vordefinierten Prozedur CALL_FORM(query_only)..


Ton aus

Ruft den Modus Ton aus für die Runform-Sitzung auf. Im Modus Ton aus erzeugen Meldungen kein Akustiksignal. Sie können das Akustiksignal explizit aus einem Trigger auslösen, indem Sie die vordefinierte Prozedur BELL aufrufen. Der Standardwert Ton aus=NEIN bedeutet, daß das Akustiksignal ausgelöst wird. Um das Akustiksignal auszuschalten, aktivieren Sie Ton aus.


Statistics

Zeigt eine Meldung am Ende der Sitzung an, mit der die maximale Anzahl von gleichzeitigen Cursorn angegeben wird, die während der Sitzung benutzt wurden. Diese Meldung wird auf dem Terminal-Bildschirm ausgegeben und nicht in der Meldungszeile.

Mit dieser Voreinstellung wird auch der folgende Befehl an die Datenbank ausgegeben:

ALTER SESSION SET SQL_TRACE TRUE

Dieser Befehl aktiviert die SQL-Trace-Funktion für die aktuelle Sitzung, wobei der Ordner der Trace-Datei auf dem Server angezeigt wird.

Wenn Sie eine Form im Designer ausführen und diese Funktion benutzen möchten, aktivieren Sie die Voreinstellung Statistik Runform.


Formatzeileneinstellungen

Beschreibung:

Im Dialogfeld Formatzeileneinstellungen können Sie Optionen für Formatzeileneinheiten, Rasterdefinition und Sprungpunkte angeben.

Dieses Dialogfeld enthält:

Anzahl Rasterpunkte	Mit der Option Anzahl Rasterpunkte pro Rasterlinienabstand wird angegeben, wie viele Rasterpunkte für jede Rasterlinie vorhanden sind. Rasterpunkte werden in einem Click-and-Drag-Layout benutzt, wenn die Option Rasterpunkt (unter dem Menü Ansicht) eingestellt ist. Wenn die Einheit z.B. auf Zoll, Rasterlinienabstand auf 1 und Anzahl Rasterpunkte pro Rasterlinienabstand auf 8 eingestellt ist, befindet sich in einem Abstand von einem Achtel Zoll jeweils ein Rasterpunkt. Wenn die Option Anzahl Rasterpunkte pro Rasterlinienabstand auf 2 eingestellt ist, befinden sich die Rasterpunkte in einem Abstand von einem halben Zoll. Wählen Sie 1, wenn die Rasterpunkte mit den Rasterlinien zusammenfallen sollen. Mit dieser Funktion können Sie ein Raster erstellen, das genauer ist als die Rasterlinien, die mit der Option Rasterlinienabstand definiert werden. Aktivieren Sie die Option Anderer, und geben Sie einen Wert in das Textfeld Anderer ein, um eine benutzerdefinierte Zahl anzugeben.
Einheiten	Mit Einheiten wird die Maßeinheit angegeben, die für die Formatzeilen im Layouteditor verwendet wird. Die Standardeinheit ist die Einheit, die für die aktive Form definiert ist, wie mit dem Attribut Koordinatensystem der Form angegeben.
Größe der Zeicheneinheit (Punkt)	Mit Größe der Zeicheneinheit können Sie Höhe und Breite einer Zeicheneinheit definieren, wenn für die Option Einheiten Zeicheneinheit angegeben wurde. Breite und Höhe werden in Punkt ausgedrückt. Wenn das Attribut Formkoordinaten des Formmoduls auf Zeicheneinheit eingestellt ist, werden für Breite und Höhe der Zeicheneinheiten im Layouteditor Breite und Höhe der Zeicheneinheiten in der Form benutzt.
Rasterlinienabstand	Mit Rasterlinienabstand wird der Abstand (gemessen in Formatzeileneinheiten wie im Feld Einheit angegeben) zwischen den Rasterlinien angegeben, die im Layouteditor gezeichnet werden. Wenn die Formatzeileneinheit z.B. Zoll beträgt und ein Rasterlinienabstand von 5 angegeben wird, sehen Sie alle 5 Zoll eine Rasterlinie. Ein Rasterlinienabstand von 0,25 führt zu vier Rasterlinien pro Formatzeileneinheit (bei den obigen Bedingungen z.B. eine Rasterlinie pro Viertel Zoll).


Layouteinstellungen

Beschreibung:

Mit dem Dialogfeld Layouteinstellungen können Sie Größe und Format des Arbeitsbereichs im Layouteditor angeben.

Der Arbeitsbereich ist der Bereich im Fenster des Layouteditors, in dem Sie Objekte sowie Grafiktext und Bilder erstellen und bearbeiten. Die Größe des Arbeitsbereichs ist unabhängig von der aktuellen Größe des Layouteditor-Fensters. Das heißt, der Arbeitsbereich kann größer oder kleiner als der Inhaltsbereich des Fensters sein. Wenn der Arbeitsbereich größer ist als das Layouteditor-Fenster, können Sie einen Bildlauf durch das Fenster vornehmen, um andere Teile des Arbeitsbereichs anzuzeigen.

Dieses Dialogfeld enthält:

Layoutgröße	Definierte Höhe und Breite des Arbeitsbereichs in Zoll oder Zentimetern. Der Arbeitsbereich ist der Bereich im Layouteditor-Fenster, in dem Sie Objekte und Boilerplate-Objekte erstellen können. Wenn Rasterlinien angezeigt werden, werden die Linien des Rasters innerhalb der Grenzen des Arbeitsbereichs angezeigt. Objekte, die Sie außerhalb des Arbeitsbereichs erstellen, werden möglicherweise nicht korrekt angezeigt.
Seitenformat	Gibt das Format an, in dem die Seiten gedruckt werden, wenn Sie den Befehl Drucken Fenster ausführen. Als Seitenformat kann das Hoch- oder Querformat gewählt werden.
Winkelradius	Definiert die für die Layoutgröße zu verwendenden Maßeinheiten.


Dialogfeld Allgemeine Zeichnenoptionen

Beschreibung:

Mit dem Dialogfeld Allgemeine Zeichnenoptionen können Sie allgemeine Zeichnenoptionen festlegen.

Dieses Dialogfeld enthält:

Linienende	Gibt an, wie die Endpunkte von Linien gerendert werden sollen (Verkürzt, Rund oder Verlängert).
Objekterstellung	Bestimmt, wie neue Objekte gezeichnet werden, wenn Sie mit einem Grafik- oder Objektwerkzeug klicken und ziehen. Wählen Sie Von der Ecke zeichnen, wenn der erste Mausklick die Ecke der Umrandung eines neuen Objekts markieren soll. Wählen Sie Von der Mitte zeichnen, wenn der erste Mausklick die Mitte der Umrandung eines neuen Objekts markieren soll.
Verknüpfungsart	Gibt an, wie die Kanten von Rechtecken gerendert werden sollen (Rund, Abgerundet oder Auf Gehrung).
Verwendungshinweise

Die allgemeinen Zeichnenoptionen, die Sie auswählen, werden für die gerade ausgewählten Objekte angewendet und werden zum Standardwert für Objekte, die Sie danach erstellen.


Dialogfeld Bogen-Zeichnenoptionen

Beschreibung:

Mit dem Dialogfeld Bogen-Zeichnenoptionen können Sie das Standarderscheinungsbild von Bogenobjekten festlegen.

Dieses Dialogfeld enthält:

Begrenzungslinie	Bestimmt, ob Bogen offen oder geschlossen gezeichnet werden. Wählen Sie Geschlossen, wenn der Rand des Bogens auf dem ganzen Umfang des Füllbereichs des Bogenobjekts gerendert werden soll. Wählen Sie Offen, wenn der Rand des Bogens den Bogen selbst umschreiben soll.
Bogenfüllung	Bestimmt, wie der Füllbereich des Bogens gezeichnet wird. Wählen Sie Kreis, wenn die Füllung vom Mittelpunkt des von dem Bogen beschriebenen Kreises gerendert werden soll. Wählen Sie Bogen, wenn die Füllung innerhalb eines Liniensegments zwischen den beiden Endpunkten des Bogens gerendert werden soll.
Die Bogen-Zeichnenoptionen werden für die gerade ausgewählten Bogenobjekte angewendet und werden zum Standard für Bogen, die Sie danach erstellen.

Verwendungshinweise

Sie können den Füllbereich eines Bogens verbergen, indem Sie das transparente Muster für den Füllbereich anwenden.


Dialogfeld Text-Zeichnenoptionen

Beschreibung:

Mit dem Dialogfeld Text-Zeichnenoptionen können Sie die Optionen festlegen, die sich auf die Anzeige von Textobjekten auswirken.

Dieses Dialogfeld enthält:

Feste Umrandung	Bestimmt, ob die Umrandung eines Textobjekts unabhängig von dem Text skaliert werden kann, der in der Umrandung enthalten ist, wenn das Kontrollkästchen Skalierbare Umrandung ausgewählt ist. Wenn das vorliegende Kontrollkästchen nicht ausgewählt ist, ändert sich die Größe der Umrandung eines Textobjektes nur, wenn sie an die Größe des Textes angepaßt werden muß.
Horizontal	Gibt an, wie Objekte horizontal ausgerichtet werden (Links, Mitte oder Rechts).
Skalierbare Schriftarten	Bestimmt, ob der Text in einem Textobjekt proportional skaliert wird, wenn das Objekt selbst skaliert wird.
Skalierbare Umrandung	Bestimmt, ob die Umrandung von Textobjekten skaliert werden kann. Diese Option ist deaktiviert, wenn das Kontrollkästchen Feste Umrandung nicht ausgewählt ist. Wenn die Option Skalierbare Umrandung ausgewählt ist, können Sie Textobjekte mit dem Textwerkzeug erstellen, indem Sie klicken und ziehen, bis die Umrandung die gewünschte Größe hat. Im Textmodus eingegebener Text wird nach Bedarf umbrochen, damit der Text innerhalb der Umrandung bleibt.
Umbruch	Wenn das Kontrollkästchen Feste Umrandung eingeschaltet ist, bestimmt die Option Umbruch, ob Text in einem Textobjekt auf die nächste Zeile umbrochen wird, damit er in die Umrandung paßt.
Unsichtbarer Text	Bestimmt, ob der Text in einem Textobjekt sichtbar oder verborgen ist.
Vertikal	Gibt an, wie Textobjekte vertikal ausgerichtet werden (Oben, Mitte oder Unten).
 Verwendungshinweise

Die Text-Zeichnenoptionen werden nur für die momentan ausgewählten Textobjekte angewendet und werden für Textobjekte, die danach erstellt werden, zum Standard.


Dialogfeld Zeichnenoptionen für abgerundete Rechtecke

Beschreibung:

Mit dem Dialogfeld Bild-Zeichnenoptionen können Sie das Erscheinungsbild von Bildern festlegen.

Dieses Dialogfeld enthält:

Einheiten	Gibt die Maßeinheit (Zoll, Zentimeter oder Punkt) an.
Winkelradius	Gibt die Rundung an, die Oracle Forms beim Zeichnen der Ecken eines Boilerplate-Objekts in Form eines abgerundeten Rechtecks verwendet. Sie können sowohl den horizontalen als auch den vertikalen Radius in Zoll, Zentimetern oder Punkt angeben. Größere Werte vergrößern die Rundung bei jeder Ecke.
Verwendungshinweise

Die Zeichnenoptionen für abgerundete Rechtecke werden für die momentan ausgewählten Rechteckobjekte angewendet und werden für nachher erstellte Rechteckobjekte zum Standard.


Dialogfeld Bild-Zeichnenoptionen

Beschreibung:

Mit dem Dialogfeld Bild-Zeichnenoptionen können Sie das Erscheinungsbild von Bildern festlegen.

Dieses Dialogfeld enthält:

Bild-Dithering	Gibt an, ob Form Builder das Bild dithert. Beim Dithering simuliert Oracle Forms Farben, die in dem Bild angezeigt werden, jedoch in der aktuellen Farbpalette nicht verfügbar sind. Wenn das Bild nicht gedithert wird, verwendet Form Builder statt dessen verfügbare Farben, die den Farben in dem Bild so nahe wie möglich kommen. Ein gedithertes Bild sieht besser aus, der Bildschirm wird jedoch langsamer neu gezeichnet.
Bildqualität	Gibt die Qualität an, mit der Oracle Forms das Bild anzeigt. Eine höhere Bildqualität sieht besser aus, wird jedoch langsamer gezeichnet.


Voreinstellungen

Register Allgemein

Speichern vor Generieren

Generieren vor Ausführen

Hinweise unterdrücken

Systemeditor benutzen

Farbpalette

Farbmodus

Drucker

Register Zugriff

Zugriff

Pfad für das Einordnen in Unterklassen

Register Assistenten

Willkommen-Dialogfeld

Register des Willkommen-Dialogfeldes

Register Laufzeit

Datensätze in Datei puffern

Debug-Meldungen

Array-Verarbeitung

SQL-Verarbeitung optimieren

Transaktionsverarbeitung optimieren

Statistics

Blockmenü anzeigen

Abfragemodus

Ton aus

HTML-Dateiname


Voreinstellungen - Register Zugriff

Zugriff

Pfad für das Einordnen in Unterklassen


Voreinstellungen - Register Assistenten

Willkommen-Dialogfeld

Register des Willkommen-Dialogfeldes


Voreinstellungen - Register Laufzeit

Datensätze in Datei puffern

Debug-Meldungen

Array-Verarbeitung

SQL-Verarbeitung optimieren

Transaktionsverarbeitung optimieren

Statistics

Blockmenü anzeigen

Abfragemodus

Ton aus

HTML-Dateiname


Über Module

  Verwandte Themen

Form Builder-Anwendungen bestehen aus einzelnen Anwendungskomponenten, die als Module bezeichnet werden. In Form Builder gibt es vier Arten von Modulen:

Formmodul	Eine Sammlung von Objekten und Coderoutinen. Objekte, die in einem Formmodul definiert werden können, umfassen Fenster, Textobjekte (Felder), Kontrollkästchen, Schaltflächen, Meldungsfelder, Listenwerte und Blöcke mit PL/SQL-Code, die als Trigger bezeichnet werden.

Menümodul 	Eine Sammlung von Menüs (ein Hauptmenüobjekt und eine bestimmte Anzahl von Untermenüobjekten) und Menübefehle, die ein Anwendungsmenü bilden.

PL/SQL-Bibliotheksmodul	Eine Sammlung von benutzerdefinierten Prozeduren, Funktionen und Paketen, die aus anderen Modulen in der Anwendung aufgerufen werden können.

Objektbibliotheksmodul	Eine Sammlung von Objekten, mit denen Anwendungen entwickelt werden können.

Sie können eine einzelne Anwendung aus mehreren Form-, Menü- und Bibliotheksmodulen nach Bedarf erstellen. Module können in einem Dateisystem oder der Datenbank gespeichert werden und können zwischen den Binär-, Text- und kompilierten ausführbaren Formaten konvertiert werden.


Über Modul-Dateiformate

  Verwandte Themen

Form-, Menü- und Bibliotheksmodule, die in Form Builder erstellt werden, werden im Binärformat gespeichert, können in Dateien oder in der Datenbank gespeichert werden, und sind plattformübergreifend portierbar.

Wenn Sie ein Binärmodul kompilieren, erstellt Form Builder eine plattformspezifische ausführbare Datei. Sie können auch den Forms Compiler benutzen und eine für den Benutzer lesbare Textdatei erstellen, die plattformübergreifend portierbar ist.

In der folgenden Tabelle werden die Dateinamenerweiterungen für jeden Modultyp und das Speicherformat dargestellt.

Module	Binär (Entwurf)	Text	Ausführbare Datei
Form	.FMB	.FMT	.FMX
Menü	.MMB	.MMT	.MMX
PL/SQL-Bibliothek	.PLL	.PLD	.PLX, .PLL
Objektbibliothek	.OLB	.OLT	NA

Die Standard-Dateinamenerweiterungen geben den Modultyp und das Speicherformat an:

.FMB	Formmodul Binär
.FMT	Formmodul Text
.FMX	Formmodul Ausführbar
.MMB	Menümodul Binär
.MMT	Menümodul Text
.MMX	Menümodul Ausführbar
.PLL	PL/SQL-Bibliotheksmodul Binär
.PLD	PL/SQL-Bibliotheksmodul Text
.PLX	PL/SQL-Bibliotheksmodul Ausführbar (enthält keine Quelle)
.OLB	Objektbibliotheksmodul Binär
.OLT	Objektbibliotheksmodul Text


Über das Kompilieren von Modulen

  Verwandte Themen

Bevor Sie eine Anwendung ausführen können, müssen Sie eine ausführbare .FMX-Datei aus der .FMB-Entwicklungsdatei kompilieren, die Sie in Form Builder erstellt haben. Wenn Sie ein Form- oder Menümodul generieren, werden alle nicht kompilierten Programmblöcke kompiliert und wird eine ausführbare Datei erstellt.

Wenn die Voreinstellung Generieren vor Ausführen auf Ja eingestellt ist (Standardeinstellung), kompiliert Form Builder implizit eine Form, wenn der Befehl Programm [image] Form ausführen ausgegeben wird. Forms können auch explizit aus Form Builder oder aus der Befehlszeilenschnittstelle kompiliert werden.

Wenn Sie eine Form kompilieren, kompiliert Form Builder den gesamten nicht kompilierten PL/SQL-Code, der in der Form enthalten ist. Bei Kompilierungsfehlern kommt es zu einem Abbruch der Generierung. In diesem Fall wird das Dialogfeld Generierungsfehler mit den entsprechenden Fehlermeldungen angezeigt. Standardmäßig kompiliert Form Builder bei jeder Ausgabe des Kompilierungsbefehls nur die Programmblöcke, die momentan als nicht kompiliert markiert sind.

Damit eine Anwendung mit mehreren Modulen zur Laufzeit erfolgreich eingesetzt werden kann, müssen alle von der Form benutzten .FMX-, .MMX- und .PLX-Dateien bereitstehen.


Über das Kompilieren von Bibliotheken

  Verwandte Themen

Im Gegensatz zu Form- und Menümodulen müssen Bibliotheksmodule nicht explizit kompiliert werden, um eine separate ausführbare Datei zu erstellen. Die .PLL-Bibliotheksdatei, mit der Sie in Form Builder arbeiten, umfaßt sowohl den beim Entwurf erforderlichen Quellcode als auch den kompilierten ausführbaren Code, der zur Laufzeit erforderlich ist. Sie müssen die .PLL-Version der Bibliothek benutzen, wenn Sie mit dem Debugger den Quellcode innerhalb der kompilierten Programmblöcke anzeigen möchten.

Wenn eine Bibliothek einer Form, einem Menü oder einer anderen Bibliothek in Form Builder zugeordnet ist, ist die .PLL-Version der Bibliothek ebenfalls zugeordnet. Um die Anwendung aus Form Builder auszuführen, müssen Sie nur sicherstellen, daß die Unterprogramme und vordefinierten Prozeduren in der Bibliothek kompiliert wurden. (Siehe Alle Einheiten in einem Modul kompilieren.)

Wenn Sie die Anwendung einsetzen möchten, können Sie eine .PLX-Bibliotheksdatei aus der .PLL-Bibliotheksdatei kompilieren. Die .PLX-Datei umfaßt die Quellcode-Komponente nicht, die Bestandteil der .PLL-Datei ist. Sie können eine .PLX-Datei aus Form Builder oder aus der Befehlszeile kompilieren.

Wenn Sie einem Modul in Form Builder eine Bibliothek zuordnen, ordnen Sie die .PLL-Version der Bibliothek zu. Zur Laufzeit sucht Form Builder nach einer .PLX-Datei mit diesem Namen in den Standardsuchpfaden. Wenn keine .PLX-Datei vorhanden ist, sucht Form Builder nach der .PLL-Datei mit diesem Namen.


Über das Koordinatensystem

  Verwandte Themen

Mit dem Koordinatensystem, das Sie für ein Formmodul ausgewählt haben, werden die Maßeinheiten definiert, die bei der Angabe von Größen- und Positionskoordinaten für Objekte in der Form benutzt werden. Die Koordinateneinheiten einer Form können auf Zeicheneinheiten oder reelle Einheiten (Zentimeter, Zoll, Pixel oder Punkt) festgelegt werden. Die Standardeinheit ist Punkt.

Sie geben Größen- und Positionskoordinaten für Objekte in Form Builder und programmgesteuert zur Laufzeit an. Wenn Sie Größe und Position von Objekten programmgesteuert ändern, interpretiert Form Builder Werte in den aktuellen Koordinateneinheiten der Form. Wenn für ein Fenster die Koordinateneinheiten auf Punkt festgelegt sind, können Sie die Größe eines Fensters z.B. mit der vordefinierten Prozedur RESIZE_WINDOW wie unten dargestellt ändern:

Resize_Window('my_window',20,25);

Zur Laufzeit werden die Breiten- und Höhenwerte (20 bzw. 25) als Punkt interpretiert, den Koordinateneinheiten der aktuellen Form.


Richtlinien zur Auswahl von Koordinateneinheiten

  Verwandte Themen

Es wird empfohlen, die Koordinateneinheiten festzulegen, bevor Sie die Anwendungsoberfläche entwickeln und Objekte in die Leinwand setzen. Bei der Auswahl von Koordinateneinheiten berücksichtigen Sie die Laufzeitplattformen, auf denen die Anwendung eingesetzt wird. Generell gilt, wenn Ihre Anwendung sowohl auf GUI- als auch auf Zeichenmodussystemen läuft, sollten Sie Zeicheneinheiten verwenden.

Wenn Ihre Anwendung nur auf GUI-Plattformen läuft, wie z.B. Microsoft Windows, wird die Auswahl des Koordinatensystems in erster Linie von Ihren persönlichen Wünschen bestimmt. Wenn Sie die Anwendung auf mehreren GUI-Plattformen einsetzen oder die Anwendung auf derselben Plattform einsetzen, jedoch mit unterschiedlichen Bildschirmgrößen oder -auflösungen, sollten Sie Pixel nicht als Koordinateneinheit verwenden.


Über die Benutzung des Zeicheneinheiten-Koordinatensystems

  Verwandte Themen

Wenn Sie eine Form in Zeicheneinheiten entwickeln, werden alle Objektdimensionen und Positionskoordinaten in Zeicheneinheiten ausgedrückt, die als Ganzzahlen dargestellt werden. Form Builder akzeptiert nur Ganzzahlen bei Größen- und Positionsattributen und rundet auf die nächste Ganzzahl auf. Wenn z.B. der Wert des Breitenattributs für ein Textobjekt auf 12,5 Zeicheneinheiten festgelegt wird, rundet Form Builder den Wert des Attributs Breite automatisch auf 13 Zeicheneinheiten auf.

Wenn für Koordinatensystem Zeicheneinheit angegeben wurde, wird in den Attributen Breite/Höhe der Zeicheneinheit die tatsächliche Größe einer Zeicheneinheit in den aktuellen reellen Einheiten dargestellt. Die Größe der Zeicheneinheit basiert auf der Größe der Standardschriftart des beim Entwurf benutzten Geräts. Die Werte des Attributs Breite/Höhe der Zeicheneinheit können nicht geändert werden.

Wenn Sie im Layouteditor mit Zeicheneinheiten arbeiten, kann es zu unerwarteten Ergebnissen kommen, insbesondere, wenn Sie Objekte, Grafiktext und Bilder mit der Maus ziehen und positionieren. Die Benutzung von Zeicheneinheiten erzeugt eine Art "Rastersprung"-Effekt, wobei die Rasterschritte der Größe einer Zeicheneinheit entsprechen.


Über die Benutzung des Koordinatensystems mit reellen Einheiten

  Verwandte Themen

Die Attribute Breite/Höhe der Zeicheneinheit geben die Abmessungen der Standardschriftart in reellen Einheiten an. Wenn Sie mit reellen Einheiten entwickeln und die Standardschriftart in Ihrer Form benutzen möchten, sollten Sie sich diese Abmessungen merken, während Sie Objekte und Boilerplate-Grafiken erstellen, mit denen Text angezeigt wird.

Wenn Sie mit reellen Einheiten arbeiten, müssen Sie sicherstellen, daß Breite und Höhe der Umrandung des Textobjektes mit der Größe der Schriftart für das Textobjekt kompatibel sind. Beachten Sie auch, daß bei einigen Plattformen eine vorhandene Objektumrandung den für die Anzeige von Text verfügbaren Platz reduziert. Wenn Sie z.B. das Attribut Umriß eines Textobjekts festlegen, kann dadurch die Anzahl von Zeichen reduziert werden, die mit dem Objekt angezeigt werden können.


Über das Konvertieren von Koordinatensystemeinheiten

  Verwandte Themen

Wenn Sie das Koordinatensystem für eine bestehende Form ändern, konvertiert Form Builder die gesamten Objektgrößen- und -positionswerte in die neuen Maßeinheiten.

Bei der Konvertierung zu anderen Einheiten kann es zu einem gewissen Genauigkeitsverlust kommen. Wenn Sie von einer reellen Einheit zu einer anderen konvertieren, ist der Genauigkeitsverlust im allgemeinen nicht von Bedeutung. Wenn Sie jedoch von reellen Einheiten zu Zeicheneinheiten konvertieren, kann sich dies auf das Layout der Form auswirken. Form Builder rundet alle Werte auf den nächsten Wert der Zeicheneinheit und kann Größe und Position von Objekten auf Ihrer Oberfläche sichtbar verändern.

Hinweis: Form Builder konvertiert Größen- oder Positionswerte, die in PL/SQL-Code angegeben werden (Trigger, Unterprogramme usw.) nicht automatisch. Form Builder interpretiert diese Werte in den Koordinateneinheiten, die zur Laufzeit wirksam sind.

Angenommen, Sie haben eine Form, bei der die Maßeinheiten des Koordinatensystems mit Pixel angegeben werden, die PL/SQL-Code enthält, der die Breite eines Textfeldes in der Form explizit um 3 Einheiten ändert, und das Koordinatensystem in Form von reellen Einheiten wird danach von Pixel in Zoll geändert. In diesem Fall ändert der Code bei der Ausführung die Breite des Textfeldes um 3 Zoll.


Über die Skalierung von Standardschriftarten

  Verwandte Themen

Das Attribut Skalierung Standardschriftart gilt nur, wenn das Zeicheneinheiten-Koordinatensystem benutzt wird. Dieses Attribut ist standardmäßig auf Ja eingestellt, so daß Form Builder alle Größen- und Positionsabmessungen relativ zur Größe der Standardschriftart auf dem aktuellen Rechner skaliert.

Wenn Sie zur Laufzeit denselben Rechner verwenden, bleibt die Einstellung von Skalierung Standardschriftart auf Ja oder Nein wirkungslos. Wenn eine Form jedoch auf einem anderen Laufzeitrechner eingesetzt wird, wird mit dem Attribut Skalierung Standardschriftart bestimmt, ob Größen- und Positionsabmessungen relativ zu der Standardschriftart des Laufzeitrechners oder relativ zu der Größe skaliert werden, die mit den Werten Breite/Höhe der Zeicheneinheit im Meldungsfeld Koordinaten-Info angegeben wird.

•	Wenn für Skalierung Standardschriftart Ja angegeben wird, skaliert Form Builder Objekte entsprechend der Größe der Standardschriftart zur Laufzeit. Bei dieser Einstellung werden Textobjekte und andere Objekte größer oder kleiner entsprechend der Größe der Standardschriftart zur Laufzeit.

•	Wenn für Skalierung Standardschriftart Nein angegeben wird, ignoriert Form Builder die Laufzeit-Schriftart und skaliert Objekte entsprechend der Größe der Standardschriftart bei der Entwicklung. Dies kann dazu führen, daß Objekte und Boilerplate-Grafiken scheinbar unabhängig von der Standardschriftart zur Laufzeit skaliert werden. Ein Textobjekt kann z.B. wesentlich kleiner oder größer als die Zeichen erscheinen, die in dem Objekt angezeigt werden.


Koordinatensystem angeben

  Verwandte Themen

So geben Sie das Koordinatensystem für eine Form an:

1	Doppelklicken Sie im Objektnavigator auf das Symbol für das Formmodul-Objekt, um die Attributpalette anzuzeigen.

2	Doppelklicken Sie in der Attributpalette auf das Attribut Koordinatensystem, um das Dialogfeld Koordinatensystem anzuzeigen.

3	Wenn Sie Zeicheneinheiten benutzen möchten, stellen Sie das Attribut Koordinatensystem auf Zeichen ein. Wenn Sie reelle Einheiten benutzen möchten, stellen Sie das Koordinatensystem auf Reell ein und wählen dann die gewünschten Einheiten aus der Dropdown-Liste Reelle Einheit.


Modul kompilieren, um eine ausführbare Datei zu erstellen

  Nächster Schritt	    Verwandte Themen

So kompilieren Sie ein Modul aus Form Builder:

1	Das zu kompilierende Modul muß in Form Builder geöffnet sein. Wenn mehr als ein Modul geöffnet ist, machen Sie das gewünschte Modul zum aktuellen Modul, indem Sie ein Objekt auswählen, das in dem Modul enthalten ist.

2	Wählen Sie Datei [image] Verwaltung [image] Datei kompilieren.

Nachdem die Generierung erfolgreich abgeschlossen ist, wird die Meldung "Modul erfolgreich kompiliert" in der Statusleiste angezeigt.


Module automatisch kompilieren

  Verwandte Themen

So kompilieren Sie eine Form automatisch aus Form Builder:

1	Wählen Sie Werkzeuge [image] Voreinstellungen.

2	Wählen Sie die Voreinstellung Generieren vor Ausführen (Standardeinstellung) aus.

3	Machen Sie die auszuführende Form zum aktiven Modul.

4	Wählen Sie Programm [image] Form ausführen [image] Client/Server (oder Web).

Form Builder kompiliert implizit und führt dann die angegebene Form aus.

Hinweis:  Wenn Sie eine Form ausführen, während die Voreinstellung Generieren vor Ausführen auf Ja eingestellt ist, wird kein Menü bzw. keine Bibliothek kompiliert, die dieser Form zugeordnet ist. Sie müssen Menüs und Bibliotheken explizit mit dem Befehl Datei [image] Verwaltung [image] Datei kompilieren kompilieren.


Alle Einheiten in einem Modul kompilieren

  Verwandte Themen

So kompilieren Sie alle Programmblöcke in einem Modul explizit:

1	Klicken Sie auf ein Modul, eine Form, ein Menü oder eine PL/SQL-Bibliothek im Objektnavigator.

2	Wählen Sie Programm [image] Kompilieren [image] Alles.


.PLL-Bibliothek kompilieren

So kompilieren Sie eine .PLL-Bibliothek:

In Form Builder:

1	Wählen Sie die Bibliothek im Objektnavigator.

2	Wählen Sie Programm [image] Kompilieren [image] Alles.

- Oder -

Wenn Sie Forms Compiler verwenden, benutzen Sie die Optionen module_type und compile_all, wie nachfolgend dargestellt:

ifcmp60 mylib.PLL [user ID/password] module_type=library compile_all=yes


Module erstellen

  Nächster Schritt	    Verwandte Themen

So erstellen Sie ein Modul:

1	Klicken Sie im Objektnavigator auf den gewünschten Knoten, d.h. Forms, Menüs, Bibliotheken oder Objektbibliotheken.

2	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.


Module öffnen

  Verwandte Themen

So öffnen Sie ein Modul:

1	Wählen Sie Datei [image] Öffnen, um das Datei- oder Datenbank-Dialogfeld anzuzeigen.

2	Wählen Sie das zu öffnende Modul, und klicken Sie auf OK.

Ein Modul, das in Form Builder geöffnet wurde, wird unter dem entsprechenden Knoten (Form, Menü, Bibliothek oder Objektbibliothek) im Objektnavigator angezeigt.


Module speichern

  Verwandte Themen

So speichern Sie ein Modul:

 Wählen Sie Datei [image] Speichern.

Wenn Sie das Modul das erste Mal speichern, wird das Datei- oder Datenbank-Dialogfeld angezeigt, in dem Sie einen Namen für das Modul angeben können. Wenn Sie ein bestehendes Modul speichern, überschreibt Form Builder die vorher gespeicherte Version durch die aktuelle Version.

Hinweis: Wenn Sie mit mehreren Modulen gleichzeitig arbeiten, verfolgt Form Builder die Änderungen, die Sie an jedem Modul vornehmen, separat. Wenn Sie einen Befehl Speichern ausgeben, wird nur das aktuelle Modul gespeichert.


Module schließen

So schließen Sie ein Modul:

1	Wählen Sie ein Objekt in dem Modul, das Sie schließen möchten.

2	Wählen Sie Datei [image] Schließen.


Module löschen

So löschen Sie ein in der Datenbank gespeichertes Modul:

1	Wählen Sie Datei [image] Verwaltung [image] Löschen.

2	(Optional) Wählen Sie Liste abrufen, um alle Module anzuzeigen, für die Sie eine Zugriffsberechtigung haben.

3	Geben Sie den Namen des zu löschenden Moduls in das Textfeld Löschen ein, oder wählen Sie ein Modul aus der Liste.

4	Klicken Sie auf OK, um das Modul zu löschen.

Hinweis:  Um ein Modul im Dateisystem zu löschen, benutzen Sie die entsprechenden Dateisystembefehle bei Ihrer Plattform.


Module umbenennen

So benennen Sie ein in der Datenbank gespeichertes Modul um:

1	Wählen Sie Datei [image] Verwaltung [image] Umbenennen.

2	(Optional) Wählen Sie Liste abrufen, um alle Module anzuzeigen, für die Sie eine Zugriffsberechtigung haben.

3	Geben Sie den Namen des umzubenennenden Moduls in das Textfeld Alt ein.

4	Geben Sie einen neuen Namen für das Modul in das Textfeld Neu ein. Bei der Eingabe des Namens geben Sie keine Dateinamenerweiterungen an.

5	Klicken Sie auf OK, um das Modul umzubenennen.

Hinweis:  Um ein Modul im Dateisystem umzubenennen, benutzen Sie die entsprechenden Dateisystembefehle für Ihre Plattform.


Letzte gespeicherte Version eines Moduls wiederherstellen

So stellen Sie die letzte gespeicherte Version eines Moduls wieder her:

 Wählen Sie Datei [image] Wiederherstellen.


Forms im Client-/Server-Modus ausführen

  Nächster Schritt	    Verwandte Themen

So führen Sie eine Form im Client-/Server-Modus aus:

1	Machen Sie das auszuführende Formmodul zum aktuellen Modul, indem Sie ein Objekt in dem Formmodul auswählen.

2	Wählen Sie Programm [image] Form ausführen [image] Client/Server.

Wenn die Voreinstellung Generieren vor Ausführen ausgewählt ist, kompiliert Form Builder zuerst die Form, um eine .FMX-Datei zu erstellen. Danach wird die Form mit Forms Runtime ausgeführt. Wenn Generieren vor Ausführen nicht ausgewählt ist, sucht Form Builder nach einer .FMX-Datei mit demselben Namen wie die aktuelle Form im aktuellen Verzeichnis, bevor die Form mit Forms Runtime ausgeführt wird.


Über die Vorschau von webbasierten Forms

  Verwandte Themen

Wenn Sie Ihre Forms mit der Web-Vorschau ausführen, sehen diese so aus, als würden sie aus einem Web-Server eingesetzt und verhalten sich auch so. Benutzen Sie die Web-Vorschau als ein Werkzeug, mit dem Sie Ihre Web-Forms testen, ohne die Forms konkret auf einem Server einsetzen zu müssen. Die gesamte Web-Funktionalität ist aktiviert, und Sie können eine HTML-Basisdatei erstellen, um die Form mit benutzerdefinierten Applet-Client-Parametern auszuführen. Wenn Sie Ihre eigene HTML-Basisdatei verwenden, können Sie benutzerdefinierte Optionen für die Web-Vorschau angeben, die während der ganzen Entwicklung konstant bleiben.

Weitere Informationen über den Einsatz von Anwendungen auf dem Web, einschließlich dem Erstellen einer HTML-Basisdatei, finden Sie unter Richtlinien für das Generieren von Anwendungen.

Die Web-Vorschau steht im Moment nur bei Microsoft Windows-Plattformen zur Verfügung.


Webbasierte Forms in der Vorschau anzeigen

  Verwandte Themen

So führen Sie eine Form in der Web-Vorschau aus:

1	Machen Sie das auszuführende Formmodul zum aktuellen Modul, indem Sie ein Objekt in dem Formmodul auswählen.

2	Wählen Sie Programm [image] Form ausführen [image] Web,

ODER

Klicken Sie auf die Schaltfläche für die Ausführung der Form auf dem Web [image] im Objektnavigator oder dem Layouteditor.

Wenn die Voreinstellung Generieren vor Ausführen ausgewählt ist, kompiliert Form Builder zuerst die Form, um eine .FMX-Datei zu erstellen. Danach wird die Form mit der Web-Vorschau ausgeführt. Wenn Generieren vor Ausführen nicht ausgewählt ist, sucht Form Builder nach einer .FMX-Datei mit demselben Namen wie die aktuelle Form im aktuellen Verzeichnis, bevor die Form mit der Web-Vorschau ausgeführt wird.

Wenn Sie eine Voreinstellung für einen HTML-Dateinamen angegeben haben, wird diese Datei zur Ausführung der Form in der Web-Vorschau benutzt.

Hinweis: Die Web-Vorschau steht im Moment nur bei Microsoft Windows-Plattformen zur Verfügung.


Forms aus der Befehlszeile ausführen

  Verwandte Themen

So führen Sie eine Form aus der Befehlszeile aus:

Geben Sie den Namen der ausführbaren Forms-Datei (IFRUN60 bei Microsoft Windows) gefolgt von den entsprechenden Parametern ein:

ifrun60 [module_name] [user ID/password] [parameters]

Bei

ifrun60 custform.fmx scott/tiger statistics=yes

So führen Sie eine Form aus dem Programmsymbol aus:

1	Doppelklicken Sie bei Microsoft Windows auf das Symbol Forms Runtime.

2	Geben Sie in dem Dialogfeld den Namen der auszuführenden Form sowie die DB-Adresse ein.

3	Klicken Sie auf OK.

Hinweis:  Ausführbare Menü- und Bibliotheksdateien können nicht unabhängig von Forms ausgeführt werden. Sie werden beim Entwurf durch Einstellung der entsprechenden Attribute mit einer Form verknüpft. Wenn die Form ausgeführt wird, lädt Form Builder die zugehörigen Menü- und Bibliotheksdateien (.MMX- und .PLL-Dateien) nach Bedarf.


Über das Konvertieren von Modulen vom Binär- in das Textformat

  Verwandte Themen

Module können in Form Builder zwischen dem Binär- und Textformat konvertiert werden. So können z.B. Form-, Menü- und Bibliotheksmodule vom Binärformat (.FMB, .MMB, .PLL) in das Textformat (.FMT, .MMT, .PLD) konvertiert werden. Die Textversion eines Moduls ist eine für den Benutzer lesbare Datei, in der die Objekte und der Code beschrieben werden.

Beim Konvertieren eines Moduls wird eine neue Version des Moduls erstellt, wobei die aktuelle Version unverändert bleibt. Wenn z.B. eine binäre Formdatei (.FMB) in eine Textdatei (.FMT) konvertiert wird, sind sowohl die .FMT-Datei als auch die .FMB-Originaldatei verfügbar.

Der Konvertieren-Befehl ruft die Forms Compiler-Komponente von Forms Developer auf.

Hinweis: Oracle unterstützt die Bearbeitung von .FMT-, .MMT- und .PLD-Dateien nicht.


Module vom Binär- in das Textformat konvertieren

  Verwandte Themen

So konvertieren Sie ein Modul:

1	Wählen Sie Datei [image] Verwaltung [image] Konvertieren.

2	Geben Sie Typ und Namen des zu konvertierenden Moduls an. Außerdem geben Sie die Konvertierung an, d.h. Binär-nach-Text (z.B. .FMB [image].FMT) oder Text-nach-Binär (z.B. .FMT [image].FMB).

3	Klicken Sie auf Konvertieren.


Über die Voreinstellungen für den Zugriff

  Verwandte Themen

Module können in dem Dateisystem oder der Datenbank gespeichert bzw. aus dem Dateisystem oder der Datenbank geladen werden, indem die Voreinstellung Zugriff festgelegt wird.

Standardmäßig ist die Voreinstellung Zugriff auf Datei eingestellt, und Form Builder geht davon aus, daß Module aus dem Dateisystem und nicht aus der Datenbank geöffnet werden. Um auf Module zuzugreifen, die in der Datenbank gespeichert sind, muß die Entwicklungsvoreinstellung von Zugriff auf Datenbank oder Fragen eingestellt sein.

Nachdem ein Modul gespeichert wurde, entweder im Dateisystem oder in der Datenbank, bleibt die Änderung der Voreinstellung Zugriff bei nachfolgenden Speichervorgängen für dieses Modul wirkungslos. Ein Modul wird stets in der Quelle gespeichert, aus der es geöffnet wurde oder zuletzt gespeichert wurde.

Dialogfeld Filter  Wenn die Voreinstellung Zugriff auf Fragen eingestellt ist, fordert Form Builder Sie jedesmal auf, den Speicherort (Dateisystem oder Datenbank) und Modultyp anzugeben, wenn Sie ein Modul öffnen oder speichern. Das Dialogfeld Filter enthält die folgenden Optionen:

Objektzugriff:	Legt fest, ob Form Builder das Datei- oder Datenbank-Dialogfeld anzeigt, wenn Sie ein Modul speichern oder öffnen. Stellen Sie diese Option auf Datenbank oder Dateisystem ein.
Anzeige:	Bestimmt, welche Dateien/Module im Datei- oder Datenbank-Dialogfeld angezeigt werden, das aufgerufen wird, wenn Sie ein Modul speichern, öffnen, umbenennen oder löschen. Stellen Sie diese Option auf Alle Dateien, Forms oder Menüs ein.


Voreinstellung Zugriff festlegen

So legen Sie die Voreinstellung Zugriff fest:

1	Wählen Sie Werkzeuge [image] Voreinstellungen.

2	Klicken Sie auf das Register Zugriff.

3	Geben Sie bei Zugriff Datei, Datenbank oder Fragen an.

•	Wählen Sie Datei, wenn alle Module im Dateisystem gespeichert und aus dem Dateisystem geladen werden sollen.

•	Wählen Sie Datenbank, wenn alle Module in der Datenbank gespeichert und aus der Datenbank geladen werden sollen.

•	Wählen Sie Fragen, wenn Form Builder das Dialogfeld Filter anzeigen soll, in dem Sie jedesmal Datei oder Datenbank angeben müssen, wenn Sie ein bestehendes Modul speichern oder öffnen.

4	Klicken Sie auf OK.


Auf fremde Datenquellen zugreifen

  Verwandte Themen

Über Oracle Open Client Adapter (OCA) kann sich die Anwendung bei jeder ODBC-Datenquelle anmelden. Für die unten aufgeführten Datenquellen erhalten Sie spezifische Informationen.

Klicken Sie auf die Datenquelle, auf die Sie zugreifen möchten:

Personal Oracle Lite

Microsoft SQL Server  (Versionen 4.2, 6.0 und 6.5)

Microsoft Access  (Version 2.0 und höher)

Oracle Rdb  (Versionen 5.1, 6.1 und 7.0)

Sybase   (SQL Server Version 4.9, System 10 und System 11)

Tandem NonStop SQL

Informix   (SE und Online Versions 5.x, 6.x und 7.x)


Vorbereitung zur Benutzung von Open Client Adapter (OCA)

  Verwandte Themen

So richten Sie Ihr System zur Benutzung von OCA ein:

1	Installieren Sie die erforderliche Datenbank-Server- und Client-Software, einschließlich Netzwerkbibliotheken. Konfigurieren Sie die Datenbank, erstellen Sie Datenbank-Accounts, und erteilen Sie die entsprechenden Zugriffsberechtigungen für die Benutzer. Beachten Sie, daß bei einigen Einzelbenutzer-, Einzelplatz-Datenquellen, wie z.B. bei Microsoft Access, kein Hinweis auf einen Datenbank-Server und Datenbank-Client vorhanden ist und daß keine besondere Einrichtung erforderlich ist (Sie müssen jedoch die Datenbankdatei erstellen, um Datenbanktabellen zu speichern).

2	Installieren Sie die erforderlichen ODBC-Treiber auf dem Client-Rechner, und konfigurieren Sie die Datenquelle mit dem Microsoft ODBC Administrator (der automatisch mit den Treibern installiert wird). ODBC-Treiber von Intersolv (für SQL Server, Rdb, Sybase, Informix, Ingres und viele andere Datenbanken) können von der Installations-CD installiert werden. Außerdem können Sie Treiber von Microsoft, IBM und anderen Herstellern von ODBC-Treibern verwenden.


Auf Personal Oracle Lite zugreifen

  Verwandte Themen 	  Open oca_info.pdf

So greifen Sie auf Personal Oracle Lite zu:

1	Richten Sie Ihr System zur Benutzung von Open Client Adapter (OCA) ein.

2	Lesen Sie die Versionshinweise und das PDF-Dokument (oca_info.pdf).

3	Führen Sie die SQL-Skripts aus, um Data-Dictionary-Ansichten auf der Serverseite zu erstellen, mit denen Entwurfskomponenten Datenbankobjektnamen zur Auswahl beim Entwurf anzeigen können. Hinweis

UBT32.EXE user/password@ODBC:datasource[:dbname] @sqlscript  Beispiel

Wenn dbname nicht angegeben wird, werden die Ansichten in der 'aktuellen' Datenbank für die ODBC-Anmeldung erstellt.

4.	Starten Sie den Builder.

5	(Optional)  Führen Sie die SQL-Skripts aus, um Demotabellen zu erstellen und aufzufüllen.  Beispiel

6	(Nur Form Builder) Stellen Sie das Attribut Primärschlüssel für jedes Datenobjekt auf Ja ein. Datenobjekte entsprechen Spalten in Ihrer Datenquelle.

7	Wenn Sie bereit sind, sich bei der Datenquelle von Personal Oracle Lite anzumelden, geben Sie die folgende DB-Adresse in das Dialogfeld Anmelden ein:

[user[/password]]@ODBC:datasource[:dbname]  Beispiel

Weitere Informationen über den Zugriff zu Personal Oracle Lite finden Sie unter oca_info.pdf.


Init_Form ist die OPENDB-Routine, die Ihre Attribute auf Formebene automatisch ändert, so daß Sie mit einer ODBC-Datenquelle kommunizieren können.


OCA.PLL ist in dem Verzeichnis ORACLE_HOME\oca20 gespeichert. Damit Form Builder die Datei OCA.PLL finden kann, müssen Sie das Verzeichnis ORACLE_HOME\oca20 zu der Umgebungsvariablen FORMS50_PATH in der Registrierung hinzufügen.


Auf Microsoft SQL Server zugreifen

  Verwandte Themen	  Open oca_info.pdf

So greifen Sie auf Microsoft SQL Server zu:

1	Richten Sie Ihr System zur Benutzung von Open Client Adapter (OCA) ein.

2	Lesen Sie die Versionshinweise und das PDF-Dokument (oca_info.pdf)..

3	Führen Sie die SQL-Skripts aus, um Data-Dictionary-Ansichten auf der Serverseite zu erstellen, mit denen Entwurfskomponenten Datenbankobjektnamen zur Auswahl beim Entwurf anzeigen können. Hinweis

UBT32.EXE user/password@ODBC:datasource[:dbname] @sqlscript  Beispiel

Wenn dbname nicht angegeben wird, werden die Ansichten in der 'aktuellen' Datenbank für die ODBC-Anmeldung erstellt.

4.	Starten Sie den Builder.

5	(Optional)  Führen Sie die SQL-Skripts aus, um Demotabellen zu erstellen und aufzufüllen.  Beispiel

6	(Nur Form Builder) Stellen Sie das Attribut Primärschlüssel für jedes Datenobjekt auf Ja ein. Datenobjekte entsprechen Spalten in Ihrer Datenquelle.

7	Wenn Sie bereit sind, sich bei der Datenquelle von Microsoft SQL Server anzumelden, geben Sie die folgende DB-Adresse in das Dialogfeld Anmelden ein:

[user[/password]]@ODBC:datasource[:dbname]  Beispiel

Weitere Informationen über den Zugriff zu Microsoft SQL Server finden Sie unter oca_info.pdf.


Auf Oracle Rdb zugreifen

  Verwandte Themen 	  Open oca_info.pdf

So greifen Sie auf Oracle Rdb zu:

1	Richten Sie Ihr System zur Benutzung von Open Client Adapter (OCA) ein.

2	Lesen Sie die Versionshinweise und das PDF-Dokument (oca_info.pdf).

3	Führen Sie die SQL-Skripts aus, um Data-Dictionary-Ansichten auf der Serverseite zu erstellen, mit denen Entwurfskomponenten Datenbankobjektnamen zur Auswahl beim Entwurf anzeigen können. Hinweis

UBT32.EXE user/password@ODBC:datasource[:dbname] @sqlscript  Beispiel

Wenn dbname nicht angegeben wird, werden die Ansichten in der 'aktuellen' Datenbank für die ODBC-Anmeldung erstellt.

4.	Starten Sie den Builder.

5	(Optional)  Führen Sie die SQL-Skripts aus, um Demotabellen zu erstellen und aufzufüllen.  Beispiel

6	(Nur Form Builder). Ordnen Sie die Bibliothek OCA.PLL Ihrer Anwendung zu. Erstellen Sie dann einen Pre-Form- oder When-New-Form-Instance-Trigger, der die Routine OPENDB.Init_Form umfaßt.

7	Wenn Sie bereit sind, sich bei der Oracle Rdb-Datenquelle anzumelden, geben Sie die folgende DB-Adresse in das Dialogfeld Anmelden ein:

[user[/password]]@ODBC:datasource[:dbname]  Beispiel

Weitere Informationen über den Zugriff zu Oracle Rbd finden Sie unter oca_info.pdf.


Auf Microsoft Access zugreifen

  Verwandte Themen	  Open oca_info.pdf

So greifen Sie auf Microsoft Access zu:

1	Richten Sie Ihr System zur Benutzung von Open Client Adapter (OCA) ein.

2	Lesen Sie die Versionshinweise und das PDF-Dokument (oca_info.pdf).

3	(Optional) Führen Sie die SQL-Skripts aus, um Demotabellen mit dem UBT-Dienstprogramm zu erstellen und aufzufüllen:

UBT32.EXE user/password@ODBC:datasource[:dbname] @sqlscript  Beispiel

Wenn dbname nicht angegeben wird, werden die Ansichten in der 'aktuellen' Datenbank für die ODBC-Verbindung erstellt.

1. 	Starten Sie den Builder-

1. 	(Nur Form Builder) Stellen Sie das Attribut Primärschlüssel für jedes Datenobjekt auf Ja ein. Datenobjekte entsprechen Spalten in Ihrer Datenquelle.

6	Wenn Sie bereit sind, sich bei der Microsoft Access-Datenquelle anzumelden, geben Sie die DB-Adresse in das Dialogfeld Anmelden ein:

[user[/password]]@ODBC:datasource[:dbname]  Beispiel

Weitere Informationen über den Zugriff zu Microsoft Access finden Sie unter oca_info.pdf.


Auf Sybase zugreifen

  Verwandte Themen 	  Open oca_info.pdf

So greifen Sie auf Sybase zu:

1	Richten Sie Ihr System zur Benutzung von Open Client Adapter (OCA) ein.

2	Lesen Sie die Versionshinweise und das PDF-Dokument (oca_info.pdf).

3	Führen Sie die SQL-Skripts aus, um Data-Dictionary-Ansichten auf der Serverseite zu erstellen, mit denen Entwurfskomponenten Datenbankobjektnamen zur Auswahl beim Entwurf anzeigen können. Hinweis

UBT32.EXE user/password@ODBC:datasource[:dbname] @sqlscript  Beispiel

Wenn dbname nicht angegeben wird, werden die Ansichten in der 'aktuellen' Datenbank für die ODBC-Anmeldung erstellt.

4.	Starten Sie den Builder.

5	(Optional)  Führen Sie die SQL-Skripts aus, um Demotabellen zu erstellen und aufzufüllen.  Beispiel

6.	(Nur Form Builder) Stellen Sie das Attribut Primärschlüssel für jedes Datenobjekt auf Ja ein. Datenobjekte entsprechen Spalten in Ihrer Datenquelle.

5	Wenn Sie bereit sind, sich bei der Sybase-Datenquelle anzumelden, geben Sie die folgende DB-Adresse in das Dialogfeld Anmelden ein.

[user[/password]]@ODBC:datasource[:dbname]  Beispiel

Weitere Informationen über den Zugriff zu Sybase finden Sie unter oca_info.pdf.


Auf Tandem NonStop SQL zugreifen

  Verwandte Themen 	  Open oca_info.pdf

So greifen Sie auf Tandem NonStop SQL zu:

1	Richten Sie Ihr System zur Benutzung von Open Client Adapter (OCA) ein.

2	Lesen Sie die Versionshinweise und das PDF-Dokument (oca_info.pdf).

3	Führen Sie die SQL-Skripts aus, um Data-Dictionary-Ansichten auf der Serverseite zu erstellen, mit denen Entwurfskomponenten Datenbankobjektnamen zur Auswahl beim Entwurf anzeigen können. Hinweis

UBT32.EXE user/password@ODBC:datasource[:dbname] @sqlscript  Beispiel

Wenn dbname nicht angegeben wird, werden die Ansichten in der 'aktuellen' Datenbank für die ODBC-Anmeldung erstellt.

4.	Starten Sie den Builder.

5	(Optional)  Führen Sie die SQL-Skripts aus, um Demotabellen zu erstellen und aufzufüllen.  Beispiel

6.	(Nur Form Builder) Stellen Sie das Attribut Primärschlüssel für jedes Datenobjekt auf Ja ein. Datenobjekte entsprechen Spalten in Ihrer Datenquelle.

7	Wenn Sie bereit sind, sich bei der Datenquelle von Tandem NonStop SQL anzumelden, geben Sie die folgende DB-Adresse in das Dialogfeld Anmelden ein:

[user[/password]]@ODBC:datasource[:dbname]  Beispiel

Weitere Informationen über den Zugriff zu Tandem NonStop SQL finden Sie unter oca_info.pdf.


Auf Informix zugreifen

  Verwandte Themen 	  Open oca_info.pdf

So greifen Sie auf Informix zu:

1	Richten Sie Ihr System zur Benutzung von Open Client Adapter (OCA) ein.

2	Lesen Sie die Versionshinweise und das PDF-Dokument (oca_info.pdf).

3	Führen Sie die SQL-Skripts aus, um Data-Dictionary-Ansichten auf der Serverseite zu erstellen, mit denen Entwurfskomponenten Datenbankobjektnamen zur Auswahl beim Entwurf anzeigen können. Hinweis

UBT32.EXE user/password@ODBC:datasource[:dbname] @sqlscript  Beispiel

Wenn dbname nicht angegeben wird, werden die Ansichten in der 'aktuellen' Datenbank für die ODBC-Anmeldung erstellt.

4.	Starten Sie den Builder.

5	(Optional)  Führen Sie die SQL-Skripts aus, um Demotabellen zu erstellen und aufzufüllen.  Beispiel

6.	(Nur Form Builder) Stellen Sie das Attribut Primärschlüssel für jedes Datenobjekt auf Ja ein. Datenobjekte entsprechen Spalten in Ihrer Datenquelle.

7	Wenn Sie bereit sind, sich bei der Informix-Datenquelle anzumelden, geben Sie die folgende DB-Adresse in das Dialogfeld Anmelden ein:

[user[/password]]@ODBC:datasource[:dbname]  Beispiel

Weitere Informationen über den Zugriff zu Informix finden Sie unter oca_info.pdf.


Über Open Client Adapter (OCA)

 oca_info.pdf öffnen

Mit Oracle Open Client Adapter (OCA) für ODBC können Anwendungen auf Microsoft Windows 3.1, Windows 95/98 und Windows NT auf OBDC-konforme Datenquellen über ODBC-Treiber zugreifen. OCA erfordert, daß der ODBC-Treiber mit ODBC Ebene 1 konform ist. OCA benutzt auch eine bestimmte ODBC-Funktionalität der Ebene 2, um eine bessere Leistung zu erzielen, wenn diese Möglichkeit vom ODBC-Treiber vorgesehen ist.

Mit OCA kann eine Anwendung konsistent auf verschiedene Datenquellen zugreifen. Auf diese Weise kann ein Anwendungsentwickler eine Anwendung erstellen, die ohne Änderung mit einer von mehreren Datenquellen ausgeführt werden kann. Alternativ kann die Anwendung für eine spezifische Datenquelle bestimmt sein und die für dieses System spezifischen Funktionen nutzen.

OCA wird mit dem Oracle-Installer installiert, der alle erforderlichen Dateien in den Ordner ORACLE_HOME kopiert. Eine dieser Dateien ist oca.pll, eine PL/SQL-Bibliothek mit Funktionen, die Sie in Anwendungen benutzen können, um folgende Schritte auszuführen:

•	Zusätzliche Anmeldungen bei anderen Datenquellen neben der Hauptanmeldung der Anwendung.

•	Ausführung beliebiger SQL-Anweisungen und Gespeicherter Prozedur-Aufrufe bei einer beliebigen Anmeldung.

•	Abrufen von Ergebnisgruppen aus fremden gespeicherten Prozeduren.

•	Abrufen der DBMS- und ODBC-Treibernamen und Versionen für eine bestimmte Anmeldung.

•	Automatische Anpassung von Form- und Datenblockattributen zur Laufzeit entsprechend der Datenquelle.

Klicken Sie auf die Schaltfläche [image] am Anfang dieses Themas, um mehr über diese Funktionen zu erfahren.

Weitere Einzelheiten über installierte Dateien finden Sie in den Versionshinweisen.


Standardmäßig ist oca_info.pdf in ORACLE_HOME\TOOLS\DOC60\US installiert. Wenn Adobe Acrobat Reader im Standardverzeichnis installiert ist, klicken Sie auf die Schaltfläche [image] am Anfang dieses Hilfethemas, um dieses Dokument anzuzeigen. Sonst starten Sie den PDF-Viewer, und öffnen Sie oca_info.pdf.


Über das UBT-Dienstprogramm

Oracle Open Client Adapter (OCA) für ODBC umfaßt ein SQL*Plus-ähnliches Dienstprogramm mit der Bezeichnung Universal Backend Tester (UBT). Mit UBT können SQL-Befehle innerhalb des Interpreters oder über Befehlsdateien bearbeitet werden.

Die ausführbare UBT-Datei (UBT32.EXE bei Windows NT und Windows 95/98 und UBT.EXE bei Windows 3.1) ist in ORACLE_HOME\BIN installiert.

Weitere Informationen über Oracle Client Adapter finden Sie unter oca_info.pdf (einschließlich Informationen über das UBT-Dienstprogramm).


Die Versionshinweise zu OCA sind in RELNOTES.TXT auf der Installations-CD enthalten.


Standardmäßig sind die Informationen über den Zugriff zu Personal Oracle Lite in ORACLE_HOME\TOOLS\DOC60\US\\oca_info.pdf installiert. Wenn Adobe Acrobat Reader im Standardverzeichnis installiert ist, klicken Sie auf die Schaltfläche [image] am Anfang dieses Hilfethemas, um dieses Dokument anzuzeigen. Sonst starten Sie PDF-Viewer, und öffnen Sie oca_info.pdf.


Dies ist optional bei der Anwendungsentwicklung und zur Laufzeit nicht obligatorisch. Bei einigen Datenbanken (z.B. Microsoft Access) können Data-Dictionary-Ansichten wegen einer nicht ausreichenden Darstellung der Datenbank-Kataloginformationen und wegen fehlender Unterstützung beim Erstellen von Ansichten nicht erzeugt werden. In diesem Fall können Sie die Namen der Datenbankobjekte beim Entwurf eingeben, anstatt sie aus einer Liste auszuwählen.


Standardmäßig sind die SQL-Skripts für das Erstellen von Data-Dictionary-Ansichten für Personal Oracle Lite in ORACLE_HOME\OCA20\SQL\POLITE installiert:

polvudrp.sql	Entfernt alte Versionen der Ansichten.

polvubld.sql	Erstellt die erforderlichen Ansichten.


UBT32.EXE scott/tiger@ODBC:polite_ds @polvubld.sql


Standardmäßig ist das SQL-Skript für das Erstellen von Demotabellen für Personal Oracle Lite in ORACLE_HOME\OCA20\SQL\POLITE installiert:

poldmbld.sql	Erstellt Demotabellen.

Das SQL-Skript für das Auffüllen von Demotabellen ist in ORACLE_HOME\OCA20\DEMO installiert:

demodata.sql	Fügt Daten in Demotabellen ein.


UBT32.EXE scott/tiger@ODBC:polite_ds @poldmbld.sql


scott/tiger@ODBC:polite_ds


Standardmäßig sind Informationen über den Zugriff zu Microsoft SQL Server in ORACLE_HOME\ TOOLS\DOC60\US\oca_info.pdf installiert. Wenn Adobe Acrobat Reader im Standardverzeichnis installiert ist, klicken Sie auf die Schaltfläche [image] am Anfang dieses Themas, um dieses Dokument anzuzeigen. Sonst starten Sie den PDF-Viewer, und öffnen Sie oca_info.pdf.


Standardmäßig sind die SQL-Skripts für das Erstellen von Data-Dictionary-Ansichten für Microsoft SQL Server in ORACLE_HOME\OCA20\SQL\SQLSRV installiert:

sqsvudrp.sql	Entfernt alte Versionen der Ansichten.

sqsvubld.sql	Erstellt für SQL Server Version 4.2 die erforderlichen Ansichten.

sqs60bld.sql	Erstellt für SQL Server Version 6.0 die erforderlichen Ansichten.


UBT32.EXE scott/tiger@ODBC:sqlserver_ds @sqsvubld.sql


Standardmäßig ist das SQL-Skript für das Erstellen von Demotabellen für Microsoft SQL Server in ORACLE_HOME\OCA20\SQL\SQLSRV installiert:

sqsdmbld.sql	Erstellt Demotabellen.

Das SQL-Skript für das Auffüllen der Demotabellen ist in ORACLE_HOME\OCA20\DEMO installiert:

demodata.sql	Fügt Daten in Demotabellen ein.


UBT32.EXE scott/tiger@ODBC:sqlserver_ds @sqsdmbld.sql


scott/tiger@ODBC:sqlserver_ds


Standardmäßig sind Informationen über den Zugriff zu  Microsoft Access in ORACLE_HOME\ TOOLS\DOC60\US\oca_info.pdf installiert. Wenn Adobe Acrobat Reader im Standardordner installiert ist, klicken Sie auf die Schaltfläche [image] am Anfang dieses Themas, um dieses Dokument anzuzeigen. Sonst starten Sie PDF-Viewer, und öffnen Sie oca_info.pdf.


Standardmäßig ist das SQL-Skript für das Erstellen von Demotabellen für Microsoft Access in ORACLE_HOME\OCA20\SQL\ACCESS installiert:

accdmbld.sql	Erstellt Demotabellen.

Das SQL-Skript für das Auffüllen der Demotabellen ist in ORACLE_HOME\OCA20\DEMO installiert:

demodata.sql	Fügt Daten in Demotabellen ein.


UBT32.EXE scott/tiger@ODBC:access_ds @accdmbld.sql


scott/tiger@ODBC:access_ds


Standardmäßig sind Informationen über den Zugriff zu Oracle Rdb in ORACLE_HOME\ TOOLS\DOC60\US\oca_info.pdf installiert. Wenn Adobe Acrobat Reader im Standardordner installiert ist, klicken Sie auf die Schaltfläche [image] am Anfang dieses Hilfethemas, um dieses Dokument anzuzeigen. Sonst starten Sie PDF-Viewer, und öffnen Sie oca_info.pdf.


Standardmäßig sind die SQL-Skripts für das Erstellen von Data-Dictionary-Ansichten für Oracle Rdb in ORACLE_HOME\OCA20\SQL\RDB installiert:

rdbvudrp.sql	Entfernt alte Versionen der Ansichten.

rdbvubld.sql	Erstellt die erforderlichen Ansichten.

rdbdual.sql	Erstellt View Dual (zur Unterstützung von SYSDATE).


UBT32.EXE scott/tiger@ODBC:rdb_ds @rdbvubld.sql


Standardmäßig ist das SQL-Skript für das Erstellen von Demotabellen für Oracle Rdb in ORACLE_HOME\OCA20\SQL\RDB installiert:

rdbdmbld.sql	Erstellt Demotabellen.

Das SQL-Skript für das Auffüllen der Demotabellen ist in ORACLE_HOME\OCA20\DEMO installiert:

demodata.sql	Fügt Daten in Demotabellen ein.


UBT32.EXE scott/tiger@ODBC:rdb_ds @rdbdmbld.sql


scott/tiger@ODBC:rdb_ds


Standardmäßig sind Informationen über den Zugriff zu Sybase in ORACLE_HOME\TOOLS\DOC60\oca_info.pdf installiert. Wenn Adobe Acrobat Reader im Standardordner installiert ist, klicken Sie auf die Schaltfläche [image] am Anfang dieses Themas, um dieses Dokument anzuzeigen. Sonst starten Sie PDF-Viewer, und öffnen Sie oca_info.pdf.


Standardmäßig sind die SQL-Skripts für das Erstellen von Data-Dictionary-Ansichten für Sybase in ORACLE_HOME\OCA20\SQL\SYBASE installiert:

sybvudrp.sql	Entfernt alte Versionen der Ansichten.

sybvubld.sql	Erstellt die erforderlichen Ansichten.


UBT32.EXE scott/tiger@ODBC:sybase_ds @sybvubld.sql


Standardmäßig ist das SQL-Skript für das Erstellen von Demotabellen für Sybase in ORACLE_HOME\OCA20\SQL\SYBASE installiert:

sybdmbld.sql	Erstellt Demotabellen.

Das SQL-Skript für das Auffüllen der Demotabellen ist in ORACLE_HOME\OCA20\DEMO installiert:

demodata.sql	Fügt Daten in Demotabellen ein.


UBT32.EXE scott/tiger@ODBC:sybase_ds @sybdmbld.sql


scott/tiger@ODBC:sybase_ds


Standardmäßig sind die Informationen über den Zugriff zu Tandem NonStop SQL in ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf installiert. Wenn Adobe Acrobat Reader im Standardordner installiert ist, klicken Sie auf die Schaltfläche [image] am Anfang dieses Themas, um dieses Dokument anzuzeigen. Sonst starten Sie PDF-Viewer, und öffnen Sie oca_info.pdf.


Standardmäßig sind die SQL-Skripts für das Erstellen von Data-Dictionary-Ansichten für Tandem NonStop SQL in ORACLE_HOME\OCA20\SQL\NONSTOP installiert:

nssvudrp.sql	Entfernt alte Versionen der Ansichten.

nssvubld.sql	Erstellt erforderliche Ansichten.


UBT32.EXE scott/tiger@ODBC:nonstop_ds @nssvubld.sql


Standardmäßig ist das SQL-Skript für das Erstellen von Demotabellen für Tandem NonStop SQL in ORACLE_HOME\OCA20\SQL\NONSTOP installiert:

nssdmbld.sql	Erstellt Demotabellen.

Das SQL-Skript für das Auffüllen der Demotabellen ist in ORACLE_HOME\OCA20\DEMO installiert:

demodata.sql	Fügt Daten in Demotabellen ein.


UBT32.EXE scott/tiger@ODBC:nonstop_ds @nssdmbld.sql


scott/tiger@ODBC:nonstop_ds


Standardmäßig sind Informationen über den Zugriff zu Informix in ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf installiert. Wenn Adobe Acrobat Reader im Standardordner installiert ist, klicken Sie auf die Schaltfläche [image] am Anfang dieses Themas, um dieses Dokument anzuzeigen. Sonst starten Sie PDF-Viewer, und öffnen Sie oca_info.pdf.


Standardmäßig sind die SQL-Skripts für das Erstellen von Data-Dictionary-Ansichten und Demotabellen für Informix in ORACLE_HOME\OCA20\SQL\INFORMIX installiert:

infvudrp.sql	Entfernt alte Versionen der Ansichten.

infvubld.sql	Erstellt erforderliche Ansichten.


UBT32.EXE scott/tiger@ODBC:informix_ds @infvubld.sql


Standardmäßig ist das SQL-Skript für das Erstellen von Demotabellen für Informix in ORACLE_HOME\OCA20\SQL\INFORMIX installiert:

infdmbld.sql	Erstellt Demotabellen.

Das SQL-Skript für das Auffüllen der Demotabellen ist in ORACLE_HOME\OCA20\DEMO installiert:

demodata.sql	Fügt Daten in Demotabellen ein.


UBT32.EXE scott/tiger@ODBC:informix_ds @infdmbld.sql


scott/tiger@ODBC:informix_ds


Fehlerbehebung

Wenn eine Anwendung, die früher mit Oracle funktionierte, jetzt mit einer ODBC-Datenquelle nicht ausgeführt werden kann, ist dies wahrscheinlich darauf zurückzuführen, daß eine Einschränkung oder Begrenzung bei ODBC oder der Datenquelle vorliegt.

Um die von OCA ausgegebenen SQL-Anweisungen und die von dem ODBC-Treiber oder der Datenbank generierten Meldungen anzuzeigen, gehen Sie folgendermaßen vor:

1	Prüfen Sie, ob der folgende Eintrag in der ORACLE.INI-Datei bei Windows 3.1 oder in der Registrierung bei Windows NT und Windows 95/98 eingestellt ist:

•	UB=ORACLE_HOME\OCA20

2	Fügen Sie die folgenden Einträge zu der ORACLE.INI-Datei bei Windows 3.1 oder zu der Registrierung unter SOFTWARE\ORACLE bei Windows NT und Windows 95/98 hinzu:

•	OCA_DEBUG_SQL=TRUE

•	OCA_DEBUG_ERROR=TRUE

3	Führen Sie die Anwendung mit der ODBC-Datenquelle aus, um die SQL-Anweisungen oder Fehlermeldungen im Debug-Fenster anzuzeigen. Klicken Sie auf OK, um das Debug-Fenster zu schließen und die Verarbeitung fortzuführen.

4	Wenn das Problem nicht gelöst werden kann, nehmen Sie Verbindung mit Oracle Support auf auf.


OCA-Meldungen

Code	Meldungsbeschreibung

30000	Allgemeiner OCA-Fehler

30001	NULL hostdef

30002	Funktion nicht unterstützt

30003	NULL-Benutzername in DB-Adresse

30004	NULL-Hostname in DB-Adresse

30005	Alle Cursor werden benutzt

30006	Fehler beim Erstellen von Analysebaum

30007	NULL SQL-Anweisung

30008	Speicherzuordnung nicht erfolgreich

30009	Fehler beim Verarbeiten von Bindevariablen

30010	Fehler bei Konvertierung von Oracle- nach ODBC-Datentyp

30011	Fehler bei Konvertierung von ODBC- nach Oracle-Datentyp

30012	Fehler beim Binden von Referenzwert

30013	Keine zu bindenden Parameter

30014	Hostname zu lang

30015	Gespeicherte Prozeduren bei dieser Datenquelle nicht unterstützt

30016	Sequenzen bei dieser Datenbank nicht unterstützt

30017	Fehler beim Anmelden bei Fremddatenbank

30018	Benutzername oder Kennwort zu lang

30019	Fehler beim Bearbeiten von fremden gespeicherten Prozeduren

30020	Name der gespeicherten Prozedur fehlt

30021	Fehler beim Vorbereiten/Ausführen von SQL-Anweisung

30022	Fehler beim Abrufen der Spalte

30023	Fehler beim Abrufen der Ergebnismenge

30024	Fehler beim Abrufen von Spalten-Deskriptoren

30025	Fehler bei Einlesen der Anzahl von Spalten in Ergebnismenge

30026	Fehler beim Abrufen von Prozedur-Deskriptoren

30027	Fehler beim Einstellen von ODBC-Anmelde-/Anweisungsoption

30028	Fehler bei Commit/Rollback

30029	Fehler beim Binden der Spalte

30030	Fehler beim Binden von Parameter

30031	Fehler beim Abrufen von Informationen über Treiber/Datenbank

30032	Fehler bei der Freigabe von Speicherplatz

30033	Fehler bei Zeilenstatus

30034	Tabelle nicht gefunden

30035	Spalte nicht gefunden

30036	Ungültige Berechtigungsangabe

30037	Datenquelle nicht verfügbar

30038	Ungültige Spaltennummer

30039	Unzulässige Kombination gebündelter Vorgänge

30040	Ungültiger Cursor-Kontext

30041	Bindevariable ist nicht vorhanden

30042	Keine Daten gefunden

30043	Abgerufener Spaltenwert ist NULL

30044	Abgerufener Spaltenwert war abgeschnitten

30045	Fehler bei Rückgabe von Ergebnisdaten

30046	Kein Name von Datenquelle angegeben

30047	Nicht unterstützte Transaktions-Isolationsebene

30048	Binden von Arrays nicht unterstützt

30049	Nicht angemeldet

30050	Fehler bei Freigabe von SQL-Anweisung

30051	Fehler beim Abruf von Daten. Nach Commit-Vorgang für diese Datenquelle erneut ausführen

30052	Parameterwert nach Ausführung abgeschnitten

31000	Allgemeiner ODBC-Fehler vom benutzten ODBC-Treiber ausgegeben

Wenn ein Fehler auftritt und die Anwendung die Meldung nicht aus der Meldungsdatei lesen kann, prüfen Sie, ob der folgende Eintrag in der Datei ORACLE.INI in Windows 3.1 oder in der Registrierung bei Windows NT und Windows 95/98 steht:

•	UB=ORACLE_HOME\OCA20


PDF-Dokument

Um das PDF-Dokument anzuzeigen, müssen Sie PDF-Viewer starten und oca_info.pdf aus dem Ordner öffnen, in dem es installiert ist.


Über den Objektnavigator

Der Objektnavigator stellt eine hierarchische Anzeige der Objekte in allen geöffneten Modulen dar. Objekte werden unter dem entsprechenden Knoten gruppiert. Zum Beispiel werden alle Fenster, die in einem Formmodul definiert sind, unter dem Knoten Fenster angezeigt. Der Knoten Fenster wiederum wird unter dem entsprechenden Formmodul-Objekt angezeigt.

Die Knoten der obersten Ebene im Objektnavigator umfassen Forms, Menüs, Bibliotheken, Objektbibliotheken, Vordefinierte Prozeduren und Datenbankobjekte. Alle anderen Knoten und die darin enthaltenen Objekte sind eingerückt, um anzugeben, daß sie zu diesem Knoten der höheren Ebene gehören.

Objekte und Knoten im Objektnavigator werden mit einem Symbol + oder - angezeigt, um anzugeben, ob diese gerade ein- oder ausgeblendet sind. Für einen Knoten, der noch keine Objekte einer niedrigeren Ebene enthält, wird ein graues + angezeigt. Vor einem atomaren Objekt, das keine Objekte einer niedrigeren Ebene enthalten kann, wird ein runder Listenpunkt angezeigt.

Jedes Objekt im Objektnavigator wird mit einem Symbol angezeigt, das den Objekttyp angibt. Wenn Sie bei einigen Objekten auf das Symbol doppelklicken, wird ein Editor für den entsprechenden Objekttyp aufgerufen. Wenn Sie z.B. auf das Objekt Symbol für eine Leinwand doppelklicken, wird der Layouteditor angezeigt.

Sie können folgende Vorgänge im Objektnavigator ausführen:

•	Einträge ein- und ausblenden, um Objekte schnell zu finden

•	Objekte auswählen

•	Objekte erstellen und löschen

•	Objekte innerhalb und zwischen Modulen kopieren und verschieben

•	Zwischen Ansichten wechseln, um die Objekte anzuzeigen, mit denen gearbeitet werden soll

•	Objekte schnell mit der Schnellsuche suchen

•	Den mit Objekten, wie z.B. Triggern und Programmblöcken, verknüpften Code schnell anzeigen

Sie können Befehle im Objektnavigator aus dem Menü und aus der Symbolleiste auswählen. Die Symbolleiste ermöglicht einen schnellen Zugriff zu Befehlen. Klicken Sie einmal auf das Symbol für den auszuführenden Befehl. Um eine Popup-Beschreibung eines Symbolleisten-Befehls anzuzeigen, setzen Sie den Cursor zu dem Symbol, ohne mit der Maus zu klicken.

Statusinformationen

Der Objektnavigator stellt auch Statusinformationen über Programmblöcke mit den folgenden Flags bereit:

*   Mit einem Stern im Anschluß an den Namen eines Programmblocks wird angegeben, daß der Prtogrammblock seit dem Öffnen der Bibliothek geändert wurde und neu kompiliert werden muß.

@   Mit diesem At-Symbol im Anschluß an den Namen eines Programmblocks wird angegeben, daß der Programmblock seit dem Öffnen der Bibliothek nicht geändert wurde.


Über die Objektnavigator-Synchronisation

Sie können die Objektnavigator-Synchronisation ein- und ausschalten.

Wenn die Synchronisation eingeschaltet ist, behalten der Objektnavigator und geöffnete Layout- und Menüeditoren dieselbe aktuelle Auswahl bei. Wenn Sie z.B. eine Schaltfläche im Layouteditor auswählen, wird diese Schaltfläche auch zur aktuellen Auswahl im Objektnavigator. Wenn Sie einen Menüpunkt im Objektnavigator auswählen, wird dieser Menüpunkt auch zur aktuellen Auswahl im Menüeditor.

Wenn die Synchronisation ausgeschaltet ist, wird die aktuelle Auswahl in anderen Fenstern nicht aktualisiert, wenn Sie ein Objekt im Objektnavigator oder einem Editor auswählen.

Um die Synchronisation ein- oder auszuschalten, wählen Sie die Option Synchronisieren im Menü Navigator aus

Hinweis:  Standardmäßig ist die Attributpalette immer synchron mit der aktuellen Auswahl. Sie können die Synchronisation umschalten, indem Sie auf die Schaltfläche Statisch/Synchronisiert in der Symbolleiste der Attributpalette klicken. Wenn Sie in der Attributpalette Statisch angeben, ist dies besonders nützlich, wenn zwei Attributpaletten gleichzeitig geöffnet sein sollen, damit Sie die Attribute von zwei verschiedenen Objekten nebeneinander vergleichen können.


Über die Objektnavigator-Ansichten

Der Objektnavigator kann Module in zwei verschiedenen Ansichten anzeigen: Nach Formshierarchie (Standard) und nach Bildschirmdarstellung. Diese Darstellung bestimmt, welche Objekte im Objektnavigator angezeigt werden und wie diese Objekte angeordnet sind.

Nach Objekthierarchie  In der Ansicht nach Objekthierarchie sind alle Formobjekte sichtbar, und die Anzeigehierarchie entspricht der Formshierarchie des Form Builder-Objekts: Form - Block - Objekt. Objekte und Beziehungen gehören zu Blöcken, Blöcke gehören zu Forms, Trigger können zu Forms, Blöcken oder Objekten gehören, und alle anderen Formobjekte (Fenster, Editoren, Datensatzgruppen usw.) gehören Forms.

Nach Bildschirmdarstellung  In der Ansicht nach Bildschirmdarstellung werden nur Fenster, Leinwände und Objekte angezeigt. Die Hierarchie nach Bildschirmdarstellung entspricht der Hierarchie der Objekte in einem Form-Fenster: Fenster - Leinwand - Objekt. Objekte werden Leinwänden zugeordnet, Leinwände werden Fenstern zugeordnet. Jedes Fenster kann über mehrere Leinwände verfügen, und es können mehrere Objekte in einer einzigen Leinwand vorhanden sein.

Wenn der Objektnavigator nach Formshierarchie angezeigt wird, werden Formobjekte unter den Blöcken aufgeführt, denen sie zugeordnet sind. Wenn der Objektnavigator nach Bildschirmdarstellung angezeigt wird, werden Formobjekte unter den Leinwänden aufgeführt, in denen sie angezeigt werden.

Wenn eine Form Objekte enthält, die keiner Leinwand zugewiesen sind (weil für das Objektattribut Leinwand <Null> festgelegt wurde), werden diese Objekte unter dem Knoten Null-Leinwand angezeigt. Wenn Leinwände vorhanden sind, die noch keinem Fenster zugewiesen sind, werden diese unter dem Knoten Null-Fenster angezeigt.

Nur Objekte mit PL/SQL-Option   Sie können Navigator [image] Nur Objekte festlegen, indem Sie die PL/SQL-Menüoption ein- oder ausschalten. Standardmäßig ist diese Option ausgeschaltet, und alle Objekte sind sichtbar. Wenn Sie Nur Objekte auf PL/SQL Ein festlegen, werden alle Objekte mit Ausnahme von Codeobjekten (Trigger, Programmblöcke usw.) und Objekte, denen Trigger zugeordnet werden können (Forms, Block, Objekte), verborgen.


Objektnavigator anzeigen

So zeigen Sie den Objektnavigator an:

•	Wählen Sie Werkzeuge [image] Objektnavigator.


Objaktnavigator-Ansichten ändern

So ändern Sie die Objaktnavigator-Ansicht:

•	Wählen Sie Ansicht [image] Nach Formshierarchie anzeigen oder Nach Bildschirmdarstellung anzeigen im Objektnavigator aus.


Im Objektnavigator navigieren und Objekte auswählen

Sie wählen Einträge im Objektnavigator aus, während Sie den Cursor im Objektnavigator nach oben oder unten verschieben. Der aktuelle Eintrag kann entweder ein Knoten oder ein konkretes Objekt sein. Wenn Sie ein Objekt auswählen, wird die Attributpalette aktualisiert und zeigt die Attribute dieses Objekts an.

Mit den folgenden Tasten können Sie im Objektnavigator navigieren und Objekte auswählen:

Nach-oben 	Wählt den vorherigen Knoten bzw. das vorherige Objekt, der bzw. das über dem aktuellen Eintrag angezeigt wird.

Nach-unten	Wählt den nächsten Knoten oder das nächste Objekt, der bzw. das unter dem aktuellen Eintrag angezeigt wird.

Nach-links	Wählt den Knoten bzw. das Objekt auf der Ebene über der aktuellen Ebene und blendet diesen bzw. dieses aus.

Nach-rechts	Wählt den Knoten oder das Objekt auf der Ebene über der aktuellen Auswahl, wobei ausgeblendete Einträge nach Bedarf eingeblendet werden. Wenn kein derartiges Objekt vorhanden ist, wird der Eintrag unmittelbar unter dem Cursor ausgewählt.

Objekte mit der Maus auswählen  Mit den folgenden Techniken können Sie Knoten und Objekte auswählen.

.Einzelne Auswahl	Wählt einen einzelnen Objektnavigatoreintrag aus, indem mit der Maus geklickt oder der Cursor mit den Pfeiltasten bewegt wird. Wenn keine Einträge ausgewählt sind, stellt die Cursorposition die aktuelle einzelne Auswahl dar.

Bereichsauswahl	Klicken Sie mit gedrückter Umschalttaste, um einen Bereich mit Objektnavigatoreinträgen auszuwählen. Wenn Sie mit gedrückter Umschalttaste klicken, werden alle Einträge zwischen der Cursorposition und dem Auswahlpunkt ausgewählt. Objekte in einer Bereichauswahl müssen denselben Typ aufweisen.

Mehrfachauswahl	Klicken Sie mit gedrückter Strg-Taste, um mehrere Objektnavigator-Einträge auszuwählen. Sie können beliebig viele Objekte auf diese Weise auswählen, indem Sie jeweils ein Objekt hinzufügen. Heben Sie die Auswahl der Objekte auf, indem Sie erneut mit gedrückter Strg-Taste klicken.

Wenn ein einzelnes Objekt ausgewählt ist, werden dessen Attribute in der Attributpalette angezeigt. Wenn mehr als ein Objekt im Objektnavigator ausgewählt ist, zeigt die Attributpalette entweder die Vereinigungs- oder Schnittmenge der Attribute der ausgewählten Objekte an.

Mit der Kontextliste navigieren  Während Sie im Objektnavigator nach oben und unten gehen, zeigt die Kontextliste am Anfang des Objektnavigatorfensters den Namen des gerade ausgewählten Objekts, dessen Vorgänger in der Objekthierarchie und die Namen aller geöffneten Module an. Wenn Sie ein Objekt in der Liste auswählen, gehen Sie zu diesem Objekt im Objektnavigator.


Objekte im Objektnavigator ein- und ausblenden

Sie können Objekte, mit denen Sie arbeiten möchten, schnell finden, indem Sie Navigationstasten zusammen mit Befehlen für das Ein- und Ausblenden des Objektnavigators verwenden. Wenn Sie einen Eintrag im Objektnavigator einblenden, werden Objekte sichtbar, die vorher verborgen waren, da sie sich in einem ausgeblendeten Status befanden. Beim Ausblenden eines Eintrags werden Objekte verborgen, die im eingeblendeten Status sichtbar waren.

Vor den Einträgen im Objektnavigator steht ein Plus-, Minus- oder Listenpunkt-Symbol, mit dem wie folgt angegeben wird, ob der Eintrag ein- oder ausgeblendet ist:

+ (plus)	Der Eintrag enthält Objekte auf niedrigerer Ebene, die verborgen sind, da der Eintrag ausgeblendet ist.

+ (grau)	Der Eintrag enthält noch keine Objekte auf niedrigerer Ebene.

- (minus)	Der Eintrag enthält Objekte auf niedrigerer Ebene, die sichbar sind, weil der Eintrag eingeblendet ist.

o (Listenpunkt)	Bei dem Eintrag handelt es sich um ein atomares Objekt, das keine Objekte niedrigerer Ebene enthalten kann.

Mit den folgenden Menübefehlen blenden Sie Einträge im Objektnavigator ein und aus. Diese Befehle sind nur gültig, wenn vor der aktuellen Auswahl ein + oder - steht.

Navigator [image] Einblenden	Blendet Objekte auf der Ebene unmittelbar unter der Ebene des bzw. der aktuell ausgewählten Objekte ein. Ist gleichbedeutend mit dem Klicken auf + vor einem Knoten.
Navigator [image] Ausblenden	Blendet Objekte auf der Ebene aus, die unmittelbar unter der Ebene des bzw. der gerade ausgewählten Objekte liegt. Gleichbedeutend mit dem Klicken auf - vor einem Knoten.
Navigator [image] Alles einblenden	Blendet rekursiv jeden Eintrag unter dem aktuellen Eintrag ein. Gleichbedeutend mit dem Klicken bei gedrückter Umschalttaste auf das + vor einem Knoten.
Navigator [image] Alles Ausblenden_	Blendet rekursiv jeden Eintrag unter dem aktuellen Eintrag aus. Gleichbedeutend mit dem Klicken bei gedrückter Umschalttaste auf das - vor einem Knoten.
Sie können einen Eintrag im Objektnavigator ein- oder ausblenden, indem Sie auf das + (Plus-) oder - (Minus-) Symbol vor dem Eintrag klicken:

•	Klicken Sie auf das + vor einem ausgeblendeten Eintrag, um Objekte auf der Ebene unmittelbar unter der Ebene des aktuellen Objekts einzublenden. Dies ist gleichbedeutend mit dem Befehl Einblenden. Klicken Sie mit gedrückter Umschalttaste, um den Befehl Alles einblenden auszuführen.

•	Klicken Sie auf das - vor einem eingeblendeten Eintrag, um Objekte auf der Ebene unmittelbar unter der Ebene des aktuellen Objekts auszublenden. Dies ist gleichbedeutend mit dem Befehl Ausblenden. Klicken Sie mit gedrückter Umschalttaste, um den Befehl Alles ausblenden auszuführen.

Einblenden/Ausblenden und Alles einblenden/Alles ausblenden  Die Befehle Einblenden und Ausblenden wirken sich nur auf Einträge auf der Ebene unmittelbar unter dem aktuellen Eintrag aus. Die Befehle Alles einblenden und Alles ausblenden hingegen sind rekursiv, d.h. mit ihnen werden Einträge auf jeder Ebene  unter dem aktuellen Eintrag ein- und ausgeblendet.

Nachdem Sie einen ausgeblendeten Eintrag eingeblendet haben, sind möglicherweise Objekte auf einer niedrigeren Ebene noch verborgen. Wenn Sie z.B. ein Formobjekt einblenden, sind alle Blöcke in dieser Form sichtbar. Die Objekte in jedem Block (die auf der nächstniedrigeren Ebene in der Objekthierarchie stehen) bleiben verborgen, wenn sie vorher ausgeblendet waren. Wenn Sie hingegen Alles einblenden verwenden, werden alle Objekte und Knoten auf jeder Ebene unter dem aktuellen Eintrag sichtbar.


Objekte im Objektnavigator erstellen

So erstellen Sie ein Objekt im Objektnavigator:

1	Wählen Sie einen Knoten oder ein Objekt mit dem zu erstellenden Typ.

2	 Wählen Sie Navigator [image] Erstellen, oderr klicken Sie auf die Schaltfläche Erstellen.

Form Builder fügt das neue Objekt unmittelbar nach der aktuellen Auswahl ein. Um z.B. ein Fenster zu erstellen, setzen Sie den Cursor zu dem Knoten Fenster, und wählen Sie Navigator [image] Erstellen.

Der Befehl Erstellen ist nicht verfügbar, wenn mehrere Objekte ausgewählt sind.

Wenn ein Knoten noch keine Objekte enthält und somit mit einem grauen + angezeigt wird, können Sie ein Objekt dieses Typs erstellen, indem Sie auf das + doppelklicken.


Objekte im Objektnavigator löschen

So löschen Sie ein Objekt im Objektnavigator

1	Wählen Sie den zu löschenden Knoten bzw. das löschende Objekt.

2	2  Wählen Sie Bearbeiten [image] Ausschneiden.

Mit Ausschneiden wird das Objekt in die Zwischenablage gespeichert, so daß Sie es später mit Einfügen in ein anderes Modul einfügen können.

Hinweis:  Wenn es sich bei der aktuellen Auswahl um einen Knoten handelt und nicht um ein Objekt, werden bei Auswahl von Ausschneiden alle Objekte unter diesem Knoten entfernt. Wenn die aktuelle Auswahl ein Modul ist, wird das Modul bei Auswahl von Ausschneiden geschlossen.


Namen von Objekten im Objektnavigator ändern

So ändern Sie den Namen eines Objekts im Objektnavigator:

1	Wählen Sie das Objekt, indem Sie auf das Objekt klicken oder mit den Pfeiltasten zu dem Objekt navigieren.

2	Klicken Sie auf den Namen. Der Cursor nimmt die Form eines Textcursors an.

3	Ändern Sie den Namen nach Bedarf, und drücken Sie die Eingabetaste.

Sie können einen Objektnamen auch ändern, indem Sie das Objekt auswählen und dann das Attribut Name in der Attributpalette festlegen.

Hinweis:  Sie können den Namen von PL/SQL-Bibliotheksmodulen im Objektnavigator nicht ändern. Geben Sie statt dessen den gewünschten Namen an, wenn Sie das Bibliotheksmodul mit dem Menübefehl Speichern unter speichern.


Objekte im Objektnavigator verschieben und kopieren

Mit den folgenden Befehlen können Sie Objekte innerhalb der Module im Objektnavigator verschieben und kopieren:

•	Um die aktuelle Auswahl zu verschieben, ziehen Sie sie an die gewünschte Stelle. Sie können auch Bearbeiten [image] Ausschneiden wählen, den Cursor an die gewünschte Stelle setzen, und dann Bearbeiten [image] Einfügen wählen.

•	Um die aktuelle Auswahl zu kopieren, ziehen Sie die Auswahl bei gedrückterr Strg-Taste an die gewünschte Stelle. Sie können auch Bearbeiten [image] Kopieren wählen, den Cursor an die gewünschte Stelle setzen und dann Bearbeiten [image] Einfügen wählen.

•	Um alle Objekte innerhalb eines Knotens auszuschneiden oder zu kopieren, setzen Sie den Cursor in den Knoten, und wählen Sie Bearbeiten [image] Ausschneiden oder Bearbeiten [image] Kopieren.

Einschränkungen bei den Zielen für Kopieren/Verschieben  Die folgenden Einschränkungen gelten, wenn Sie Objekte im Objektnavigator verschieben und kopieren:

•	Objekte können von einem Modul zu einem anderen kopiert werden, können jedoch nicht von einem Modul zu einem anderen verschoben werden.

•	Objekte müssen an die gewünschte Stelle in der Modellhierarchie gezogen oder an der gewünschten Stelle eingefügt werden. In der Ansicht nach Formshierarchie können Objekte, die zu Blöcken gehören, nur unter andere Blöcke kopiert werden. Gleichermaßen können Sie kein Fensterobjekt unter den Knoten Parameter ziehen, da ein solcher Vorgang unlogisch wäre.

Wenn Sie ein Objekt unter einen ungültigen Knoten im Objektnavigator ziehen, gibt Form Builder ein Akustiksignal aus und läßt den Verschieben-Vorgang nicht zu.

•	Nur Objekte desselben Typs können bei einer Mehrfachauswahl verschoben werden.

Wie sich die Objektzugehörigkeit auf Kopieren-/Verschieben-Vorgänge auswirkt  Wenn Sie ein Objekt verschieben oder kopieren, verschieben oder kopieren Sie gleichzeitig Objekte, die zu diesem Objekt gehören. Wenn Sie z.B. einen Block kopieren, werden außerdem die Trigger kopiert, die diesem Block zugeordnet sind, die Objekte, die zu diesem Block gehören, und die Trigger, die diesen Objekten zugeordnet sind.

Sie müssen unbedingt zwischen der Objektzugehörigkeit und einfachen Verbindungen unterscheiden, die zwischen Objekten bestehen können. So werden z.B. Leinwände in Fenstern angezeigt, und jede Leinwand wird beim Entwurf einem bestimmten Fenster zugeordnet. Allerdings gehört die Leinwand nicht dem Fenster - beide Objekte gehören der Form. Die Beziehung zwischen dem Fenster und der Leinwand ist einfach eine Verknüpfung, die Sie definieren, indem Sie das Attribut Fenster der Leinwand festlegen.

Wenn Sie ein Objekt verschieben oder kopieren, werden nur Objekte, die zu diesem Objekt gehören, verschoben oder kopiert. Die Zugehörigkeitsregeln für Objekte in Formmodulen können einfach wie folgt angegeben werden: Objekte und Beziehungen gehören zu Blöcken. Trigger können zu Objekten, Blöcken oder Forms gehören. Alle anderen Objekte gehören zu Forms.

Die Zugehörigkeitsregeln für Menümodule sind noch einfacher: Menüpunkte gehören zu Menüs. Menüs gehören zu Menümodulen. Alle anderen Objekte gehören zu Menümodulen.

PL/SQL-Bibliotheksmodule enthalten nur Unterprogramme und Prozeduren, die alle zu dem Bibliotheksmodul gehören.


Einträge im Objektnavigator mit der Schnellsuche suchen

Mit der Schnellsuch-Funktion im Objektnavigator können Sie schnell Objekte und Knoten im Objektnavigator finden. Um mit einer Suche zu beginnen, geben Sie die Suchfolge in das Feld Suchen am Anfang des Objektnavigator-Fensters ein. Während Sie die einzelnen Zeichen eingeben, setzt Form Builder den Cursor zu dem nächsten Eintrag im Objektnavigator, der dem regulären Ausdruck <Suchfolge>* entspricht, wobei * ein Stellvertreterzeichen ist, das eine beliebige Anzahl von Zeichen darstellt.

Wenn der Cursor z.B. bei dem Knoten Forms steht und Sie den Buchstaben W in das Feld Suchen eingeben, wird der Cursor zu dem ersten Eintrag gesetzt, der mit W beginnt, der der Knoten Warnfenster sein könnte. Wenn das nächste eingegebene Zeichen E wäre, würde der Cursor zum ersten Eintrag gesetzt, der mit WE beginnt, z.B. zu einem Objekt WERTELISTE.

Gegebenenfalls blendet Form Builder ausgeblendete Einträge ein, um ein Objekt anzuzeigen, das der Suchfolge entspricht.

Im Objektnavigator können folgende Suchbefehle benutzt werden:

Beliebiges Zeichen	Startet bzw. setzt eine Suche fort und setzt den Cursor zu dem nächsten Eintrag mit den Zeichen, die der Zeichenfolge im Feld Suchen entsprechen.

Abwärts	Wenn eine Suchfolge eingegeben wurde, wird ab dem aktuellen Eintrag bis zum Ende der Gliederung nach dem nächsten Eintrag gesucht, der der Suchfolge entspricht.

Aufwärts	Wenn gerade eine Suche durchgeführt wird, wird ab dem aktuellen Eintrag bis zum Anfang der Gliederung nach dem nächsten Eintrag gesucht, der der Suchfolge entspricht.

Die Suche erfolgt schleifenförmig. Wenn keine Einträge gefunden werden, geht Form Builder zum Anfang bzw. Ende der Hierarchie, um weiter nach Objekten zu suchen, die den Suchkriterien entsprechen.


Lesezeichen im Objektnavigator setzen

Mit den Befehlen Lesezeichen hinzufügen und Gehe zu Lesezeichen wird ein Eintrag im Objektnavigator markiert und dann zu einem späteren Zeitpunkt zu diesem Eintrag zurückgegangen. Sie können ein Lesezeichen bei einem Knoten (Blöcke, Trigger usw.) oder bei einem Objekt (KUND, AUFT usw.) setzen.

Um ein Lesezeichen einzufügen, setzen Sie den Cursor auf den gewünschten Eintrag, und wählen Sie Navigator [image] Lesezeichen hinzufügen.

Nachdem ein Lesezeichen gesetzt wurde, können Sie beliebig im Objektnavigator und in anderen Fenstern arbeiten. Wenn Sie dann zu dem markierten Eintrag zurückgehen möchten, wählen Sie Navigator [image] Gehe zu Lesezeichen. Gegebenenfalls blendet Form Builder Einträge ein, um den markierten Eintrag anzuzeigen.

Ein Lesezeichen bleibt gesetzt, bis Sie:

•	ein neues Lesezeichen mit Navigator [image] Lesezeichen hinzufügen festlegen.

•	das Objekt mit dem Lesezeichen löschen.

•	das Modul schließen, das das Lesezeichen enthielt.

•	Form Builder beenden.

Wenn Sie die Funktion für das Teilen von Ausschnitten verwenden, können Sie in jedem Ausschnitt ein Lesezeichen setzen. Sie können immer nur ein Lesezeichen pro Ausschnitt setzen.


Mit mehreren Ausschnitten im Objektnavigator arbeiten

So teilen Sie den Objektnavigator-Ausschnitt:

1	Klicken Sie auf die schwarze Linie über der vertikalen Bildlaufleiste oder auf die schwarze Linie links neben der horizontalen Bildlaufleiste. Der Mauscursor ändert seine Form, wenn Sie den Cursor über den Bildschirmteiler setzen.

2	Ziehen Sie den Bildschirmteiler an die gewünschte Stelle im Objektnavigator-Ausschnitt.

Durch Hinzufügen zusätzlicher Bildschirmteiler können Sie bis zu acht separate Ausschnitte erstellen. Jeder Ausschnitt hat seine eigenen Bildlaufleisten. Nachdem Sie den Objektnavigator-Ausschnitt geteilt haben, können Sie die Ergebnisausschnitte nicht in entgegengesetzter Richtung teilen.

Um einen Bildschirmteiler zu entfernen, ziehen Sie ihn einfach aus dem Objektnavigator-Ausschnitt heraus.


Objektnavigator schließen

So schließen Sie den Objektnavigator:

• Wählen Sie Datei [image] Schließen.


Hilfethemen zur Attributpalette

Über die Attributpalette

Attributpalette anzeigen

Symbolleistenbefehle in der Attributpalette


Über die Attributpalette

In der Attributpalette legen Sie die Attribute der Objekte fest, die Sie in Form- und Menümodulen erstellen.

Wenn Sie ein Objekt in einem Editor oder im Objektnavigator auswählen, wird die Attributpalette entsprechend den Attributen dieses Objekts aktualisiert. Standardmäßig wird die Liste mit Attributen in der Palette synchronisiert, sobald Sie ein anderes Objekt auswählen. Sie können die Synchronisation für eine bestimmte Palette ein- oder ausschalten, indem Sie auf die Schaltfläche Statisch/Synchronisiert in der Symbolleiste der Attributpalette klicken.

Wenn Sie die Attribute von zwei Objekten vergleichen müssen, können Sie nach Bedarf zusätzliche Attributpaletten aufrufen.

Die Attributpalette verfügt über folgende Funktionen:

Attributliste

Die Attributliste ist eine 2spaltige Liste mit Attributnamen und Attributwerten. Wenn keine Objekte ausgewählt sind, werden keine Attribute in der Liste angezeigt. Sie können Attribute in der Liste auswählen, indem Sie klicken, und indem Sie mit den Nach-oben-/Nach-unten-Tasten navigieren. Sie können Attribute in dem Attributlisten-Ausschnitt festlegen, indem Sie das Attribut auswählen und dann je nachdem die Eingabe vornehmen bzw. doppelklicken.

Name

Im Namen-Feld wird der Name des gerade im Objektnavigator ausgewählten Objekts oder ein Editor angezeigt. Das Namen-Feld wird nicht angezeigt, wenn keine Objekte ausgewählt sind oder wenn mehrere Objekte gleichzeitig ausgewählt sind.

Attribut-Steuerelemente festlegen

Wenn ein Attribut in der Attributliste ausgewählt ist, wird ein Textfeld, eine Popup-Liste oder die Schaltfläche Mehr neben dem Attribut wie folgt angezeigt:

Ein Textfeld wird angezeigt, wenn das aktuelle Attribut durch Eingabe eines Textwertes bestimmt werden kann. Bei Attributen, für die längere Textwerte erforderlich sind, finden Sie neben dem Text eine Schaltfläche in Form eines Symbols, mit der ein modaler Editor aufgerufen wird.

Eine Popup-Liste wird für Attribute angezeigt, die auf Ja/Nein gesetzt sind, oder die eine feste Gruppe von gültigen Werten haben. Sie können durch die Werte gehen, indem Sie wiederholt doppelklicken.

Eine Schaltfläche Mehr... wird angezeigt, wenn für das aktuelle Attribut komplexere Werte erforderlich sind. Wenn Sie die Schaltfläche auswählen, wird ein Dialogfeld angezeigt, in dem Sie die erforderlichen Informationen eingeben können.


Attributpalette anzeigen

So zeigen Sie die Attributpalette an:

•	Wählen Sie Werkzeuge [image] Attributpalette.

Oder

•	Doppelklicken Sie im Objektnavigator auf das Objektsymbol für ein beliebiges Objekt, mit Ausnahme von Codeobjekten und Leinwänden. Wenn die Attributpalette schon angezeigt wird, wird sie durch das Doppelklicken vor den anderen Fenstern angezeigt.

Um eine zweite Attributpalette aufzurufen, doppelklicken Sie mit gedrückter Umschalttaste auf das Objektsymbol.

Oder

•	Doppelklicken Sie auf ein Objekt im Layouteditor.

Oder

•	Klicken Sie auf das gewünschte Objekt und wählen Sie Attribute aus dem Schnellmenü.


Symbolleisten-Befehle in der Attributpalette

  Verwandte Themen

Die Symbolleiste ermöglicht einen schnellen Zugriff auf Befehle. Klicken Sie einmal auf das Symbol für den auszuführenden Befehl.

Attribute kopieren	Kopiert die Attributeinstellungen, die gerade in der Attributpalette ausgewählt sind, in die Zwischenablage.

Attribute einfügen	Fügt die Attributeinstellungen in der Zwischenablage in die Liste mit Attributen in die Attributpalette ein. Attribute, die in der Zwischenablage stehen, jedoch nicht in der Attributliste, werden ignoriert.

Attribut hinzufügen	Zeigt eine Werteliste an, aus der Sie ein Attribut auswählen können, das zu einer Attributklasse hinzugefügt werden soll. Dieser Befehl ist nur verfügbar, wenn es sich bei der aktuellen einzelnen Auswahl um ein Attributklassenobjekt handelt.

Attribut löschen	Löscht das gerade ausgewählte Attribut in der Attributliste. Dieser Befehl ist nur verfügbar, wenn die aktuelle einzelne Auswahl ein Attributklassenobjekt ist.

Attributklasse	Erstellt eine Attributklasse aus der gerade in der Palette angezeigten Attributliste. Das neue Attributklassenobjekt wird unter dem Knoten Attributklassen im Objektnavigator eingefügt. Ihm wird ein Standardname zugewiesen.

Vererben	Setzt das aktuelle Attribut auf den Standardwert. Wenn das Attribut auf einer Attributklasse basiert, entspricht die Standardeinstellung der in der Klasse definierten Einstellung. Wenn die aktuelle Attributliste nicht auf einer Attributklasse basiert oder auf einer Klasse basiert, die das aktuelle Attribut nicht umfaßt, wird das Attribut bei Auswahl von Vererben auf den Standardwert gesetzt. (Mit Vererben wird das Attribut wieder auf den Standardwert von Form Builder für Zeichenfolgenwerte und nicht für erweiterte Werte gesetzt, wie z.B. Werte, die in Dialogfeldern festgelegt werden.)

Schnittmenge/Vereinigungsmenge	Schaltet die Attributpalette zwischen dem Anzeigemodus Vereinigungsmenge und Schnittmenge um. Mit dieser Option wird festgelegt, welche Attribute angezeigt werden, wenn mehr als ein Objekt gleichzeitig ausgewählt ist (Mehrfachauswahl). Im Schnittmengen-Modus (Standard) werden nur Attribute, die die ausgewählten Objekte gemeinsam haben, angezeigt. Im Vereinigungsmengen-Modus werden die Attribute aller Objekte in der aktuellen Auswahl angezeigt.

Statisch/Synchronisiert	Schaltet die Synchronisation der Attributpalette ein und aus. Wenn Statisch ausgeschaltet ist (Standard), wird die Attributliste aktualisiert, um die Attribute der Objekte anzuzeigen, die Sie im Objektnavigator und anderen Fenstern auswählen. Wenn Statisch eingeschaltet ist, wird die Attributliste festgeschrieben und nicht aktualisiert, so daß Sie sie mit anderen Attributlisten vergleichen können.


Attributpalette schließen

So schließen Sie die Attributpalette:

• Wählen Sie Datei [image] Schließen.


Über den Layouteditor

Der Layouteditor ist eine grafische Design-Funktion für das Erstellen und Anordnen von Schnittstellenobjekten und Grafikobjekten in einer Form. Im Layouteditor arbeiten Sie in einer einzigen Leinwand. Leinwände werden zur Laufzeit in Fenstern angezeigt. Sie geben das Fenster an, in dem eine Leinwand angezeigt wird, indem Sie das Attribut Fenster der Leinwand festlegen.

Layouteditor-Kontext  In der Titelleiste des Layouteditor-Fensters werden Kontextinformationen angezeigt, einschließlich dem Namen der aktuellen Form, dem Namen der bearbeiteten Leinwand und dem Namen des aktuellen Blocks. Wenn Sie ein Objekt erstellen, indem Sie es auf einer Leinwand im Layouteditor zeichnen, weist Form Builder das Objekt dem aktuellen Block zu, wie mit dem Blockkontext des Layouteditors angegeben. Sie können den Blockkontext des Layouteditors mit der Popup-Liste Block in der Symbolleiste ändern.

Formatzeilen  Mit den horizontalen und vertikalen Formatzeilen am oberen und linken Rand des Arbeitsbereichs erhalten Sie eine Referenz für das Skalieren und Anordnen von Objekten im Layouteditor. Um die Formatzeilen zu verbergen, heben Sie die Auswahl des Befehls Formatzeilen im Menü Ansicht auf.

Die Formatzeileneinheiten des Layouteditors können auf Zeicheneinheiten, Zoll, Zentimeter oder Punkt festgelegt werden. Um das Dialogfeld Formatzeileneinstellungen anzuzeigen, wählen Sie Format [image] Layoutoptionen [image] Formatzeile.

Raster  In dem Arbeitsbereich ist ein Raster definiert, mit dem Sie Objekte einfacher positionieren können. Das Raster wird mit den aktuellen Formatzeileneinheiten gerendert. Um die Rasterlinien zu verbergen, heben Sie die Auswahl des Befehls Raster im Menü Ansicht auf.

Hilfslinien  Hilfslinien sind horizontale und vertikale gepunktete Linien, die beim Ausrichten von Objekten auf einer Leinwand als Referenz benutzt werden können. Um eine Hilfslinie zu erstellen, setzen Sie den Zeiger auf eine der Formatzeilen, danach klicken Sie, und ziehen Sie die Hilfslinie in den Arbeitsbereich. Hilfslinien werden zur Laufzeit nicht angezeigt.

Um eine Hilfslinie zu verschieben, ziehen Sie sie an eine andere Stelle. Um eine Hilfslinie zu löschen, ziehen Sie sie aus dem Arbeitsbereich heraus. Wenn Sie Hilfslinien vorübergehend verbergen möchten, ohne sie zu löschen, heben Sie die Auswahl des Befehls Hilfslinien im Menü Ansicht auf.

Statuszeile  In der Statuszeile am unteren Rand des Layouteditor-Fensters werden folgende Informationen angezeigt:

•	Absolute Mausposition

•	Entfernung beim Ziehen der Maus (beim Erstellen/Verschieben von Objekten)

•	Drehwinkel (beim Drehen der aktuellen Auswahl)

•	Vergrößerungsfaktor

Hinweis: Die folgenden Objekte können im Layouteditor nicht entfernt, ausgeschnitten, kopiert, dupliziert oder exportiert werden:

•	Das Leinwandobjekt (wenn die Option Ansicht [image] Leinwand anzeigen eingeschaltet ist)

•	Das Ansichtrechteck (wenn die Option Ansicht [image] Ansicht anzeigen eingeschaltet ist)

•	Die Bildlaufleiste eines Blocks.


Layouteditor anzeigen

So zeigen Sie den Layouteditor an:

•	Wählen Sie Werkzeuge [image] Layouteditor, und wählen Sie dann die Leinwand aus, die bearbeitet werden soll:

•	Wenn mehr als eine Leinwand in der Form definiert ist, zeigt Form Builder eine Werteliste an, aus der Sie die zu bearbeitende Leinwand auswählen können.

•	Wenn nur eine Leinwand in der Form vorhanden ist, zeigt Form Builder diesen automatisch im Layouteditor an.

•	Wenn keine Leinwände in der Form vorhanden sind, erstellt Form Builder eine Standardleinwand.

Oder

•	Doppelklicken Sie im Objektnavigator auf das Objektsymbol für die zu bearbeitende Leinwand.

Oder

•	Wählen Sie Layouteditor aus dem Popup-Menü im Objektnavigator. (Bei Microsoft Windows drücken Sie die rechte Maustaste, um das Popup-Menü anzuzeigen.)

Sie können mehr als einen Layouteditor gleichzeitig öffnen und können Objekte nach Bedarf zwischen den Editoren kopieren und einfügen.


Werkzeugpalette des Layouteditors

Die Werkzeugpalette enthält die folgenden Arten von Werkzeugen:

•	Layout-Werkzeuge

•	Werkzeuge für das Zeichnen von Grafiken

•	Werkzeuge für das Zeichnen von Objekten

•	Paletten mit Füll-/Linienfarben

Mit den Werkzeugen des Layouteditors erstellen und bearbeiten Sie Objekte und Grafikobjekte. Das Werkzeug Auswählen ist das Standardwerkzeug. Mit ihm können Sie Objekte und Gruppen auswählen und bearbeiten. Um ein anderes Werkzeug zu aktivieren, klicken Sie auf das entsprechende Symbol in der Werkzeugpalette.

Wenn Sie auf ein Werkzeug klicken, wird dieses zum aktiven Werkzeug für einen einzelnen Vorgang. Der Rand um das entsprechende Symbol wird hervorgehoben. Wenn Sie auf ein Werkzeugsymbol doppelklicken, wird dieses Werkzeug fixiert und zum Standardwerkzeug. Die Symbolanzeige reflektiert den fixierten Status.

Um eine Popup-Beschreibung eines Werkzeugs anzuzeigen, setzen Sie den Cursor über das entsprechende Symbol, ohne mit der Maus zu klicken.


Zu einer anderen Leinwand im Layouteditor wechseln

So zeigen Sie eine andere Leinwand im Layouteditor an:

•	Wählen Sie eine bestimmte Leinwand aus der Popup-Liste Leinwand.

In der Popup-Liste Leinwand werden alle Leinwände angezeigt, die in der aktuellen Form definiert sind.


Layouteditor schließen

So schließen Sie den Layouteditor:

• Wählen Sie Datei [image] Schließen.


Über den PL/SQL-Editor

Im PL/SQL-Editor geben Sie Codeobjekte ein und kompilieren Sie Codeobjekte. Codeobjekte in Form Builder umfassen Ereignistrigger, Unterprogramme (Funktionen und Prozeduren), Menübefehle, Menü-Startcodes und Prozeduren.


PL/SQL-Editor anzeigen

So zeigen Sie den PL/SQL-Editor an:

Wählen Sie Programm [image] PL/SQL-Editor.

Oder

•	Doppelklicken Sie auf das Objektsymbol für ein beliebiges Codeobjekt im Objektnavigator.

Wenn Sie auf ein Symbol für einen Trigger oder einen Programmblock doppelklicken, während schon ein PL/SQL-Editor angezeigt wird, wird der Editor mit diesem Objekt synchronisiert. Um einen separaten PL/SQL-Editor für das Objekt aufzurufen, doppelklicken Sie statt dessen mit gedrückter Umschalttaste.


Kontext von PL/SQL-Editor

Mit den Optionen Typ und Objekt am oberen Rand des PL/SQL-Editors wird der aktuelle Objektkontext definiert. Im Namensfeld werden alle Codeobjekte aufgeführt, die in diesem Kontext definiert sind.

Wenn Sie den PL/SQL-Editor aufrufen und wenn es sich bei dem gerade ausgewählten Objekt um ein Codeobjekt oder ein Objekt handelt, mit dem Codeobjekte verknüpft sind, wird der PL/SQL-Editor mit dem Kontext dieses Objekts synchronisiert. Wenn ein Codeobjekt im aktuellen Kontext definiert ist, wird es im Editor angezeigt. Wenn keine Codeobjekte definiert sind, ist das Namensfeld leer, und Sie können Neu wählen, um ein neues Codeobjekt zu erstellen.

Sie können die Optionen Typ, Objekt und Name ändern, wenn Sie Codeobjekte anzeigen möchten, die in einem anderen Kontext definiert sind oder wenn Sie ein neues Codeobjekt in einem anderen Kontext erstellen möchten.

Typ  Stellt den Editorkontext auf einen bestimmten Typ von Codeobjekt ein. Wenn das aktuelle Modul eine Form ist, kann Typ auf Trigger oder Programmblock eingestellt werden. Wenn es sich bei dem aktuellen Modul um ein Menü handelt, kann Typ auf Menü-Startcode, Menüpunkt-Code oder Programmblock eingestellt werden. Wenn es sich bei dem aktuellen Modul um eine Bibliothek handelt, ist Typ immer Programmblock.

Objekt  Setzt den Editorkontext auf einen bestimmten Geltungsbereich des Objekts. Wenn Typ auf Trigger eingestellt ist, kann der Geltungsbereich des Objekts auf Form gesetzt werden, indem in der ersten Popup-Liste Formebene ausgewählt wird. Um den Editorkontext auf einen bestimmten Block zu setzen, wählen Sie den Namen des Blocks in der ersten Popup-Liste Objekt. Um den Editorkontext auf ein Objekt zu setzen, wählen Sie den Block, der das Objekt in der ersten Popup-Liste Objekt enthält. Danach wählen Sie das Objekt selbst in der zweiten Popup-Liste.

Wenn es sich bei dem aktuellen Modul um ein Menü handelt, können Sie die PL/SQL-Menübefehle bearbeiten, indem Sie Typ auf Menüpunkt-Code setzen und dann das Menü, in dem der Menüpunkt angezeigt werden soll, in der ersten Popup-Liste Objekt auswählen, während Sie den Menüpunkt selbst in der zweiten Popup-Liste auswählen.

Name  im Namensfeld werden alle Codeobjekte aufgeführt, die im aktuellen Kontext definiert sind. Wenn Sie ein Codeobjekt aus der Popup-Liste Name auswählen, wird dieses Objekt zum aktuellen Objekt im Editor. Wenn der Kontext z.B. auf einen Trigger auf Objektebene gesetzt ist, werden in der Popup-Liste Name alle Trigger angezeigt, die diesem Objekt zugeordnet sind. Um einen bestimmten Trigger anzuzeigen, wählen Sie diesen aus der Popup-Liste Name.

Wenn der Editorkontext auf Programmblock gesetzt ist, werden in der Popup-Liste Name alle Unterprogramme und Prozeduren angezeigt, die im aktuellen Modul definiert sind.


Befehle des PL/SQL-Editors

Kompilieren	Kompiliert den Code im Feld Quellcode. Der Compiler entdeckt Syntaxfehler, semantische Fehler und Referenzen auf nicht vorhandene Objekte, Prozeduren und Funktionen. Bei einer erfolgreichen Kompilierung wird in der Statuszeile die Meldung <Erfolgreich kompiliert> angezeigt.

Wiederherstellen	Macht Änderungen rückgängig, die am Quelltext vorgenommen wurden, seit der Editor aufgerufen wurde oder seit der letzte Wiederherstellen-Vorgang ausgeführt wurde. Die Schaltfläche Wiederherstellen ist deaktiviert, wenn keine Änderungen am Quelltext vorgenommen wurden.

Neu	Erstellt ein neues Codeobjekt desselben Typs und Geltungsbereichs wie das aktuelle Codeobjekt. Wenn das aktuelle Objekt z.B. ein Trigger ist, der einem Objekt zugeordnet ist, wird durch Auswahl von Neu die Werteliste der Trigger angezeigt, damit Sie einen neuen Trigger erstellen können, der diesem Objekt zugeordnet ist. Wenn es sich bei dem aktuellen Objekt um einen Programmblock handelt, wird durch Auswahl von Neu das Dialogfeld Neuer Programmblock aufgerufen.

Löschen	Löscht das aktuelle Codeobjekt und synchronisiert den PL/SQL-Editor mit dem nächsten Objekt diesen Typs mit demselben Geltungsbereich.

Schließen	Schließt den PL/SQL-Editor.

Hilfe	Zeigt ein Hilfethema an.

Auf eine Meldung klicken	Setzt die Einfügemarke in die Zeile, bei der ein Fehler im Quellcode-Ausschnitt entdeckt wurde.

Meldungsausschnitt  Zeigt Kompilierungsmeldungen an, wenn beim Kompilieren des aktuellen Programmblocks ein Fehler auftritt.

Statusleiste  Zeigt Statusinformationen über das aktuelle Codeobjekt an. Mit der Anzeige <Nicht geändert|Geändert> wird angegeben, ob ungespeicherte Änderungen vorhanden sind. Mit <Nicht kompiliert|Erfolgreich kompiliert|Mit Fehlern kompiliert> wird der aktuelle Kompilierungsstatus angegeben.


PL/SQL-Editor schließen

So schließen Sie den PL/SQL-Editor:

Klicken Sie auf die Schaltfläche Schließen im PL/SQL-Editor.


Über die Objektbibliothek

  Verwandte Themen

In jeder Entwicklungsumgebung gibt es immer Standards, an die sich die Entwickler halten, sowie gemeinsame Objekte, die während der gesamten Entwicklung immer wieder benutzt werden können.

Die Objektbibliothek bietet eine einfache Methode für die erneute Benutzung von Objekten und das Durchsetzen von Standards während der gesamten Entwicklung.

Mit der Objektbibliothek können Sie:

•	Standard- und wiederverwendbare Objekte erstellen, speichern, verwalten und verteilen.

•	schnell Anwendungen erstellen, indem Sie vordefinierte Objekte in Ihre Form ziehen und dort ablegen.

Es gibt eine Reihe von Vorteilen bei der Benutzung von Objektbibliotheken zur Anwendungsentwicklung:

•	Objektbibliotheken werden automatisch erneut geöffnet, wenn Sie Form Builder starten, so daß sofort auf wiederverwendbare Objekte zugegriffen werden kann.

•	Sie können mehrere Objektbibliotheken mit einer Anwendung verknüpfen. So können Sie z.B. eine Objektbibliothek speziell für Firmenstandards erstellen und eine Objektbibliothek für projektspezifische Anforderungen.

•	Objektbibliotheken umfassen SmartClasses - Objekte, die Sie als Standardobjekte definieren. Mit SmartClasses konvertieren Sie Objekte zu Standardobjekten.


Objektbibliothek anzeigen

  Verwandte Themen

So zeigen Sie die Objektbibliothek an:

• Wählen Sie Werkzeuge [image] Objektbibliothek.


Objektbibliothek-Module öffnen

  Verwandte Themen

So öffnen Sie ein Objektbibliothek-Modul:

1	Klicken Sie auf die Schaltfläche Öffnen in der Objektbibliothek.

2	In dem daraufhin angezeigten Dialogfeld geben Sie den Namen der gewünschten Datei ein.


Register in der Objektbibliothek erstellen

So erstellen Sie ein Register:

1	Klicken Sie im Objektnavigator auf den Knoten Bibliotheksregister für die gewünschte Objektbibliothek.

2	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

3	Geben Sie einen Namen für das neue Register ein.


Objekte in der Objektbibliothek kommentieren

So fügen Sie einen Kommentar hinzu:

1	In der Objektbibliothek klicken Sie auf das gewünschte Objekt.

2	Klicken Sie auf das Symbol Kommentar bearbeiten in der Symbolleiste.

3	Geben Sie den gewünschten Text in das Dialogfeld Kommentar ein.


Objekte aus der Objektbibliothek löschen

  Verwandte Themen

So löschen Sie ein Objekt aus der Objektbibliothek:

1	In der Objektbibliothek klicken Sie auf das gewünschte Objekt.

2	Klicken Sie auf die Schaltfläche Objekt löschen in der Symbolleiste.


Register in der Objektbibliothek löschen

So löschen Sie ein Register aus der Objektbibliothek:

1	Klicken Sie auf das gewünschte Register in der Objektbibliothek.

2	Klicken Sie auf die Schaltfläche Register löschen in der Symbolleiste.

Hinweis:  Wenn Sie ein Register löschen, löschen Sie alle Objekte in dem Register.


Objekte in der Objektbibliothek speichern

So speichen Sie Objekte in der Objektbibliothek:

1	Klicken Sie in der Objektbibliothek auf die Schaltfläche Speichern.

2	Geben Sie einen Namen in dem Dialogfeld ein.

3	Klicken Sie auf Speichern.


Objektbibliothek schließen

So schließen Sie die Objektbibliothek:

• Wählen Sie Datei [image] Schließen.


Über den Menüeditor

  Verwandte Themen

Der Menüeditor ist ein Entwicklungswerkzeug von Form Builder, mit dem Sie (zusammen mit dem Objektnavigator und der Attributpalette) benutzerdefinierte Form-Menümodule und Popup-Menüs erstellen und anordnen können.

Bevor Sie den Menüeditor benutzen können, um mit Menüobjekten zu arbeiten, müssen Sie ein neues Menümodul im Objektnavigator erstellen (oder ein bestehendes Menümodul öffnen).

Synchronisation  Unabhängig davon, ob Sie im Menüeditor, dem Objektnavigator oder der Attributpalette arbeiten, synchronisiert Form Builder die Entwicklungswerkzeuge automatisch so, daß diese das gerade ausgewählte Objekt gleichzeitig anzeigen, selbst wenn Form Builder Knoten und Menüs einblenden muß, um das Objekt anzuzeigen. Während Sie mit Menüs arbeiten, ist also dasselbe Menüobjekt immer im Menüeditor, dem Objektnavigator und der Attributpalette ausgewählt.


Menüeditor anzeigen

So zeigen Sie ein Menümodul im Menüeditor an:

1	Erstellen Sie ein neues Menümodul im Objektnavigator, oder wählen Sie ein bestehendes Menümodul aus.

2	Wählen Sie Werkzeuge [image] Menüeditor, oder doppelklicken Sie auf das Objektsymbol für das Menümodul im Objektnavigator.

Form Builder zeigt das Menümodul im Menüeditor an.

Sie können mehrere Menümodule gleichzeitig in separaten Fenstern des Menüeditors anzeigen. Während ein Fenster des Menüeditors geöffnet ist, wählen Sie ein anderes Menümodul im Objektnavigator, und zeigen Sie dann ein zweites Fenster des Menüeditors an.


Objekte im Menüeditor erstellen

  Verwandte Themen

So erstellen Sie neue Menüobjekte unter einem bestehenden Menüobjekt:

1	Wählen Sie einen bestehenden Hauptmenüpunkt oder einen Menüpunkt einer unteren Ebene im Menüeditor.

2	Gehen Sie folgendermaßen vor:

•	Klicken Sie auf die Schaltfläche Unten erstellen in der Symbolleiste des Menüeditors.

•	Wählen Sie Menü [image] Unten erstellen.

•	Drücken Sie die Tastenkombination Strg-Nach-unten-Taste.

Daraufhin wird ein neues Menüobjekt unter dem bestehenden Menüobjekt angezeigt.

So erstellen Sie ein Menüobjekt rechts neben einem bestehenden Menüobjekt:

1	Wählen Sie ein bestehendes Menü, Untermenü oder einen Menüpunkt im Menüeditor.

2	Gehen Sie folgendermaßen vor:

•	Klicken Sie auf die Schaltfläche Rechts erstellen in der Symbolleiste des Menüeditors.

•	Wählen Sie Menü [image] Rechts erstellen.

•	Drücken Sie die Tastenkombination Strg-Nach-rechts-Taste.

Daraufhin wird ein neues Menüobjekt rechts neben dem bestehenden Menüobjekt angezeigt.

Menüpunkt-Handles  Beachten Sie, daß wann immer Sie den ersten Menüpunkt zu einem Menü oder Untermenü auf einer niedrigeren Ebene hinzufügen, Form Builder ein schattiertes Rechteck bzw. ein Handle links neben das Objekt setzt. Benutzen Sie dieses Handle, um Vorgänge mit allen Menüpunkten als Einheit durchzuführen oder um die Attribute auf Menüebene in der Attributpalette anzuzeigen.


Über die Anzeige von Objekten im Menüeditor

  Verwandte Themen

Wenn Sie wissen möchten, zu welchem Menü ein bestimmter Menüpunkt gehört, doppelklicken Sie auf das Menü-Handle und überprüfen Sie das Attribut Name in der Attributpalette. Das Menü-Handle im Menüeditor entspricht dem Menünamen im Objektnavigator.

Hinweis:  Der oberste Menüpunkt in einem Menü ist nicht der erste Menüpunkt in dem Menü; er gehört zum übergeordneten Menü.


Über das Ein- und Ausblenden von Menüobjekten

  Verwandte Themen

Im Menüeditor werden Objekte (Menüs auf niedrigerer Ebene und Untermenüs) genau wie Form Builder-Objekte im Objektnavigator ein- und ausgeblendet. Die dreieckigen Einblenden-/Ausblenden-Indikatoren im Menüeditor entsprechen den + und - Indikatoren im Objekteditor. Ein Dreieck in Form eines Umrisses bedeutet, daß ein Menü eingeblendet ist; ein ausgefülltes Dreieck gibt an, daß ein Menü ausgeblendet ist.

Sie können ein Menüobjekt (mit den Befehlen Einblenden oder Ausblenden) um eine Ebene ein- oder ausblenden oder können alle zugehörigen Ebenen eines Menüobjekts (mit den Befehlen Alles einblenden und Alles ausblenden) ein- oder ausblenden. Die Ebenen von verknüpften Menüobjekten beziehen sich auf das aktuelle Menüobjekt und auf alle Objekte unter oder rechts neben dem Objekt.

Das Objekt, das Sie im Menüeditor (vor dem Ein- oder Ausblenden) auswählen, definiert den Umfang des Vorgangs.

•	Wenn Sie ein schattiertes Menü-Handle auswählen, gelten die Befehle Einblenden, Alles einblenden, Ausblenden oder Alles ausblenden für alle Menüs und Untermenüs, die mit dieser Menüstruktur verbunden sind.

•	Wenn Sie einen Menü-Punkt auswählen, gelten die Befehle Einblenden, Alles einblenden, Ausblenden oder Alles ausblenden nur für die Menüs und Untermenüs auf niedrigerer Ebene, die mit diesem Menüpunkt verbunden sind.


Einzelne Objekte im Menüeditor ein- und ausblenden

  Verwandte Themen

So blenden Sie individuelle Menüobjekte ein und aus:

1	Wählen Sie ein Objekt aus, bei dem ein Dreieck-Indikator Einblenden/Ausblenden angezeigt wird.

2	Gehen Sie folgendermaßen vor, um zwischen dem eingeblendeten und ausgeblendeten Status umzuschalten:

•	Doppelklicken Sie auf den Dreieck-Indikator.

•	Drücken Sie die Eingabetaste.

•	Wählen Sie Menü [image] Einblenden oder Menü [image] Ausblenden.


Zusammengehörige Objekte im Menüeditor ein- und ausblenden

  Verwandte Themen

So blenden Sie zusammengehörige Menüobjekte ein und aus:

1	Wählen Sie ein Objekt aus, bei dem ein Dreieck-Indikator Einblenden/Ausblenden angezeigt wird.

2	Gehen Sie folgendermaßen vor, um zwischen dem voll ausgeblendeten und voll eingeblendeten Status umzuschalten:

•	Doppelklicken Sie bei gedrückter Umschalttaste auf den Dreieck-Indikator.

•	Drücken Sie Umschalttaste-Eingabetaste.

•	Wählen Sie Menü [image] Alles einblenden  oder Menü [image] Alles ausblenden.


Menüs auf der obersten Ebene des Menüeditors anzeigen

  Verwandte Themen

So zeigen Sie ein Menü auf der obersten Ebene des Menüeditors an:

1	Klicken Sie in der Symbolleiste des Menüeditors auf die Popup-Liste Menü anzeigen.

2	Wählen Sie das Menü aus, das auf der obersten Ebene angezeigt werden soll.

Form Builder zeigt vorübergehend das Menü auf der niedrigeren Ebene als Menü der obersten Ebene im Menüeditor an. Um wieder zu der Originalanzeige zurückzukehren, wählen Sie wieder das Hauptmenü aus der Popup-Liste Menü anzeigen.

Hinweis:  Wenn Sie ein Menü einer niedrigeren Ebene als Menü der obersten Ebene im Menüeditor anzeigen, geschieht dies ausschließlich zu temporären Entwicklungszwecken und bleibt nur während der laufenden Entwicklungssitzung gültig. Zur Laufzeit ist das Hauptmenü immer das Menü der obersten Ebene.


Darstellung im Menüeditor wechseln

  Verwandte Themen

So ändern Sie die Darstellung des Menüeditors:

1	Wählen Sie das Menü im Objektnavigator aus.

2	Wählen Sie Werkzeuge [image] Menüeditor,  um den Menüeditor zu öffnen.

3	Wählen Sie Menü [image] Darstellung wechseln.


Objektnamen und Beschriftungen im Menüeditor ändern

  Verwandte Themen

So ändern Sie den Namen eines Menüobjekts:

1	Wählen Sie das Menüobjekt im Menüeditor aus.

2	Wählen Sie Werkzeuge [image] Attributpalette.

3	Ändern Sie in der Attributpalette unter dem Knoten Allgemein das Attribut Name für das Objekt.

Hinweis:  Sie sehen die Auswirkung dieser Änderung im Menüeditor nicht (es sei denn, bei dem Objekt handelt es sich um ein Menü, in diesem Fall können Sie den neuen Namen in der Popup-Liste Menü anzeigen sehen).

So ändern Sie die Beschriftung eines Menüobjekts:

1	Wählen Sie das Menüobjekt im Menüeditor aus.

Die Beschriftung wird invers angezeigt.

2	Klicken Sie erneut, um in den Bearbeitungsmodus zu gehen.

Der Cursor nimmt die Form eines Textcursors an, die inverse Anzeige wird zu einer normalen Anzeige, und der Textcursor wird an die Stelle gesetzt, an der Sie klicken.

3	Ersetzen Sie die alte Beschriftung durch eine neue Beschriftung.

Um den Bearbeitungsmodus zu beenden, drücken Sie die Eingabetaste. Um die Änderung der Beschriftung zu überprüfen, überprüfen Sie das Attribut Beschriftung für das Objekt in der Attributpalette.

Hinweis:  Wenn Sie die Beschriftung eines Menüobjekts zum ersten Mal im Menüeditor oder der Attributpalette ändern, reflektieren der Objektnavigator und die Attributpalette diese Änderung (so genau wie möglich) im Namen des Objekts, so daß Sie das gerade erstellte Objekt einfach finden können. Wenn Sie z.B. die Beschriftung für das Objekt ITEM2 von <Neues Objekt> in Tastenbelegung ändern, ändert Form Builder den Namen des Objekts automatisch von ITEM2 in SHOW_KEYS. Zusätzliche Änderungen an der Beschriftung des Objekts werden jedoch nicht automatisch im Objektnamen reflektiert.


Objekte im Menüeditor verschieben

So verschieben Sie ein Menü:

1	Klicken und ziehen Sie das schattierte Menü-Handle.

Wenn Sie auf ein Handle klicken, wird dieses als ausgefülltes Rechteck angezeigt, der Cursor nimmt die Form eines Pluszeichens (+) an, und Form Builder hebt die Stellen, an denen Sie das Menü ablegen können, hervor, während Sie den Cursor an eine bestimmte Stelle ziehen.

2	Legen Sie das Menü an der gewünschten Stelle ab.

Hinweis:  Wenn Sie ein Menü verschieben, werden auch die zugehörigen Untermenüs verschoben.

So verschieben Sie einen Menüpunkt:

1	Klicken und ziehen Sie den Menüpunkt.

Wenn Sie ein Objekt ziehen, zeigt Form Builder eine dicke durchgezogene Linie an, um anzugeben, wo Sie den Menüpunkt richtig ablegen können.

2	Legen Sie den Menüpunkt an der gewünschten Stelle ab.

Hinweis:  Bei einen Menüpunkt, der ein Untermenü anzeigt, muß das Attribut Befehlstyp auf Menü eingestellt sein. Wenn Sie also ein Untermenü zu dem übergeordneten Menüpunkt verschieben, während Befehlstyp auf PL/SQL oder Null eingestellt ist, zeigt Form Builder ein Warnfenster an:

RM-15207: Typ von übergeordnetem Objekt muß geändert werden, bevor Untermenü zugeordnet wird. (Code kann verlorengehen.)

3	Gehen Sie folgendermaßen vor:

•	Wählen Sie Typ ändern, um die Typänderung zu akzeptieren, es sei denn, dem Menüpunkt ist PL/SQL-Code zugeordnet, der gespeichert werden soll.

•	Wenn dem Menüpunkt PL/SQL-Code zugeordnet ist, wählen Sie Abbrechen, und kopieren Sie den PL/SQL-Code, bevor Sie das Objekt verschieben.


Objekte im Menüeditor kopieren

So kopieren Sie ein Menü:

1	Ziehen Sie bei gedrückter Strg-Taste das schattierte Menü-Handle zu dem Zielobjekt.

Wenn Sie auf ein Handle klicken, wird dieses als ausgefülltes Rechteck angezeigt, der Cursor nimmt die Form eines Pluszeichens (+) an, und Form Builder hebt die Stellen, an denen Sie das Menü ablegen können, hervor, während Sie den Cursor an eine bestimmte Stelle ziehen.

Form Builder zeigt dann folgendes Warnfenster an:

   Menü duplizieren oder Original wiederverwenden?

2	Gehen Sie folgendermaßen vor:

•	Wählen Sie Duplizieren, um eine separate Kopie des Menüs zu erstellen.

Wenn Untermenüs vorhanden sind, zeigt Form Builder folgende Meldung an:

   Untermenüs kopieren?

Wählen Sie Ja, um alle Ebenen der Untermenüs zu kopieren, oder Nein, um nur die erste Ebene zu kopieren.

•	Wählen Sie Original wiederverwenden, um nur eine Kopie des Menüs zu behalten, das Menü jedoch von zwei verschiedenen Stellen zu referenzieren.

Mit Original wiederverwenden wird keine neue Instanz des Originals erstellt, sondern nur ein Zeiger zum Original definiert. Auf diese Weise können Sie dasselbe Menü aus mehr als einem Menüpunkt aufrufen. Beide Menüs sind identisch und haben denselben Namen, somit zeigen beide den Indikator Gemeinsam genutzt an. Alle nachfolgenden Änderungen an einer der beiden Instanzen des Menüs werden auch in dem anderen Menü angezeigt.

Hinweis:  Wenn eine Instanz eines gemeinsam genutzten Menüs ausgewählt ist, und Sie wissen möchten, wo die anderen Instanzen sind, wählen Sie Menü [image] Nächste Instanz.

So kopieren Sie einen Menüpunkt:

• .	Wählen Sie den Menüpunkt aus, und ziehen Sie den Menüpunkt dann bei gedrückter Strg-Taste zu dem Zielobjekt.


Objekte im Menüeditor löschen

So löschen Sie ein Menü oder Untermenü:

1	Klicken Sie auf das Menü- oder Untermenü-Handle.

2	Gehen Sie folgendermaßen vor:

•	Klicken Sie auf das Symbol Löschen in der Symbolleiste des Menüeditors.

•	Wählen Sie Menü [image] Löschen.

•	Drücken Sie Löschen.

Form Builder zeigt folgendes Warnfenster an:

   Wollen Sie das Menü vom übergeordneten Prozeß trennen oder löschen?

3	Wählen Sie Löschen, es sei denn, Sie möchten das verbleibende Menüfragment erneut benutzen.

Wenn das zu löschende Menü über Untermenüs verfügt, fragt Form Builder mit einer Meldung, ob die Untermenüs gelöscht werden sollen.

•	Wählen Sie Ja, um die ganze Struktur, einschließlich Untermenüs, zu löschen.

•	Wählen Sie Nein, wenn die Untermenüstruktur zur späteren Benutzung beibehalten werden soll. (Um das verwaiste Untermenü zu benutzen, gehen Sie zum Objektnavigator und verschieben es an eine andere Stelle.)

Wählen Sie Trennen, wenn Sie das Menüfragment für den späteren Gebrauch behalten möchten. (Um das Fragment wieder zuzuordnen, gehen Sie in den Objektnavigator und ordnen das Menüfragment einem neuen übergeordneten Prozeß zu.)

So löschen Sie Menüpunkte aus einem Menü oder Untermenü:

1	Wählen Sie den Menüpunkt.

2	Wählen Sie Menü [image] Löschen (oder klicken Sie auf das Symbol Löschen).

Form Builder zeigt ein Warnfenster an, in dem Sie den Löschvorgang bestätigen müssen.

3	Klicken Sie auf Ja.


Hauptmenüs erstellen

  Verwandte Themen

So erstellen Sie ein Hauptmenü:

1	Zeigen Sie das Menümodul im Menüeditor an.

Daraufhin wird der Menüeditor mit einem Menü namens MAIN_MENU angezeigt. Ein einzelner Menüpunkt mit der Beschriftung <Neues Objekt> wird hervorgehoben.

2	Geben Sie eine aussagefähigere Beschriftung (z.B. Aktion) ein.

3	Fügen Sie neue Hauptmenüpunkte hinzu, indem Sie neue Menüobjekte rechts neben dem bestehenden Hauptmenüpunkt erstellen.

Der Menüeditor erstellt Menüpunkte mit der Beschriftung <Neues Objekt>.

4	Ersetzen Sie die Standardbeschriftungen.

5	Wiederholen Sie die Schritte 3 und 4, um zusätzliche Hauptmenüpunkte zu erstellen.

Nachdem Sie das Hauptmenü erstellt haben, erstellen Sie einzelne Menüs, indem Sie Menüpunkte unter jedem Hauptmenüpunkt hinzufügen. Für jeden "übergeordneten" Menüpunkt im Hauptmenü (wie z.B. Aktion, Bearbeiten, Block usw.) können Sie eine Liste zugehöriger "untergeordneter" Menüpunkte erstellen.


Menüs auf niedrigerer Ebene erstellen

  Verwandte Themen

So erstellen Sie ein Menü auf niedrigerer Ebene:

1	Wählen Sie einen übergeordneten Menüpunkt im Hauptmenü.

2	Erstellen Sie ein neues Menüobjekt unter dem bestehenden Hauptmenüpunkt.

Der Menüeditor erstellt einen Menüpunkt mit der Beschriftung <Neues Objekt>.

3	Ersetzen Sie die Standardbeschriftung.

4	Um zusätzliche Menüpunkte zu erstellen, wiederholen Sie die Schritte 2 und 3.

Hinweis:  Indem Sie Menüpunkte unter dem übergeordneten Hauptmenüpunkt hinzugefügt haben, haben Sie den übergeordneten Menüpunkt zu einer Menüüberschrift gemacht. Form Builder ändert das Attribut Befehlstyp des übergeordneten Menüpunkts automatisch, um dies zu berücksichtigen. Prüfen Sie die Attribute des übergeordneten Menüpunkts in der Attributpalette. Das Attribut Befehlstyp wurde von PL/SQL in Menü geändert.

Nachdem Sie ein Menü unter dem Hauptmenü erstellt haben, können Sie Untermenüs erstellen, die rechts neben Menüpunkten angezeigt werden.


Untermenüs erstellen

  Verwandte Themen

So erstellen Sie ein Untermenü:

1	Wählen Sie einen einzelnen Menüpunkt aus.

2	Erstellen Sie ein neues Menüobjekt rechts neben dem bestehenden Menüpunkt.

Der Menüeditor erstellt einen Menüpunkt mit der Beschriftung <Neues Objekt>.

3	Ersetzen Sie die Standardbeschriftung.

4	Erstellen Sie ein neues Menüobjekt unter dem gerade erstellten Untermenüobjekt.

5	Ersetzen Sie die Standardbeschriftung.

6	Wiederholen Sie die Schritte 4 und 5, um zusätzliche Untermenüpunkte zu erstellen.


Über die Assistenten

Form Builder umfaßt verschiedene Assistenten, mit denen häufig ausgeführte Aufgaben sowohl für Erstbenutzer als auch für fortgeschrittene Benutzer automatisiert werden können.

Mit einem Assistenten können Sie folgende Aufgaben ausführen:

•	Forms erstellen oder ändern

•	Datenblöcke erstellen oder ändern

•	Objekte innerhalb eines Rahmens erstellen und ändern

•	Wertelisten erstellen oder ändern

•	Diagrammobjekte erstellen oder ändern

So rufen Sie einen Assistenten auf:

•	Wählen Sie den entsprechenden Assistenten-Befehl aus dem Menü Werkzeuge.


Text in Form Builder bearbeiten

In diesem Abschnitt werden die Befehle beschrieben, mit denen Sie Text in Form Builder bearbeiten und auswählen können. Sie können Text im Einfügen- oder Überschreiben-Modus eingeben. Der aktuelle Bearbeitungsmodus wird in der Statuszeile in Form Builder angezeigt. Um den Modus zu wechseln, drücken Sie [Einfügen/Ersetzen].

Mit den folgenden Befehlen können Sie Text bearbeiten.

Gewünschtes Ergebnis...	Vorgehensweise...
Ein Zeichen nach links oder rechts gehen.	Drücken Sie [Nach-Links] oder [Nach-Rechts].
Zur nächsten oder vorherigen Zeile in einem Editor gehen.	Drücken Sie [Nach-Oben] oder [Inach-Unten].
Zum Zeilenende gehen.	Drücken Sie [Zeilenende].
Zum Zeilenanfang gehen.	Drücken Sie [Zeilenanfang].
Text mit der Maus auswählen.	Klicken und ziehen Sie den gewünschten Text.
Ausgewählten Text löschen.	Wählen Sie Bearbeiten [image] Löschen.
Ausgewählten Text löschen und in die Zwischenablage kopieren.	Wählen Sie Bearbeiten [image] Ausschneiden, oder drücken Sie [Ausschneiden].
Ausgewählten Text in die Zwischenablage kopieren.	Wählen Sie Bearbeiten [image] Kopieren, oder drücken Sie [Kopieren].
Inhalt der Zwischenablage bei der Einfügestelle einfügen.	Wählen Sie Bearbeiten [image] Einfügen, oder drücken Sie [Einfügen].
Das Zeichen links neben der Einfügestelle löschen.	Drücken Sie [Rücktaste].


Editoren erstellen


Über Editoren

  Verwandte Themen

Es gibt drei Editoren, die zur Laufzeit benutzt werden können: Standardeditor, Systemeditor oder benutzerdefinierter Editor.

Standardeditor     Der Standardeditor verfügt über Standardfunktionen für das Editieren, einschließlich Suchen/Ersetzen und Ausschneiden, Kopieren und Einfügen. Der Standardeditor ist in jede Form integriert und steht automatisch für jedes Textobjekt zur Verfügung.

Systemeditor     Wenn ein Systemeditor verfügbar ist, können Sie angeben, daß Form Builder den aktuellen Systemeditor und nicht den Standardeditor benutzen soll.

Benutzerdefinierter Editor     Ein benutzerdefinierter Editor hat dieselben Textbearbeitungsfunktionen wie der Standardeditor. Da es sich jedoch um ein benanntes Objekt handelt, können Sie Editorattribute angeben, wie z.B. Fenstergröße, -position und -titel. Außerdem kann ein benutzerdefinierter Editor programmgesteuert mit der vordefinierten Prozedur SHOW_EDITOR unabhängig von einem bestimmten Textobjekt angezeigt werden.

Standardmäßig können Operatoren einen Editor aufrufen, indem Sie zu einem Textobjekt navigieren und [Bearbeiten] drücken oder Bearbeiten [image] und den entsprechenden Bearbeiten-Befehl aus dem Standardmenü auswählen. Ein Editor kann auch programmgesteuert angezeigt werden, indem die vordefinierte Prozedur EDIT_TEXTITEM ausgeführt wird, während der Cursor in einem Textobjekt steht.


Standardeditor benutzen

  Verwandte Themen

Im Gegensatz zu benutzerdefinierten Editoren müssen Sie den Standardeditor nicht erstellen oder zuordnen. Er ist in jeder Form integriert und kann aus jedem Textobjekt aufgerufen werden.

Wenn der Standardeditor zur Laufzeit aufgerufen wird, bestimmt Form Builder dessen Größe und Position dynamisch aufgrund der Größe und Position des Textobjekts, aus dem der Editor aufgerufen wurde.

So ändern Sie Anzeigegröße und Position des Standardeditors:

1.	Wählen Sie das gewünschte Textobjekt im Objektnavigator aus.

2.	Setzen Sie das Attribut Editor in der Attributpalette auf <Null>, indem Sie <Null> aus der Popup-Liste für das Editor-Attribut auswählen.

3.	Geben Sie die Anzeigekoordinaten des Editors an, indem Sie die Attribute Editor X-Position und Editor Y-Position festlegen.


Benutzerdefinierte Editoren benutzen

  Verwandte Themen

Ein benutzerdefinierter Editor hat dieselben Textbearbeitungsfunktionen wie der Standardeditor. Sie erstellen einen benutzerdefinierten Editor, wenn Sie den Editor programmgesteuert mit SHOW_EDITOR anzeigen möchten, oder wenn Sie individuelle Editorattribute angeben möchten, wie z.B. Bildlaufleiste und Titel.

Nachdem Sie einen benutzerdefinierten Editor definiert haben, können Sie ihn jedem Textobjekt in der Form zuordnen. Wenn der Operator zu dem Textobjekt navigiert und einen Editor aufruft, ersetzt ein benutzerdefinierter Editor den Standardeditor für dieses Objekt.

So erstellen Sie einen benutzerdefinierten Editor:

1.	Erstellen Sie ein Editorobjekt im Objektnavigator.

Um einen Editor zu erstellen, wählen Sie den Knoten Editoren im Objektnavigator, und wählen Sie dann Navigator [image] Erstellen.

2.	In der Attributpalette legen Sie die gewünschten Editorattribute fest, einschließlich Höhe, Breite, X-Position, Y-Position, Umbruchstil, horizontale Symbolleistenleinwand, vertikale Symbolleistenleinwand usw.

3.	Ordnen Sie den Editor einem oder mehreren Textobjekten in Ihrer Form zu, oder zeigen Sie den Editor an, indem Sie die vordefinierte Prozedur SHOW_EDITOR aufrufen.

So ordnen Sie einen benutzerdefinierten Editor einem Textobjekt zu:

1.	Wählen Sie das gewünschte Textobjekt im Objektnavigator aus.

2.	Legen Sie das Attribut Editor in der Attributpalette auf den gewünschten benutzerdefinierten Editor fest, indem Sie diesen aus der Popup-Liste für das Attribut Editor auswählen.

3.	Geben Sie die Anzeigekoordinaten des Editors an, indem Sie die Attribute X-Position und Y-Position festlegen.


Systemeditor benutzen

  Verwandte Themen

Sie können angeben, daß Form Builder einen Systemeditor und nicht den Standardeditor benutzen soll. Operatoren rufen den Systemeditor genau wie den Standardeditor auf.

Der zu benutzende Systemeditor wird von der Umgebungsvariablen FORMS60_EDITOR definiert. Der angegebene Editor muß das ASCII-Textformat verwenden. Für Informationen über Umgebungsvariablen und die Verfügbarkeit des Systemeditors wird auf die Form Builder-Dokumentation für Ihr Betriebssystem verwiesen.

So benutzen Sie einen Systemeditor:

1.	Wählen Sie das gewünschte Textobjekt im Objektnavigator aus.

2	Doppelklicken Sie auf das Symbol neben dem Textobjekt, um die Attributpalette anzuzeigen.

3.	In der Attributpalette wählen Sie SYSTEM_EDITOR aus der Popup-Liste für das Attribut Editor.

4.	Geben Sie die Anzeigekoordinaten des Editors an, indem Sie die Attribute Editor X-Position und Editor Y-Position in der Attributpalette festlegen.

5.	Definieren Sie die Umgebungsvariable FORMS60_EDITOR.

Bei Microsoft Windows können Sie z.B. den Editor als Systemeditor benutzen, indem Sie FORMS60_EDITOR wie folgt definieren:

FORMS60_EDITOR = C:\WINDOWS\NOTEPAD.EXE


EDIT_TEXTITEM zur Anzeige eines Editors benutzen

  Verwandte Themen

Mit der Prozedur EDIT_TEXTITEM wird der Editor aufgerufen, der mit dem aktuellen Textobjekt in der Form verbunden ist (der Standardeditor, ein benutzerdefinierter Editor oder der aktuelle Systemeditor). In dem folgenden Beispiel wird zu einem Textobjekt navigiert und wird dann der mit diesem Objekt verknüpfte Editor angezeigt.

Go_Item('cust.comments');
Edit_TextItem;

Der Eingabefokus muß in einem Textobjekt stehen, damit EDIT_TEXTITEM erfolgreich ausgeführt werden kann. Wenn der Eingabefokus in einer anderen Objektart steht, zeigt Form Builder die Meldung FRM-41026: Das Feld versteht den Vorgang nicht an. EDIT_TEXTITEM verfügt über optionale Parameter, mit denen Sie dynamische Größen- und Positionskoordinaten angeben können:

Edit_Textitem(x, y, Breite, Höhe);


Editoren mit SHOW_EDITOR anzeigen

  Verwandte Themen

Mit der Prozedur SHOW_EDITOR wird ein benutzerdefinierter Editor bei den angegebenen Anzeigekoordinaten angezeigt. SHOW_EDITOR verwendet die Parameter message_in und message_out, mit denen Sie eine Textfolge in den Editor übergeben und die editierte Textfolge wieder abrufen können, wenn der Operator den Editor akzeptiert.

SHOW_EDITOR(editor_name, message_in, x, y, message_out, result);

Der Parameter result ist ein BOOLEAN IN OUT-Parameter. Wenn der Operator den Editor akzeptiert, setzt SHOW_EDITOR result auf TRUE und message_out auf die aktuelle Textfolge. Wenn der Operator den Editor abbricht, setzt SHOW_EDITOR result auf FALSE und message_out auf NULL.


Über die Behandlung von Laufzeitfehlern in Triggern

  Verwandte Themen

Wenn Sie einen Trigger beim Entwurf kompilieren oder ein Formmodul generieren, entdeckt der Compiler Fehler, die eine erfolgreiche Ausführung des Triggers zur Laufzeit verhindern würden. Andere Fehler hingegen treten erst zur Laufzeit auf und können häufig nicht vermieden werden.

Wenn ein Laufzeitfehler auftritt, müssen Sie den Fehler in Ihrem Trigger-Code erkennen und beheben, damit er den Ablauf der Anwendung nicht unterbricht. Trigger sollten so geschrieben werden, daß Laufzeitfehler so gehandhabt werden, daß sie die Arbeit des Form-Operators nicht unterbrechen.

Mit der Standardfunktionalität von Form Builder können Sie Laufzeitfehler behandeln, indem Sie Fehler entdecken, während diese auftreten, Fehlermeldungen ausgeben, die Werte von Fehlervariablen setzen und gegebenenfalls Transaktionen zurücksetzen, die nicht erfolgreich ausgeführt werden können. Sie können die Standard-Fehlerverarbeitung unterstützen, indem Sie Trigger schreiben, die auf Fehler in einer anwendungsspezifischen Weise reagieren.

Hinweis:  In diesem Abschnitt wird davon ausgegangen, daß Sie mit den Fehlerbehandlungstechniken bei PL/SQL vertraut sind. Weitere Informationen finden Sie in PL/SQL User's Guide and Reference.


Über die Benutzung der PL/SQL-Fehlerverarbeitung in Triggern

  Verwandte Themen

Fehler im PL/SQL-Code werden als Exceptions bezeichnet. Wenn ein Fehler auftritt, wird eine Exception ausgelöst. Um ausgelöste Exceptions zu verarbeiten, können Sie Unterbrechungsroutinen für Exceptions schreiben. In Form Builder können Sie Unterbrechungsroutinen für Exceptions benutzen, um Laufzeitfehler zu verarbeiten, die in folgenden Anweisungen auftreten:

•	SQL-Anweisungen

•	PL/SQL-Anweisungen

•	Aufrufen von benutzerdefinierten Unterprogrammen

Wenn eine dieser Anweisungen in einem Trigger oder PL/SQL-Block eine Exception auslöst, wird die normale Verarbeitung gestoppt und wird die Kontrolle an den Bereich zur Fehlerbehandlung des Triggers übergeben.

Wie Exceptions in Triggern weitergereicht werden  PL/SQL-Blöcke können als interne Blöcke in Triggern von Form Builder verschachtelt sein. So kann ein Trigger z.B. einen Block enthalten, der einen anderen Block einschließt.

Wenn der innere Block eine Exception auslöst, für den es keine Exception-Verarbeitungsroutine gibt, wird dieser Block beendet und die Exception an den umschließenden Block weitergegeben. Wenn in dem umschließenden Block keine Exception-Verarbeitungsroutine gefunden wird, wird die Exception wieder weitergegeben, bis sie schließlich den äußersten Block des Triggers erreicht. Wenn der äußere Block die Exception nicht verarbeitet, wird der Trigger nicht erfolgreich ausgeführt, und Form Builder gibt einen Laufzeitfehler zurück.

In benutzerdefinierten Unterprogrammen ausgelöste Exceptions  Im Hinblick auf die Verarbeitung von Exceptions werden Aufrufe von benutzerdefinierten Unterprogrammen als interne PL/SQL-Blöcke innerhalb eines Triggers behandelt. Das heißt eine nicht verarbeitete Exception, die in einem benutzerdefinierten Unterprogramm ausgelöst wurde, wird an den Block weitergereicht, in dem das Unterprogramm aufgerufen wurde.


Über die Ergebnisse von Trigger-Fehlern

  Verwandte Themen

Nachdem ein Trigger ausgelöst wurde, kann er entweder erfolgreich oder mit einem Fehler beendet werden. Ein Trigger wird mit einem Fehler beendet, wenn eine unbehandelte Exception ausgelöst wird. In diesem Fall bricht Form Builder den Trigger ab und führt die entsprechende Nach-Fehler-Verarbeitung durch. Die Verarbeitung, die Form Builder ausführt, hängt von der Art des Triggers ab, der mit einem Fehler beendet wurde.

In der folgenden Tabelle wird die Nach-Fehler-Behandlung für drei Arten von Triggern aufgeführt:

Trigger-Typ	Ergebnis des Trigger-Fehlers
Taste - * (beliebiger Tasten-Trigger)	Trigger-Fehler wird ignoriert.
Pre-Item	Form Builder versucht, den Eingabefokus wieder zu dem Quellobjekt zurückzugeben.
On-Insert	Form Builder setzt alle Datenbankänderungen zurück, die von dem aktuellen Commit-Prozeß abgeschickt wurden, und versucht, zu dem ersten Objekt im aktuellen Datensatz des fehlerhaften Blocks zu navigieren.
When-Validate-Item	Die Objektvalidierung ist nicht erfolgreich. Form Builder bestimmt den Fehlerort. Wenn möglich, wird der Eingabefokus an das Quellobjekt zurückgegeben.

Wenn ein Trigger mit einem Fehler ausgeführt wird, versucht Form Builder, Bedingungen rückgängig zu machen, die einen Laufzeitfehler aufgrund des Trigger-Fehlers verursachen würden.

So wird z.B. ein Pre-Item-Trigger ausgelöst, wenn Form Builder versucht, den Eingabefokus von einem Quellobjekt zu einem Zielobjekt zu verschieben. Wenn ein Pre-Item-Trigger mit einem Fehler ausgeführt wird, kann die Navigierung nicht erfolgreich durchgeführt werden, so daß Form Builder den Eingabefokus an das Quellobjekt zurückgibt.

Wenn ein Trigger zur Verarbeitung von Speichervorgängen wie z.B. On-Insert mit einem Fehler ausgeführt wird, führt Form Builder den entsprechenden Rollback-Vorgang durch, um die Datenintegrität zu gewährleisten.


Über die Verarbeitung von in Triggern ausgelösten Exceptions

  Verwandte Themen

Wenn Sie Trigger schreiben, die SQL-Anweisungen, PL/SQL-Anweisungen oder Aufrufe von benutzerdefinierten Unterprogrammen umfassen, sollten Sie berücksichtigen, wie eventuell ausgelöste Exceptions verarbeitet werden sollen. Je nach gewünschtem Verhalten können Sie auf drei verschiedene Arten auf Exceptions reagieren:

•	Sie können Unterbrechungsroutinen für Exceptions in dem Trigger schreiben, um alle ausgelösten Exceptions zu verarbeiten.

•	Sie können die standardmäßige Post-Failure-Trigger-Verarbeitung von Form Builder nutzen, indem Sie Unterbrechungsroutinen für Exceptions absichtlich weglassen; wenn eine Exception ausgelöst wird, wird der Trigger mit einem Fehler beendet und die entsprechende Post-Failure-Verarbeitung ausgeführt.

•	Sie können Unterbrechungsroutinen nur für die spezifischen Exceptions schreiben, die in dem Trigger behandelt werden sollen, und die anderen Exceptions unbearbeitet lassen, damit der Trigger mit einem Fehler beendet wird.


Auf Fehler reagieren

  Verwandte Themen

Wenn ein Fehler auftritt, können Sie die folgenden vordefinierten Prozeduren verwenden, um Informationen über den Fehler abzurufen, einschließlich Fehlernummer, Typ und Meldung:

•	ERROR_TYPE (gibt CHAR zurück)

•	ERROR_CODE (gibt NUMBER zurück)

•	ERROR_TEXT (gibt CHAR zurück)

•	DBMS_ERROR_CODE (gibt NUMBER zurück)

•	DBMS_ERROR_TEXT (gibt CHAR zurück)


Über die Auswertung von Erfolg oder Mißerfolg von vordefinierten Prozeduren

  Verwandte Themen

Eine vordefinierte Prozedur kann eines von drei Ergebnissen haben: Erfolg, Mißerfolg oder Abbruchfehler. Wenn eine vordefinierte Prozedur mit einem Ausfall beendet wird, kommt es zu einem Laufzeitfehler, und Form Builder reagiert, indem die entsprechende Fehlermeldung ausgegeben wird. Es wird jedoch keine Exception in dem Trigger ausgelöst. Deshalb kommt es nicht zu einem Scheitern des Triggers selbst, und eventuell nachfolgende Anweisungen in dem Trigger werden ausgeführt.

Wenn Sie vordefinierte Prozeduren in Triggern aufrufen, werden Sie häufig Erfolg oder Mißerfolg der vordefinierten Prozedur abfangen, so daß Sie eventuelle Fehler korrigieren oder veranlassen können, daß der Trigger absichtlich mit einem Scheitern beendet wird. Dies gilt insbesondere dann, wenn nachfolgende Trigger-Anweisungen vom erfolgreichen Ergebnis der vorherigen vordefinierten Prozedur abhängen.

Um Erfolg oder Mißerfolg einer vordefinierten Prozedur abzufangen, benutzen Sie die folgenden vordefinierten Funktionen von Form Builder:

•	FORM_SUCCESS (gibt BOOLEAN zurück)

•	FORM_FAILURE (gibt BOOLEAN zurück)

•	FORM_FATAL (gibt BOOLEAN zurück)

Diese Funktionen berichten über das Ergebnis der als letztes ausgeführten vordefinierten Prozedur. In dem folgenden When-Button-Pressed-Trigger wird die Funktion FORM_SUCCESS benutzt, um das Ergebnis der vordefinierten Prozedur GO_BLOCK zu testen:

Go_Block('xyz_block');

IF NOT Form_Success THEN

--handle the error

END IF;

Dieser Test erkennt sowohl Abbruch- als auch Ausfallfehler und ist somit umfassender als FORM_FAILURE oder FORM_FATAL alleine.


Fehler in vordefinierten Prozeduren verarbeiten

  Verwandte Themen

Wenn eine vordefinierte Prozedur nicht erfolgreich beendet wird oder einen Abbruchfehler verursacht, können Sie festlegen, daß der Trigger, von dem aus die vordefinierte Prozedur aufgerufen wurde, nicht erfolgreich beendet wird, so daß Form Builder die Verarbeitung nachfolgender Trigger-Anweisungen nicht fortsetzen kann.

Im vorherigen Thema wurde ein Trigger dargestellt, der beim Auslösen einer nicht verarbeiteten Exception einen Ausfall verursacht. Da Fehler in vordefinierten Prozeduren jedoch keine Exceptions auslösen, müssen Sie explizit in Ihrem Code eine Exception auslösen, damit ein Trigger nicht erfolgreich beendet wird:

/*  When-Button-Pressed Trigger:  */

Go_Block('xyz_block');

IF NOT Form_Success THEN

RAISE Form_Trigger_Failure;

END IF; END IF;

Da dieser Trigger keinen Abschnitt zur Fehlerbehandlung enthält, führt das Auslösen einer Exception zu einem Scheitern des Triggers, und Form Builder führt die Post-Failure-Verarbeitung für den jeweiligen Trigger aus. Auch wenn eine gültige Exception ausgelöst werden kann, mit der ein Trigger erfolglos beendet wird, benutzt das Beispiel die vordefinierte Exception FORM_TRIGGER_FAILURE.


Exception FORM_TRIGGER_FAILURE auslösen

  Verwandte Themen

Die Exception FORM_TRIGGER_FAILURE ist eine vordefinierte PL/SQL-Exception, die nur in Form Builder verfügbar ist. Da sie vordefiniert ist, können Sie diese Exception auslösen, ohne sie zuerst im deklarativen Abschnitt eines Triggers oder benutzerdefinierten Unterprogramms definieren zu müssen.

Diese Exception wird so häufig in Form Builder benutzt, daß im allgemeinen eine benutzerdefinierte Prozedur geschrieben wird, die für das Testen des Ergebnisses der vordefinierten Prozeduren und Funktionen verwendet werden kann:

/*  user-named subprogram:  */

PROCEDURE Check_Builtin ISBEGIN

IF NOT Form_Success THEN

RAISE Form_Trigger_Failure;

END IF; END;

Sie können die Prozedur in einer Form oder einer zugeordneten Bibliothek definieren und sie dann aus einem beliebigen Trigger in Ihrer Form aufrufen:

/*  When-Button-Pressed Trigger:  */

Go_Block('xyz_block');

Check_Builtin;

Hinweis:  Benutzen Sie den internen Fehlercode nicht, der mit der Exception FORM_TRIGGER_FAILURE verknüpft ist, da sich der interne Fehlercode ohne Vorankündigung ändern kann.


Fehler in benutzerdefinierten Triggern verarbeiten

  Verwandte Themen

Benutzerdefinierte Trigger werden durch Aufruf der vordefinierten Prozedur EXECUTE_TRIGGER aufgerufen:

/*  Built-in Trigger:  */

statement a;

Execute_Trigger('my_user_named_trigger');

statement b;

Wenn eine nicht verarbeitete Exception in einem benutzerdefinierten Trigger ausgelöst wird, führt der benutzerdefinierte Trigger zu einem Ausfall, die Exception wird jedoch nicht an den aufrufenden Trigger weitergereicht. Statt dessen behandelt Form Builder den Ausfall als Fehler in der vordefinierten Prozedur EXECUTE_TRIGGER und setzt die Rückgabewerte der vordefinierten Fehlerfunktionen dementsprechend. Somit kann das Ergebnis eines benutzerdefinierten Triggers genau wie ein Aufruf einer anderen vordefinierten Prozedur abgefangen werden, d.h. durch Auswertung der vordefinierten Fehlerfunktionen:

/*  Built-in Trigger:  */

statement a;

Execute_Trigger('my_usernamed_trigger');

IF NOT Form_Success THEN

RAISE Form_Trigger_Failure;

END IF;

statement b;


Fehlerverarbeitung bei gespeicherten Prozeduren

  Verwandte Themen

Es gibt drei Hauptmethoden für das Abfangen von ORACLE-Fehlern, die während der Verarbeitung des PL/SQL-Codes vom Kernel zurückgegeben werden:

•	Überprüfen der vordefinierten Prozeduren DBMS_ERROR_TEXT und DBMS_ERROR_CODE innerhalb eines ON-ERROR-Triggers auf Formebene

•	Erstellen entsprechender benutzerdefinierter Exceptions

•	Auswertung der Funktionen SQLCODE und SQLERRM in einer Exception-Verarbeitungsroutine WHEN OTHERS


DBMS_ERROR_TEXT und DBMS_ERROR_CODE überprüfen

  Verwandte Themen

Aus einem ON-ERROR-Trigger können Sie prüfen, ob die Funktion ERROR_CODE einen der folgenden datenbankbezogenen Fehler angibt:

40501: ORACLE-Fehler - Datensatz konnte zum Aktualisieren/Löschen nicht reserviert werden

40502: ORACLE-Fehler - Werteliste konnte nicht gelesen werden

40505: ORACLE-Fehler - Abfrage konnte nicht ausgeführt werden

40506: ORACLE-Fehler - Prüfen der Datensatz-Eindeutigkeit nicht möglich

40507: ORACLE-Fehler - Nächster Datensatz konnte nicht abgerufen werden

40508: ORACLE-Fehler - Datensatz konnte nicht eingefügt werden

40509: ORACLE-Fehler - Datensatz konnte nicht aktualisiert werden

40510: ORACLE-Fehler - Datensatz konnte nicht gelöscht werden

40512: ORACLE-Fehler - SAVEPOINT-Befehl konnte nicht ausgeführt werden

40513: ORACLE-Fehler - Datum/Uhrzeit kann nicht aus der Datenbank abgefragt werden

40504: ORACLE-Fehler - gname-Trigger konnte nicht ausgeführt werden

40511: ORACLE-Fehler beim Ausführen eines gname-Triggers

Sobald Sie wissen, daß ein Datenbankfehler zu einem Scheitern der Formverarbeitung geführt hat, können Sie die Funktionen DBMS_ERROR_TEXT und DBMS_ERROR_CODE abfragen, um genau festzustellen, welcher Server-Fehler aufgetreten ist. Der vollständige Text der Fehlermeldung ist im Rückgabewert für DBMS_ERROR_TEXT verfügbar.


Benutzerdefinierte Exceptions

 Beispiele   [image]  Verwandte Themen

Auch wenn PL/SQL viele vordefinierte Exceptions enthält - wie z.B. NO_DATA_FOUND, DUP_VAL_ON_INDEX und VALUE_ERROR - decken diese niemals den gesamten Bereich der ORACLE-Fehler ab, die Sie möglicherweise abfangen müssen. Deshalb bietet PL/SQL Ihnen die Möglichkeit, Ihre eigenen Exceptions zu definieren und diese mit dem Auftreten eines bestimmten Oracle-Fehlers Ihrer Wahl zu verknüpfen. Der folgende Code stellt dar, wie EXCEPTION_INIT benutzt wird, um PL/SQL anzuweisen, einen Bericht über einen Fehler Ihrer Wahl zu erstellen. Weitere Informationen finden Sie in PL/SQL User's Guide and Reference.


Beispiele für benutzerdefinierte Exceptions

Beispiel

/*

**	Example of declaring your own error-driven exceptions

*/

DECLARE

    /*

    ** First declare the name of the exception

    */

    cannot_del_parent  EXCEPTION;

    /*

    ** Then associate it with the ORA-2292 error

    ** which is "violated integrity constraint XYZ -

    ** child record found". Note error number is negative.

    */

    PRAGMA Exception_Init (cannot_del_parent, -2292);

BEGIN

    DELETE FROM PARENT_TABLE

    WHERE PRIMARY_KEY_FIELD = :BLOCK.PK;

    /*

    ** If we get here, then things went ok.

    */

EXCEPTION

    /*

    ** If our error arises, then this exception

    ** will be raised. We can deal with it elegantly.

    */

    WHEN cannot_del_parent THEN

       Message('You cannot remove open '||

       'order number'||:block.pk);

       RAISE Form_Trigger_Failure;

END;

Diese Methode eignet sich am besten, wenn Ihre Anwendung aufgrund der ORACLE-Fehlernummer selbst feststellen kann, was geschehen ist. Benutzerdefinierte Fehlermeldungen können von Datenbanktriggern, Prozeduren oder Funktionen zurückgegeben werden, wie weiter vorne bei RAISE_APPLICATION_ERROR angegeben. Das Erstellen entsprechender benutzerdefinierter Exceptions ist die natürliche Methode für das Abfangen ausgelöster Fehler.

Einige vom Kernel zurückgegebene Fehler enthalten jedoch den Namen der Integritätsregel (einer von vielen), die verletzt wurde, wobei immer eine einzelne ORACLE-Fehlermeldung zurückgegeben wird. Ein Beispiel hierfür wäre:

ORA-02290: Integritätsregel verletzt (SCOTT.C_CK)


SQLCODE und SQLERRM abfangen

 Beispiele   [image]  Verwandte Themen

In diesem Fall benötigen wir Zugang zu der Fehlermeldung selbst, um zu erfahren, was geschehen ist. Die Klausel WHEN OTHERS muß benutzt werden, damit SQLCODE und SQLERRM protokolliert und ausgewertet werden können. Diese beiden PL/SQL-Funktionen, die die analogen Funktionen der PRO*Language nachbilden, sind nur innerhalb einer Exception-Verarbeitungsroutine verfügbar und sind in einer WHEN OTHERS-Klausel von besonderem Nutzen. Außerdem akzeptiert die Funktion strip_constraint_name den Text eines Oracle-Fehlers und gibt den Namen der verletzten Integritätsregeln in Großbuchstaben zurück. Betrachten Sie zwei Beispiele:


Beispiele für das Abfangen von SQLCODE und SQLERRM

Beispiel 1

/*

** Example of using SQLCODE/SQLERRM in WHEN OTHERS

*/

DECLARE

    lv_sqlcode NUMBER; /* Place to hold SQLCODE */

    lv_sqlerrm VARCHAR2(240); /* Place to hold SQLERRM */

    lv_constr  VARCHAR2(41); /* Place for Constraint Name */

BEGIN

    UPDATE PARENT_TABLE

       SET SOME_FIELD = 5

    WHERE PRIMARY_KEY_FIELD = :BLOCK.PK;

    /*

    ** If we get here, then things went ok.

    */

EXCEPTION

    /*

    ** If an error arises, the exception handler gets control

    */

    WHEN OTHERS THEN

       lv_sqlcode := SQLCODE;

       lv_sqlerrm := SQLERRM;

       IF (lv_sqlcode = -2290) THEN

          /*

          ** Strip out the name of the violated constraint

          */

          lv_constr := strip_constraint_name(lv_sqlerrm);

           IF (lv_constr = 'SCOTT.C_CK') THEN

                         Message('Code must be A,B, or C');

                         RAISE Form_Trigger_Failure;

          END IF;

       END IF;

END;

Beispiel 2

/*  STRIP_CONSTRAINT_NAME:  Returns constraint name from error

**  Constraint name should appear enclosed by parentheses

**  in the Oracle errors 02290-02292 and 02296-02299.

**  Return the text between the parentheses when passed

**  the error message text.

*/

FUNCTION strip_constraint_name( errmsg VARCHAR2 )

RETURN VARCHAR2

IS

   lv_pos1 NUMBER;

   lv_pos2 NUMBER;

BEGIN

   lv_pos1 := INSTR(errmsg, '(');

   lv_pos2 := INSTR(errmsg, ')');

   IF (lv_pos1 = 0 OR lv_pos2 = 0 ) THEN

       RETURN(NULL);

     ELSE

        RETURN(UPPER(SUBSTR(errmsg, lv_pos1+1,

                               lv_pos2-lv_pos1-1)));

    END IF;

END

Um ORACLE-Fehler abzufangen, die das Ergebnis von Datenbankblock-Vorgängen INSERT, UPDATE und DELETE sind, müssen Sie die entsprechenden ON-INSERT-, ON-UPDATE- und/oder ON-DELETE-Trigger codieren, die die DML-Vorgänge tatsächlich ausführen, damit Sie die Fehler abfangen können.

Fehler im Zusammenhang mit den oben besprochenen Funktionen, die vom ersten Beispiel abgefangen werden könnten, sind:

•	Nach SET ROLE:

        ORA-01919: Rolle ROLENAME nicht vorhanden

       ORA-01979: Kennwort fehlt oder ist ungültig

•	Nach entsprechender DML:

        ORA-00001: Doppelter Schlüssel in Index

        ORA-01400: Obligatorische NOT NULL-Spalte fehlt

        ORA-01407: Obligatorisch (NOT NULL)-Spalte kann nicht mit

                   NULL aktualisiert werden

        ORA-04088: Fehler bei Ausführung des Triggers

                  (OWNER.TRIGGERNAME)

        ORA-04092: Trigger kann nicht gespeichert oder zurückgeschrieben 	   werden


Über den Diagramm-Assistenten

  Nächster Schritt

Über den Diagramm-Assistenten

Der Diagramm-Assistent führt Sie Schritt für Schritt durch die Vorgänge beim Erstellen eines Diagramms aus einer Form oder einem Bericht. Mit dem Diagramm-Assistenten können Sie:

•	Einen Diagrammtyp und Untertyp angeben.

•	Den Datenblock angeben, der die Daten enthält, die Diagrammspalten zugewiesen werden sollen.

•	Die Daten angeben, die auf der Kategorienachse (X-Achse) des Diagramms angezeigt werden.

•	Die Daten angeben, die auf der Werteachse (Y-Achse) des Diagramms angezeigt werden.

Befolgen Sie die Eingabeaufforderungen auf jeder Seite des Assistenten, um die Einstellungen für das gewünschte Diagramm anzugeben.

Der Diagramm-Assistent ist reentrant

Eine leistungsfähige Funktion des Diagramm-Assistenten ist der reentrante Modus. Dies bedeutet, daß Sie den Diagramm-Assistenten benutzen können, um ein bestehendes Diagramm zu ändern, das mit dem Assistenten erstellt wurde.

Um den Diagramm-Assistenten im reentranten Modus aufzurufen, wählen Sie das Diagrammobjekt im Objektnavigator, und wählen Sie dann Werkzeuge [image] Diagramm-Assistent aus dem Menü aus.

Im Diagramm-Assistenten navigieren

Der Diagramm-Assistent enthält fünf Schaltflächen, mit denen Sie durch die einzelnen Seiten navigieren können:

•	Abbrechen - Bricht alle gegebenenfalls vorgenommenen Änderungen ab und beendet den Assistenten.

•	Hilfe - Zeigt einen Online-Hilfetext für die laufende Seite des Assistenten an.

•	Zurück - Navigiert zur vorherigen Seite in dem Assistenten.

•	Weiter - Navigiert zur nächsten Seite in dem Assistenten.

•	Fertig - Speichert die Änderungen, die Sie (gegebenenfalls) mit dem Assistenten vorgenommen haben, und beendet den Assistenten.

Hinweis:  Wenn Sie auf Weiter oder Zurück klicken, bevor Sie alle erforderlichen Informationen für eine bestimmte Seite des Assistenten eingegeben haben, verhindert der Assistent, daß Sie zur nächsten oder vorherigen Seite navigieren können. Wenn Sie beim Klicken auf Fertig nicht alle erforderlichen Informationen in den Assistenten eingegeben haben,  zeigt der Assistent automatisch die Seite an, auf der Sie die angeforderten Daten eingeben können.


Diagramm-Assistent: Register Typ

  Nächster Schritt 	  Über den Assistenten

So geben Sie mit dem Diagramm-Assistenten einen Diagrammtyp an:

1	(Optional) Geben Sie in das Feld Titel den Titel ein, der über dem Diagramm angezeigt werden soll..

2	In der Liste Typ wählen Sie den Diagrammtyp aus. Mit dem Diagrammtyp wird das Grundformat der Anzeige angegeben, wie z.B. Kreis- oder Balkendiagramm. Das Anzeigefenster enthält ein Beispiel für den ausgewählten Diagrammtyp.

3	In der Liste Subtyp wählen Sie einen Diagramm-Subtyp. Der Diagramm-Subtyp ist ein spezifischer Stil bzw. eine spezifische Vorlage für die Anzeige, wie z.B. Schattiert. In der Liste Subtyp werden die möglichen Subtypen für den ausgewählten Diagrammtyp angezeigt.


Diagramm-Assistent: Register Block

  Nächster Schritt 	  Über den Assistenten

So wählen Sie mit dem Diagramm-Assistenten einen Datenblock für Ihr Diagramm aus:

  In der Liste Blockname klicken Sie auf den Datenblock, den Sie in Ihrem Diagramm benutzen möchten. Der ausgewählte Datenblock bestimmt die Daten, die zur Zuweisung an die Kategorien- und Werteachsen Ihres Diagramms verfügbar sind.


Diagramm-Assistent: Register Kategorien

  Nächster Schritt 	  Über den Assistenten

So ordnen Sie Daten mit dem Diagramm-Assistenten der Kategorienachse (X-Achse) des Diagramms zu:

1	Wählen Sie im Feld Verfügbare Felder das Feld aus, das Sie der Kategorienachse (X-Achse) des Diagramms zuordnen möchten.

Hinweis:  Sie müssen mindestens ein Feld auswählen, bevor Sie zur nächsten Seite navigieren.

2	Klicken Sie auf [image], um das ausgewählte Feld aus der Liste Verfügbare Felder in die Liste Kategorienachse zu verschieben.

Hinweis:  Sie müssen mindestens ein Feld aus der Liste Verfügbare Felder in die Liste Kategorie verschieben, bevor Sie zur nächsten Seite navigieren können.


Diagramm-Assistent: Register Wert

  Nächster Schritt 	  Über den Assistenten

So ordnen Sie Daten mit dem Diagramm-Assistenten der Werteachse (Y-Achse) des Diagramms zu:

1	Wählen Sie in der Liste Verfügbare Felder das Feld aus, das Sie der Werteachse (Y-Achse) des Diagramms zuordnen möchten.

2	Klicken Sie auf [image], um das ausgewählte Feld aus der Liste Verfügbare Felder in die Liste Werteachse zu verschieben. Tip

Hinweis:  Sie müssen mindestens ein Feld aus der Liste Verfügbare Felder in die Liste Werteachse verschieben, bevor Sie zu der nächsten Seite navigieren.


Diagramm-Assistent:  Register Dateiname

  Über den Assistenten

So speichern Sie Ihr Diagramm mit dem Standardnamen:

  Klicken Sie auf Fertig. Das Diagramm wird unter dem automatisch generierten Standardnamen gespeichert, der in dem Feld Dateiname angeführt wird. Das fertige Diagramm wird in dem Layout angezeigt.

So speichern Sie Ihr Diagramm unter einem anderen Dateinamen als dem Standardnamen:

1	Klicken Sie auf Speichern unter.

2	Navigieren Sie im Dialogfeld Speichern unter zu dem Ordner, in dem Sie das Diagramm speichern möchten, und geben Sie den neuen Dateinamen ein. Klicken Sie auf Speichern.

3	Klicken Sie auf Fertig. Das Diagramm wird in dem Layout angezeigt.

Was kommt als nächstes?

Wenn Sie auf Fertig klicken, zeigt Form Builder das fertige Diagramm in dem Layout an. Um den Assistenten erneut aufzurufen, können Sie das fertige Diagrammobjekt auswählen und Werkzeuge [image] Diagramm-Assistent aus dem Menü wählen.


Klicken Sie auf , um ein ausgewähltes Feld aus der Liste Werteachse wieder in die Liste Verfügbare Felder zurückzuverschieben.
Klicken Sie auf [image], um ein ausgewähltes Feld aus der Liste Kategorienachse wieder in die Liste Verfügbare Felder zurückzuverschieben.


Klicken Sie auf [image], um ein ausgewähltes Feld aus der Liste Werteachse wieder in die Liste Verfügbare Felder zurückzuverschieben.


FRM-50001
FRM-50001:  Gültige Zeichen sind a-z, A-Z und Leerstelle.

Ursache:	Sie haben ein unzulässiges Zeichen in das Objekt eingegeben.

Maßnahme:	Geben Sie ein Zeichen von a-z, A-Z oder ein Leerzeichen ein.

Schweregrad:	15

Typ:	Fehler


FRM-50002
FRM-50002:  Monatsangabe muß zwischen 1 und 12 liegen.

Ursache:	Sie haben einen ungültigen Monatswert in ein Datumsfeld eingegeben.

Maßnahme:	Geben Sie einen Monatswert von 1 (für Januar) bis 12 (für Dezember) ein.

Schweregrad:	15

Typ:	Fehler


FRM-50003
FRM-50003:  Jahresangabe muß zwischen 00-99 oder 1000-4712 liegen.

Ursache:	Sie haben ein ungültiges Jahr eingegeben.

Maßnahme:	Geben Sie ein gültiges Jahr ein. Das Jahr kann mit einer Zahl zwischen 0 und 99 (für die Jahre 1900 bis 1999) oder zwischen 1000 und 4712 angegeben werden.

Schweregrad:	15

Typ:	Fehler


FRM-50004
FRM-50004:  Tagesangabe muß zwischen 1 und dem letzten Tag des Monats liegen.

Ursache:	Sie haben einen ungültigen Tag eingegeben.

Maßnahme:	Geben Sie einen gültigen Tag ein. Für April geben Sie z.B. eine Zahl zwischen 1 und 30 ein.

Schweregrad:	15

Typ:	Fehler


FRM-50006
FRM-50006:  Zulässige Zeichen sind 0-9, + und -.

Ursache:	Sie haben ein unzulässiges Zeichen in ein Zahlenobjekt eingegeben.

Maßnahme:	Geben Sie eine gültige Zahl ein. Eine gültige Zahl hat Ziffern von 0 bis 9. Vor einer Zahl kann ein Pluszeichen (+) oder Minuszeichen (-) stehen. Wenn die Meldung dies zuläßt, kann eine Zahl ein Dezimalzeichen an einer beliebigen Stelle enthalten, außer vor dem Vorzeichen.

Schweregrad:	15

Typ:	Fehler


FRM-50007
FRM-50007:  Zu viele Stellen nach dem Dezimalzeichen.

Ursache:	Sie haben eine Zahl mit mindestens 3 Dezimalstellen nach dem Komma in einem Objekt des Datentyps MONEY oder RMONEY eingegeben.

Maßnahme:	Geben Sie eine gültige Zahl ein.

Schweregrad:	15

Typ:	Fehler


FRM-50009
FRM-50009:  Zu viele Dezimalzeichen.

Ursache:	Sie haben entweder eine Zahl mit mindestens zwei Kommastellen eingegeben, oder Sie haben eine Zahl mit einer Kommastelle in einem Objekt eingegeben, in dem nur ganze Zahlen zulässig sind.

Maßnahme:	Geben Sie eine Zahl mit maximal einem Dezimalzeichen ein. Wenn Sie nur ein Dezimalzeichen benutzt haben, entfernen Sie das Dezimalzeichen und den Dezimalteil der Zahl.

Schweregrad:	15

Typ:	Fehler


FRM-50010
FRM-50010:  Währungsformat ist [+-]9999999.99

Ursache:	Sie haben einen ungültigen Wert in einem MONEY- oder RMONEY-Objekt eingegeben.

Maßnahme:	Geben Sie einen gültigen Wert ein. Dieser Wert muß null oder Ziffern für DM bzw. andere Währungsbeträge enthalten, gefolgt von einem Dezimalzeichen und zwei Ziffern für Pfennige. Vor der ganzen Zahl kann ein Pluszeichen (+) oder Minuszeichen (-) stehen.

Schweregrad:	15

Typ:	Fehler


FRM-50011
FRM-50011:  Kein gültiger Monatsname.

Ursache:	Sie haben einen ungültigen Monatsnamen in ein Datumsfeld eingegeben.

Maßnahme:	Geben Sie einen gültigen Monatsnamen ein. Form Builder erkennt die ersten drei Zeichen eines Monatsnamens. So steht z.B. JAN für Januar und JUN für Juni.

Schweregrad:	15

Typ:	Fehler


FRM-50012
FRM-50012:  Datumsformat ist %s.

Ursache:	Sie haben ein ungültiges oder falsches Datumsformat eingegeben.

Maßnahme:	Geben Sie das Datum erneut im angeforderten Format ein. Im oben dargestellten Format würde der 13. April 1989 als 13-APR-1989 dargestellt.

Schweregrad:	15

Typ:	Fehler


FRM-50013
FRM-50013:  Plus- bzw. Minuszeichen muß an erster Stelle stehen.

Ursache:	Sie haben ein Plus- oder Minuszeichen an der falschen Stelle eingegeben.

Maßnahme:	Geben Sie den Wert erneut mit dem Plus- oder Minuszeichen an erster Stelle ein.

Schweregrad:	15

Typ:	Fehler


FRM-50014
FRM-50014:  Ungültiger Exponent.

Ursache:	Sie haben einen Exponenten in einem Objekt eingegeben, das keine Exponenten akzeptiert.

Maßnahme:	Geben Sie einen Wert ohne einen Exponenten ein.

Schweregrad:	15

Typ:	Fehler


FRM-50016
FRM-50016:  Zulässige Zeichen sind 0-9, -, +, E .

Ursache:	Sie haben ein unzulässiges Zeichen in ein Zahlenobjekt eingegeben.

Maßnahme:	Geben Sie eine gültige Zahl ein. Eine gültige Zahl hat Ziffern von 0 bis 9. Vor einer Zahl kann ein Pluszeichen (+) oder Minuszeichen (-) stehen. Wenn die Meldung dies zuläßt, kann eine Zahl ein Dezimalzeichen an einer beliebigen Stelle enthalten, außer vor dem Vorzeichen. Mit E können Sie die Exponentialschreibweise angeben.

Schweregrad:	15

Typ:	Fehler


FRM-50017
FRM-50017:  Stundenangabe muß zwischen 0 und 23 liegen.

Ursache:	Sie haben eine ungültige Stundenangabe eingegeben.

Maßnahme:	Geben Sie eine gültige Stundenangabe ein. Form Builder zeichnet Zeitangaben im 24-Stunden-Format auf.

Schweregrad:	15

Typ:	Fehler


FRM-50018
FRM-50018:  Minutenangabe muß zwischen 00 und 59 liegen.

Ursache:	Sie haben einen ungültigen Minutenwert eingegeben.

Maßnahme:	Geben Sie einen gültigen Minutenwert ein.

Schweregrad:	15

Typ:	Fehler


FRM-50019
FRM-50019:  Sekundenangabe muß zwischen 00 und 59 liegen.

Ursache:	Sie haben einen ungültigen Wert eingegeben.

Maßnahme:	Geben Sie einen Wert zwischen 00 und 59 ein.

Schweregrad:	15

Typ:	Fehler


FRM-50020
FRM-50020:  Exponent fehlt.

Ursache:	Die Eingabe eines Exponent schlug fehl.

Maßnahme:	Geben Sie einen Exponenten ein.

Schweregrad:	15

Typ:	Fehler


FRM-50021
FRM-50021:  Datumsformat ist %s.

Ursache:	Sie haben ein ungültiges oder falsches Datumsformat eingegeben.

Maßnahme:	Geben Sie das Datum erneut im angeforderten Format ein. Im oben dargestellten Format würde der 13. April 1989 als 13-APR-1989 dargestellt.

Schweregrad:	15

Typ:	Fehler


FRM-50022
FRM-50022:  Zeitformat ist %s.

Ursache:	Sie haben ein ungültiges oder falsches Zeitformat eingegeben.

Maßnahme:	Geben Sie die Zeit im angeforderten Format ein. So entspricht z.B. 3:00 p.m. 15:00:00 (oder 15:00).

Schweregrad:	15

Typ:	Fehler


FRM-50023
FRM-50023:  Datumsformat ist %s.

Ursache:	Sie haben ein ungültiges oder falsches Datumsformat eingegeben.

Maßnahme:	Geben Sie das Datum erneut im angeforderten Format ein. Im oben dargestellten Format würde der 13. April 1989 als 13-APR-1989 dargestellt.

Schweregrad:	15

Typ:	Fehler


FRM-50024
FRM-50024:  Es sind nur führende Leerstellen zulässig.

Ursache:	Sie haben Daten mit Leerstellen dazwischen eingegeben.

Maßnahme:	Geben Sie die Daten ohne Leerstellen dazwischen ein.

Schweregrad:	15

Typ:	Fehler


FRM-50025
FRM-50025:  DATETIME-Format ist %s.

Ursache:	Sie haben ein ungültiges oder falsches Datums- und Zeitformat eingegeben.

Maßnahme:	Geben Sie Datum und Zeit erneut im angeforderten Format ein. Im oben dargestellten Format würde 3:00 p.m. am 13. April 1994 als 13-APR-1994 15:00:00 dargestellt.

Schweregrad:	15

Typ:	Fehler


FRM-50026
FRM-50026:  Datumsformat ist %s.

Ursache:	Sie haben ein ungültiges oder falsches Datumsformat eingegeben.

Maßnahme:	Geben Sie das Datum erneut im angeforderten Format ein. Im oben dargestellten Format würde der 13. April 1989 als 13-APR-1989 dargestellt.

Schweregrad:	15

Typ:	Fehler


FRM-50027
FRM-50027:  Ungültige Formatmaske für gegebenen Datentyp.

Ursache:	Die Formatmaske, die Sie dem Textobjekt zugewiesen haben, ist nicht kompatibel mit dem Datentyp des Objektes.

Maßnahme:	Weisen Sie dem Textobjekt eine neue Formatmaske zu. Weitere Informationen finden Sie in den Hilfetexten zu den Objekt-Formatmasken.

Schweregrad:	15

Typ:	Fehler


FRM-50028
FRM-50028:  Formatmaske für diesen Datentyp nicht zulässig.

Ursache:	Die Datentypen LONG, IMAGE und GRAPHICS unterstützen keine Formatmasken.

Maßnahme:	Versuchen Sie nicht, eine Formatmaske für die Datentypen LONG, IMAGE oder GRAPHICS zu erstellen.

Schweregrad:	15

Typ:	Fehler


FRM-50029
FRM-50029:  Zu viele Stellen vor dem Komma für wissenschaftliche Schreibweise.

Ursache:	Sie haben eine Zahl in der wissenschaftlichen Schreibweise eingegeben, dabei jedoch mehrere Stellen vor dem Komma angegeben.

Maßnahme:	Geben Sie die Zahl erneut in der wissenschaftlichen Schreibweise ein.

Schweregrad:	15

Typ:	Fehler


FRM-50045
FRM-50045:  Sekunden nach Mitternacht in Konflikt mit Stunde.

Ursache:	Sie haben eine Zeit eingegeben, bei der die Komponente für die Sekunden nach Mitternacht nicht mit der Stundenkomponente übereinstimmt.

Maßnahme:	Stellen Sie sicher, daß die Stunde und die Sekunden nach Mitternacht übereinstimmen, oder benutzen Sie eine Formatmaske ohne Sekunden nach Mitternacht.

Schweregrad:	15

Typ:	Fehler


FRM-50048
FRM-50048:  Neue Kennwörter stimmen nicht überein. Bitte geben Sie identische Kennwörter ein.

Ursache:	Sie haben unterschiedliche Zeichenfolgen in den Feldern 'Neues Kennwort' und 'Neues Kennwort erneut eingeben' angegeben.

Maßnahme:	Geben Sie die identischen Werte erneut in beiden Feldern ein.

Schweregrad:	15

Typ:	Fehler


FRM-90925
FRM-90925:  Zu viele Argumente in der Befehlszeile.

Ursache:	In der Befehlszeile wurden zu viele Argumente angegeben.

Maßnahme:	Geben Sie die Befehle erneut ein, und wiederholen Sie den Versuch.


FRM-90926
FRM-90926:  Doppelter Parameter in der Befehlszeile.

Ursache:	Zwei identische Parameter wurden in der Befehlszeile eingegeben.

Maßnahme:	Korrigieren Sie den eingegebenen Befehl, und wiederholen Sie den Versuch.


FRM-90927
FRM-90927:  Unbekannter Parameter in der Befehlszeile.

Ursache:	Sie haben einen unbekannten Parameter in der Befehlszeile angegeben.

Maßnahme:	Prüfen Sie die Befehlszeile, und ändern Sie sie entsprechend.


FRM-90928
FRM-90928:  Positionsparameter nach Schlüsselwort in der Befehlszeile.

Ursache:	Die Parameter wurden nicht in der richtigen Reihenfolge auf der Befehlszeile angegeben, ein Parameter fehlt oder ein Zeichen '=' fehlt.

Maßnahme:	Korrigieren Sie die Befehlszeile entsprechend, und wiederholen Sie den Versuch.


FRM-90929
FRM-90929:  Ungültiger Wert für Parameter in der Befehlszeile.

Ursache:	Sie haben einen ungültigen Parameterwert in der Befehlszeile angegeben.

Maßnahme:	Prüfen Sie die Befehlszeile, und ändern Sie sie entsprechend.


FRM-90930
FRM-90930:  Ungültiger Dateiparameter in der Befehlszeile.

Ursache:	Sie haben einen ungültigen Dateiparameter in der Befehlszeile angegeben.

Maßnahme:	Prüfen Sie die Befehlszeile, und ändern Sie sie entsprechend.


FRM-90931
FRM-90931:  Fehler bei der Verarbeitung der Befehlszeile.

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-90932
FRM-90932:  Ungültiger Listenwert in der Befehlszeile.

Ursache:	Der angegebene Listenwert ist ungültig.

Maßnahme:	Geben Sie den richtigen Wert ein, und wiederholen Sie den Versuch.


FRM-90933
FRM-90933:  Unzulässiger Listenwert in der Befehlszeile.

Ursache:	In der Befehlszeile wurde ein ungültiger Listenwert angegeben.

Maßnahme:	Prüfen Sie die Befehlszeile, und wiederholen Sie den Versuch.


FRM-91010
FRM-91010:  Der Wert des Module_Access-Parameters muß FILE oder DATABASE sein.

Ursache:	Der für Module_Access angegebene Parameter war nicht FILE oder DATABASE.

Maßnahme:	Geben Sie FILE oder DATABASE für den Parameter Module_Access an.


FRM-91017
FRM-91017:  Der Wert des Parameters Module_Type muß FORM, MENU, LIBRARY oder PECS sein.

Ursache:	Der für Module_Type angegebene Parameter war nicht FORM, MENU, LIBRARY oder PECS.

Maßnahme:	Geben Sie FORM, MENU, LIBRARY oder PECS für den Parameter Module_Type an.


FRM-91100
FRM-91100:  Interner Fehler: Allgemeiner Kontext kann nicht erstellt werden.

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-91101
FRM-91101:  Interner Fehler: Foundation-Kontext kann nicht erstellt werden.

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-91102
FRM-91102:  Interner Fehler: Kann Befehlszeile nicht mit Token versehen.

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-91103
FRM-91103:  Interner Fehler: Speicherkapazität ist erschöpft.

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-91104
FRM-91104:  Interner Fehler: Unbekannter Fehler.

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-91108
FRM-91108:  Interner Fehler: PL/SQL kann nicht initialisiert werden.

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-91109
FRM-91109:  Interner Fehler: Anwendung kann nicht gestartet werden.

Ursache:	Das Fenstersystem kann nicht gestartet werden.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	15

Typ:	Fehler


FRM-91110
FRM-91110:  Interner Fehler: Kann Dateinamen %s nicht finden.

Ursache:	Resource-Dateien konnten nicht gefunden werden.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	15

Typ:	Fehler


FRM-91111
FRM-91111:  Interner Fehler: Starten des Fenstersystems gescheitert.

Ursache:	Sie befinden sich im Zeichenmodus und versuchen, Form Builder in einem Fenstersystem auszuführen.

Maßnahme:	Benutzen Sie die richtige ausführbare Datei.

Schweregrad:	15

Typ:	Fehler


FRM-91112
FRM-91112:  Interner Fehler: Starten des Resourcemanagers gescheitert.

Ursache:	Resource-Dateien konnten nicht gefunden werden.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	15

Typ:	Fehler


FRM-91113
FRM-91113:  Interner Fehler: Standard-Resource-Dateiname nicht gefunden.

Ursache:	Resource-Dateien konnten nicht gefunden werden.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	15

Typ:	Fehler


FRM-91115
FRM-91115:  Interner Fehler: Binde-Tabelle gescheitert.

Ursache:	Tastenzuordnungen konnten nicht gefunden werden.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	15

Typ:	Fehler


FRM-91116
FRM-91116:  Interner Fehler: Starten von Oracle*Image gescheitert.

Ursache:	Resource-Dateien konnten nicht gefunden werden.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	15

Typ:	Fehler


FRM-91117
FRM-91117:  Interner Fehler: Initialisierung von Schriftgrad gescheitert.

Ursache:	Resource-Dateien konnten nicht gefunden werden.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	15

Typ:	Fehler


FRM-91118
FRM-91118:  Interner Fehler: Initialisierung des Hauptfensters gescheitert.

Ursache:	Das Hauptfenster konnte nicht gefunden werden.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	15

Typ:	Fehler


FRM-91119
FRM-91119:  Interner Fehler: Starten von Oracle*VGS gescheitert.

Ursache:	Der VGS-Kontext konnte nicht gestartet werden.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	15

Typ:	Fehler


FRM-91120
FRM-91120:  Interner Fehler: NLS-Zeichensatz kann nicht geladen werden.

Ursache:	Der angegebene NLS-Zeichensatz konnte nicht geladen werden.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	15

Typ:	Fehler


FRM-91121
FRM-91121:  Interner Fehler: Lernprogramm-Vorschau kann nicht gestartet werden.

Ursache:	Die Lernprogramm-Vorschau konnte nicht gestartet werden.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	15

Typ:	Fehler


FRM-91122
FRM-91122:  Interner Fehler: Zeichenkettenkontext kann nicht erstellt werden.

Ursache:	Der Zeichenkettenkontext konnte nicht gestartet werden.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	15

Typ:	Fehler


FRM-91123
FRM-91123:  Interner Fehler: Quark-Manager kann nicht gestartet werden.

Ursache:	Quark-Manager konnte nicht gestartet werden.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	15

Typ:	Fehler


FRM-91124
FRM-91124:  Warnung: '%s' für ORAFORMS_DECIMAL_PREFIX angegeben. Sollte '0' (null) oder ' ' (leere Zeichenfolge) sein.

Ursache:	Für die Umgebungsvariable ORAFORMS_DECIMAL_PREFIX wurde ein ungültiger Wert angegeben.

Maßnahme:	Gehen Sie folgendermaßen vor:

1.  Geben Sie ORAFORMS_DECIMAL_PREFIX mit einem Wert von 0 an, um eine Null vor einem führenden Dezimalzeichen in einer beliebigen Zahl zu erzwingen, die ohne Formatmaske in der Anwendung angezeigt wird.

2.  Geben Sie ORAFORMS_DECIMAL_PREFIX mit einem Wert von ' ' (leere Zeichenfolge) an.

3.  Geben Sie keinen Variablenwert an.


FRM-91125
FRM-91125:   Interner Fehler: Browser-Ebene kann nicht hochgefahren werden.

Ursache:	Die Browser-Ebene kann nicht hochgefahren werden.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	15

Typ:	Fehler


FRM-10063
FRM-10063:  Hilfedatei kann nicht gefunden werden, oder sie ist beschädigt.

Ursache:	Form Builder kann die Hilfedatei nicht finden oder laden.

Maßnahme:	Überprüfen Sie die Umgebung, und prüfen Sie den Pfad zu der Hilfedatei. Gegebenenfalls fragen Sie den DBA.


FRM-91500
FRM-91500:  Generierung kann nicht gestartet/abgeschlossen werden.

Ursache:	Resource-Dateien konnten nicht gefunden werden.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-91506
FRM-91506:  Einfügen des Bibliotheksmoduls in die Datenbank wird nicht unterstützt.

Ursache:	Ein Bibliotheksmodul kann nicht in die Datenbank eingefügt werden.

Maßnahme:	Speichern Sie das Bibliotheksmodul im Dateisystem.


FRM-91507
FRM-91507:  Interner Fehler: Speicher kann nicht zugewiesen werden.

Ursache:	Die Bibliothek konnte aufgrund eines internen Fehlers nicht generiert werden.

Maßnahme:	Dieser Fehler kann folgende Ursachen haben.

Die Kapazität des Dateisystems ist erschöpft.

Die .PLX-Datei ist schreibgeschützt oder wird von einem anderen Programm verwendet.

Maßnahme:	Ist keine der Ursachen zutreffend, nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-99999
FRM-99999:   Fehler  %d aufgetreten. Weitere Informationen über diesen Fehler finden Sie in der Datei mit den Versionshinweisen (relnotes).

Ursache:	Ein Fehler ist aufgetreten. Der Fehler wird in der Datei mit den Versionshinweisen dokumentiert.

Maßnahme:	Siehe Datei mit den Versionshinweisen.


FRM-99999
FRM-99999:   Fehler  %d aufgetreten. Weitere Informationen über diesen Fehler finden Sie in der Datei mit den Versionshinweisen (relnotes).

Ursache:	Ein Fehler ist aufgetreten. Der Fehler wird in der Datei mit den Versionshinweisen dokumentiert.

Maßnahme:	Siehe Datei mit den Versionshinweisen.


FRM-10000
FRM-10000:  Validierungsfehler bei einem Objekt.

Ursache:	Sie haben versucht, eine ungültige Objektdefinition anzuwenden.

Maßnahme:	Ändern Sie die Attributeinstellungen für das Objekt, um eine gültige Objektdefinition zu erstellen.


FRM-10001
FRM-10001:  Interner Fehler: TOS.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10002
FRM-10002:  Speichern des aktuellen Moduls ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10003
FRM-10003:  Abrufen des Moduls aus der Datei ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10004
FRM-10004:  Es muß ein eindeutiger und gültiger Wert eingegeben werden.

Ursache:	Sie haben einen ungültigen Wert eingegeben.

Maßnahme:	Ändern Sie den Wert in einen gültigen Wert.


FRM-10005
FRM-10005:  Es muß ein Wert eingegeben werden.

Ursache:	Sie haben versucht, das Feld zu verlassen, ohne zuerst einen Wert einzugeben.

Maßnahme:	Geben Sie einen Wert ein.


FRM-10006
FRM-10006:  Interner Fehler.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10007
FRM-10007:  Zugriff auf die Tabelle ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10008
FRM-10008:  Erstellen der Tabelle ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10009
FRM-10009:  Objekt nicht gefunden. Ursache:	Interner Systemfehler.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10010
FRM-10010:  Interner Fehler: Einfügen eines Objekts ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10011
FRM-10011:  Interner Fehler: Löschen eines Objekts ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10012
FRM-10012:  Interner Fehler: Kein Speicher.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10013
FRM-10013:  Objekt ist doppelt vorhanden.

Ursache:	Bei dem Versuch, ein Objekt in der Datenbank zu speichern, ist ein interner Systemfehler aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10014
FRM-10014:  Modul ist doppelt vorhanden.

Ursache:	Bei dem Versuch, ein Objekt in der Datenbank zu speichern, ist ein interner Systemfehler aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10015
FRM-10015:  Referenz-Information ist doppelt vorhanden.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10016
FRM-10016:  Interner Fehler: Schließen des Objektspeichers ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10017
FRM-10017:  Interner Fehler: Rollback ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10018
FRM-10018:  Interner Fehler: Speichern der Änderungen ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10019
FRM-10019:  Interner Fehler: Öffnen des Objektspeichers ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10020
FRM-10020:  Modul ist schon vorhanden.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10021
FRM-10021:  Modul nicht gefunden.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10022
FRM-10022:  Interner Fehler: Referenzieren eines Objekts nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10023
FRM-10023:  Interner Fehler: Abrufen von Objekten aus Objektspeicher nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10025
FRM-10025:  Abrufen des Spaltenzuordnungsobjekts ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10027
FRM-10027:  Abrufen des Spaltenspezifikationsobjekts ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10029
FRM-10029:  Abrufen des benannten Listenobjekts ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10031
FRM-10031:  Abrufen des Optionsfeldobjekts ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10033
FRM-10033:  Abrufen des VGS-Objekts ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10034
FRM-10034:  Ein gültiger Modulname muß eingegeben werden.

Ursache:	Bei dem Versuch, ein Modul aus der Datenbank zu öffnen, ist ein interner Systemfehler aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10035
FRM-10035:  Modul ist nicht vorhanden.

Ursache:	Der angegebene Modulname ist nicht vorhanden.

Maßnahme:	Prüfen Sie den Modulnamen, oder geben Sie einen anderen Namen ein.


FRM-10037
FRM-10037:  Abrufen der Beziehungen ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10038
FRM-10038:  Löschen nicht möglich. Objekt ist gesperrt.

Ursache:	Sie haben versucht, ein Objekt zu löschen, wie z.B. ein Element oder eine Leinwand, das von einem aktiven Layouteditor gesperrt ist. Ein Objekt ist gesperrt, wenn es im Layouteditor geändert wurde.

Maßnahme:	Geben Sie die Sperre für das Objekt frei.


FRM-10039
FRM-10039:  Form Builder kann nicht gestartet werden.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10040
FRM-10040:  Neues Modul kann nicht auf letzte Version zurückgesetzt werden.

Ursache:	Sie haben Datei->Wiederherstellen für ein Modul ausgewählt, das noch nicht gespeichert wurde. Da das Modul nicht gespeichert wurde, gibt es keine Version, auf die zurückgesetzt werden kann.

Maßnahme:	Schließen Sie das Modul, ohne zu speichern, und öffnen Sie ein neues Modul.


FRM-10041
FRM-10041:  Vorgang nur mit Datenbankanmeldung gültig.

Ursache:	Sie haben versucht, einen Entwurfsvorgang durchzuführen, der voraussetzt, daß Form Builder bei der Datenbank angemeldet ist.

Maßnahme:	Melden Sie sich bei der Datenbank an.


FRM-10042
FRM-10042:  Keine Form Builder-Datei.

Ursache:	Sie haben versucht, eine Datei zu öffnen, bei der es sich nicht um ein gültiges Entwurfsmodul von Form Builder handelt.

Maßnahme:	Öffnen Sie ein Form- (.FMB), Menü- (.MMB) oder Bibliotheks- (.PLL) Modul.


FRM-10043
FRM-10043:  Datei kann nicht geöffnet werden.

Ursache:	Sie haben versucht, eine Datei zu öffnen, bei der es sich nicht um eine gültige Entwurfsmoduldatei von Form Builder handelt.

Maßnahme:	Öffnen Sie ein Form- (.FMB), Menü- (.MMB) oder Bibliotheks- (.PLL) Modul.


FRM-10044
FRM-10044:  Datei kann nicht erstellt werden.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10045
FRM-10045:  Verbindung zu Datenbank ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10046
FRM-10046:  Löschen des VGS-Objekts ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10047
FRM-10047:  Import nur in mehrzeiliges Textobjekt zulässig.

Ursache:	Sie haben versucht, Text in ein einzeiliges Textfeld oder einen anderen Steuerelementtyp zu importieren. (Text kann nur in mehrzeilige Textobjekte importiert werden.)

Maßnahme:	Keine.


FRM-10048
FRM-10048:  Export ist nur zulässig, wenn die Quelle ein mehrzeiliges Textobjekt ist.

Ursache:	Sie haben versucht, Text aus einem einzeiligen Textfeld oder einem anderen Steuerelementtyp zu exportieren. (Text kann nur aus einem mehrzeiligen Textfeld exportiert werden.)

Maßnahme:	Keine.


FRM-10049
FRM-10049:  Vorgang ist nur aus einem mehrzeiligen Textobjekt zulässig.

Ursache:	Sie haben versucht, den Standardvorgang aufzurufen, der nur aus einem mehrzeiligen Textfeld aufgerufen werden kann.

Maßnahme:	Keine.


FRM-10050
FRM-10050:  Es muß ein gültiger Wert eingegeben werden.

Ursache:	Sie haben einen ungültigen Wert eingegeben oder in einem obligatorischen Feld keine Angaben gemacht.

Maßnahme:	Geben Sie einen gültigen Wert an.


FRM-10051
FRM-10051:  Beim Import von Text ist ein Fehler aufgetreten.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10052
FRM-10052:  Beim Export von Text ist ein Fehler aufgetreten.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10053
FRM-10053:  Es ist kein Drucker verfügbar.

Ursache:	Der angegebene Drucker ist belegt oder nicht angeschlossen.

Maßnahme:	Prüfen Sie die Druckerverbindungen, oder wiederholen Sie den Versuch zu einem späteren Zeitpunkt.


FRM-10054
FRM-10054:  PL/SQL-Bibliothek %s kann nicht zugeordnet werden.

Ursache:	Die angegebene Bibliothek wird von anderen Benutzern gesperrt, oder der Bibliotheksname ist ungültig.

Maßnahme:	Prüfen Sie den Bibliotheksnamen, und wiederholen Sie den Versuch.


FRM-10056
FRM-10056:  In der Datei ist der falsche Modultyp gespeichert.

Ursache:	Die Datei hat nicht den richtigen Modultyp für den Vorgang, den Sie ausführen möchten.

Maßnahme:	Keine.


FRM-10057
FRM-10057:  Sie können diesen Befehl nicht für ein Modul ausführen, dessen Eigentümer Sie nicht sind.

Ursache:	Sie haben versucht, einen Vorgang mit einem Modul in der Datenbank auszuführen, z.B. Zugriffsberechtigungen zu entziehen, dessen Eigentümer Sie nicht sind.

Maßnahme:	Keine.


FRM-10058
FRM-10058:  Zu kopierendes/referenzierendes Objekt nicht gefunden.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10059
FRM-10059:  Änderungen wurden vor dem Generieren nicht in der PL/SQL-Bibliothek gespeichert.

Ursache:	Sie haben versucht, die Bibliothek zu kompilieren, bevor Sie die Änderungen gespeichert haben.

Maßnahme:	Speichern Sie die Änderungen, und kompilieren Sie die Bibliothek dann.


FRM-10060
FRM-10060:  Datenbankanmeldung erforderlich, um referenzierte Objekte abrufen zu können.

Ursache:	Sie haben versucht, ein Objekt zu referenzieren, während Form Builder nicht bei der Datenbank angemeldet war. Nur Objekte in Modulen, die in der Datenbank gespeichert sind, können referenziert werden.

Maßnahme:	Melden Sie sich bei der Datenbank an.


FRM-10061
FRM-10061:  Skript/Analyse von PL/SQL-Bibliotheksdatei nicht möglich.

Ursache:	Sie haben versucht, eine Analyse oder ein Skript für eine Bibliotheksdatei durchzuführen.

Maßnahme:	Versuchen Sie keinen dieser Vorgänge.


FRM-10062
FRM-10062:  Modales Fenster muß vor dem Beenden geschlossen werden.

Ursache:	Das System hat keine Antwort von Ihnen auf ein modales Fenster erhalten.

Maßnahme:	Beantworten Sie das modale Fenster, bevor Sie es schließen.


FRM-10064
FRM-10064:  Objekt konnte nicht aus der Resource-Datei geladen werden.

Ursache:	Eine fehlerhafte Resource-Datei, ein Speicherproblem oder ein anderes Problem mit Ressourcen liegt vor.

Maßnahme:	Prüfen Sie die Entwicklungsumgebung.


FRM-10065
FRM-10065:  Entwicklungsumgebung (DE) konnte nicht initialisiert werden.

Ursache:	Die Entwicklungsumgebung konnte nicht initialisiert werden, wahrscheinlich, weil das System keine Ressourcen finden konnte.

Maßnahme:	Prüfen Sie die Entwicklungsumgebung.


FRM-10066
FRM-10066:  Modul konnte nicht erstellt werden.

Ursache:	Das System konnte die erforderlichen Ressourcen nicht finden.

Maßnahme:	Prüfen Sie die Entwicklungsumgebung.


FRM-10067
FRM-10067:  Modul kann nicht gesperrt werden.

Ursache:	Das Modul ist gerade von anderen Benutzern geöffnet.

Maßnahme:	Warten Sie, bis das Modul frei ist, oder bitten Sie den Benutzer des Moduls, dieses zu beenden.


FRM-10068
FRM-10068:  Modul kann nicht gesperrt werden.

Ursache:	Das Modul ist von einem anderen Benutzer gesperrt.

Maßnahme:	Der andere Benutzer muß das Modul entsperren.


FRM-10069
FRM-10069:  Zuordnung des aktuellen PL/SQL-Bibliotheksmoduls kann nicht aufgehoben werden.

Ursache:	Sie haben versucht, die Zuordnung einer Arbeitsbibliothek aufzuheben.

Maßnahme:	Die Zuordnung einer Arbeitsbibliothek kann nicht aufgehoben werden.


FRM-10070
FRM-10070:  Die zugeordneten Bibliotheksinformationen der aktuellen PL/SQL-Bibliothek können nicht geladen werden.

Ursache:	Sie haben versucht, ein Forms 4.0 Bibliotheksmodul zu laden, Forms konnte das Modul jedoch nicht laden.

Maßnahme:	Prüfen Sie, ob die Bibliothek mit Forms 4.0 geladen werden kann. Wenn ja, nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10071
FRM-10071:  Interner Fehler: Resource-Datei %s kann nicht geöffnet werden.

Ursache:	Die Resource-Datei kann nicht gefunden werden.

Maßnahme:	Installieren Sie Form Builder neu, oder nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-10072
FRM-10072:  Interner Fehler: Menüdefinition %s kann nicht geöffnet werden.

Ursache:	Resource-Definitionen für das Menü können nicht gefunden werden.

Maßnahme:	Installieren Sie Form Builder neu, oder nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-10074
FRM-10074:  PL/SQL-Bibliotheks-Skriptdatei kann nicht generiert werden.

Ursache:	Fehler beim Lesen einer Bibliotheksdatei.

Maßnahme:	Beheben Sie die Fehler, die während des Skript-Vorgangs entdeckt wurden.


FRM-10075
FRM-10075:  PL/SQL-Bibliothek kann nicht aus einer Skriptdatei generiert werden.

Ursache:	Eine ASCII-Bibliotheksdatei kann nicht in das Bibliotheksformat konvertiert werden.

Maßnahme:	Beheben Sie die Fehler, die während des Konvertierungsvorgangs entdeckt wurden.


FRM-10076
FRM-10076:  Wert muß abgeschnitten werden: Zugewiesener Speicher zu gering.

Ursache:	Sie haben eine Zeichenfolge eingegeben, die zu lang für das Feld ist.

Maßnahme:	Kürzen Sie die Zeichenfolge.


FRM-10077
FRM-10077:  Übersetzbarer Text kann nicht in NX-Datei extrahiert werden.

Ursache:	Bei der Übersetzung von Zeichenfolgen aus einer NX-Datei ist ein interner Fehler aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-10078
FRM-10078:  Übersetzter Text aus NX-Datei kann nicht gemischt werden.

Ursache:	Bei der Übersetzung von Zeichenfolgen aus einer NX-Datei ist ein interner Fehler aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-10080
FRM-10080:  Versionskontrolldienste sind auf dieser Maschine nicht installiert.

Ursache:	Die Versionskontrollkomponente von Form Builder ist auf diesem Rechner nicht installiert.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10081
FRM-10081:  Kann %s in Modul '%s' nicht abrufen.

Ursache:	Interner Fehler, der während des Ladevorgangs auftritt.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-10082
FRM-10082:  Kann %s nicht speichern.

Ursache:	Interner Fehler, der während des Ladevorgangs auftritt.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-10083
FRM-10083:  Kann Modul '%s' für referenzierte Objekte nicht öffnen/finden.

Ursache:	Die Datei, die das Formmodul enthält, kann nicht gefunden werden, oder die Benutzer-ID für die Anmeldung bei der Datenbank ist falsch.

Maßnahme:	Prüfen Sie, ob die Datei, die das Formmodul enthält, in Ihrem lokalen Ordner oder unter dem Suchpfad FORMS50_PATH gespeichert ist. Außerdem prüfen Sie, ob Sie sich mit der richtigen Benutzer-ID bei der Datenbank angemeldet haben.


FRM-10084
FRM-10084:  Modul scheint eine ältere Version von Form Builder-Datei zu sein.

Ursache:	Das referenzierte Modul weist nicht das neueste Form Builder-Format auf.

Maßnahme:	Laden Sie die Referenzdatei, und speichern Sie sie im neuesten Form Builder-Format.


FRM-10085
FRM-10085:  Kann Modulinformation nicht lesen.

Ursache:	Die Datei, die Sie öffnen wollten, ist keine Form Builder-Datei, oder die Datei ist beschädigt.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-10086
FRM-10086:  Die Datei ist bereits geöffnet.

Ursache:	Sie haben versucht, eine bereits geöffnete Datei zu öffnen.

Maßnahme:	Keine.


FRM-10087
FRM-10087:  Bibliotheken können nicht kompiliert werden.

Ursache:	Sie können keine Bibliotheken kompilieren.

Maßnahme:	Keine.


FRM-10088
FRM-10088:  Bibliotheken können nicht ausgeführt werden.

Ursache:	Sie können keine Bibliotheken ausführen.

Maßnahme:	Keine.


FRM-10089
FRM-10089:  Menüs können nicht aus Form Builder ausgeführt werden.

Ursache:	Sie haben auf die Schaltfläche Ausführen geklickt, während ein Menümodul ausgewählt war.

Maßnahme:	Wählen Sie ein Formmodul aus, bevor Sie auf die Schaltfläche Ausführen klicken.


FRM-10090
FRM-10090:  Kann Modul nicht in Datenbank speichern.

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-10091
FRM-10091:  Erstellen einer Skript-/Analyse-Datei nicht möglich.

Ursache:	Interner Fehler. Während des Konvertierungsvorgangs sind Fehler aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-10092
FRM-10092:  Ein altes Modul kann nicht in das aktuelle Format konvertiert werden.

Ursache:	Dieser interne Fehler tritt auf, wenn Strukturen von Oracle Forms 4.0 in Strukturen von Forms 4.5 konvertiert werden.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-10093
FRM-10093:  Kein PL/SQL-Quellcode.

Ursache:	Sie haben einen Trigger erstellt, der keinen PL/SQL-Quellcode enthält.

Maßnahme:	Fügen Sie den PL/SQL-Quellcode zu Ihrem Trigger hinzu, oder löschen Sie den Trigger.


FRM-10094
FRM-10094:  Formel konnte nicht kompiliert werden.

Ursache:	Forms konnte den PL/SQL-Ausdruck nicht kompilieren, der im Attribut Formel angegeben wird.

Maßnahme:	Prüfen Sie den PL/SQL-Ausdruck auf Syntaxfehler, und kompilieren Sie ihn neu.


FRM-10095
FRM-10095:  Ausführung in %s um %s:%d fehlgeschlagen.

Ursache:	Eine interne Inkonsistenz wurde entdeckt.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf, und gehen Sie mit Vorsicht vor.


FRM-10096
FRM-10096:  Lernprogrammdatei kann nicht geladen werden.

Ursache:	Form Builder konnte die Lernprogrammdatei nicht laden. Sie fehlt oder ist beschädigt.

Maßnahme:	Installieren Sie Form Builder neu, oder nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-10097
FRM-10097:  Kurzanleitungsdatei kann nicht geladen werden.

Ursache:	Forms konnte die Kurzanleitungsdatei nicht laden. Sie fehlt oder ist beschädigt.

Maßnahme:	Installieren Sie Form Builder neu, oder nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-10098
FRM-10098:  Ganzes Modul kann nicht in eine Objektbibliothek gestellt werden.

Ursache:	Sie haben versucht, ein ganzes Form Builder-Modul in eine Objektbibliothek zu stellen.

Maßnahme:	Sie können nur einzelne Objekte in eine Objektbibliothek stellen.


FRM-10099
FRM-10099:  Objekt kann nicht in SmartClass eingeordnet werden. Ein Objekt mit diesem Namen ist schon vorhanden.

Ursache:	Sie haben versucht, ein Objekt in SmartClass einzuordnen, wodurch sich ein Konflikt mit einem anderen Objekt desselben Namens ergeben hätte.

Maßnahme:	Benennen Sie das bestehende Objekt um.


FRM-10100
FRM-10100:  Dateiname muß eingegeben werden.

Ursache:	Sie haben versucht, einen Vorgang auszuführen, bei dem ein gültiger Dateiname angegeben werden muß.

Maßnahme:	Geben Sie einen gültigen Dateinamen an.


FRM-10101
FRM-10101:  Modul kann nicht generiert werden.

Ursache:	Das Modul wurde aufgrund von Generierungsfehlern nicht erstellt.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10102
FRM-10102: PL/SQL-Bibl. %s kann nicht zugeordnet werden. Zuordnung ist verloren, wenn Modul gespeichert wird

Ursache:	Die angegebene Bibliothek wird von anderen Benutzern gesperrt, oder der Bibliotheksname ist ungültig.

Maßnahme:	Prüfen Sie den Bibliotheksnamen, und wiederholen Sie den Versuch.


FRM-10103
FRM-10103:  Diese Form kann erst als Skript benutzt werden, nachdem sie auf eine neuere Version umgestellt wurde.

Ursache:	Interner Fehler. Forms mit Versionen zwischen 5.0.0.0.0 und 5.0.4.8.3 können nur dann als Skript verwendet werden, wenn sie auf eine neuere Version umgestellt wurden.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-10150
FRM-10150:  Bei dem Versuch, die Voreinstellungen zu speichern, ist ein Fehler aufgetreten.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10200
FRM-10200:  Das erneut eingegebene Kennwort stimmt nicht mit dem neuen Kennwort überein.

Ursache:	Das Kennwort, das Sie erneut eingegeben haben, ist nicht identisch mit dem neuen Kennwort.

Maßnahme:	Prüfen Sie, ob das erneut eingegebene Kennwort mit den neuen Kennwort übereinstimmt.


FRM-10201
FRM-10201: Kennwort kann nicht geändert werden.%s

Ursache:	Beim Versuch, das Kennwort zu ändern, ist ein Datenbankfehler aufgetreten.

Maßnahme:	Keine Maßnahme erforderlich. Informieren Sie den DBA über den aufgetretenen Datenbankfehler.


FRM-10250
FRM-10250:  Bei einem Löschvorgang muß der Modultyp angegeben werden.

Ursache:	Sie haben das Modul nicht richtig benannt.

Maßnahme:	Prüfen Sie den Modulnamen, und geben Sie ihn richtig ein.


FRM-10275
FRM-10275:  Zielmodul ist bereits vorhanden.

Ursache:	Sie haben versucht, ein Modul in der Datenbank mit einem Namen umzubenennen, der schon einem bestehenden Modul zugewiesen ist.

Maßnahme:	Geben Sie einen eindeutigen Namen für das Modul an.


FRM-10325
FRM-10325:  Ungültiger Modultyp.

Ursache:	Sie haben eine falsche Dateinamenerweiterung angegeben.

Maßnahme:	Benutzen Sie die richtige Dateinamenerweiterung (.FMX, .MMX oder .LIB).


FRM-10326
FRM-10326:  Zugriffsberechtigung des Moduleigentümers kann nicht entzogen werden.

Ursache:	Sie haben versucht, die Entwurfsberechtigungen des Moduleigentümers zu entziehen. Der als Eigentümer eines Moduls gekennzeichnete Benutzer hat immer Zugriff zu dem Modul.

Maßnahme:	Keine.


FRM-10327
FRM-10327:  Nur der Moduleigentümer kann den Modulzugriff ändern.

Ursache:	Sie haben versucht, die Zugriffsberechtigung zu einem Modul zu erteilen oder zu entziehen, das Ihnen nicht gehört.

Maßnahme:	Keine Maßnahme erforderlich. Um die Zugriffsberechtigung zu dem Modul zu ändern, nehmen Sie Verbindung mit dem DBA oder dem Eigentümer des Moduls auf.


FRM-10328
FRM-10328:  Zugriff auf dieses Modul kann nicht geändert werden.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10329
FRM-10329:  Der Benutzername muß eingegeben werden.

Ursache:	Form Builder erwartet einen gültigen Benutzernamen.

Maßnahme:	Geben Sie einen gültigen Benutzernamen ein.


FRM-10350
FRM-10350:  Der Benutzer hat nicht die nötigen Berechtigungen zum Durchführen dieses Befehls.

Ursache:	Sie haben versucht, einen Vorgang auszuführen, für den Sie keine Berechtigung haben.

Maßnahme:	Wenn Sie den Vorgang ausführen möchten, bitten Sie den DBA um die entsprechende Berechtigung.


FRM-10400
FRM-10400:  Report Builder kann nicht geöffnet werden.

Ursache:	Form Builder konnte Report Builder nicht starten.

Maßnahme:	Starten Sie Report Builder als separaten Prozeß.


FRM-10401
FRM-10401:  Gültiger Datenblockname erforderlich.

Ursache:	Sie haben keinen Datenblocknamen in das Dialogfeld eingegeben.

Maßnahme:	Geben Sie einen Datenblocknamen ein, bevor Sie das Dialogfeld akzeptieren oder abbrechen.


FRM-10651
FRM-10651: Liste mit Tabellen konnte nicht abgerufen werden.

Ursache:	Form Builder konnte die Liste mit den Tabellen nicht abrufen.

Maßnahme:	Prüfen Sie die Datenbankverbindung, oder nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10700
FRM-10700:  Ersatzmodul im Zielmodul nicht vorhanden.

Ursache:	Der Name, den Sie in dem Dialogfeld mit den Optionen für das Kopieren von Objekten angegeben haben, kann in dem Zielmodul für den entsprechenden Objekttyp nicht gefunden werden.

Maßnahme:	Klicken Sie auf eine Schaltfläche Auswahl in dem Dialogfeld, um eine Liste der entsprechenden Objekttypen im Zielmodul anzuzeigen.


FRM-10725
FRM-10725:  Der Assistent konnte nicht aus der Resource-Datei geladen werden.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10750
FRM-10750:  Bitte geben Sie einen Tabellennamen ein.

Ursache:	Sie müssen einen Tabellennamen eingeben, bevor Sie diese Seite des Assistenten verlassen.

Maßnahme:	Geben Sie einen Tabellennamen ein, oder klicken Sie auf Durchsuchen, um eine Tabelle in der Datenbank zu suchen.


FRM-10751
FRM-10751:  Bitte wählen Sie mindestens eine Datenbankspalte.

Ursache:	Mindestens eine Spalte muß in der Liste Datenbankobjekte der Feldauswahl angezeigt werden, um diese Seite des Assistenten zu verlassen.

Maßnahme:	Verschieben Sie eine oder mehrere Spalten aus der Liste Verfügbare Spalten in die Liste Datenbankobjekte der Feldauswahl.


FRM-10752
FRM-10752:  Der Assistent kann immer nur einen Datenblock gleichzeitig ändern.

Ursache:	Sie haben den Datenblock-Assistenten aufgerufen, während zwei oder mehr Datenblöcke im Objektnavigator ausgewählt waren. Der Assistent kann immer nur einen Datenblock gleichzeitig ändern.

Maßnahme:	Stellen Sie sicher, daß nur ein Datenblock im Objektnavigator ausgewählt ist, bevor Sie den Datenblock-Assistenten aufrufen.


FRM-10753
FRM-10753:  Ungültige Join-Bedingung für Master-Datenblock %s.

Ursache:	Beim Laden eines Datenblocks im Hinblick auf eine Änderung hat der Datenblock-Assistent eine ungültige Join-Bedingung für den angegebenen Master-Datenblock gefunden.

Maßnahme:	Suchen Sie das entsprechende Beziehungsobjekt für den Master-Datenblock, und korrigieren Sie die Join-Bedingung, bevor Sie den Datenblock-Assistenten erneut aufrufen.


FRM-10754
FRM-10754:  Mehr als eine Join-Bedingung zu Master-Datenblock %s.

Ursache:	Beim Laden eines Datenblocks im Hinblick auf eine Änderung hat der Datenblock-Assistent festgestellt, daß der Datenblock mehr als einmal mit dem angegebenen Master-Datenblock verknüpft ist. Dies ist ein interner Fehler, der normalerweise nicht auftreten dürfte.

Maßnahme:	Gehen Sie folgendermaßen vor:

1. Stellen Sie sicher, daß nur ein Beziehungsobjekt den Master-Datenblock mit dem Detail-Datenblock verknüpft.

2. Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10755
FRM-10755:  Keine Join-Bedingung zu Master-Datenblock %s.

Ursache:	Eine Join-Bedingung zu dem angegebenen Master-Datenblock muß vorhanden sein, bevor Sie diese Seite des Assistenten verlassen können.

Maßnahme:	Mit den Popup-Listen Detail-Objekt und Master-Objekt können Sie eine Join-Bedingung zu dem angegebenen Master-Datenblock festlegen.


FRM-10756
FRM-10756:  Fehler beim Laden von Integritätsregel für Tabelle %s.

Ursache:	Ein interner Fehler ist aufgetreten, während der Datenblock-Assistent versucht hat, Integritätsregeln für die angegebene Tabelle abzurufen.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10757
FRM-10757:  Keine Master-Datenblöcke verfügbar.

Ursache:	Es sind keine Datenblöcke verfügbar, mit denen eine Master-Detail-Beziehung definiert werden kann.

Maßnahme:	Prüfen Sie, ob das Kontrollkästchen Datenblöcke automatisch verknüpfen:

1. Ausgewählt ist. In diesem Fall sind die einzigen potentiellen Master-Datenblöcke die Datenblöcke, die auf Tabellen basieren, die von einem Fremdschlüssel in der Basistabelle des aktuellen Blocks referenziert werden.

2. Nicht ausgewählt ist. In diesem Fall sind alle Datenblöcke in der Form potentielle Master-Datenblöcke, Sie müssen die Join-Bedingung jedoch manuell angeben.


FRM-10758
FRM-10758:  Kein auf Join-Spalte %s basierendes Objekt in diesem Detail-Datenblock.

Ursache:	Der Datenblock-Assistent versucht, Informationen einer Fremdschlüssel-Integritätsregel zu verwenden, um die Join-Bedingung zwischen dem aktuellen Datenblock und dem ausgewählten Master-Datenblock automatisch festzulegen. Eine der in der Fremdschlüssel-Integritätsregel enthaltenen Spalten wird jedoch im aktuellen Datenblock nicht als Objekt angezeigt.

Maßnahme:	Gehen Sie zu der Seite Tabelle des Assistenten zurück, und stellen Sie sicher, daß alle Spalten, die für die Verknüpfung des aktuellen Datenblocks mit dem erforderlichen Master-Datenblock benötigt werden, in der Liste Datenbankobjekte der Feldauswahl angezeigt werden.


FRM-10759
FRM-10759:  Kein auf Join-Spalte %s basierendes Objekt in Master-Datenblock %s.

Ursache:	Der Datenblock-Assistent versucht, die Informationen der Fremdschlüssel-Integritätsregel zu benutzen, um die Join-Bedingung zwischen dem aktuellen Datenblock und dem ausgewählten Master-Datenblock automatisch festzulegen. Eine der in der Fremdschlüssel-Integritätsregel enthaltenen Spalten wird jedoch nicht als Objekt im ausgewählten Master-Datenblock angezeigt.

Maßnahme:	Beenden Sie den Assistenten, und stellen Sie sicher, daß die Objekte, die für die Verknüpfung des aktuellen Datenblocks mit dem erforderlichen Master-Datenblock als Objekte des erforderlichen Master-Datenblocks angezeigt werden.


FRM-10760
FRM-10760:  Fehler beim Beschreiben der Prozedur.

Ursache:	Interner Oracle-Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-10761
FRM-10761:  Der Assistent kann nur Datenblöcke basierend auf einer einzelnen Tabelle oder Prozedurgruppe ändern.

Ursache:	Beim Laden eines Datenblocks im Hinblick auf eine Änderung hat der Datenblock-Assistent eine Kombination von Datenblockattributen gefunden, die von dem Assistenten nicht unterstützt werden.

Maßnahme:	Vergewissern Sie sich, daß der Datenblock auf einer der folgenden Voraussetzungen basiert:

1. Einer einzelnen Tabelle (bei der die Attribute Abfrage-Datenquelltyp und DML-Datenzieltyp beide auf Tabelle eingestellt sind und die Attribute Abfrage-Datenquellname und DML-Zielname identisch sind).

2. Einer Gruppe von gespeicherten Prozeduren (wobei die Attribute Abfrage-Datenquelltyp und DML-Datenzieltyp beide auf Prozedur eingestellt sind).


FRM-10762
FRM-10762:  Bitte geben Sie einen Prozedurnamen ein.

Ursache:	Sie müssen einen Prozedurnamen eingeben, um diese Seite des Assistenten verlassen zu können.

Maßnahme:	Geben Sie einen Prozedurnamen ein.


FRM-10763
FRM-10763:  Argument vom Typ TABLE oder REFCURSOR muß IN OUT sein.

Ursache:	Ein Argument vom Typ TABLE oder REFCURSOR (bei einer Prozedur, mit der Daten für den Datenblock abgefragt werden) muß den Modus IN OUT haben.

Maßnahme:	Gehen Sie folgendermaßen vor:

1. Wählen Sie eine Alternativprozedur, um Daten für Ihren Datenblock abzufragen.

2. Beenden Sie den Datenblock-Assistenten, ändern Sie den Argumentmodus in IN OUT, und rufen Sie den Assistenten erneut auf.


FRM-10764
FRM-10764:  Kein Argument vom Typ TABLE oder REFCURSOR.

Ursache:	Eine Prozedur, mit der Daten für einen Datenblock abgerufen werden, muß einen Argumenttyp TABLE oder REFCURSOR aufweisen.

Maßnahme:	Gehen Sie folgendermaßen vor:

1. Wählen Sie eine Alternativprozedur, um Daten für Ihren Datenblock abzufragen.

2. Beenden Sie den Datenblock-Assistenten, fügen Sie ein Argument vom Typ TABLE oder REFCURSOR zu der Prozedur hinzu, und rufen Sie den Assistenten erneut auf.


FRM-10765
FRM-10765:  Nur ein Argument vom Typ TABLE oder REFCURSOR zulässig.

Ursache:	Eine Prozedur, mit der Daten für einen Datenblock abgefragt werden, kann nur ein Argument vom Typ TABLE oder REFCURSOR haben.

Maßnahme:	Gehen Sie folgendermaßen vor:

1. Wählen Sie eine Alternativprozedur, um Daten für Ihren Datenblock abzufragen.

2. Beenden Sie den Datenblock-Assistenten, prüfen Sie, ob die Prozedur nur ein Argument vom Typ TABLE oder REFCURSOR hat, und rufen Sie den Assistenten dann erneut auf.


FRM-10766
FRM-10766:  Argumente vom Typ RECORD nicht zulässig.

Ursache:	Argumente vom Typ RECORD sind in Prozeduren nicht zulässig, mit denen Daten für den Datenblock abgefragt, eingefügt, aktualisiert, gelöscht oder gesperrt werden.

Maßnahme:	Gehen Sie folgendermaßen vor:

1. Wählen Sie eine Alternativprozedur, um Daten für Ihren Datenblock abzufragen, einzufügen, zu aktualisieren, zu löschen oder zu sperren.

2. Beenden Sie den Datenblock-Assistenten, prüfen Sie, ob die Prozedur keine Argumente vom Typ RECORD hat, und rufen Sie den Assistenten erneut auf.


FRM-10767
FRM-10767:  Bitte wählen Sie mindestens eine Ergebnismengenspalte.

Ursache:	Mindestens eine Ergebnismengenspalte muß in der Liste Datenbankobjekte der Feldauswahl angezeigt werden, bevor Sie diese Seite des Assistenten verlassen können.

Maßnahme:	Verschieben Sie eine oder mehrere Ergebnismengenspalten aus der Liste Verfügbare Spalten in die Liste Datenbankobjekte der Feldauswahl.


FRM-10768
FRM-10768:  Argument vom Typ TABLE muß IN oder IN OUT sein.

Ursache:	Ein TABLE-Argument einer Prozedur, mit der Daten für den Datenblock eingefügt, aktualisiert, gelöscht oder gesperrt werden, muß den Modus IN oder IN OUT haben.

Maßnahme:	Gehen Sie folgendermaßen vor:

1. Wählen Sie eine Alternativprozedur für das Einfügen, Aktualisieren, Löschen oder Sperren von Daten für Ihren Datenblock.

2. Beenden Sie den Datenblock-Assistenten, ändern Sie den Argumentmodus in IN oder IN OUT, und rufen Sie den Assistenten erneut auf.


FRM-10769
FRM-10769:  Kein Argument vom Typ TABLE.

Ursache:	Eine Prozedur, mit der Daten für einen Datenblock eingefügt, aktualisiert, gelöscht oder gesperrt werden, muß einen Argumenttyp TABLE aufweisen.

Maßnahme:	Gehen Sie folgendermaßen vor:

1. Wählen Sie eine Alternativprozedur für das Einfügen, Aktualisieren, Löschen oder Sperren von Daten für Ihren Datenblock.

2. Beenden Sie den Datenblock-Assistenten, fügen Sie ein Argument vom Typ TABLE zu der Prozedur hinzu, und rufen Sie dann den Assistenten erneut auf.


FRM-10770
FRM-10770:  Nur ein Argument vom Typ TABLE zulässig.

Ursache:	Eine Prozedur, mit der Daten für einen Datenblock eingefügt, aktualisiert, gelöscht oder gesperrt werden, darf nur ein Argument vom Typ TABLE aufweisen.

Maßnahme:	Gehen Sie folgendermaßen vor:

1. Wählen Sie eine Alternativprozedur für das Einfügen, Aktualisieren, Löschen oder Sperren von Daten für Ihren Datenblock.

2. Beenden Sie den Datenblock-Assistenten, prüfen Sie, ob die Prozedur nur ein Argument vom Typ TABLE hat, und rufen Sie den Assistenten erneut auf.


FRM-10771
FRM-10771:  Argumente vom Typ REFCURSOR nicht zulässig.

Ursache:	Eine Prozedur, mit der Daten für einen Datenblock eingefügt, aktualisiert, gelöscht oder gesperrt werden, darf keine Argumente vom Typ REFCURSOR enthalten.

Maßnahme:	Gehen Sie folgendermaßen vor:

1. Wählen Sie eine Alternativprozedur für das Einfügen, Aktualisieren, Löschen oder Sperren von Daten für Ihren Datenblock.

2. Beenden Sie den Datenblock-Assistenten, prüfen Sie, ob die Prozedur keine Argumente vom Typ REFCURSOR hat, und rufen Sie den Assistenten erneut auf.


FRM-10772
FRM-10772:  Benutzung einer Funktion ist nicht zulässig.

Ursache:	Für das Abfragen, Einfügen, Aktualisieren, Löschen oder Sperren von Daten für Ihren Datenblock wurde eine Funktion angegeben. Für diesen Zweck können nur Prozeduren verwendet werden.

Maßnahme:	Gehen Sie folgendermaßen vor:

1. Wählen Sie eine Prozedur für das Abfragen, Einfügen, Aktualisieren, Löschen oder Sperren von Daten für Ihren Datenblock.

2. Beenden Sie den Datenblock-Assistenten, wandeln Sie die Funktion in eine Prozedur um, und rufen Sie den Assistenten erneut auf.


FRM-10773
FRM-10773: Kein auf REF-Objekt %s basiertes Objekt in diesem Detail-Datenblock.

Ursache:	Der Datenblock-Assistent versucht, ein REF-Objekt zu benutzen, um die Beziehung zwischen dem aktuellen Datenblock und dem ausgewählten Master-Datenblock automatisch einzurichten. Das ausgewählte REF-Objekt wird jedoch nicht als Objekt im aktuellen Datenblock angezeigt.

Maßnahme:	Gehen Sie zum Register Tabelle des Assistenten zurück, und stellen Sie sicher, daß die REF-Spalte, die für die Verknüpfung des aktuellen Datenblocks mit dem obligatorischen Master-Datenblock erforderlich ist, in der Liste Datenbankobjekte der Feldauswahl vorhanden ist.


FRM-10774
FRM-10774: Kein Detail-Element für Master-Datenblock %s angegeben.

Ursache:	Ein Detail-Objekt für den Master-Datenblock muß vorhanden sein, bevor Sie diese Seite des Assistenten verlassen können.

Maßnahme:	Verwenden Sie die Popup-Liste Detail-Objekt, um eine Master-Detail-Bedingung zu dem angegebenen Master-Datenblock festzulegen.


FRM-10800
FRM-10800:  Bitte wählen Sie mindestens ein angezeigtes Objekt aus.

Ursache:	Mindestens ein Objekt muß in der Liste Angezeigte Objekte der Feldauswahl stehen, bevor Sie diese Seite des Assistenten verlassen können.

Maßnahme:	Verschieben Sie ein oder mehrere Objekte aus der Liste Verfügbare Objekte in die Liste Angezeigte Objekte der Feldauswahl.


FRM-10801
FRM-10801:  Keine Datenblöcke in der aktuellen Form für Layout vorhanden.

Ursache:	Sie können den Layout-Assistenten nicht aufrufen, weil keine Datenblöcke für ein Layout vorhanden sind.

Maßnahme:	Stellen Sie sicher, daß mindestens ein Datenblock in der Form vorhanden ist, bevor Sie den Layout-Assistenten aufrufen.


FRM-10802
FRM-10802:  Der Assistent kann immer nur einen Rahmen gleichzeitig ändern.

Ursache:	Sie haben den Layout-Assistenten aufgerufen, während mehrere Rahmen im Layouteditor ausgewählt waren. Der Assistent kann nur einen Rahmen gleichzeitig ändern.

Maßnahme:	Stellen Sie sicher, daß nur ein Rahmen im Layouteditor ausgewählt ist, bevor Sie den Layout-Assistenten aufrufen.


FRM-10803
FRM-10803:  Ein oder mehrere Objekte haben eine negative Breite oder Höhe.

Ursache:	Ein oder mehrere Objekte in der Tabelle haben eine negative Breite oder Höhe.

Maßnahme:	Stellen Sie sicher, daß keine Objekte in der Tabelle eine negative Breite oder Höhe haben.


FRM-10804
FRM-10804:  Der Abstand zwischen Datensätzen muß 0 oder ein positiver Wert sein.

Ursache:	Sie haben einen negativen Wert für den Abstand zwischen den Datensätzen angegeben.

Maßnahme:	Stellen Sie den Abstand zwischen den Datensätzen auf einen Wert von 0 oder einen positiven Wert ein.


FRM-10805
FRM-10805:  Die angezeigten Datensätze müssen größer sein als 0.

Ursache:	Sie haben einen kleineren Wert als 1 für die angezeigten Datensätze angegeben.

Maßnahme:	Korrigieren Sie die Anzahl der angezeigten Datensätze auf einen Wert größer als 0.


FRM-10850
FRM-10850:  Im Rahmen %s können nur %d Datensätze angezeigt werden.

Ursache:	In dem angegebenen Rahmen kann die angeforderte Anzahl von Datensätzen nicht angezeigt werden.

Maßnahme:	Hier ist keine Maßnahme erforderlich. In dem Rahmen wird die zulässige Höchstzahl von Datensätzen angezeigt. Wenn Sie mehr Datensätze in dem Rahmen anzeigen möchten, setzen Sie das Attribut Erweitern zulassen für den Rahmen auf Ja.


FRM-10851
FRM-10851:  Nicht genügend horizontaler Platz im Rahmen %s, um mit Layout zu beginnen.

Ursache:	Der angegebene Rahmen hat nicht genügend horizontalen Platz, um mit dem Layout des zugehörigen Datenblocks zu beginnen.

Maßnahme:	Verbreitern Sie den Rahmen, so daß mehr horizontaler Platz verfügbar ist.


FRM-10852
FRM-10852:  Nicht genügend vertikaler Platz im Rahmen %s, um mit Layout zu beginnen.

Ursache:	In dem angegebenen Rahmen ist nicht genügend vertikaler Platz vorhanden, um mit dem Layout des zugehörigen Datenblocks zu beginnen.

Maßnahme:	Gehen Sie folgendermaßen vor:

1.Vergrößern Sie die Höhe des Rahmens, so daß mehr vertikaler Platz verfügbar ist.

2. Stellen Sie das Attribut Erweitern zulassen auf Ja ein.


FRM-10853
FRM-10853:  Horizontaler Überlauf in Rahmen %s.

Ursache:	In dem Layout ist ein horizontaler Überlauf über die Rahmengrenzen hinaus aufgetreten, und der Rahmen kann nicht erweitert werden.

Maßnahme:	Verbreitern Sie den Rahmen, so daß mehr horizontaler Platz verfügbar ist, oder setzen Sie das Attribut Erweitern zulassen im Attributblatt für den Rahmen auf Ja.


FRM-10854
FRM-10854:  Vertikaler Überlauf in Rahmen %s.

Ursache:	In dem Layout kam es zu einem vertikalen Überlauf der Rahmengrenzen, und der Rahmen kann nicht erweitert werden.

Maßnahme:	Vergrößern Sie die Höhe des Rahmens, so daß mehr vertikaler Platz verfügbar ist, oder setzen Sie das Attribut Erweitern zulassen in dem Attributblatt für den Rahmen auf Ja.


FRM-10855
FRM-10855:  Nicht genügend horizontaler Platz im Rahmen %s für Objekt %s.

Ursache:	Das angegebene Objekt ist zu breit für die Breite des Rahmens.

Maßnahme:	Machen Sie das Objekt schmaler, oder verbreitern Sie den Rahmen.


FRM-10900
FRM-10900: Der Assistent kann immer nur einen Rahmen gleichzeitig ändern.

Ursache:	Sie haben den Wertelisten-Assistenten aufgerufen, während mehrere Wertelisten im Objektnavigator ausgewählt sind. Der Assistent kann immer nur eine Werteliste gleichzeitig ändern.

Maßnahme:	Stellen Sie sicher, daß nur eine Werteliste im Objektnavigator ausgewählt ist, bevor Sie den Wertelisten-Assistenten aufrufen.


FRM-10901
FRM-10901: Bitte geben Sie eine SQL-Abfrage für die Werteliste ein.

Ursache:	Sie haben versucht, diese Seite des Wertelisten-Assistenten ohne Eingabe einer SQL-Abfrage zu verlassen.

Maßnahme:	Geben Sie eine gültige SQL-Abfrage ein, die zum Erstellen der Werteliste (und der zugrundeliegenden Datensatzgruppe) verwendet wird.


FRM-10902
FRM-10902: Ungültige SQL-Abfrage.%s

Ursache:	Die eingegebene SQL-Abfrage ist nicht gültig.

Maßnahme:	Prüfen Sie die Syntax der SQL-Abfrage, und korrigieren Sie die Fehler.


FRM-10903
FRM-10903: Bitte wählen Sie mindestens eine Spalte der Datensatzgruppe.

Ursache:	Mindestens eine Datensatzgruppenspalte muß in der Liste Wertelistenspalten der Feldauswahl angezeigt werden, bevor Sie diese Seite des Assistenten verlassen können.

Maßnahme:	Verschieben Sie eine oder mehrere Spalten aus der Liste Datensatzgruppenspalten in die Liste Wertelistenspalten der Feldauswahl.


FRM-10904
FRM-10904: Query Builder kann nicht gestartet werden.

Ursache:	Form Builder konnte Query Builder nicht starten.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-10905
FRM-10905: Die folgenden Rückgabewerte sind ungültig.

Ursache:	Die ungültigen Rückgabewerte müssen vor dem Verlassen dieser Seite des Assistenten korrigiert werden.

Maßnahme:	Geben Sie einen gültigen Rückgabewert ein. Dabei muß es sich um einen der folgenden Werte handeln:

1. Ein vollständiger Objektname (<DATABLOCK-NAME>.<DATAITEM-NAME>).

2. Ein Formparameter (PARAMETER.<PARAMETER-NAME>).

3. Eine globale PL/SQL-Variable (GLOBAL.<VARIABLE-NAME>).


FRM-10906
FRM-10906: Eine oder mehrere Wertelistenspalten haben eine negative Breite.

Ursache:	Ein oder mehrere Spalten in der Tabelle haben eine negative Breite.

Maßnahme:	Stellen Sie sicher, daß keine Spalten in der Tabelle eine negative Breite haben.


FRM-10907
FRM-10907: Größe oder Position der Werteliste hat einen negativen Wert.

Ursache:	Ein oder mehrere Attribute der Wertelistengröße und -position sind negativ.

Maßnahme:	Stellen Sie sicher, daß kein Größen- oder Positionsattribut der Werteliste negativ ist.


FRM-10908
FRM-10908: Anzahl von abgerufenen Zeilen ist kleiner als oder gleich null.

Cause:	Die Anzahl der abgerufenen Zeilen ist kleiner als oder gleich null.

Maßnahme:	Geben Sie für die Anzahl der abgerufenen Datensätze einen Wert ein, der größer als null ist.


FRM-10909
FRM-10909: Wertelisten alten Stils können mit dem Wertelisten-Assistenten nicht geändert werden.

Ursache:	Bei einer oder mehreren der ausgewählten Wertelisten handelt es sich um Listen alten Stils.

Maßnahme:	Konvertieren Sie die Werteliste in eine Liste des Typs Datensatzgruppe, bevor Sie den Wertelisten-Assistenten aufrufen.


FRM-11001
FRM-11001:  Ungültige Zeicheneinheitenbreite.

Ursache:	Die Zeicheneinheitenbreite ist auf 0 oder eine negative Zahl eingestellt.

Maßnahme:	Stellen Sie die Zeicheneinheitenbreite auf eine Ganzzahl größer als 0 ein.


FRM-11002
FRM-11002:  Ungültige Zeicheneinheitenhöhe.

Ursache:	In dem Feld Zeicheneinheitenhöhe wurde ein Wert von 0 oder eine negative Zahl eingegeben.

Maßnahme:	Geben Sie eine Ganzzahl größer als 0 in das Feld Zeicheneinheitenhöhe ein.


FRM-11004
FRM-11004:  Es ist bereits ein Formmodul mit diesem Namen vorhanden.

Ursache:	Sie haben versucht, ein Modul mit einem schon benutzten Namen umzubenennen.

Maßnahme:	Wählen Sie einen anderen Namen, mit dem Sie das Modul umbenennen können.


FRM-11006
FRM-11006:  Abrufen der aktuellen Form ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-11007
FRM-11007:  Ungültiger Formname.

Ursache:	Sie haben einen ungültigen Namen für das Formmodul eingegeben.

Maßnahme:	Geben Sie einen Formmodulnamen ein, der nur aus gültigen Zeichen besteht: Buchstaben, Zahlen, Unterstreichungszeichen und das #-Symbol (keine Bindestriche, Punkte oder @).


FRM-11008
FRM-11008:  Der Datenblock ist nicht vorhanden.

Ursache:	Der referenzierte Block ist nicht vorhanden.

Maßnahme:	Prüfen Sie den Blocknamen, und wiederholen Sie den Versuch.


FRM-11009
FRM-11009:  Farbpalette %s konnte nicht geladen werden.

Ursache:	Sie haben wahrscheinlich mit einer editierbaren Farbpalette gearbeitet und eine neue Form begonnen oder eine Form geöffnet.

Maßnahme:	Wechseln Sie in den gemeinsamen Farbmodus, und starten Sie Form Builder neu.


FRM-11010
FRM-11010:  Farbpalette %s konnte nicht gespeichert werden.

Ursache:	Sie haben wahrscheinlich mit einer editierbaren Farbpalette gearbeitet und eine neue Form begonnen oder eine Form geöffnet.

Maßnahme:	Wechseln Sie in den gemeinsamen Farbmodus, und starten Sie Form Builder neu.


FRM-11201
FRM-11201:  Anzahl angezeigter Datensätze ist ungültig.

Ursache:	Sie haben einen ungültigen Wert für das Attribut Angezeigte Datensätze eingegeben, oder Sie haben ein Leerzeichen eingegeben.

Maßnahme:	Geben Sie einen gültigen Wert ein. Für Angezeigte Datensätze muß folgender Wert angegeben werden:

1. Eine Ganzzahl

2. Größer als 0

3. Kleiner als oder gleich Anzahl gepufferter Datensätze


FRM-11204
FRM-11204:  Ein Datenblock mit diesem Namen ist bereits vorhanden.

Ursache:	In der aktiven Form ist bereits ein Block mit dem Namen vorhanden, der mit dem Attribut Blockname angegeben wird.

Maßnahme:	Geben Sie einen Namen für den Block ein, der für die Blöcke in der aktiven Form eindeutig ist.


FRM-11206
FRM-11206:  Die Datenblöcke können nicht abgerufen werden.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-11208
FRM-11208:  Kopierter/referenzierter Datenblock %s kann nicht eingelesen werden.

Ursache:	Der angegebene Block ist in der Datenbank nicht vorhanden.

Maßnahme:	Prüfen Sie den Blocknamen, und wiederholen Sie den Versuch.


FRM-11304
FRM-11304:  Eine gültige X-Koordinate wird verlangt.

Ursache:	Das Attribut X-Position ist leer, oder eine negative Zahl wird angegeben.

Maßnahme:	Geben Sie eine nicht-negative Zahl in das Attribut X-Position ein, um die Position der oberen linken Ecke des Objekts auf der Leinwand anzugeben.


FRM-11305
FRM-11305:  Gültige Y-Koordinate erforderlich.

Ursache:	Das Attribut Y-Position ist leer, oder eine negative Zahl wird angegeben.

Maßnahme:	Geben Sie eine nicht-negative Zahl für das Attribut Y-Position ein, um die Position der oberen linken Ecke des Objekts auf der Leinwand anzugeben.


FRM-11306
FRM-11306:  Gültige Breiten-Koordinate erforderlich.

Ursache:	Das Attribut Ansichtbreite ist leer, oder eine negative Zahl wird angegeben.

Maßnahme:	Geben Sie eine nicht-negative Zahl in das Feld Breite ein, um die Breite des Objekts in den aktuellen Koordinateneinheiten für die Form anzugeben.


FRM-11307
FRM-11307:  Gültige Höhen-Koordinate erforderlich.

Ursache:	Das Attribut Ansichthöhe ist leer, oder eine negative Zahl wird angegeben.

Maßnahme:	Geben Sie eine nicht-negative Zahl in das Feld Höhe ein, um die Höhe des Objekts in den aktuellen Koordinateneinheiten der Form anzugeben.


FRM-11310
FRM-11310:  Ungültige Maximallänge für aktuellen Daten-/Objekttyp.

Ursache:	Sie haben eine ungültige maximale Länge für ein Objekt eingegeben.

Maßnahme:	Wenn der aktuelle Objekttyp:

1. Ein Bildobjekt ist, stellen Sie das Attribut Max. Länge auf 1024 oder höher ein.

2. Kein Bildobjekt ist, stellen Sie das Attribut Max. Länge auf 1 oder höher ein.

3. Das Attribut Max. Länge für Char-Objekte muß kleiner sein als 32767 (32K).


FRM-11312
FRM-11312:  Objekt mit diesem Namen ist schon im aktuellen Datenblock vorhanden.

Ursache:	Der angegebene Name wird schon benutzt.

Maßnahme:	Geben Sie einen eindeutigen Objektnamen ein.


FRM-11314
FRM-11314:  Die Objekte können nicht aus der Datei abgerufen werden.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-11319
FRM-11319:  Abfragelänge: 0 oder >= max. Länge und < 65536 (abhängig vom Datentyp).

Ursache:	Die Einstellung des Attributs Abfragelänge ist ungültig.

Maßnahme:	Geben Sie eine gültige Länge für das Attribut Abfragelänge ein. Wenn dieses nicht gleich 0 ist, muß es gleich oder größer als der Wert des Attributs Max. Länge sein.


FRM-11323
FRM-11323:  Ausgangswert ist ungültig.

Ursache:	Der für eine Optionsgruppe, ein Listenobjekt oder ein Kontrollkästchen angegebene Ausgangswert ist ungültig.

Maßnahme:	Der Ausgangswert muß folgenden Bedingungen gerecht werden:

1. Objekt, Parameter, Sequenz oder globale Referenz.

2. Gleich dem "ausgewählten" Wert (nur Kontrollkästchen).

3. Gleich dem "nicht ausgewählten" Wert (nur Kontrollkästchen).

4. Gleich dem "ausgewählten" oder "nicht ausgewählten" Wert - ohne Berücksichtigung von Groß-/Kleinschreibung (nur Kontrollkästchen).

5. NULL.


FRM-11324
FRM-11324:  Wert ist ungültig.

Ursache:	Der eingegebene Wert liegt außerhalb des zulässigen Bereichs.

Maßnahme:	Geben Sie einen zulässigen Wert ein.


FRM-11327
FRM-11327:  Kopiertes/referenziertes Objekt %s in Datenblock %s kann nicht eingelesen werden.

Ursache:	Sie haben ein Objekt angegeben, das in dem angegebenen Block nicht vorhanden ist.

Maßnahme:	Prüfen Sie den Block- und Objektnamen, und wiederholen Sie den Versuch.


FRM-11328
FRM-11328:  Ausgangswert ist ungültig; das korrekte Format ist %s.

Ursache:	Der Wert ist mit dem Datentyp nicht kompatibel.

Maßnahme:	Machen Sie den Wert mit dem Datentyp kompatibel.


FRM-11329
FRM-11329:  Anderer Wert ist ungültig; das korrekte Format ist %s.

Ursache:	Der Wert ist mit dem Datentyp nicht kompatibel.

Maßnahme:	Machen Sie den Wert mit dem Datentyp kompatibel.


FRM-11330
FRM-11330:  Wert ist ungültig; das korrekte Format ist %s.

Ursache:	Der Wert ist mit dem Datentyp nicht kompatibel.

Maßnahme:	Machen Sie den Wert mit dem Datentyp kompatibel.


FRM-11331
FRM-11331:  Wert für den oberen Bereich muß größer sein als Wert für den unteren Bereich.

Ursache:	Der Wert für den unteren Bereich ist größer als der Wert für den oberen Bereich.

Maßnahme:	Stellen Sie sicher, daß der Wert für den oberen Bereich größer ist als der Wert für den unteren Bereich.


FRM-11332
FRM-11332: Wert ist mit Datentyp nicht konsistent.

Ursache:	Der Wert ist mit dem Datentyp nicht kompatibel.

Maßnahme:	Machen Sie den Wert mit dem Datentyp kompatibel.


FRM-11400
FRM-11400:  Es ist bereits eine PL/SQL mit diesem Namen vorhanden.

Ursache:	Sie haben möglicherweise zwei Codesegmente mit demselben Namen erstellt.

Maßnahme:	Benennen Sie ein Codesegment um.


FRM-11402
FRM-11402:  Abrufen von PL/SQL ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-11403
FRM-11403:  Initialisieren des PL/SQL-Kontexts ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-11404
FRM-11404:  Laden der Prozeduren ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-11405
FRM-11405:  Der Programmblock-Browser kann nicht aus der Resource-Datei geladen werden.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-11406
FRM-11406:  Der Programmblock-Browser kann nicht angezeigt werden.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-11407
FRM-11407:  Laden des PL/SQL-Editors ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-11408
FRM-11408:  Kopierte/referenzierte PL/SQL %s kann nicht eingelesen werden.

Ursache:	Die angegebene PL/SQL ist in der Datenbank nicht vorhanden.

Maßnahme:	Prüfen Sie den PL/SQL-Namen, und wiederholen Sie den Versuch.


FRM-11409
FRM-11409:  Programmblock %s wird bereits in einem anderen Fenster gezeigt.

Ursache:	Sie können einen Programmblock nur aus einem PL/SQL-Editorfenster anzeigen.

Maßnahme:	Zeigen Sie den Programmblock aus einem anderen Fenster an.


FRM-11410
FRM-11410:  Menüpunkt %s wird bereits in einem anderen Fenster gezeigt.

Ursache:	Sie können einen Menüpunkt nur aus einem PL/SQL-Editorfenster anzeigen.

Maßnahme:	Zeigen Sie den Menüpunkt aus einem anderen Fenster an.


FRM-11411
FRM-11411:  Menü %s wird bereits in einem anderen Fenster gezeigt.

Ursache:	Sie können den Startcode des Menüs nur aus einem PL/SQL-Editorfenster anzeigen.

Maßnahme:	Zeigen Sie den Startcode des Menüs aus einem anderen Fenster an.


FRM-11412
FRM-11412:  PL/SQL-Code für %s ist zu groß zum Abspeichern.

Ursache:	Der Programmblock ist zu groß für eine einzige Speicherzuordnung.

Maßnahme:	Reduzieren Sie die Größe des PL/SQL-Codes, indem Sie den Code kapseln und verschiedene Programmblöcke erzeugen.


FRM-11413
FRM-11413:  PL/SQL-Code für %s ist zu groß, um decodiert zu werden. %s in kleinere Programmblöcke aufteilen.

Ursache:	Der Programmblock ist zu groß, um in einer einzigen Speicherzuordnung decodiert zu werden. Möglicherweise geht die inkrementelle Kompilierungsfunktion verloren.

Maßnahme:	Teilen Sie den Programmblock in mehrere kleinere Programmblöcke auf, damit Sie jeden Programmblock in einer Speicherzuordnung decodieren können.


FRM-11414
FRM-11414: PL/SQL-Menüpunkt Code ist für diesen Menüpunkt nicht anwendbar.

Ursache:	Der PL/SQL-Code kann nicht für Menüpunkte des Typs Trennlinie oder beim Befehlstyp Null bzw. Menü eingegeben werden.

Maßnahme:	Wählen Sie einen anderen Menütyp.


FRM-11504
FRM-11504:  Es ist bereits ein Trigger mit diesem Namen vorhanden.

Ursache:	Sie haben einen Trigger auf derselben Definitionsebene wie ein bestehender Trigger desselben Typs definiert.

Maßnahme:	Keine.


FRM-11507
FRM-11507:  Das Abrufen der Trigger aus der Datei ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-11508
FRM-11508:  Vordefinierter Trigger auf dieser Definitionsebene ungültig.

Ursache:	Sie haben versucht, einen Trigger auf einer ungültigen Definitionsebene (Form, Block oder Objekt) zu definieren. Bestimmte Trigger sind nur auf bestimmten Definitionsebenen gültig.

Maßnahme:	Geben Sie im Feld Objekt eine gültige Definitionsebene an. Weitere Informationen finden Sie in dem Hilfetext zu Trigger-Definitionsebenen.


FRM-11510
FRM-11510:  Der kopierte/referenzierte Trigger %s in Form %s kann nicht eingelesen werden.

Ursache:	Der angegebene Trigger ist in der angegebenen Form nicht vorhanden.

Maßnahme:	Prüfen Sie den Trigger- und Formnamen, und wiederholen Sie den Versuch.


FRM-11511
FRM-11511:  Der kopierte/referenzierte Trigger %s in Datenblock %s kann nicht eingelesen werden.

Ursache:	Der angegebene Trigger ist in dem angegebenen Block nicht vorhanden.

Maßnahme:	Prüfen Sie den Trigger- und Blocknamen, und wiederholen Sie den Versuch.


FRM-11512
FRM-11512:  Der kopierte/referenzierte Trigger %s in Objekt %s von Datenblock %s kann nicht eingelesen werden.

Ursache:	Der angegebene Trigger ist in dem Objekt im angegebenen Block nicht vorhanden.

Maßnahme:	Prüfen Sie den Trigger-, Objekt- und Blocknamen, und wiederholen Sie den Versuch.


FRM-11513
FRM-11513:  Trigger %s wird bereits in einem anderen Fenster gezeigt.

Ursache:	Sie können einen Trigger nur aus einem PL/SQL-Editorfenster anzeigen.

Maßnahme:	Zeigen Sie den Trigger aus einem anderen Fenster an.


FRM-11601
FRM-11601:  Abrufen der V2-Trigger aus der Datei ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-11604
FRM-11604: V2-Trigger können in Form Builder nicht bearbeitet werden.

Ursache:	Die V2-Trigger sind veraltet und können nicht mehr bearbeitet werden.

Maßnahme:	Ersetzen Sie den V2-Trigger durch einen neuen PL/SQL-Trigger.


FRM-11701
FRM-11701:  Es ist bereits ein Warnfenster mit diesem Namen vorhanden.

Ursache:	In der aktiven Form ist bereits ein Warnfenster mit demselben Namen definiert.

Maßnahme:	Geben Sie einen eindeutigen Namen für das Warnfenster ein.


FRM-11703
FRM-11703:  Abrufen der Warnfensterobjekte aus der Datei ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-11706
FRM-11706:  Das kopierte/referenzierte Warnfenster %s kann nicht eingelesen werden.

Ursache:	Das angegebene Warnfenster ist in der Datenbank nicht vorhanden.

Maßnahme:	Prüfen Sie den Namen des Warnfensters, und wiederholen Sie den Versuch.


FRM-11801
FRM-11801:  Es ist bereits ein Editor mit diesem Namen vorhanden.

Ursache:	In der aktiven Form ist schon ein Editor mit demselben Namen definiert.

Maßnahme:	Geben Sie einen eindeutigen Namen für den Editor ein.


FRM-11803
FRM-11803:  Abrufen der Editor-Objekte aus der Datei ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-11804
FRM-11804:  Der kopierte/referenzierte Editor %s konnte nicht eingelesen werden.

Ursache:	Der angegebene Editor ist in der Datenbank nicht vorhanden.

Maßnahme:	Prüfen Sie den Editornamen, und wiederholen Sie den Versuch.


FRM-11900
FRM-11900:  Es ist bereits eine Werteliste mit diesem Namen vorhanden.

Ursache:	Der für die Werteliste angegebene Name entspricht dem Namen einer bestehenden Werteliste, die in derselben Form definiert ist.

Maßnahme:	Geben Sie einen gültigen Namen ein, der für die Wertelisten in der aktiven Form eindeutig ist.


FRM-11901
FRM-11901:  Fehler bei dem Versuch, die Werteliste zu erstellen.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-11903
FRM-11903:  Abrufen der Wertelisten aus der Datei ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-11905
FRM-11905:  Das im SELECT-Befehl referenzierte Objekt ist nicht vorhanden.

Ursache:	Sie haben versucht, ein Objekt auszuwählen, das nicht vorhanden ist.

Maßnahme:	Prüfen Sie die Tabelle, und korrigieren Sie den SELECT-Befehl.


FRM-11907
FRM-11907:  Die Datensatzgruppe muß in der Form vorhanden sein.

Ursache:	Die Datensatzgruppe, die bei dem Attribut Datensatzgruppentyp angegeben wurde, ist in der aktiven Form nicht vorhanden.

Maßnahme:	Geben Sie den Namen einer bestehenden Datensatzgruppe ein, oder erstellen Sie eine neue Datensatzgruppe.


FRM-11908
FRM-11908:  Objektname muß gültig und in der Form vorhanden sein.

Ursache:	Das Attribut Rückgabeobjekt enthält einen ungültigen Wert.

Maßnahme:	Geben Sie einen gültigen Wert für das Attribut Rückgabeobjekt ein. Gültige Werte umfassen den Namen eines Objekts in der aktiven Form, den Namen einer globalen Variablen oder den Namen eines Formparameters. Vor dem Objektnamen darf kein Doppelpunkt stehen, und der Objektname darf nicht in Anführungszeichen stehen.


FRM-11909
FRM-11909:  Geben Sie eine gültige Anzeigebreite einer Spalte ein.

Ursache:	Das Attribut Anzeigebreite für eine oder mehrere Spalten in der Werteliste ist leer oder enthält eine ungültige Zahl.

Maßnahme:	Ändern Sie den Wert für die Anzeigebreite für jede Spalte der Werteliste in 0 (bei einer verborgenen Spalte) oder eine nicht-negative Zahl.


FRM-11910
FRM-11910:  Die kopierte/referenzierte Werteliste %s kann nicht eingelesen werden.

Ursache:	Die angegebene Werteliste ist in der Datenbank nicht vorhanden.

Maßnahme:	Prüfen Sie den Namen der Werteliste, und wiederholen Sie den Versuch.


FRM-12000
FRM-12000:  Es ist bereits eine Datensatzgruppe mit diesem Namen vorhanden.

Ursache:	Der Name für die Datensatzgruppe entspricht dem Namen einer bestehenden Datensatzgruppe, die in derselben Form definiert ist.

Maßnahme:	Geben Sie einen gültigen Namen ein, der für die Datensatzgruppen in der aktiven Form eindeutig ist.


FRM-12001
FRM-12001:  Die Datensatzgruppe konnte nicht erstellt werden (bitte Abfrage prüfen).

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-12003
FRM-12003:  Abrufen der Datensatzgruppen-Objekte ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-12005
FRM-12005:  Die kopierte/referenzierte Datensatzgruppe %s konnte nicht eingelesen werden.

Ursache:	Die angegebene Datensatzgruppe ist in der Datenbank nicht vorhanden.

Maßnahme:	Prüfen Sie den Namen der Datensatzgruppe, und wiederholen Sie den Versuch.


FRM-12006
FRM-12006:  Für die Datensatzgruppe muß ein gültiger Name eingegeben werden; dieser muß in der Form eindeutig sein.

Ursache:	Form Builder konnte den Namen der Datensatzgruppe nicht verstehen.

Maßnahme:	Geben Sie einen eindeutigen Namen ein.


FRM-12103
FRM-12103:  Eine Leinwand mit diesem Namen ist bereits vorhanden.

Ursache:	Der für die Leinwand angegebene Name entspricht dem Namen einer bestehenden Leinwand, die in derselben Form definiert ist.

Maßnahme:	Geben Sie einen gültigen Namen ein, der unter den Leinwandobjekten in der aktiven Form eindeutig ist.


FRM-12105
FRM-12105:  Die Leinwandobjekte können nicht aus der Datei abgerufen werden.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-12107
FRM-12107:  Die kopierte/referenzierte Leinwand %s kann nicht eingelesen werden.

Ursache:	Der angegebene Leinwandausschnitt ist in der Datenbank nicht vorhanden.

Maßnahme:	Prüfen Sie den Namen des Leinwandausschnitts, und wiederholen Sie den Versuch.


FRM-12211
FRM-12211:  Es ist bereits ein Fenster mit diesem Namen vorhanden.

Ursache:	Der für das Fenster angegebene Name entspricht dem Namen eines bestehenden Fensters, das in derselben Form definiert ist.

Maßnahme:	Geben Sie einen gültigen Namen ein, der unter den Fenstern in der aktiven Form eindeutig ist.


FRM-12213
FRM-12213:  Abrufen der Fensterobjekte ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-12214
FRM-12214:  Das kopierte/referenzierte Fenster %s kann nicht eingelesen werden.

Ursache:	Das angegebene Fenster ist in der Datenbank nicht vorhanden.

Maßnahme:	Prüfen Sie den Fensternamen, und wiederholen Sie den Versuch.


FRM-12301
FRM-12301:  Abrufen der visuellen Attribute ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-12305
FRM-12305:  Es ist keine Farbe mit diesem Namen vorhanden.

Ursache:	Das Attribut Vordergrundfarbe oder Hintergrundfarbe ist ungültig.

Maßnahme:	Geben Sie einen gültigen Farbnamen für das Attribut Vordergrundfarbe oder Hintergrundfarbe ein, oder lassen Sie die Attribute leer.


FRM-12306
FRM-12306:  Es ist kein Muster mit diesem Namen vorhanden.

Ursache:	Das Attribut Füllmuster ist ungültig.

Maßnahme:	Geben Sie einen gültigen Musternamen in das Attribut Füllmuster ein, oder lassen Sie das Attribut leer.


FRM-12307
FRM-12307:  Es muß ein gültiger Schriftgrad (1-100) eingegeben werden.

Ursache:	Das Feld Schriftgrad ist ungültig.

Maßnahme:	Geben Sie einen gültigen Schriftgrad ein, oder lassen Sie das Feld leer.


FRM-12308
FRM-12308:  Das kopierte/referenzierte visuelle Attribut %s kann nicht eingelesen werden.

Ursache:	Das angegebene visuelle Attribut ist in der Datenbank nicht vorhanden.

Maßnahme:	Prüfen Sie den Namen des visuellen Attributs, und wiederholen Sie den Versuch.


FRM-12400
FRM-12400:  Es ist bereits ein Menümodul mit diesem Namen vorhanden.

Ursache:	Sie haben einen Menümodulnamen eingegeben, der schon vorhanden ist.

Maßnahme:	Geben Sie einen gültigen Namen ein, der unter den Menümodulen eindeutig ist.


FRM-12402
FRM-12402:  Abrufen des Menümoduls aus der Datei ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-12404
FRM-12404: Elemente %s haben gemeinsam benutzte Menüs %s.

Ursache:	Diese Version unterstützt keine gemeinsam verwendeten Menüs.

Maßnahme:	Stellen Sie vor dem Kompilieren auf duplizierte oder in Unterklassen eingeordnete Menüs um.


FRM-12500
FRM-12500:  Gültigen und in der Form eindeutigen Menünamen eingeben.

Ursache:	Sie haben versucht, das Feld Name zu verlassen, ohne einen Namen einzugeben.

Maßnahme:	Geben Sie einen Menünamen ein.


FRM-12502
FRM-12502:  Abrufen der Menüs ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-12504
FRM-12504:  Das kopierte/referenzierte Menü %s kann nicht eingelesen werden.

Ursache:	Das angegebene Menü ist in der Datenbank nicht vorhanden.

Maßnahme:	Prüfen Sie den Menünamen, und wiederholen Sie den Versuch.


FRM-12600
FRM-12600:  Es ist bereits ein Menüpunkt mit diesem Namen vorhanden.

Ursache:	Sie haben versucht, einen Namen für einen Menüpunkt einzugeben, der schon vorhanden ist.

Maßnahme:	Geben Sie einen eindeutigen und gültigen Namen für den Menüpunkt ein.


FRM-12602
FRM-12602:  Die Menüpunkte können nicht aus der Datei abgerufen werden.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-12606
FRM-12606:  Der kopierte/referenzierte Menüpunkt %s in Menü %s kann nicht eingelesen werden.

Ursache:	Der angegebene Menüpunkt ist in dem angegebenen Menü nicht vorhanden.

Maßnahme:	Prüfen Sie die Namen von Menü und Menüpunkt, und wiederholen Sie den Versuch.


FRM-12700
FRM-12700:  Es ist bereits ein Parameter mit diesem Namen vorhanden.

Ursache:	Der für den Parameter angegebene Name entspricht dem Namen eines bestehenden Parameters, der in demselben Modul definiert ist.

Maßnahme:	Geben Sie einen gültigen Namen ein, der unter den Parametern im aktiven Modul eindeutig ist.


FRM-12702
FRM-12702:  Abrufen der Menüparameter ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-12705
FRM-12705:  Der kopierte/referenzierte Menü-Parameter %s kann nicht eingelesen werden.

Ursache:	Der angegebene Menüparameter ist in der Datenbank nicht vorhanden.

Maßnahme:	Prüfen Sie den Namen des Menüparameters, und wiederholen Sie den Versuch.


FRM-12800
FRM-12800:  Es ist bereits eine Rolle mit diesem Namen vorhanden.

Ursache:	Der für die Rolle angegebene Name entspricht einer bestehenden Rolle in der Datenbank.

Maßnahme:	Geben Sie einen eindeutigen Rollennamen ein.


FRM-12802
FRM-12802:  Abrufen der Menürollen-Objekte ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-12900
FRM-12900:  Es ist bereits ein Parameter mit diesem Namen vorhanden.

Ursache:	Der für den Parameter angegebene Name entspricht dem Namen eines bestehenden Parameters im aktuellen Modul.

Maßnahme:	Geben Sie einen eindeutigen und gültigen Namen für den Parameter ein.


FRM-12902
FRM-12902:  Abrufen der Formparameter ist nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-12906
FRM-12906:  Der kopierte/referenzierte Formparameter %s kann nicht eingelesen werden.

Ursache:	Der angegebene Formparameter ist in der Datenbank nicht vorhanden.

Maßnahme:	Prüfen Sie den Namen des Formparameters, und wiederholen Sie den Versuch.


FRM-13000
FRM-13000:  Ein Abbruchfehler ist aufgetreten.

Ursache:	Im Layouteditor ist ein interner Fehler aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-13001
FRM-13001:  Diese Leinwand kann nicht akzeptiert werden.

Ursache:	Im Layouteditor ist ein interner Fehler aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-13002
FRM-13002:  Gestapelte und Register-Leinwände müssen innerhalb von Inhaltsleinwänden erstellt werden.

Ursache:	Im Layouteditor ist ein interner Fehler aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-13003
FRM-13003:  Nicht implementiertes Beobachterereignis; schließen und öffnen Sie den Layouteditor erneut.

Ursache:	Im Layouteditor ist ein interner Fehler aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-13504
FRM-13504:  Es sind keine gestapelten Leinwände für diese Leinwand vorhanden.

Ursache:	Sie haben eine Ansicht einer gestapelten Ansicht ausgewählt, während keine gestapelten Ansichten erstellt wurden.

Maßnahme:	Definieren Sie eine gestapelte Ansicht, bevor Sie diese Option auswählen.


FRM-13005
FRM-13005:  Das Löschen von Objekten dieses Typs im Layouteditor wird nicht unterstützt.

Ursache:	Im Layouteditor ist ein interner Fehler aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-13006
FRM-13006:  Ein nicht zum Abbruch führender Fehler ist aufgetreten.

Ursache:	Dies ist die Standardmeldung, wenn keine spezifischere Meldung definiert wurde.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-13007
FRM-13007:  Eine Objektansicht kann im Layouteditor nicht erstellt werden.

Ursache:	Forms konnte kein Objekt im Layouteditor anzeigen.

Maßnahme:	Möglicherweise haben Sie nicht genügend Ressourcen. Versuchen Sie, andere Fenster zu schließen oder Forms neu zu starten.


FRM-13008
FRM-13008: JavaBean mit dem Namen '%s' nicht gefunden.

Ursache:	Forms konnte das in der Implementierungsklasse angegebene JavaBean nicht finden.

Maßnahme:	Prüfen Sie den Namen des JavaBean und/oder der Variable CLASSPATH.


FRM-15000
FRM-15000:  Beziehungsname ist doppelt vorhanden.

Ursache:	Es ist schon eine Beziehung mit diesem Namen vorhanden.

Maßnahme:	Ändern Sie den Namen der Beziehung.


FRM-15001
FRM-15001:  Beziehungsname, der eindeutig innerhalb des Datenblocks ist, muß eingegeben werden.

Ursache:	Es ist schon eine Beziehung mit diesem Namen in dem ausgewählten Block vorhanden.

Maßnahme:	Benutzen Sie einen eindeutigen Namen für die Beziehung.


FRM-15002
FRM-15002:  Master-Datenblock ist erforderlich und muß in der Form vorhanden sein.

Ursache:	Sie haben versucht, den Namen eines Master- oder Detail-Blocks einzugeben, der ungültig ist.

Maßnahme:	Geben Sie einen gültigen Blocknamen ein, oder wählen Sie einen gültigen Blocknamen aus der Liste.


FRM-15003
FRM-15003:  Detail-Datenblock ist erforderlich und muß in der Form vorhanden sein.

Ursache:	Sie haben versucht, den Namen eines Master- oder Detail-Blocks einzugeben, der ungültig ist.

Maßnahme:	Geben Sie einen gültigen Blocknamen ein, oder wählen Sie einen gültigen Blocknamen aus der Liste.


FRM-15004
FRM-15004:  Fehler beim Analysieren der Join-Bedingung.

Ursache:	Die Join-Bedingung ist nicht korrekt.

Maßnahme:	Geben Sie eine gültige Join-Bedingung in das vorgesehene mehrzeilige Feld ein. Die Join-Bedingung definiert die Beziehung zwischen dem Master-Block, der in dem Feld Master angegeben wird, und dem im Feld Detail angegebenen Detail-Block.


FRM-15005
FRM-15005:  Die Join-Bedingung darf nicht null sein.

Ursache:	Die Join-Bedingung ist undefiniert.

Maßnahme:	Geben Sie eine gültige Join-Bedingung in das vorgesehene mehrzeilige Feld ein. Die Join-Bedingung definiert die Beziehung zwischen dem Master-Block, der in dem Feld Master angegeben wird, und dem im Feld Detail angegebenen Detail-Block.


FRM-15006
FRM-15006:  Master- und Detail-Datenblöcke dürfen nicht identisch sein.

Ursache:	Der Master- und der Detail-Block sind identisch.

Maßnahme:	Geben Sie einen anderen Master- oder Detail-Block an.


FRM-15007
FRM-15007:  Master-Detail-Beziehung ist schon für bestimmte Datenblöcke vorhanden.

Ursache:	Sie haben versucht, eine Beziehung zwischen zwei Blöcken zu erstellen, die schon eine Master-Detail-Beziehung haben.

Maßnahme:	Überprüfen Sie den Namen des Detail-Blocks, und wiederholen Sie den Versuch.


FRM-15008
FRM-15008:  Trigger, die eine Master-Detail-Beziehung beschreiben, wurden verändert.

Ursache:	Die Trigger, die Master-Detail-Beziehungen zwischen den beiden Datenblöcken beschreiben, wurden manuell so geändert, daß der Code nicht mehr automatisch aktualisiert wird.

Maßnahme:	Löschen und erstellen Sie das Beziehungsobjekt neu.


FRM-15009
FRM-15009:  Master-Datenblock darf nicht referenziert werden.

Ursache:	Sie können keine neuen Beziehungen zu einem Referenzblock hinzufügen.

Maßnahme:	Versuchen Sie nicht, eine neue Beziehung zu einem Referenzblock hinzuzufügen.


FRM-15100
FRM-15100:  Alle ausgewählten Objekte müssen vom selben Typ sein.

Ursache:	Sie haben versucht, einen Vorgang auszuführen, bei dem alle im Objektnavigator ausgewählten Objekte denselben Typ aufweisen müssen.

Maßnahme:	Führen Sie den Vorgang separat für jede Gruppe von Objekten desselben Typs aus.


FRM-15101
FRM-15101:  %s kann nicht kopiert werden, da das übergeordnete Objekt in einer Unterklasse steht.

Ursache:	Sie haben versucht, einen Vorgang mit einem Objekt auszuführen, das einem referenzierten Objekt gehört.

Maßnahme:	Sie können den Vorgang nur mit dem übergeordneten Objekt des Objekts oder mit dem Objekt ausführen, das die Quelle der Referenz ist. Sie können das Modul finden, in dem das Quellobjekt steht, indem Sie die Referenz-Informationen im Fenster Attribute überprüfen.


FRM-15102
FRM-15102:  Attributklasse vererbt sich selbst.

Ursache:	Sie haben versucht, eine Attributklasse sich selbst zuzuweisen. Anders ausgedrückt, Sie haben versucht, die übergeordnete Attributklasse mit der Attributklasse gleichzusetzen, die Sie bearbeiten.

Maßnahme:	Weisen Sie dem Objekt eine andere Attributklasse zu.


FRM-15103
FRM-15103:  %s kann nicht gelöscht werden, da das übergeordnete Objekt in einer Unterklasse steht.

Ursache:	Sie haben versucht, ein Objekt zu löschen, das einem Objekt in einer Unterklasse gehört.

Maßnahme:	Sie können das Objekt nicht löschen. Statt dessen sollten Sie es möglicherweise deaktivieren, indem Sie das entsprechende Attribut in der Attributpalette ändern.


FRM-15104
FRM-15104:  %s kann nicht verschoben werden, da das übergeordnete Objekt in einer Unterklasse steht.

Ursache:	Sie haben versucht, ein Objekt zu verschieben (neu anzuordnen), das einem Objekt in einer Unterklasse gehört.

Maßnahme:	Sie sollten eventuell eine Neuanordnung in der Quelle des Eigentümerobjekts durchführen. Sie können das Modul finden, in dem das Quellobjekt steht, indem Sie die Unterklassen-Information im Fenster Attribute betrachten.


FRM-15107
FRM-15107:  Referenz kann nicht erstellt werden.

Ursache:	Sie haben versucht, ein referenziertes Objekt zu erstellen, und das System hat nicht genügend Informationen für das Erstellen der Referenz.

Maßnahme:	Prüfen Sie, ob die Quelle der Referenzierung entweder im Dateisystem oder der Datenbank gespeichert wurde. Eine neue Form, die nicht gespeichert wurde, kann nicht die Quelle einer Referenz sein.


FRM-15108
FRM-15108:  Vor einem vererbten Objekt kann kein Objekt erstellt werden.

Ursache:	Sie haben versucht, Unterobjekte bei einem referenzierten Objekt hinzuzufügen oder zu löschen.

Maßnahme:	Wenn Sie die Struktur eines referenzierten Objekts ändern müssen, müssen Sie den Vorgang bei der Quelle der Referenz durchführen. Sie können die Quelle der Referenz ermitteln, indem Sie die Referenz-Information im Fenster Attribute für dieses Objekt überprüfen.


FRM-15109
FRM-15109:  Quellmodul muß gespeichert werden, bevor es in eine Unterklasse eingeordnet wird.

Ursache:	Sie haben versucht, ein Quellmodul zu referenzieren, das nicht gespeichert wurde.

Maßnahme:	Speichern Sie das Quellmodul, und erstellen Sie die Referenz neu.


FRM-15110
FRM-15110:  %s kann nicht gelöscht werden, da es zu einer Objektgruppe in einer Unterklasse gehört.

Ursache:	Sie haben versucht, ein Objekt zu löschen, das zu einer Objektgruppe in einer Unterklasse gehört.

Maßnahme:	Wenn Sie nicht alle Objekte in der Objektgruppe in der Unterklasse löschen möchten, sollten Sie die gewünschten Objekte möglicherweise individuell in einer Unterklasse gruppieren oder eine Objektgruppe erstellen, die nur die gewünschten Objekte enthält.


FRM-15111
FRM-15111:  Ein Objekt kann nicht erstellt werden, da das Modul keine Blöcke enthält.

Ursache:	Sie haben versucht, ein Objekt in einer Form zu erstellen, die keine Blöcke enthält.

Maßnahme:	Wechseln Sie in die Formshierarchie, und erstellen Sie einen neuen Block.


FRM-15200
FRM-15200:  Es gibt Schleifen in diesem Modul.

Ursache:	Es gibt eine Schleife mit Untermenüreferenzen in dem Modul.

Maßnahme:	Suchen und beheben Sie die Schleifen, bevor Sie das Modul generieren. Verwenden Sie Alles einblenden, um die Schleifen zu finden.


FRM-15201
FRM-15201:  Einblenden nicht möglich, da eine Schleife erstellt würde.

Ursache:	Das ausgewählte Objekt referenziert ein Menü, das gleichzeitig ein übergeordnetes Objekt dieses Objekts ist.

Maßnahme:	Lösen Sie die Schleife auf, bevor Sie einblenden.


FRM-15202
FRM-15202:  In diesem Modul gibt es Referenzen auf nicht vorhandene Untermenüs.

Ursache:	Das Modul enthält Objekte, die nicht vorhandene Untermenüs referenzieren.

Maßnahme:	Beheben Sie die nicht vorhandenen Referenzen, bevor Sie das Modul generieren.


FRM-15203
FRM-15203:  Einblenden nicht möglich, da kein Untermenü vorhanden ist.

Ursache:	Es gibt eine Schleife mit Untermenüreferenzen in dem Modul.

Maßnahme:	Suchen und beheben Sie die Schleifen, bevor Sie das Modul generieren. Verwenden Sie Alles einblenden, um die Schleifen zu finden.


FRM-15204
FRM-15204:  Menü und Menüpunkte können nicht gleichzeitig gezogen werden.

Ursache:	Sie haben versucht, eine Mehrfachauswahl zu ziehen, die Menüs und Menüpunkte enthält.

Maßnahme:	Ziehen Sie die Menüs einzeln.


FRM-15205
FRM-15205:  Es kann immer nur ein Menü gezogen werden.

Ursache:	Sie haben versucht, eine Mehrfachauswahl mit Menüs zu ziehen.

Maßnahme:	Ziehen Sie die Menüs einzeln.


FRM-15206
FRM-15206:  Referenziertes Menü oder referenzierter Menüpunkt kann nicht geändert werden.

Ursache:	Referenzierte Objekte können nicht geändert werden.

Maßnahme:	Wenn Sie die Struktur eines referenzierten Objekts ändern müssen, müssen Sie den Vorgang bei der Quelle der Referenz durchführen. Sie können die Quelle der Referenz ermitteln, indem Sie die Referenz-Information im Fenster Attribute für dieses Objekt überprüfen.


FRM-15207
FRM-15207:  Typ von übergeordnetem Objekt muß geändert werden, bevor Untermenü zugeordnet wird. (Code kann verlorengehen.)

Ursache:	Das übergeordnete Objekt ist ein Typ, der kein Untermenü enthalten kann.

Maßnahme:	Ändern Sie den übergeordneten Typ, bevor Sie das Untermenü zuordnen.


FRM-15208
FRM-15208:  Menü-Editor kann nicht gestartet werden.

Ursache:	Forms konnte den Menü-Editor wegen eines internen Fehlers nicht starten.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-15300
FRM-15300: Spaltenwert überschreitet angegebene Länge.

Ursache:	Ein Spaltenwert ist länger als die in dem Feld angegebene Länge.

Maßnahme:	Ändern Sie den Längen- oder die Spaltenwerte.


FRM-15400
FRM-15400:  Der Diagramm-Assistent kann nicht geladen werden.

Ursache:	Entweder ist ein interner Fehler aufgetreten, oder Oracle Graphics wurde nicht richtig installiert.

Maßnahme:	Prüfen Sie, ob Oracle Graphics richtig installiert ist.


FRM-15401
FRM-15401:  Die angegebene Graphics Designer (OGD)-Datei kann nicht geladen werden.

Ursache:	Die in dem Attribut Dateiname für das Diagrammobjekt angegebene OGD-Datei konnte nicht gefunden werden.

Maßnahme:	Prüfen Sie, ob die angegebene OGD-Datei in dem angegebenen Pfad vorhanden ist.


FRM-15402
FRM-15402:  Der Diagramm-Assistent kann nicht gestartet werden.

Ursache:	Entweder ist ein interner Fehler aufgetreten, oder Oracle Graphics wurde nicht richtig installiert.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-15403
FRM-15403:  Das Diagramm-Objekt kann nicht angezeigt werden.

Ursache:	Forms konnte keine VGS-Anzeigeliste aus der Graphics Designer (OGD)-Datei abrufen.

Maßnahme:	Prüfen Sie, ob es sich bei der angegebenen Datei um eine gültige OGD-Datei handelt, oder versuchen Sie, die OGD-Datei neu zu erstellen.


FRM-15404
FRM-15404:  Attribute in Graphics Designer (OGD)-Datei können nicht eingestellt werden.

Ursache:	Forms konnte die Attribute aus dem Diagramm-Assistenten nicht für die OGD-Datei anwenden.

Maßnahme:	Prüfen Sie, ob es sich bei der angegebenen Datei um eine gültige OGD-Datei handelt, oder versuchen Sie, die OGD-Datei neu zu erstellen.


FRM-15405
FRM-15405:  Neue Graphics Designer (OGD)-Datei kann nicht erstellt werden.

Ursache:	Entweder ist ein interner Fehler aufgetreten, oder Sie haben keine Berechtigung für das Erstellen einer Datei in dem angegebenen Pfad.

Maßnahme:	Prüfen Sie, ob Sie Dateien in dem angegebenen Pfad erstellen können und ob Oracle Graphics richtig installiert ist.


FRM-15500
FRM-15500:  Gültiger und eindeutiger Objektname muß eingegeben werden.

Ursache:	Der Objektname muß ein gültiger Oracle-Bezeichner und innerhalb seines Geltungsbereichs eindeutig sein.

Maßnahme:	Geben Sie einen gültigen und eindeutigen Namen ein.


FRM-15502
FRM-15502:  Dieser vordefinierte Triggername gilt auf dieser Ebene nicht.

Ursache:	Sie haben versucht, einen ungültigen Trigger für einen Objekttyp zu erstellen.

Maßnahme:	Prüfen Sie, ob Sie den Trigger für die entsprechende Ebene definieren.


FRM-15506
FRM-15506:  Abruf der Liste der OLE-Klassen nicht möglich.

Ursache:	Die Kommunikation mit der Registrierungsdatenbank ist nicht möglich.

Maßnahme:	Installieren Sie die OLE-Server neu.


FRM-17001
FRM-17001:  Die angezeigten Objekte dürfen nicht größer sein als die im Datenblock angezeigten Datensätze.

Ursache:	Sie haben versucht, das Attribut Angezeigte Objekte für ein Objekt auf eine Zahl zu setzen, die größer ist als das Attribut Angezeigte Datensätze in dem Block.

Maßnahme:	Stellen Sie sicher, daß das Attribut Angezeigte Datensätze größer als oder gleich dem Attribut Angezeigte Objekte ist.


FRM-17002
FRM-17002:  Für dieses Steuerelement ist kein Bewohner vorhanden.

Ursache:	Sie haben versucht, ein Attribut zu bearbeiten, bei dem das Steuerelement mit einem Bewohner aufgefüllt sein muß.

Maßnahme:	Fügen Sie aus dem Layouteditor mit dem Befehl Objekt einfügen einen Bewohner in das Steuerelement ein.


FRM-17003
FRM-17003:  Das Steuerelement muß im Layouteditor sichtbar sein, um dieses Attribut anzeigen zu können.

Ursache:	Sie haben versucht, ein Attribut zu bearbeiten, bei dem das Steuerelement im Layouteditor sichtbar sein muß.

Maßnahme:	Öffnen Sie den Layouteditor für die Leinwand, der dieses Steuerelement zugeordnet ist.


FRM-17004
FRM-17004:  Für dieses Steuerelement ist kein Hilfetext verfügbar.

Ursache:	Forms konnte keine Hilfedatei für dieses Steuerelement finden.

Maßnahme:	Prüfen Sie, ob das Steuerelement richtig installiert ist, oder installieren Sie das Steuerelement neu.


FRM-17005
FRM-17005:  Der Name der Steuerelementklasse kann nicht ermittelt werden.

Ursache:	Forms konnte die Hilfedatei nicht öffnen, weil der Name der Steuerelementklasse nicht verfügbar ist.

Maßnahme:	Prüfen Sie, ob das Steuerelement richtig installiert ist, oder installieren Sie das Steuerelement neu.


FRM-18100
FRM-18100:  Bibliothek konnte nicht kompiliert werden.

Ursache:	Die Generierung der Bibliothek war nicht erfolgreich.

Maßnahme:	Prüfen Sie, ob alle Programmblöcke erfolgreich kompiliert wurden.


FRM-18101
FRM-18101:  Informationsnavigator konnte nicht gestartet werden.

Ursache:	Der Informationsnavigator konnte nicht gestartet werden.

Maßnahme:	Prüfen Sie, ob der Informationsnavigator richtig installiert wurde.


FRM-18102
FRM-18102:  Fehler-Dialogfeld konnte nicht initialisiert werden.

Ursache:	Forms konnte das standardmäßige Fehler-Dialogfeld nicht erstellen.

Maßnahme:	Prüfen Sie die Entwicklungsumgebung.


FRM-18103
FRM-18103:  Entwicklungsumgebung konnte nicht initialisiert werden.

Ursache:	Forms konnte die Entwicklungsumgebung nicht starten.

Maßnahme:	Prüfen Sie die Entwicklungsumgebung.


FRM-18104
FRM-18104:  Objektnavigator konnte nicht gestartet werden.

Ursache:	Forms konnte den Objektnavigator nicht starten.

Maßnahme:	Prüfen Sie die Entwicklungsumgebung.


FRM-18105
FRM-18105:  Hilfesystem konnte nicht gestartet werden.

Ursache:	Forms konnte das Hilfesystem nicht starten.

Maßnahme:	Prüfen Sie die Entwicklungsumgebung.


FRM-18106
FRM-18106:  Layouteditor-Kontext konnte nicht erstellt werden.

Ursache:	Forms konnte den Layouteditor-Kontext nicht erstellen.

Maßnahme:	Prüfen Sie die Entwicklungsumgebung.


FRM-18107
FRM-18107:  DE-Kontext für das Modul konnte nicht erstellt werden.

Ursache:	Forms konnte den DE-Kontext für das Modul nicht erstellen.

Maßnahme:	Prüfen Sie die Entwicklungsumgebung.


FRM-18108
FRM-18108:  Die folgenden Objekte konnten nicht geladen werden.

Ursache:	Forms konnte die angegebenen Fremdreferenzen nicht laden.

Maßnahme:	Prüfen Sie, ob alle referenzierten Forms und Objektbibliotheken vorhanden sind.


FRM-18109
FRM-18109: Ein Objekt mit dem Namen %s ist schon in der Objektgruppe %s vorhanden.

Ursache:	Sie haben versucht, einen Programmblock zu der Objektbibliothek hinzuzufügen, ein Programmblock mit diesem Namen ist jedoch schon in einer Objektgruppe in der Objektbibliothek vorhanden.

Maßnahme:	Entfernen Sie den Programmblock aus der Objektgruppe, und wiederholen Sie den Versuch.


FRM-18110
FRM-18110: Ein Programmblock namens %s (in Objektgruppe %s) ist in dieser Objektbibl. schon vorhanden.

Ursache:	Sie haben versucht, eine Objektgruppe, die einen Programmblock enthält, der Objektbibliothek hinzuzufügen, ein Programmblock mit diesem Namen ist jedoch schon in der Objektbibliothek vorhanden.

Maßnahme:	Löschen Sie den Programmblock aus der Objektbibliothek, oder entfernen Sie den Block aus der Objektgruppe, und versuchen Sie anschließend erneut, die Objektgruppe hinzuzufügen.


FRM-18111
FRM-18111: Eine Schriftart mit den angeforderten Eigenschaften konnte nicht gefunden werden.

Ursache:	Sie haben versucht, das Dialogfeld Schriftart für dieses Objekt anzuzeigen, eine Schriftart mit den angeforderten Eigenschaften konnte jedoch in Ihrem System nicht gefunden werden.

Maßnahme:	Ändern Sie eine Schriftarteigenschaft (Name, Größe, Stil, Stärke oder Zeichenabstand), und versuchen Sie es erneut.


FRM-18112
FRM-18112: Form Builder konnte nicht als Automation Server initialisiert werden.

Ursache:	Form Builder konnte nicht als Automation Server initialisiert werden, da OLE/COM nicht ordnungsgemäß im System installiert ist.

Maßnahme:	Prüfen Sie die OLE/COM-Installation und die Registrierungseinstellungen.


FRM-18113
FRM-18113:  Form Builder konnte Oracle Designer nicht als Automation Server initialisieren.

Ursache:	Oracle Designer konnte nicht als Automation Server initialisiert werden, da entweder die Registrierung nicht ordnungsgemäß eingerichtet oder OLE/COM nicht ordnungsgemäß im System installiert ist.

Maßnahme:	Prüfen Sie die OLE/COM-Installation und die Registrierungseinstellungen.


FRM-40007
FRM-40007:  Benutzername oder Kennwort falsch. Bitte neu eingeben.

Ursache:	Sie haben einen falschen ORACLE-Benutzernamen bzw. ein falsches Kennwort eingegeben.

Maßnahme:	Geben Sie Benutzernamen und Kennwort erneut richtig ein.

Schweregrad:	>25

Typ:	Fehler


FRM-40010
FRM-40010:  Form %s kann nicht gelesen werden.

Ursache:	Dieser Fehler kann folgende Ursachen haben:

1. Sie haben einen nicht vorhandenen Formnamen eingegeben.

2. Sie haben einen unvollständigen Pfad eingegeben.

3. Sie haben nicht die richtige Berechtigung zur Ausführung der Form.

4. Sie haben keine kompilierte Kopie der Form.

Maßnahme:	Geben Sie den Formnamen erneut richtig ein, geben Sie den richtigen Pfadnamen an, kompilieren Sie die Form, oder setzen Sie sich mit dem DBA in Verbindung.

Schweregrad:	5

Typ:	Fehler


FRM-40011
FRM-40011:  Form wurde mit einer alten Version von Form Builder erstellt.

Ursache:	Die .FMB-Datei wurde mit einer alten und nicht kompatiblen Version von Forms Compiler erstellt.

Maßnahme:	Kompilieren Sie die Form neu, oder verknüpfen Sie Generieren neu.

Schweregrad:	>25

Typ:	Fehler


FRM-40012
FRM-40012:  Form wurde mit einer neuen Version von Form Builder erstellt.

Ursache:	Die .FMB-Datei wurde mit einer neuen und nicht kompatiblen Version von Forms Compiler erstellt.

Maßnahme:	Kompilieren Sie die Form neu.

Schweregrad:	>25

Typ:	Fehler


FRM-40013
FRM-40013:  Programmfehler: Ein Fehler ist beim Lesen der Form aufgetreten.

Ursache:	Als Form Builder versucht hat, die .FMB-Datei zu lesen, ist ein interner Fehler aufgetreten.

Maßnahme:	Kompilieren Sie die Form neu.

Schweregrad:	>25

Typ:	Fehler


FRM-40014
FRM-40014:  Nicht genügend Speicher zum Laden der Form.

Ursache:	Interner Fehler. In Ihrem Computer ist nicht genügend Speicherplatz zur Ausführung der Form vorhanden.

Maßnahme:	Möglicherweise kann der Entwickler die Form ändern, so daß sie ausgeführt werden kann. Wenn dies nicht möglich ist, müssen Sie mehr Speicherplatz zur Verfügung stellen, entweder indem Sie die Betriebssystemparameter ändern oder die Speicherkapazität des Computers vergrößern.

Schweregrad:	>25

Typ:	Fehler


FRM-40015
FRM-40015:  Unerwartetes Dateiende beim Lesen der Form.

Ursache:	Die Form war fragmentiert oder unvollständig.

Maßnahme:	Kompilieren Sie die Form neu.

Schweregrad:	>25

Typ:	Fehler


FRM-40019
FRM-40019:  Unbekannte Bildschirmnummer soll angezeigt werden.

Ursache:	Ein interner Fehler ist aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40020
FRM-40020:  Die Seite %d ist für diese Form zu klein.

Ursache:	Dies ist ein Entwurfsfehler der Anwendung. Ein Objekt befindet sich außerhalb der Seitengrenzen.

Maßnahme:	Stellen Sie sicher, daß alle Objekte, die mit der jeweiligen Seite verknüpft sind, vollständig auf diese Seite passen. Sie können die Objekte neu positionieren oder die Größe der Seite ändern.

Schweregrad:	>25

Typ:	Fehler


FRM-40021
FRM-40021:  Objekt in Form-Datei ist zu groß.

Ursache:	Beim Lesen der Form durch Form Builder ist ein interner Fehler aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40023
FRM-40023:  Fehler beim Erstellen des Kontextes für den Datensatzmanager.

Ursache:	Form Builder konnte den internen Datensatzmanager nicht initialisieren.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40024
FRM-40024:  Kein Speicherplatz mehr.

Ursache:	Interner Fehler. In Ihrem Computer ist nicht genügend Speicherplatz zur Ausführung der Form vorhanden.

Maßnahme:	Möglicherweise kann der Entwickler die Form ändern, so daß sie ausgeführt werden kann. Wenn dies nicht möglich ist, müssen Sie mehr Speicherplatz zur Verfügung stellen, entweder indem Sie die Betriebssystemparameter ändern oder die Speicherkapazität des Computers vergrößern.

Schweregrad:	>25

Typ:	Fehler


FRM-40025
FRM-40025:  Bildschirmausgabe kann ohne Dateieingabe nicht unterdrückt werden.

Ursache:	Sie haben versucht, eine Form aus der Befehlszeile auszuführen, und haben dabei nicht kompatible Voreinstellungen benutzt. Die Voreinstellung output_file kann nur in Verbindung mit der Voreinstellung keyin benutzt werden.

Maßnahme:	Geben Sie den Befehl erneut mit den Voreinstellungen output_file und keyin ein.

Schweregrad:	>25

Typ:	Fehler


FRM-40026
FRM-40026:  Fehler beim Öffnen der Tasten-Skriptdatei.

Ursache:	Form Builder kann die Datei nicht öffnen, die Sie mit der Voreinstellung keyin angegeben haben.

Maßnahme:	Stellen Sie sicher, daß die Datei vorhanden ist und daß der Dateischutz entsprechend eingestellt ist. Oder erstellen Sie eine Datei mit der Voreinstellung keyin.

Schweregrad:	>25

Typ:	Fehler


FRM-40027
FRM-40027:  Fehler beim Öffnen der Anzeige-Spool-Datei.

Ursache:	Betriebssystemfehler. Form Builder kann keine Datei öffnen, die mit der Voreinstellung output_file angegeben wird, weil nicht genügend Platz auf der Festplatte vorhanden ist oder weil Sie einen falschen Dateinamen angegeben haben.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder dem Systemadministrator auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40028
FRM-40028:  Fehler beim Öffnen der Meldungsdatei %s%s%s.MSB.

Ursache:	Form Builder kann die Meldungsdatei nicht finden.

Maßnahme:	Prüfen Sie, ob die Meldungsdatei vorhanden und der richtige Pfad eingestellt ist.

Schweregrad:	>25

Typ:	Fehler


FRM-40029
FRM-40029:  Sie sind bereits angemeldet. Bitte abmelden, bevor Sie die Verbindung ändern.

Ursache:	Die vordefinierte Prozedur Login() wurde ausgegeben, während Sie schon angemeldet waren.

Maßnahme:	Benutzen Sie zuerst die vordefinierte Prozedur Logout().

Schweregrad:	>25

Typ:	Fehler


FRM-40030
FRM-40030:  Datei %s ist keine Oracle Forms 4.5-Datei.

Ursache:	Die auf der Befehlszeile angegebene Datei war keine gültige Form Builder-Datei.

Maßnahme:	Geben Sie den Startbefehl für Forms Runtime erneut mit den Namen einer gültigen Datei ein.

Schweregrad:	Kein Schweregrad

Typ:	Startmeldung


FRM-40031
FRM-40031:  Datei %s ist keine Forms Runtime-Datei.

Ursache:	Die auf der Befehlszeile angegebene Datei ist keine Forms Runtime (.FMX)-Datei.

Maßnahme:	Geben Sie erneut eine Forms Runtime (.FMX)-Datei ein.

Schweregrad:	Kein Schweregrad

Typ:	Startmeldung


FRM-40032
FRM-40032:  Interner Fehler: Datei %s enthält eine unzulässige Abholraten-Größe.

Ursache:	Interner Fehler. Die Datei wurde falsch kompiliert oder ist beschädigt.

Maßnahme:	Kompilieren Sie die Datei neu.

Schweregrad:	Kein Schweregrad

Typ:	Startmeldung


FRM-40033
FRM-40033:  Interner Fehler: Datei %s enthält eine fehlerhafte Abholraten-Tabelle.

Ursache:	Interner Fehler. Die Datei wurde falsch kompiliert oder ist beschädigt.

Maßnahme:	Kompilieren Sie die Datei neu.

Schweregrad:	Kein Schweregrad

Typ:	Startmeldung


FRM-40034
FRM-40034:  Die Bibliotheksdatei kann nicht zugeordnet werden.

Ursache:	Form Builder konnte die angegebene Bibliotheksdatei nicht finden.

Maßnahme:	Beenden Sie Forms Runtime, und wiederholen Sie den Versuch.

Schweregrad:	>25 (diese Meldung kann nicht unterdrückt werden)

Typ:	Fehler


FRM-40035
FRM-40035:  Fehler beim Erstellen des Kontextes des Datensatzmanagers pro Block.

Ursache:	Form Builder konnte den internen Datensatzmanager nicht initialisieren.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40036
FRM-40036:  Bibliothek wurde mit einer neuen Version von Form Builder erstellt.

Ursache:	Form Builder kann die Bibliothek nicht benutzen.

Maßnahme:	Kompilieren Sie die Bibliothek mit der aktuellen Version von Form Builder neu.

Schweregrad:	>25

Typ:	Fehler


FRM-40037
FRM-40037:  Bibliothek wurde mit einer alten Version von Form Builder erstellt.

Ursache:	Form Builder kann die Bibliothek nicht benutzen.

Maßnahme:	Kompilieren Sie die Bibliothek mit der aktuellen Version von Form Builder neu.

Schweregrad:	>25

Typ:	Fehler


FRM-40038
FRM-40038:  Konnte %s VBX-Steuerelement für Objekt %s in Block %s nicht finden.

Ursache:	Entwicklungsfehler der Anwendung. Ein in der .FMB-Datei angegebenes VBX-Steuerelement kann zur Laufzeit nicht gefunden werden.

Maßnahme:	Prüfen Sie, ob die VBX-Steuerelementdatei in dem in Form Builder angegebenen Pfad gefunden werden kann.

Schweregrad:	>25

Typ:	Fehler


FRM-40039
FRM-40039:  Bibliothek %s kann nicht zugeordnet werden, während Form %s geöffnet wird.

Ursache:	Die angegebene Datei ist der Form zugeordnet, kann jedoch im Suchpfad für PL/SQL-Bibliotheken nicht gefunden werden.

Maßnahme:	Prüfen Sie, ob die angegebene Bibliothek gefunden werden kann und ob die Leseberechtigung eingestellt ist.

Schweregrad:	99

Typ:	Fehler


FRM-40100
FRM-40100:  Dies ist der erste Datensatz.

Ursache:	Sie haben [Vorheriger Datensatz] gedrückt, während der Cursor beim ersten Datensatz stand.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	5

Typ:	Fehler


FRM-40101
FRM-40101:  Positionieren auf Schlüsselobjekt nicht möglich. Navigieren nicht erlaubt.

Ursache:	Sie haben [Nächstes Primärschlüsselobjekt] gedrückt, es sind jedoch keine eingabefähigen Primärschlüsselobjekte in diesem Block vorhanden.

Maßnahme:	Benutzen Sie [Nächstes Objekt] anstelle von [Nächstes Primärschlüsselobjekt] für die Navigation.

Schweregrad:	10

Typ:	Fehler


FRM-40102
FRM-40102:  Datensatz muß erst eingegeben oder gelöscht werden.

Ursache:	Sie haben [Nächster Datensatz] oder [Nach-unten] in einem Kontext gedrückt, in dem dies sinnlos ist. Dieser Fehler kann eine der folgenden Ursachen haben:

1.  Der letzte Datensatz in einem Block ist der aktuelle Datensatz.

2.  Der Block ist leer.

3.  Sie befinden sich in einem neuen Datensatz in der Mitte des Blocks, der mit [Datensatz einfügen] erstellt wurde.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	5

Typ:	Fehler


FRM-40103
FRM-40103:  Positionieren auf Schlüsselobjekt nicht möglich. Abfragen sind nicht erlaubt.

Ursache:	Sie haben versucht, [Nächstes Primärschlüsselobjekt] zu verwenden, keines der Primärschlüsselobjekte in dem Block läßt jedoch die Eingabe von Abfragekriterien zu.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	10

Typ:	Fehler


FRM-40104
FRM-40104:  Diesen Block gibt es nicht: %s.

Ursache:	Laufzeitfehler. Eine Anweisung GO_BLOCK referenziert einen nicht vorhandenen Block.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-40105
FRM-40105:  Referenz auf Objekt %s konnte nicht aufgelöst werden.

Ursache:	Laufzeitfehler. Eine Anweisung GO_ITEM referenziert ein nicht vorhandenes Objekt.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-40106
FRM-40106:  Keine navigierbaren Objekte im Zielblock.

Ursache:	Laufzeitfehler. Eine Anweisung GO_BLOCK referenziert einen Block ohne Eingabeobjekte.

Maßnahme:	Entfernen Sie die Anweisung, oder machen Sie mindestens ein Objekt in dem Block zu einem Eingabeobjekt.

Schweregrad:	>25

Typ:	Fehler


FRM-40107
FRM-40107:  Kann nicht zu einem nicht angezeigten Objekt %s navigieren.

Ursache:	Laufzeitfehler. Eine Anweisung GO_ITEM referenziert ein nicht angezeigtes Objekt.

Maßnahme:	Entfernen Sie die Anweisung, oder schalten Sie das Attribut Angezeigt für das angegebene Objekt ein.

Schweregrad:	>25

Typ:	Fehler


FRM-40108
FRM-40108:  Die Form %s ist nicht vorhanden.

Ursache:	Sie haben versucht, Attribute einer nicht vorhandenen oder nicht geladenen Form einzulesen/einzustellen.

Maßnahme:	Benutzen Sie einen gültigen Formnamen.

Schweregrad:	>25

Typ:	Fehler


FRM-40109
FRM-40109:  Im Abfragemodus ist Navigieren aus dem aktuellen Block nicht möglich.

Ursache:	Sie haben versucht, im Abfragemodus aus dem aktuellen Block zu navigieren.

Maßnahme:	Keine Maßnahme erforderlich. Sie können im Abfragemodus nicht aus dem aktuellen Block oder aktuellen Datensatz navigieren.

Schweregrad:	99

Typ:	Fehler


FRM-40110
FRM-40110:  Dies ist der erste Block.

Ursache:	Sie haben [Vorheriger Block] gedrückt, während Sie sich im ersten Block befanden.

Maßnahme:	Keine. Benutzen Sie eine andere Navigationsmethode.

Schweregrad:	5

Typ:	Fehler


FRM-40111
FRM-40111:  Dies ist der letzte Block.

Ursache:	Sie haben [Nächster Block] gedrückt, während Sie sich im letzten Block befanden.

Maßnahme:	Keine. Benutzen Sie eine andere Navigationsmethode.

Schweregrad:	5

Typ:	Fehler


FRM-40200
FRM-40200:  Feld ist gegen Aktualisierungen geschützt.

Ursache:	Sie haben versucht, ein Feld zu aktualisieren, das keine Aktualisierungen erlaubt.

Maßnahme:	Keine Maßnahme erforderlich. Sie können dieses Feld in dieser Form nicht aktualisieren.

Schweregrad:	15

Typ:	Fehler


FRM-40201
FRM-40201:  Feld ist voll. Zeichen kann nicht eingefügt werden.

Ursache:	Form Builder befindet sich im Einfügemodus, und das aktuelle Feld ist voll.

Maßnahme:	Löschen Sie ein Zeichen, um Platz für das neue Zeichen zu schaffen, oder drücken Sie [Einfügen/Ersetzen], um den Ersetzenmodus zu aktivieren.

Schweregrad:	10

Typ:	Fehler


FRM-40202
FRM-40202:  Feld muß eingegeben werden.

Ursache:	Sie haben in ein Feld, das eine Dateneingabe erfordert, keinen Wert eingegeben (oder einen Wert gelöscht).

Maßnahme:	Sie müssen einen Wert in dieses Feld eingeben.

Schweregrad:	15

Typ:	Fehler


FRM-40203
FRM-40203:  Feld muß vollständig eingegeben werden.

Ursache:	Sie haben in ein Feld, für das eine feste Länge erforderlich ist, keinen vollständigen Wert eingegeben (oder einen Teil eines Wertes gelöscht).

Maßnahme:	Geben Sie einen vollständigen Wert ein (einen Wert, der bis zum Ende des Feldes reicht).

Schweregrad:	15

Typ:	Fehler


FRM-40204
FRM-40204:  Cursor steht am Anfang des Feldwertes.

Ursache:	Sie haben versucht, ein Zeichen vor der ersten Zeichenposition des Feldes zu löschen.

Maßnahme:	Benutzen Sie [Zeichen löschen], um das Zeichen zu löschen, auf dem der Cursor steht.

Schweregrad:	10

Typ:	Fehler


FRM-40205
FRM-40205:  Cursor steht hinter aktuellem Feldwert.

Ursache:	Sie haben den Cursor bei einem Terminal im Blockmodus an eine Stelle außerhalb des Feldes gesetzt.

Maßnahme:	Setzen Sie den Cursor in das Feld, und wiederholen Sie die Eingabe.

Schweregrad:	15

Typ:	Fehler


FRM-40206
FRM-40206:  Vorheriges Zeichen ist im Moment verborgen.

Ursache:	Sie haben versucht, ein Zeichen zu löschen, das nicht auf dem Bildschirm angezeigt wird.

Maßnahme:	Nehmen Sie mit den Pfeiltasten oder [Bildlauf nach links] und [Bildlauf nach rechts] einen Bildlauf zu dem zu löschenden Zeichen vor.

Schweregrad:	10

Typ:	Fehler


FRM-40207
FRM-40207:  Muß im Bereich von %.30s bis %.30s liegen.

Ursache:	Sie haben einen Wert eingegeben, der nicht im gültigen Objektbereich liegt.

Maßnahme:	Geben Sie einen Wert in den angegebenen Bereich ein.

Schweregrad:	15

Typ:	Fehler


FRM-40208
FRM-40208:  Form ist im Abfragemodus. Keine Änderung von Datenbankfeldern möglich.

Ursache:	Sie haben einen Wert in eine Abfrageform eingegeben.

Maßnahme:	Geben Sie keine Werte in diese Form ein. Sie können Abfragen ausführen und Daten anzeigen, können jedoch keine bestehenden Daten ändern oder neue Daten eingeben.

Schweregrad:	15

Typ:	Fehler


FRM-40209
FRM-40209:  Feld muß Formatmaske %s haben.

Ursache:	Der Wert, den Sie eingegeben haben, entspricht der Formatmaske in dem Feld nicht.

Maßnahme:	Wiederholen Sie die Eingabe mit einem Feldwert, der der Formatmaske entspricht.

Schweregrad:	>25

Typ:	Fehler


FRM-40210
FRM-40210:  Suchfolge wurde nicht gefunden.

Ursache:	Die Suchfolge ist in dem Modul nicht vorhanden.

Maßnahme:	Prüfen Sie Ihre Suchfolge, um sicherzustellen, daß sie korrekt ist, oder verwenden Sie eine andere Suchfolge.

Schweregrad:	99

Typ:	Informationsmeldung


FRM-40211
FRM-40211:  Warnung! Neue Zeilen evtl. aus diesem Feld entfernt.

Ursache:	Sie haben versucht, Daten mit einem Zeilenvorschub in ein einzeiliges Textfeld einzugeben.

Maßnahme:	Weisen Sie die Daten einem mehrzeiligen Textfeld zu, wenn Sie neue Zeilen benötigen.

Schweregrad:	5

Typ:	Informationsmeldung


FRM-40212
FRM-40212:  Ungültiger Wert für Feld %s.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1.  Der Wert hat nicht den richtigen Datentyp.

2.  Der Wert entspricht keinem der Werte in der Liste mit zulässigen Werten.

3.  Bei einem Textfeld entspricht der Wert nicht dem angegebenen Bereich.

Maßnahme:	Wiederholen Sie den Versuch mit einem anderen Wert.

Schweregrad:	>20

Typ:	Meldung


FRM-40213
FRM-40213:  Copy_Region/Cut_Region nicht möglich; kein Bereich ausgewählt.

Ursache:	Sie haben keinen Bereich ausgewählt.

Maßnahme:	Wählen Sie einen Bereich aus, und wiederholen Sie den Versuch.

Schweregrad:	5

Typ:	Fehler


FRM-40214
FRM-40214:  Die Zwischenablage kann nicht für den Kopier-/Ausschneidevorgang geöffnet werden.

Ursache:	Die Zwischenablage ist nicht verfügbar.

Maßnahme:	Plattformspezifisch.

Schweregrad:	99

Typ:	Fehler


FRM-40215
FRM-40215:  Es kann nicht in die Zwischenablage geschrieben werden.

Ursache:	Die Zwischenablage ist nicht verfügbar.

Maßnahme:	Plattformspezifisch.

Schweregrad:	99

Typ:	Fehler


FRM-40216
FRM-40216:  Die Zwischenablage kann für den Einfügevorgang nicht geöffnet werden.

Ursache:	Die Zwischenablage ist nicht verfügbar.

Maßnahme:	Plattformspezifisch.

Schweregrad:	99

Typ:	Fehler


FRM-40217
FRM-40217:  Die Datengröße kann nicht aus der Zwischenablage eingelesen werden.

Ursache:	Ungültige Daten.

Maßnahme:	Plattformspezifisch.

Schweregrad:	99

Typ:	Fehler


FRM-40218
FRM-40218:  Es kann nicht aus der Zwischenablage gelesen werden.

Ursache:	Ungültige Daten.

Maßnahme:	Plattformspezifisch.

Schweregrad:	99

Typ:	Fehler


FRM-40219
FRM-40219:  Die aus der Zwischenablage gelesenen Daten können nicht formatiert werden.

Ursache:	Ungültige Daten.

Maßnahme:	Plattformspezifisch.

Schweregrad:	99

Typ:	Fehler


FRM-40220
FRM-40220:  Aus der Zwischenablage kann nichts eingefügt werden; der Wert ist zu groß.

Ursache:	Ungültige Daten.

Maßnahme:	Plattformspezifisch.

Schweregrad:	99

Typ:	Fehler


FRM-40221
FRM-40221:  Paste_Region nicht möglich; kein Bereich ausgewählt.

Ursache:	Paste_Region wurde aufgerufen, während kein Teil des Bildobjektes ausgewählt war.

Maßnahme:	Wählen Sie einen Bereich des Bildobjekts aus, bevor Sie Paste_Region aufrufen.


FRM-40222
FRM-40222:  Deaktiviertes Objekt '%s.%s' konnte nicht validiert werden.

Ursache:	Wahrscheinlich ein Fehler bei der Anwendungsentwicklung. Forms hat festgestellt, daß das Objekt einen ungültigen Wert enthält, kann dem Objekt jedoch keinen Fokus geben, weil es deaktiviert ist. Dies kann folgende Ursachen haben:

Die Anwendung hat dem Objekt programmgesteuert einen ungültigen Wert zugewiesen.

Die Anwendung hat das Objekt programmgesteuert deaktivert, nachdem der Endbenutzer einen ungültigen Wert in das Objekt eingegeben hat (und bevor das Objekt validiert wurde).

Maßnahme:	Korrigieren Sie die Anwendungslogik.

Schweregrad:	25

Typ:	Fehler


FRM-40301
FRM-40301:  Zur Abfrage wurden keine Datensätze gefunden. Bitte neu eingeben.

Ursache:	Keine Datensätze haben den Abfragekriterien entsprochen. Sie befinden sich immer noch im Abfragemodus.

Maßnahme:	Entweder ändern Sie die Abfragekriterien, oder drücken Sie [Beenden/Abbrechen], um den Abfragemodus zu verlassen.

Schweregrad:	>25

Typ:	Informationsmeldung


FRM-40302
FRM-40302:  Keine Abfrage möglich. Keine abfragefähigen Felder vorhanden.

Ursache:	Sie haben [Abfragemodus] gedrückt, während der Cursor in einem Block stand, der keine abfragefähigen Felder enthält.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	15

Typ:	Fehler


FRM-40303
FRM-40303:  Es befinden sich keine Felder aus der Basistabelle im Block.

Ursache:	Einer der Blöcke im aktuellen Modul hat keine Felder aus der Basistabelle.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	5

Typ:	Informationsmeldung


FRM-40350
FRM-40350:  Zur Abfrage wurden keine Datensätze gefunden.

Ursache:	Die aktuelle Abfrage hat keine Datensätze aus der Tabelle abgerufen. Die Tabelle ist leer oder enthält keine Datensätze, die den Suchkriterien der Abfrage entsprechen.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	5

Typ:	Informationsmeldung


FRM-40352
FRM-40352:  Keine weiteren Datensätze gefunden.

Ursache:	Sie haben [Nach unten], [Nächster Datensatz], [Nächste Gruppe mit Datensätzen] oder [Bildlauf nach unten] gedrückt, nachdem alle Datensätze abgerufen waren.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	5

Typ:	Informationsmeldung


FRM-40353
FRM-40353:  Abfrage abgebrochen.

Ursache:	Sie haben [Beenden/Abbrechen] im Abfragemodus gedrückt oder haben STRG-C (oder die entsprechende Taste) gedrückt, während Form Builder Zeilen aus der Datenbank abgerufen hat.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	Der Schweregrad der Meldung ist 5, wenn die Meldung mit STRG-C aufgerufen wurde.

Typ:	Informationsmeldung


FRM-40355
FRM-40355:  Die Abfrage wird %ld Datensätze liefern.

Ursache:	Sie haben [Abfragetreffer zählen] gedrückt. Wenn Sie jetzt [Abfrage ausführen] drücken, wird die angegebene Anzahl von Datensätzen abgerufen.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	25

Typ:	Informationsmeldung


FRM-40356
FRM-40356:  Ungültige Zahl im Beispieldatensatz. Abfrage nicht ausgegeben.

Ursache:	Sie haben im Abfragemodus eine ungültige Zahl in dem Beispieldatensatz eingegeben.

Maßnahme:	Korrigieren Sie die Eingabe, und wiederholen Sie die Abfrage.

Schweregrad:	>25

Typ:	Fehler


FRM-40357
FRM-40357:  Ungültige Zeichenfolge im Beispieldatensatz. Abfrage nicht ausgegeben.

Ursache:	Sie haben im Abfragemodus einen ungültigen ALPHA- oder CHAR-Wert in dem Beispieldatensatz eingegeben.

Maßnahme:	Korrigieren Sie die Eingabe, und wiederholen Sie die Abfrage.

Schweregrad:	>25

Typ:	Fehler


FRM-40358
FRM-40358:  Ungültiges Datum im Beispieldatensatz. Abfrage nicht ausgegeben.

Ursache:	Sie haben im Abfragemodus einen ungültigen DATE-Befehl in dem Beispieldatensatz eingegeben.

Maßnahme:	Korrigieren Sie die Eingabe, und wiederholen Sie die Abfrage.

Schweregrad:	>25

Typ:	Fehler


FRM-40359
FRM-40359:  Datum/Zeit im Beispieldatensatz ungültig. Abfrage nicht ausgegeben.

Ursache:	Sie haben im Abfragemodus einen ungültigen Wert JDATE, EDATE oder TIME im Beispieldatensatz eingegeben.

Maßnahme:	Korrigieren Sie die Eingabe, und wiederholen Sie die Abfrage.

Schweregrad:	>25

Typ:	Fehler


FRM-40360
FRM-40360: Die Datensätze zu der Abfrage können nicht abgerufen werden.

Ursache:	Sie haben versucht, einen Block abzufragen, der keine Abfragen zuläßt.

Maßnahme:	Versuchen Sie nicht, diesen Block abzufragen.

Schweregrad:	>25

Typ:	Fehler


FRM-40361
FRM-40361:  Abfragevorgang wird für den Datentyp TIME nicht unterstützt.

Ursache:	Sie haben eine Abfrage mit einem Operator % "gleich" in einem Zeitfeld vorgenommen. Dies ist nicht gültig.

Maßnahme:	Versuchen Sie, die Abfrage ohne einen Zeit-Datentyp erneut auszuführen.

Schweregrad:	>25

Typ:	Fehler


FRM-40355
FRM-40355:  Abfrage wird 1 Datensatz liefern.

Ursache:	Sie haben [Abfragetreffer zählen] gedrückt. Wenn Sie jetzt [Abfrage ausführen] drücken, wird die angegebene Anzahl von Datensätzen abgerufen.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	25

Typ:	Informationsmeldung


FRM-40364
FRM-40364:  Der Datentyp von Objekt '%s' stimmt nicht mit der entsprechenden Spalte in der gespeicherten Prozedur überein.

Ursache:	Der Datentyp des Objekts stimmt nicht mit dem Datentyp der entsprechenden Spalte in der gespeicherten Prozedur überein.

Maßnahme:	Stellen Sie sicher, daß der Datentyp des Objekts in dem Block und der Spalte in der gespeicherten Prozedur identisch sind.

Schweregrad:	20

Typ:	Fehler

Ursache:	Eine lang andauernde Abfrage wird momentan ausgeführt, stoppen Sie diese mit der Schaltfläche Abbrechen.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	5

Typ:	Informationsmeldung

Ursache:	Eine lang andauernde Abfrage wird momentan ausgeführt. Stoppen Sie diese mit dieser Schaltfläche.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	5

Typ:	Informationsmeldung


FRM-40400
FRM-40400:  Transaktion beendet: %d Sätze übergeben und gespeichert.

Ursache:	Der Speichervorgang ist abgeschlossen.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	5

Typ:	Informationsmeldung


FRM-40401
FRM-40401:  Es sind keine Änderungen zu speichern.

Ursache:	Seit dem letzten Anwenden- oder Speichervorgang wurden keine Datensätze hinzugefügt oder geändert.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	5

Typ:	Fehler


FRM-40402
FRM-40402:  Speichern abgebrochen.

Ursache:	Sie haben STRG-C (oder die entsprechende Taste) gedrückt, während Sie auf eine Sperre gewartet haben.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	10

Typ:	Informationsmeldung


FRM-40403
FRM-40403:  Aufrufende Form hat nicht abgeschickte Änderungen. Speichern nicht erlaubt.

Ursache:	Eine aufrufende Form hat nicht abgeschickte Änderungen.

Maßnahme:	Schicken Sie die Änderungen ab, oder gehen Sie zu der aufrufenden Form zurück, und wiederholen Sie den Speichervorgang.

Schweregrad:	15

Typ:	Fehler


FRM-40404
FRM-40404:  Anwendung beendet: %d Datensätze an DB übergeben.

Ursache:	Der Anwendenvorgang ist abgeschlossen.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	5

Typ:	Informationsmeldung


FRM-40405
FRM-40405:  Es wurden keine Änderungen angewandt.

Ursache:	Seit dem letzten Anwenden- oder Speichervorgang wurden keine Datensätze hinzugefügt oder geändert.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	5

Typ:	Fehler


FRM-40406
FRM-40406:  Transaktion beendet: %d Sätze abgeschickt; alle Datensätze gespeichert.

Ursache:	Sie haben einen Anwendenvorgang abgeschlossen, mit dem Ihre Änderungen aufgezeichnet und vorher angewandte Änderungen gespeichert wurden.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	5

Typ:	Informationsmeldung


FRM-40407
FRM-40407:  Transaktion beendet: An DB übergebene Sätze gespeichert.

Ursache:	Sie haben einen Speichervorgang abgeschlossen, mit dem vorher angewandte Änderungen gespeichert wurden.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	5

Typ:	Informationsmeldung


FRM-40501
FRM-40501:  ORACLE-Fehler: Datensatz konnte zum Aktualisieren/Löschen nicht reserviert werden.

Ursache:	Während Sie versucht haben, den Datensatz zum Aktualisieren auszuwählen, ist ein Abbruchfehler aufgetreten.

Maßnahme:	Wenn Sie [Fehler anzeigen] drücken, können Sie gegebenenfalls weitere Informationen aufrufen. Sie können auch versuchen, diesen Datensatz zu einem späteren Zeitpunkt zu aktualisieren oder zu löschen. Gegebenenfalls nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40502
FRM-40502:  ORACLE-Fehler: Werteliste konnte nicht gelesen werden.

Ursache:	Bei dem Versuch, eine Werteliste zu lesen, ist ein Abbruchfehler aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40504
FRM-40504:  ORACLE-Fehler: %s Trigger konnte nicht ausgeführt werden.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40505
FRM-40505:  ORACLE-Fehler: Abfrage konnte nicht ausgeführt werden.

Ursache:	Es ist ein Verarbeitungsfehler aufgetreten. Die mit dem aktuellen Block der Form verknüpfte Tabelle ist möglicherweise nicht vorhanden, oder Ihr Benutzername hat keine Berechtigung zur Durchführung der angegebenen Aktion in der Tabelle.

Maßnahme:	Wenn Sie [Fehler anzeigen] drücken, können Sie gegebenenfalls weitere Informationen aufrufen. Sie können auch versuchen, diesen Datensatz zu einem späteren Zeitpunkt zu aktualisieren oder zu löschen. Gegebenenfalls nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40506
FRM-40506:  ORACLE-Fehler: Prüfen der Datensatz-Eindeutigkeit nicht möglich.

Ursache:	Es ist ein Verarbeitungsfehler aufgetreten, während die Primärschlüsselobjekte eines Datensatzes auf Eindeutigkeit geprüft wurden. Die mit dem aktuellen Block der Form verknüpfte Tabelle ist nicht vorhanden, oder Sie haben keine Zugriffsberechtigung zu der Tabelle.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40507
FRM-40507:  ORACLE-Fehler: Nächster Datensatz konnte nicht abgerufen werden.

Ursache:	Dieser Fehler kann folgende Ursachen haben:

1. Bei dem Versuch, einen Trigger auszuführen, ist ein Abbruchfehler aufgetreten.

2. Wenn Sie über ODBC bei einer fremden Datenquelle angemeldet sind, geht die Cursorposition nach einem Commit-Vorgang in der Ergebnismenge verloren.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40508
FRM-40508:  ORACLE-Fehler: Datensatz konnte nicht eingefügt werden.

Ursache:	Während Sie versucht haben, einen Datensatz einzufügen, ist ein Abbruchfehler aufgetreten. Die mit dem aktuellen Block der Form verknüpfte Tabelle ist möglicherweise nicht vorhanden, Ihr Benutzername hat möglicherweise nicht die Berechtigung zur Durchführung der angegebenen Aktion für die Tabelle, oder ein anderer Grund hat diesen Abbruchfehler verursacht.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40509
FRM-40509:  ORACLE-Fehler: Datensatz konnte nicht aktualisiert werden.

Ursache:	Bei dem Versuch, einen Datensatz zu aktualisieren, ist ein Abbruchfehler aufgetreten. Die mit dem aktuellen Block der Form verknüpfte Tabelle ist möglicherweise nicht vorhanden, Ihr Benutzername hat möglicherweise nicht die Berechtigung zur Durchführung der angegebenen Aktion mit der Tabelle, oder ein anderer Grund hat diesen Abbruchfehler verursacht.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40510
FRM-40510:  ORACLE-Fehler: Datensatz konnte nicht gelöscht werden.

Ursache:	Bei dem Versuch, einen Datensatz zu löschen, ist ein Abbruchfehler aufgetreten. Die mit dem aktuellen Block der Form verknüpfte Tabelle ist möglicherweise nicht vorhanden, Ihr Benutzername hat möglicherweise nicht die Berechtigung zur Durchführung der angegebenen Aktion mit der Tabelle, oder ein anderer Grund hat diesen Abbruchfehler verursacht.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40511
FRM-40511:  ORACLE-Fehler beim Ausführen eines %s Triggers.

Ursache:	Bei dem Versuch, einen Trigger auszuführen, ist ein Abbruchfehler aufgetreten. Die mit dem aktuellen Block der Form verknüpfte Tabelle ist möglicherweise nicht vorhanden, Ihr Benutzername hat möglicherweise nicht die Berechtigung zur Durchführung der angegebenen Aktion mit der Tabelle, oder ein anderer Grund hat diesen Abbruchfehler verursacht.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40512
FRM-40512:  ORACLE-Fehler: SAVEPOINT-Befehl konnte nicht ausgeführt werden.

Ursache:	Bei dem Versuch, eine neue Form aufzurufen oder einen Commit-Vorgang auszuführen, wurde der ausgegebene SAVEPOINT-Befehl erfolglos beendet. Dies bedeutet im allgemeinen, daß das Modul keine Savepoints mehr hat.

Maßnahme:	Drücken Sie [Fehler anzeigen], um den spezifischen ORACLE-Fehler anzuzeigen. Möglicherweise können Sie die Höchstzahl von Savepoints in der Datei INIT.ORA erhöhen.

Schweregrad:	>25

Typ:	Fehler


FRM-40513
FRM-40513:  ORACLE-Fehler: Datum/Uhrzeit kann nicht aus der Datenbank abgefragt werden.

Ursache:	Bei dem Versuch, einen Ausgangswert für Datum/-Zeit in der Datenbank aufzulösen, ist ein Fehler aufgetreten.

Maßnahme:	Melden Sie sich bei der Datenbank an, wenn dies noch nicht geschehen ist. Überprüfen Sie den Datenbankstatus.

Schweregrad:	10

Typ:	Fehler


FRM-40514
FRM-40514:  Vorgang erfordert Verbindung zur Datenbank.

Ursache:	Sie haben versucht, einen Datenbankvorgang auszuführen, ohne bei der Datenbank angemeldet zu sein.

Maßnahme:	Melden Sie sich bei der Datenbank an, und wiederholen Sie den Versuch.

Schweregrad:	20

Typ:	Fehler


FRM-40515
FRM-40515:  ORACLE-Fehler: Cursor kann nicht geöffnet werden.

Ursache:	Sie haben den Grenzwert bei der Anzahl von geöffneten Cursorn erreicht.

Maßnahme:	Prüfen Sie die Anzahl geöffneter Cursor.

Schweregrad:	99

Typ:	Fehler


FRM-40600
FRM-40600:  Datensatz wurde bereits eingefügt.

Ursache:	Sie haben versucht, einen Datensatz einzufügen oder zu aktualisieren, für die Primärschlüsselobjekte des Blocks ist jedoch Eindeutigkeit erforderlich. Der eingefügte oder aktualisierte Datensatz ist nicht eindeutig.

Maßnahme:	Ändern Sie die Werte in einem oder mehreren Primärschlüsselfeldern des aktuellen Datensatzes so, daß diese eindeutig sind. Wenn die Anforderung eindeutiger Primärschlüsselfelder Schwierigkeiten bereitet, sollten Sie die Eliminierung der Integritätsregel erwägen.

Schweregrad:	>25

Typ:	Fehler


FRM-40602
FRM-40602:  Daten können nicht in Ansicht eingefügt oder geändert werden.

Ursache:	Sie haben versucht, den Inhalt einer Ansicht auf eine nicht zulässige Weise zu ändern.

Maßnahme:	Keine Maßnahme erforderlich. Sie können den versuchten Vorgang nicht durchführen.

Schweregrad:	20

Typ:	Fehler


FRM-40603
FRM-40603:  Sätze sind nicht mehr zum Ändern reserviert. Bitte erneut abfragen.

Ursache:	Sie haben die Änderungen in einem Block gespeichert, in dem Sie vorher eine vordefinierte Prozedur ENTER_QUERY oder EXECUTE_QUERY mit dem Parameter FOR_UPDATE eingegeben haben. Diese Aktion gibt alle Sperren bei den Datensätzen in diesem Block frei.

Maßnahme:	Wenn Sie den Block ändern möchten, müssen Sie die Abfrage erneut durchführen.

Schweregrad:	>25

Typ:	Fehler


FRM-40652
FRM-40652:  Tabelle kann im Shared-Update-Modus nicht gesperrt werden.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie haben keine Zugriffsberechtigung zu dieser Tabelle.

2. Form Builder kann die Tabelle im Shared-Update-Modus nicht sperren.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	15

Typ:	Fehler


FRM-40653
FRM-40653:  Satz nicht für Ändern oder Löschen reserviert. Wiederholen Sie den Versuch später.

Ursache:	Sie haben STRG-C (oder die entsprechende Taste) gedrückt, um den Vorgang abzubrechen. Der Vorgang, mit dem versucht wurde, den Datensatz zu aktualisieren oder zu löschen, wurde abgebrochen.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	20

Typ:	Informationsmeldung


FRM-40654
FRM-40654:  Datensatz von anderem Benutzer geändert. Zum Einsehen Block neu abfragen.

Ursache:	Ein anderer Benutzer hat diesen Datensatz aktualisiert, seit Sie eine Abfrage durchgeführt haben, und hat mindestens ein Feld in dem Datensatz geändert. Ihre Aktionen haben den Datensatz im Speicher nicht geändert.

Maßnahme:	Sie können diesen Datensatz jetzt nur aktualisieren oder löschen, wenn ein anderer Benutzer die Feldwerte wieder auf die Werte vor der Abfrage zurückschreibt. Sonst müssen Sie die Abfrage erneut durchführen, um den neuen Datensatz in der Form abzurufen und anzuzeigen, bevor Sie ihn aktualisieren oder löschen können.

Schweregrad:	20

Typ:	Fehler


FRM-40655
FRM-40655:  SQL-Fehler führt zum Rollback: Form leeren und Transaktion neu eingeben.

Ursache:	Ein Deadlock oder ein anderer Fehler hat dazu geführt, daß die aktuelle Transaktion nicht ausgeführt werden konnte. Die von Ihnen vorgenommenen Änderungen werden zurückgesetzt.

Maßnahme:	Löschen Sie die Form (oder beenden Sie die Form, und starten Sie sie neu), und geben Sie die Transaktion erneut ein. Möglicherweise müssen Sie den Entwurf der Form ändern, um zu verhindern, daß der Fehler erneut auftritt.

Schweregrad:	>25

Typ:	Fehler


FRM-40656
FRM-40656:  Aktualisierung nicht möglich wegen vorherigem Rollback. Daten aus Datensatz entfernen.

Ursache:	Der Datensatz wurde vorher aktualisiert. Als Sie jedoch versucht haben, Ihre Änderungen zu speichern, hat ein schwerwiegender Fehler diese Aktualisierung bzw. eine weitere Aktualisierung oder einen Löschvorgang verhindert. Dieser Fehler kann eine der folgenden Ursachen haben:

1.  Ein Deadlock hat zu einem Verlust von Zeilensperren geführt.

2.  Der Datensatz hat einen Datenbank-Cluster-Schlüssel, und der vorherige Versuch, den Datensatz in der Datenbank zu aktualisieren, wurde wegen eines Fehlers an einer anderen Stelle in der Form zurückgesetzt.

Maßnahme:	Sie müssen die Daten aus diesem Datensatz entfernen, bevor Sie weitere Transaktionen in der Form festschreiben können.

Schweregrad:	25

Typ:	Fehler


FRM-40657
FRM-40657:  Datensatz wurde von einem anderen Benutzer geändert bzw. gelöscht.

Ursache:	Ein anderer Benutzer hat den Datensatz gelöscht, seit die Abfrage ausgeführt wurde.

Maßnahme:	Sie können diesen Datensatz vom Bildschirm löschen, können ihn jedoch nicht aktualisieren oder löschen, weil er in der Datenbank nicht mehr vorhanden ist.

Schweregrad:	20

Typ:	Informationsmeldung


FRM-40659
FRM-40659:  Letzte Zeile der Abfrage abgerufen. Abfrage wiederholen, um verbleibende Daten zu sehen.

Ursache:	Eine Abfrage FOR_UPDATE wurde durch Ausführung eines Commit-Vorgangs geschlossen. Weil die Abfrage vor dem Commit-Vorgang geöffnet war, sind möglicherweise weitere Datensätze für den Abruf bereit.

Maßnahme:	Führen Sie die Abfrage erneut aus, um die restlichen Datensätze anzuzeigen.

Schweregrad:	5

Typ:	Meldung


FRM-40700
FRM-40700:  Dieser Trigger ist nicht vorhanden:  %s.

Ursache:	Entwurfsfehler in der Anwendung. Die Form hat versucht, einen nicht vorhandenen Trigger auszuführen, was zu einem Abbruchfehler führte.

Maßnahme:	Korrigieren Sie die Referenz auf den Trigger.

Schweregrad:	20

Typ:	Fehler


FRM-40702
FRM-40702:  Form kann nicht aufgerufen werden, solange nicht alle Änderungen gespeichert sind.

Ursache:	Sie haben versucht, eine andere Form aufzurufen, während in der aktuellen Form nicht alle Änderungen gespeichert waren und der Savepoint-Modus ausgeschaltet war.

Maßnahme:	Schreiben Sie die Änderungen fest, bzw. schicken Sie sie ab, und wiederholen Sie den Versuch.

Schweregrad:	15

Typ:	Fehler


FRM-40703
FRM-40703:  Abgerufenes Feld kann nicht im Abfragemodus geändert werden.

Ursache:	Sie haben versucht, ein abgerufenes Objekt im Abfragemodus zu ändern.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	20

Typ:	Fehler


FRM-40704
FRM-40704:  Unzulässige SQL-Anweisung im Abfragemodus.

Ursache:	Entwicklungsfehler in der Anwendung. Die Form hat versucht, eine Funktion auszuführen, die in einer Abfrageform nicht zulässig ist.

Maßnahme:	Sie müssen die Form möglicherweise neu entwickeln.

Schweregrad:	20

Typ:	Fehler


FRM-40705
FRM-40705:  Unzulässige SQL-Anweisung im Non-Commit-Time-Trigger.

Ursache:	Entwicklungsfehler in der Anwendung. Der aktuelle Trigger enthält eine SQL-Anweisung, die für den Triggertyp unzulässig ist.

Maßnahme:	Schreiben Sie den Triggertext neu, oder benutzen Sie einen anderen Triggertyp.

Schweregrad:	20

Typ:	Fehler


FRM-40714
FRM-40714:  Funktion in diesem Kontext unzulässig.

Ursache:	Entwicklungsfehler in der Anwendung. Der aktuelle Trigger enthält einen ungültigen Funktionscode.

Maßnahme:	Schreiben Sie den Triggertext neu, oder benutzen Sie einen anderen Triggertyp.

Schweregrad:	20

Typ:	Fehler


FRM-40720
FRM-40720:  Keine Anweisungen in Anweisungsliste gefunden.

Ursache:	Entwicklungsfehler in der Anwendung. Ein Schritt in einem V2-Trigger verwendet eine falsche Syntax.

Maßnahme:	Korrigieren Sie den Text für den Trigger-Schritt.

Schweregrad:	>25

Typ:	Fehler


FRM-40721
FRM-40721:  Funktionscode fehlt im Trigger.

Ursache:	Entwicklungsfehler in der Anwendung. Ein Schritt in einem V2-Trigger verwendet eine falsche Syntax.

Maßnahme:	Korrigieren Sie den Text für den Trigger-Schritt.

Schweregrad:	>25

Typ:	Fehler


FRM-40722
FRM-40722:  Funktionsname nicht bekannt.

Ursache:	Entwicklungsfehler in der Anwendung. Ein Trigger referenziert einen nicht vorhandenen Funktionscode.

Maßnahme:	Korrigieren Sie die Referenz.

Schweregrad:	>25

Typ:	Fehler


FRM-40723
FRM-40723:  Argument für Funktionscode fehlt.

Ursache:	Entwicklungsfehler in der Anwendung. Ein Argument fehlt in einer Anweisung ERASE, EXECUTE_TRIGGER, GO_BLOCK, GO_ITEM, GO_RECORD oder NEW_FORM.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-40724
FRM-40724:  Selektor fehlt in CASE-Anweisung.

Ursache:	Entwicklungsfehler in der Anwendung. Der Selektor-Teil fehlt in einer CASE-Anweisung.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-40725
FRM-40725:  Schlüsselwort fehlt in CASE-Anweisung.

Ursache:	Entwicklungsfehler in der Anwendung. Ein Schlüsselwort fehlt in einer CASE-Anweisung.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-40726
FRM-40726:  Auswahl fehlt in CASE-Anweisung.

Ursache:	Entwicklungsfehler in der Anwendung. In einer CASE-Anweisung ist keine Auswahl angegeben.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-40727
FRM-40727:  Unzulässiges Schlüsselwort in CASE-Anweisung.

Ursache:	Entwicklungsfehler in der Anwendung. Eine CASE-Anweisung enthält ein falsch geschriebenes Schlüsselwort.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-40728
FRM-40728:  Nicht bekannte oder zusätzliche Argumente zur Funktion.

Ursache:	Entwicklungsfehler in der Anwendung. Für eine Funktion werden zusätzliche Argumente angegeben.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-40729
FRM-40729:  Semikolon fehlt am Ende der Anweisung.

Ursache:	Entwicklungsfehler in der Anwendung. Ein Semikolon fehlt am Ende eines Funktionscodes.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-40730
FRM-40730:  Ungültige Meldungs-Unterdrückungsebene - unverändert von %d.

Ursache:	Entwicklungsfehler in der Anwendung. Ein Trigger hat versucht, den Schweregrad der Systemmeldung auf eine ungültige Zahl einzustellen.

Maßnahme:	Setzen Sie die Systemvariable SYSTEM.MELDUNG_LEVEL auf eine gültige Zahl zurück.

Schweregrad:	>25

Typ:	Fehler


FRM-40731
FRM-40731:  Schlüsselwort INTO fehlt.

Ursache:	Entwicklungsfehler in der Anwendung. Bei einer COPY-Anweisung fehlt die Klausel INTO.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-40732
FRM-40732:  Ziel von GOTO ist in diesem Makro nicht vorhanden.

Ursache:	Entwicklungsfehler in der Anwendung. Das in PL/SQL referenzierte Label ist nicht vorhanden.

Maßnahme:	Korrigieren Sie die Anweisung.


FRM-40733
FRM-40733:  Fehler in PL/SQL-Routine %s.

Ursache:	In Form Builder oder PL/SQL ist während der Triggerausführung ein Abbruchfehler aufgetreten.

Maßnahme:	Unterrichten Sie den DBA.

Schweregrad:	>25

Typ:	Fehler


FRM-40734
FRM-40734:  Interner Fehler: PL/SQL-Fehler.

Ursache:	Während der Triggerausführung ist in PL/SQL ein Abbruchfehler aufgetreten.

Maßnahme:	Unterrichten Sie den DBA.

Schweregrad:	>25

Typ:	Fehler


FRM-40735
FRM-40735:  %s Trigger trifft auf unbehandelte Exception %s.

Ursache:	Entwicklungsfehler in der Anwendung. Der aktuelle Trigger hat eine Exception (mit Ausnahme von FORM_TRIGGER_FAILURE) ausgelöst, hat die Exception jedoch nicht abgearbeitet.

Maßnahme:	Schreiben Sie den Triggertext neu, um die Exception abzuarbeiten.

Schweregrad:	>25

Typ:	Fehler


FRM-40736
FRM-40736:  Initialisieren von PL/SQL nicht möglich.

Ursache:	Bei der Initialisierung von PL/SQL ist ein interner Fehler aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40737
FRM-40737:  Unzulässige eingeschränkte Prozedur %s in %s Trigger.

Ursache:	Entwicklungsfehler in der Anwendung. Ein Trigger hat versucht, eine eingeschränkte vordefinierte Prozedur auszuführen.

Maßnahme:	Entfernen Sie die vordefinierte Prozedur aus dem Triggertext.

Schweregrad:	>25

Typ:	Fehler


FRM-40738
FRM-40738:  Argument %d für vordefinierte Prozedur %s darf nicht NULL sein.

Ursache:	Entwicklungsfehler in der Anwendung. Für die vordefinierte Prozedur wurden keine Argumente angegeben.

Maßnahme:	In der Online-Hilfe wird beschrieben, wie diese vordefinierte Prozedur richtig benutzt wird.

Schweregrad:	99

Typ:	Fehler


FRM-40739
FRM-40739:  Vollständiges Rollback nicht möglich in Abschickmodus.

Ursache:	Entwicklungsfehler in der Anwendung. Ein Trigger hat versucht, eine vordefinierte Prozedur CLEAR_FORM mit dem Parameter FULL_ROLLBACK in einer aufgerufenen Form im Abschickmodus auszugeben.

Maßnahme:	Entfernen Sie den Parameter FULL_ROLLBACK, oder stellen Sie sicher, daß die aufrufende Form keine nicht abgeschickten Änderungen enthält, wenn der Aufruf erfolgt.

Schweregrad:	>25

Typ:	Fehler


FRM-40740
FRM-40740:  Prozedur %s ist nur in einem On-%s Trigger zulässig.

Ursache:	Entwicklungsfehler in der Anwendung. Ein Nicht-Transaktionstrigger hat versucht, eine vordefinierte Prozedur aufzurufen, die auf einen bestimmten Trigger beschränkt ist.

Maßnahme:	In der Online-Hilfe wird die richtige Benutzung dieser Prozedur beschrieben.

Schweregrad:	>25

Typ:	Fehler


FRM-40741
FRM-40741:  Datensatz %d kann in Block %s nicht gefunden werden.

Ursache:	Sie haben versucht, Datensatzattribute für eine ungültige Datensatznummer bei dem angegebenen Block einzulesen oder einzustellen.

Maßnahme:	Überprüfen Sie die Attribute Einlesen/Einstellen für den Datensatz.

Schweregrad:	20

Typ:	Fehler


FRM-40742
FRM-40742:  Unzulässige Statusumwandlung bei Datensatz %d: %s zu %s.

Ursache:	Entwicklungsfehler in der Anwendung. Ein Aufruf von SET_RECORD_PROPERTY hat eine unzulässige Umwandlung zwischen den Datensatzstatus versucht.

Maßnahme:	In der Online-Hilfe für SET_RECORD_PROPERTY werden die richtigen Umwandlungen angegeben.

Schweregrad:	>25

Typ:	Fehler


FRM-40743
FRM-40743:  Für diesen Vorgang ohne Basistabelle ist ein %s Trigger erforderlich.

Ursache:	Entwicklungsfehler in der Anwendung. Sie haben versucht, einen Datenbankvorgang (Abfrage, Einfügen, Aktualisieren usw.) mit einem Nicht-Basistabellen-Block ohne den entsprechenden Transaktionstrigger durchzuführen.

Maßnahme:	Schlagen Sie den entsprechenden Transaktionstrigger in der Online-Hilfe nach, und erstellen Sie dann den richtigen Trigger.

Schweregrad:	20

Typ:	Fehler


FRM-40744
FRM-40744:  Eingabewert wird abgeschnitten, wenn Editor akzeptiert wird.

Ursache:	Der Puffer des Editors ist zu klein für die Eingabe.

Maßnahme:	Wechseln Sie den Editor, oder vergrößern Sie den Puffer.

Schweregrad:	15

Typ:	Fehler


FRM-40745
FRM-40745:  Ausgabewert der vordefinierten Prozedur %s wurde abgeschnitten.

Ursache:	Die Ausgabevariable ist zu klein.

Maßnahme:	Vergrößern Sie die PL/SQL-Ausgabevariable.

Schweregrad:	15

Typ:	Fehler


FRM-40746
FRM-40746:  Vordefinierte Prozedur %s kann nicht vom Startfenster des Debuggers aufgerufen werden.

Ursache:	Die vordefinierte Prozedur kann nicht vom Startfenster des Debuggers aufgerufen werden.

Maßnahme:	Im Form Builder Developer's Guide finden Sie eine Liste der vordefinierten Prozeduren, die nicht aus dem Startfenster des Debuggers aufgerufen werden können.

Schweregrad:	99

Typ:	Informationsmeldung


FRM-40747
FRM-40747:  Vordefinierte Prozedur %s kann nicht vom Debug-Trigger aufgerufen werden.

Ursache:	Die vordefinierte Prozedur kann nicht vom Debug-Trigger aufgerufen werden

Maßnahme:	Im Form Builder Developer's Guide finden Sie eine Liste der vordefinierten Prozeduren, die von einem Debug-Trigger aufgerufen werden können.

Schweregrad:	99

Typ:	Informationsmeldung


FRM-40748
FRM-40748:  Trigger %s durch Reset-Befehl beendet.

Ursache:	Sie haben den Reset-Befehl ausgegeben oder die Zurücksetzen-Schaltfläche im Debugger gedrückt.

Maßnahme:	Wenn Sie nach unten navigieren möchten, gehen Sie zu dem Aufrufstapel.

Schweregrad:	99

Typ:	Informationsmeldung


FRM-40749
FRM-40749:  Ungültiger Datensatzstatus für Datensatz %d angegeben.

Ursache:	Entwicklungsfehler in der Anwendung. Sie haben versucht, das Attribut STATUS eines Datensatzes auf einen ungültigen Wert einzustellen.

Maßnahme:	Das Attribut STATUS des Datensatzes muß auf NEW_STATUS, QUERY_STATUS, INSERT_STATUS oder CHANGED_STATUS eingestellt werden.

Schweregrad:	99

Typ:	Fehler


FRM-40750
FRM-40750:  Datensatz %d: Status in einem Steuerblock kann nicht auf QUERY oder CHANGED gesetzt werden.

Ursache:	Entwicklungsfehler in der Anwendung. Sie haben versucht, das Attribut STATUS eines Datensatzes in einem Steuerblock auf QUERY_STATUS oder CHANGED_STATUS einzustellen.

Maßnahme:	Das Attribut STATUS eines Datensatzes muß auf NEW_STATUS oder INSERT_STATUS eingestellt werden.

Schweregrad:	99

Typ:	Fehler


FRM-40800
FRM-40800:  User Exit %s ist nicht vorhanden.

Ursache:	Die Form hat versucht, einen nicht vorhandenen User Exit aufzurufen. Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie benutzen die falsche Version von Forms Runtime.

2. In der Form könnte ein Fehler vorliegen.

Maßnahme:	Wenn Sie die falsche Version von Forms Runtime benutzen, stellen Sie fest, welche Version den User Exit enthält, und benutzen Sie diese Version, um die Form auszuführen. Wenn ein Fehler in der Form vorhanden ist, muß der Entwickler den Aufruf des User Exit korrigieren.

Schweregrad:	20

Typ:	Fehler


FRM-40801
FRM-40801:  Speicherkapazität fehlt zum Verarbeiten des User Exit.

Ursache:	Ein Abbruchfehler ist aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	25

Typ:	Fehler


FRM-40804
FRM-40804:  Nicht genügend Argumente für COPY-Befehl.

Ursache:	Entwicklungsfehler in der Anwendung. Für eine COPY-Anweisung wird keine Quelle bzw. kein Ziel angegeben.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-40805
FRM-40805:  Nicht genügend Argumente für ERASE-Befehl.

Ursache:	Entwicklungsfehler in der Anwendung. Eine ERASE-Anweisung gibt keine Variable an.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-40807
FRM-40807:  Keine Befehlszeichenfolge für HOST-Befehl angegeben.

Ursache:	Entwicklungsfehler in der Anwendung. Eine HOST-Anweisung gibt keine Befehlsfolge an.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-40808
FRM-40808:  HOST-Befehl kann nicht ausgeführt werden. Fehlercode = %s.

Ursache:	Eine HOST-Anweisung kann wegen eines Betriebssystemfehlers nicht ausgeführt werden.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40809
FRM-40809:  HOST-Befehl ergab Fehlercode = %s.

Ursache:	Der Betriebssystembefehl hat den obigen Fehlercode zurückgegeben.

Maßnahme:	Prüfen Sie, ob Sie den Befehl richtig eingegeben haben.

Schweregrad:	>25

Typ:	Fehler


FRM-40811
FRM-40811:  Shell-Befehl verursachte einen Fehler.

Ursache:	Der Betriebssystembefehl hat den obigen Fehlercode zurückgegeben.

Maßnahme:	Prüfen Sie, ob Sie den Befehl richtig eingegeben haben.

Schweregrad:	>25

Typ:	Fehler


FRM-40814
FRM-40814:  Unzulässiger Funktionscode in diesem Kontext.

Ursache:	Entwicklungsfehler in der Anwendung. Das Schlüsselwort NOFAIL wird für einen Funktionscode angegeben, der dieses Schlüsselwort nicht akzeptiert.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-40815
FRM-40815:  Die Variable GLOBAL.%s ist nicht vorhanden.

Ursache:	Entwicklungsfehler in der Anwendung. Ein Trigger referenziert eine globale Variable, die nicht vorhanden ist.

Maßnahme:	Erstellen Sie die globale Variable, oder entfernen Sie die Referenz.

Schweregrad:	>25

Typ:	Fehler


FRM-40816
FRM-40816:  Dem neuen Symbol konnte kein Speicherplatz zugewiesen werden.

Ursache:	Interner Fehler. Beim Zugriff auf eine neue globale Variable konnte kein Speicherplatz zugewiesen werden.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40817
FRM-40817:  Dem neuen Wert konnte kein Speicherplatz zugewiesen werden.

Ursache:	Interner Fehler. Beim Zugriff auf eine neue globale Variable konnte kein Speicherplatz zugewiesen werden.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40818
FRM-40818:  Systemvariablenname nicht definiert.

Ursache:	Sie haben versucht, auf eine nicht vorhandene Systemvariable zuzugreifen.

Maßnahme:	Prüfen Sie den Namen der Systemvariablen.

Schweregrad:	99

Typ:	Fehler


FRM-40819
FRM-40819:  Systemvariable kann nicht geändert werden.

Ursache:	Sie haben versucht, eine Systemvariable zu ändern.

Maßnahme:	Sie können keine Systemvariablen ändern.

Schweregrad:	99

Typ:	Fehler


FRM-40820
FRM-40820:  Speicherplatz reicht zum Auswerten der Systemvariablen nicht aus.

Ursache:	Interner Fehler. Beim Zugriff auf eine Systemvariable war nicht genügend Speicherplatz vorhanden.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40822
FRM-40822:  Nicht genügend Argumente für die SET-Funktion.

Ursache:	Entwicklungsfehler in der Anwendung. Für einen SET-Funktionscode werden nicht genügend Argumente angegeben.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-40823
FRM-40823:  Zusätzliches Argument für die SET-Funktion.

Ursache:	Entwicklungsfehler in der Anwendung. Für einen SET-Funktionscode werden zu viele Argumente angegeben.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-40824
FRM-40824:  Nicht genügend Argumente für die PAGE-Funktion.

Ursache:	Entwicklungsfehler in der Anwendung. Für einen HIDEPAGE- oder SHOWPAGE-Funktionscode werden nicht genügend Argumente angegeben.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-40825
FRM-40825:  Nicht genügend Argumente für die VIEW-Funktion.

Ursache:	Entwicklungsfehler in der Anwendung. Für einen MOVEVIEW-, ANCHORVIEW- oder RESIZEVIEW-Funktionscode werden nicht genügend Argumente angegeben.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-40826
FRM-40826:  Unzulässige Anzahl an Argumenten für die CALL-Funktion.

Ursache:	Entwicklungsfehler in der Anwendung. Für einen CALL- oder CALLQRY-Funktionscode werden nicht genügend Argumente angegeben.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-40827
FRM-40827:  Nicht genügend Argumente für die GOREC-Funktion.

Ursache:	Entwicklungsfehler in der Anwendung. Für einen GOREC-Funktionscode werden nicht genügend Argumente angegeben.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-40828
FRM-40828:  CALL oder CALLQRY mit ungültiger Variablenreferenz.

Ursache:	Entwicklungsfehler in der Anwendung. Ein CALL- oder CALLQRY-Funktionscode enthält eine ungültige Variablenreferenz.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-40829
FRM-40829:  Nicht genügend Argumente für die EDITFIELD-Funktion.

Ursache:	Entwicklungsfehler in der Anwendung. Für einen EDITFIELD-Funktionscode werden nicht genügend Argumente angegeben.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	Keine Unterdrückungsebene.

Typ:	Fehler


FRM-40830
FRM-40830:  Nicht genügend Argumente für die DISPLAYPAGE-Funktion.

Ursache:	Entwicklungsfehler in der Anwendung. Für einen DISPLAYPAGE-Funktionscode werden nicht genügend Argumente angegeben.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	Keine Unterdrückungsebene.

Typ:	Fehler


FRM-40831
FRM-40831:  Wert abgeschnitten: Wert ist für Feld %s zu lang.

Ursache:	Entwicklungsfehler in der Anwendung. Ein Trigger, eine Abfrage oder ein User Exit hat einen Wert in ein Objekt eingelesen, das nicht groß genug zur Aufnahme des ganzen Wertes ist. Das Objekt hat den Wert abgeschnitten.

Maßnahme:	Verlängern Sie das Zielobjekt, um ein Abschneiden zu verhindern.

Schweregrad:	15

Typ:	Fehler


FRM-40900
FRM-40900:  Datensatzpuffer nicht zugewiesen. Bitte entfernen Sie zuerst die Daten aus der Form.

Ursache:	Der Versuch, Speicherplatz für einen abgerufenen oder neuen Datensatz zuzuweisen, war nicht erfolgreich. Die restlichen abzufragenden Datensätze werden vorübergehend auf der Platte gepuffert. Dies ist ein Hinweis, daß keine weiteren temporären Dateien auf die Platte geschrieben werden können.

Maßnahme:	Entfernen Sie die Daten aus der Form, und versuchen Sie dann, den Vorgang fortzusetzen. Möglicherweise müssen Sie die Form beenden und dann neu öffnen. Prüfen Sie außerdem, ob genügend Festplattenkapazität vorhanden ist und ob Sie die Schreibberechtigung für das Plattenlaufwerk und den Ordner haben.

Schweregrad:	>25

Typ:	Fehler


FRM-40901
FRM-40901:  Hinweis: Speicher für gesamte oder Teile der Abfrage zu klein.

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40902
FRM-40902:  SQL-Anweisung zu groß.

Ursache:	Entwicklungsfehler in der Anwendung. Der Formentwurf enthält einen SQL-Befehl mit mehr als 2048 Zeichen.

Maßnahme:	Kürzen Sie den SQL-Befehl.

Schweregrad:	>25

Typ:	Fehler


FRM-40903
FRM-40903:  Ausgabedatei konnte nicht erstellt werden.

Ursache:	Sie haben [Druck] gedrückt, der Bildschirminhalt konnte jedoch aus einem der folgenden Gründe nicht in eine Datei geschrieben werden:

1. Sie haben einen ungültigen Dateinamen eingegeben.

2. Das Betriebssystem berechtigt Sie nicht zum Erstellen von Dateien.

3. Auf der Festplatte oder im Ordner ist nicht genügend Speicherkapazität vorhanden.

Maßnahme:	Prüfen Sie den eingegebenen Dateinamen, und korrigieren Sie ihn gegebenenfalls. Wenn Sie weitere Hilfe benötigen, nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40904
FRM-40904:  Programmfehler: Mit Datensatz auszuführender Befehl unbekannt.

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40905
FRM-40905:  Pufferung weiterer Datensätze auf der Platte nicht möglich.

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40906
FRM-40906:  ABBRUCHFEHLER: Gepufferter Datensatz kann nicht auf Platte geschrieben werden.

Ursache:	Bei dem Versuch, einen gepufferten Datensatz auf die Platte zu schreiben, ist es zu einem Fehler gekommen.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40907
FRM-40907:  ABBRUCHFEHLER: Gepufferter Datensatz kann nicht von Platte gelesen werden.

Ursache:	Bei dem Versuch, einen gepufferten Datensatz von der Platte zu lesen, ist es zu einem Fehler gekommen.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40908
FRM-40908:  Interner RAM-Fehler: %s

Ursache:	Im internen Datensatzmanager der Form ist ein interner Fehler aufgetreten. Dieser Fehler kann folgende Ursachen haben:

1. Die Plattenpufferdatei kann nicht geöffnet werden.

2. Lese- oder Schreibfehler in der Plattenpufferdatei.

3. Kein Speicherplatz mehr.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>20

Typ:	Fehler


FRM-40909
FRM-40909:  Interner Fehler: Unbekannter Fehler %d.

Ursache:	Interner Fehler. Eine unbekannte Fehlermeldung wurde ausgegeben.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40910
FRM-40910:  Interner Fehler: Beim Ausführen von PL/SQL-Trigger/-Prozedur.

Ursache:	Bei der Ausführung eines PL/SQL-Triggers bzw. einer PL/SQL-Prozedur ist ein interner Fehler infolge eines Generierungsfehlers oder einer zerstörten Datei aufgetreten.

Maßnahme:	Kompilieren Sie die Form neu. Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40911
FRM-40911:  Datensatz aufgrund Sequenz-Generierungsfehler nicht erstellt.

Ursache:	Interner Fehler. Entweder ist das Objekt mit der Sequenznummer nicht vorhanden, hat der Entwickler keine Berechtigung für das Objekt mit der Sequenznummer, oder ist ein anderer schwerwiegender Datenbankfehler aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40912
FRM-40912:  WHEN-NEW-RECORD-Trigger fehlgeschlagen. Datensatz wurde nicht erstellt.

Ursache:	In einem When-New-Record-Trigger ist ein Laufzeitfehler aufgetreten, der zu einem Triggerausfall geführt hat. Es wurde kein neuer Datensatz erstellt.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40913
FRM-40913:  Max. Größe der Werteliste überschritten. Nicht alle Werte angezeigt.

Ursache:	Entwicklungsfehler in der Anwendung. Es können nicht alle Datensätze in der aktuellen Werteliste zurückgegeben werden. Die Anzahl von Datensätzen überschreitet den Höchstwert.

Maßnahme:	Geben Sie maximal 32.767 Datensätze zur Rückgabe in einer Werteliste an.

Schweregrad:	>25

Typ:	Fehler


FRM-40914
FRM-40914:  Speicherzuweisungsfehler: Transaktion kann nicht abgeschlossen werden.

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40915
FRM-40915:  Speicherzuweisungsfehler: Trigger %s nicht ausführbar.

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40916
FRM-40916:  Speicherzuweisungsfehler: Abfrage nicht ausführbar.

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40917
FRM-40917:  Speicherzuweisungsfehler: Datensatz kann nicht gesperrt werden.

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	>25

Typ:	Fehler


FRM-40918
FRM-40918:  Interner Fehler: Toolkit kann nicht initialisiert werden.

Ursache:	Form Builder konnte aufgrund eines Problems in Ihrer Umgebung oder Anwendung Oracle Toolkit nicht initialisieren.

Maßnahme:	Prüfen Sie, ob Form Builder richtig installiert wurde, ob die Umgebung alle erforderlichen Resource-Dateien enthält und ob alle systemabhängigen Richtlinien eingehalten wurden.

Schweregrad:	>25

Typ:	Fehler


FRM-40919
FRM-40919:  Interner Fehler beim Ausführen der SQL-Anweisung: %d.

Ursache:	Fehler in der SQL-Anweisung, die Form Builder ausführen wollte.

Maßnahme:	Prüfen Sie die letzte SQL-Anweisung.

Schweregrad:	25

Typ:	Fehler


FRM-40920
FRM-40920:  Ansicht kann nicht erstellt werden: Zu wenig Systemressourcen.

Ursache:	Die Ansicht konnte wegen eines Problems in Ihrer Umgebung oder Anwendung nicht erstellt werden.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	99

Typ:	Fehler


FRM-40921
FRM-40921:  Objekt %s kann nicht erstellt werden.

Ursache:	Das Objekt kann wegen eines Problems in Ihrer Umgebung oder Anwendung nicht erstellt werden.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	99

Typ:	Fehler


FRM-40922
FRM-40922:  Ein OLE-Fehler ist aufgetreten: 0x%x.

Ursache:	Eine vordefinierte Prozedur hat eine OLE- oder OLE-orientierte Funktion ohne Erfolg aufgerufen.

Maßnahme:	Für weitere Informationen müssen Sie die Fehlernummer in einem OLE-Handbuch nachschlagen.

Schweregrad:	99

Typ:	Fehler


FRM-40923
FRM-40923:  OLE wird auf dieser Plattform nicht unterstützt.

Ursache:	Eine vordefinierte Funktion, die eine OLE-Unterstützung benötigt, wurde aufgerufen, und Ihre Plattform unterstützt OLE nicht.

Maßnahme:	Rufen Sie keine OLE-orientierten vordefinierten Prozeduren auf Plattformen auf, die OLE nicht unterstützen.

Schweregrad:	99

Typ:	Fehler


FRM-40924
FRM-40924:  Ungültiger Argumentindex angegeben.

Ursache:	Sie haben versucht, einen Wert aus dem OLE-Argumentstapel abzurufen, dessen Index außerhalb der zulässigen Grenzen für die Größe des aktuellen OLE-Argumentstapels lag.

Maßnahme:	Argumentindizes gehen von 1 bis zu der Zahl, die in dem letzten Aufruf von FORMS_OLE.InitArgs() angegeben wird.

Schweregrad:	99

Typ:	Fehler


FRM-40925
FRM-40925:  Kein Platz in OleArg für Argument initialisiert.

Ursache:	Sie haben versucht, zu viele Argumente in dem initialisierten OLE-Argumentstapel zu speichern.

Maßnahme:	Prüfen Sie, ob Sie in dem Aufruf von FORMS_OLE.InitArgs() genügend Platz angegeben haben.

Schweregrad:	99

Typ:	Fehler


FRM-40926
FRM-40926:  OLE-Objekt ist NULL.

Ursache:	Sie können nicht mit einem OLE-Objekt NULL arbeiten.

Maßnahme:	Versuchen Sie nicht, vordefinierte Prozeduren FORMS_OLE mit NULL OLE-Objekten aufzurufen.

Schweregrad:	99

Typ:	Fehler


FRM-40927
FRM-40927:  Variante ist kein Array.

Ursache:	Sie haben versucht, auf eine Variante so zuzugreifen, als wäre sie ein Array, während dies nicht der Fall ist.

Maßnahme:	Sie können FORMS_OLE.Get_Dims() aufrufen, um zu gewährleisten, daß Sie auf eine Variante mit einem Array zugreifen. Bei Arrays ist der Rückgabewert für die Funktion größer als oder gleich 1.

Schweregrad:	99

Typ:	Fehler


FRM-40928
FRM-40928:  Zu viele Array-Indizes angegeben.

Ursache:	Sie haben versucht, auf eine Variante zuzugreifen, die ein Array enthält, es wurden jedoch zu viele Array-Indizes angegeben.

Maßnahme:	Sie müssen die richtige Anzahl von Array-Indizes benutzen, d.h. dieselbe Zahl, wie von FORMS_OLE.GET_Dims() zurückgegeben.

Schweregrad:	99

Typ:	Fehler


FRM-40929
FRM-40929:  Zu wenig Array-Indizes angegeben.

Ursache:	Sie haben versucht, auf eine Variante zuzugreifen, die ein Array enthält, es wurden jedoch zu wenig Array-Indizes angegeben.

Maßnahme:	Sie müssen die richtige Anzahl von Array-Indizes benutzen, d.h. dieselbe Zahl, wie von FORMS_OLE.GET_Dims() zurückgegeben.

Schweregrad:	99

Typ:	Fehler


FRM-40930
FRM-40930:  Array-Index war nicht-numerisch.

Ursache:	Sie haben versucht, auf eine Variante zuzugreifen, die ein Array enthält, die angegebenen Array-Indizes waren jedoch nicht numerisch und nicht vom Typ ROW oder COLUMN.

Maßnahme:	Die einzig gültigen Array-Indizes sind Zahlen, die durch Spalten getrennt werden müssen. Wenn Sie Daten aus einer Variante in eine Tabelle abrufen, können ROW und COLUMN als Platzhalter für die Zeilen- und Spalten-Iteratoren beim Erstellen der Tabelle benutzt werden.

Schweregrad:	99

Typ:	Fehler


FRM-40931
FRM-40931:  Tabelle kann nicht gefüllt werden, Datentyp nicht unterstützt.

Ursache:	Der Versuch, eine Tabelle aufzufüllen, war erfolglos, weil eine der Spalten einen nicht unterstützten Datentyp benutzt.

Maßnahme:	Beschränken Sie die Spaltentypen auf Ganzzahlen, Zahlen, Zeichenfolgen und Datumsangaben.

Schweregrad:	99

Typ:	Fehler


FRM-40932
FRM-40932:  Variante kann nicht gefüllt werden, Datentyp nicht unterstützt.

Ursache:	Der Versuch, eine Variante aufzufüllen, war erfolglos, weil eine der Spalten der Quelltabelle einen nicht unterstützten Datentyp benutzt hat.

Maßnahme:	Beschränken Sie die Spaltentypen auf Ganzzahlen, Zahlen, Zeichenfolgen und Datumsangaben.

Schweregrad:	99

Typ:	Fehler


FRM-40933
FRM-40933:  Tabelle kann nicht gefüllt werden, Datentyp nicht korrekt.

Ursache:	Der Versuch, eine Tabelle aufzufüllen, war nicht erfolgreich, weil der Datentyp des Blocks nicht mit dem Datentyp der Tabelle übereinstimmt.

Maßnahme:	Der Datentyp der Tabelle muß mit den Datentypen der Spalten des Blocks übereinstimmen, die abgerufen werden.

Schweregrad:	99

Typ:	Fehler


FRM-40934
FRM-40934:  Tabelle kann nicht gefüllt werden, Datensätze außerhalb zulässigem Bereich.

Ursache:	Der Versuch, eine Tabelle aufzufüllen, war erfolglos, weil ein unzulässiger Start- oder Enddatensatz angegeben wurde.

Maßnahme:	Die Parameter start_rec und end_rec müssen zwischen 1 und der Anzahl von abrufbaren Datensätzen liegen. end_rec kann auch ALL_RECORDS sein.

Schweregrad:	99

Typ:	Fehler


FRM-40935
FRM-40935:  Objekt ist lokal nicht vorhanden.

Ursache:	Ein Versuch, ein Objekt freizugeben, war nicht erfolgreich, weil der Parameter 'kill_persistent' auf FALSE eingestellt und kein lokales Objekt zur Freigabe vorhanden war.

Maßnahme:	Geben Sie niemals Objekte frei, deren Eigentümer Sie nicht sind.

Schweregrad:	10

Typ:	Fehler


FRM-41000
FRM-41000:  Diese Funktion steht zur Zeit nicht zur Verfügung.

Ursache:	Sie haben eine undefinierte Funktionstaste gedrückt.

Maßnahme:	Drücken Sie [Tastenbelegung], um festzustellen, welche Funktionstaste gedrückt werden muß.

Schweregrad:	5

Typ:	Fehler


FRM-41001
FRM-41001:  Die Funktion ist auf diesem Gerät nicht erlaubt.

Ursache:	Sie haben versucht, die Einfügen-/Ersetzen-Funktion auszuführen.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	5

Typ:	Fehler


FRM-41002
FRM-41002:  Treffen Sie eine gültige Auswahl.

Ursache:	Sie haben eine ungültige Auswahlnummer im Blockmenü eingegeben; dieser Block ist in dieser Form nicht vorhanden.

Maßnahme:	Wählen Sie einen bestehenden Block aus.

Schweregrad:	10

Typ:	Fehler


FRM-41003
FRM-41003:  Diese Funktion kann hier nicht ausgeführt werden.

Ursache:	Sie haben versucht, eine Funktion auszuführen, die eine Tabelle referenziert, der aktuelle Block entspricht jedoch keiner Tabelle.

Maßnahme:	Keine Maßnahme erforderlich. Sie können die angeforderte Funktion mit diesem Block nicht ausführen.

Schweregrad:	10

Typ:	Fehler


FRM-41004
FRM-41004:  Funktion in diesem Modus nicht zulässig.

Ursache:	Sie haben eine Funktionstaste gedrückt, die in diesem Modus nicht benutzt werden kann.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	10

Typ:	Fehler


FRM-41005
FRM-41005:  Interner Fehler: Funktionstaste nicht implementiert.

Ursache:	Sie haben eine deaktivierte Funktionstaste gedrückt.

Maßnahme:	Keine Maßnahme erforderlich. Sie können die Funktionstaste im aktuellen Kontext nur benutzen, wenn die Formdefinition geändert wird.

Schweregrad:	>25

Typ:	Fehler


FRM-41006
FRM-41006:  Forms Runtime-Befehl nicht gefunden.

Ursache:	Sie haben eine Funktionstaste gedrückt, die für Ihre Tastenzuordnung nicht definiert ist.

Schweregrad:	>25

Typ:	Fehler


FRM-41007
FRM-41007:  Cursor nicht in gültigem Objekt. Die Funktionstaste wurde ignoriert.

Ursache:	Sie waren nicht in einem gültigen Objekt, als Sie die Funktionstaste gedrückt haben.

Maßnahme:	Setzen Sie den Cursor an eine Stelle innerhalb des Objekts, und drücken Sie die Funktionstaste erneut.

Schweregrad:	10

Typ:	Fehler


FRM-41008
FRM-41008:  Undefinierte Funktionstaste. Drücken Sie %s für Tastenbelegung.

Ursache:	Sie haben eine undefinierte Funktionstaste gedrückt.

Maßnahme:	Drücken Sie [Tastenbelegung], um festzustellen, welche Funktionstaste gedrückt werden muß.

Schweregrad:	>25

Typ:	Fehler


FRM-41009
FRM-41009:  Funktionstaste nicht erlaubt. Drücken Sie %s für Tastenbelegung.

Ursache:	Sie haben eine Funktionstaste gedrückt, die in dieser Umgebung nicht zulässig ist.

Maßnahme:	Drücken Sie [Tastenbelegung], um festzustellen, welche Funktionstaste gedrückt werden muß.

Schweregrad:	>25

Typ:	Fehler


FRM-41010
FRM-41010:  Für das aktuelle Feld kann Attribut nicht gesetzt werden.

Ursache:	Entwicklungsfehler in der Anwendung. Eine Anweisung SET_ITEM hat versucht, das Attribut Eingabe erlaubt für das aktuelle Objekt auszuschalten.

Maßnahme:	Löschen Sie die Anweisung, oder schreiben Sie den Trigger neu.

Schweregrad:	>25

Typ:	Fehler


FRM-41011
FRM-41011:  Undefiniertes Attribut.

Ursache:	Entwicklungsfehler in der Anwendung. Eine Anweisung DISPLAY_ITEM oder DISPLAY_PAGE hat versucht, ein undefiniertes Attribut zu setzen, oder eine Anweisung SET_ITEM_PROPERTY hat versucht, ein undefiniertes Attribut zu setzen.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-41012
FRM-41012:  Undefinierte Objekt- oder Variablenreferenz.

Ursache:	Entwicklungsfehler in der Anwendung. Eine Anweisung NAME_IN hat versucht, ein nicht vorhandenes Objekt oder eine nicht vorhandene Variable zu referenzieren.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-41013
FRM-41013:  Ein undefiniertes Attribut wurde für Objekt %s.%s angegeben.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur SET_ITEM hat einen undefinierten Parameter angegeben.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-41014
FRM-41014:  Kann keine Attribute für Objekt auf Null-Leinwand %s.%s setzen.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur SET_ITEM hat versucht, ein Attribut eines NULL-Leinwandobjekts zu ändern.

Maßnahme:	Verschieben Sie das Objekt auf eine Nicht-0-Seite.

Schweregrad:	>25

Typ:	Fehler


FRM-41015
FRM-41015:  Attribut ENTERABLE nicht möglich für aktuelles Objekt %s.%s.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur SET_ITEM hat versucht, das Attribut Eingabe erlaubt des aktuellen Objekts zu ändern.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-41016
FRM-41016:  DISPLAYED-Attribut nicht möglich für das aktuelle Objekt %s.%s.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur SET_ITEM hat versucht, das Attribut Angezeigt des aktuellen Objekts zu ändern.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-41017
FRM-41017:  Attribut UPDATE ALLOWED nicht möglich bei nicht aktiviertem Objekt %s.%s.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur SET_ITEM hat versucht, das Attribut Aktualisieren erlaubt eines nicht aktivierten Objekts einzuschalten.

Maßnahme:	Um das Attribut Aktualisieren erlaubt eines Objekts einzuschalten, müssen Sie auch das Attribut Eingabe erlaubt des Objekts einschalten.

Schweregrad:	>25

Typ:	Fehler


FRM-41018
FRM-41018:  Attribut UPDATE_NULL nicht möglich bei nicht aktiviertem Objekt %s.%s.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur SET_ITEM hat versucht, das Attribut Aktualisieren bei Null eines nicht-aktivierten Objekts einzuschalten.

Maßnahme:	Um das Attribut Aktualisieren bei Null eines Objekts einzuschalten, müssen Sie auch das Attribut Eingabe erlaubt des Objekts einschalten.

Schweregrad:	>25

Typ:	Fehler


FRM-41019
FRM-41019:  Attribut REQUIRED nicht möglich bei Nicht-Eingabe-Objekt %s.%s.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur SET_ITEM hat versucht, das Attribut Obligatorisch eines Nicht-Eingabe-Objekts einzuschalten.

Maßnahme:	Um das Attribut Obligatorisch eines Objekts einzuschalten, müssen Sie auch das Attribut Eingabe erlaubt des Objekts einschalten.

Schweregrad:	>25

Typ:	Fehler


FRM-41020
FRM-41020:  Attribut ENTERABLE nicht möglich bei Nicht-Anzeige-Objekt %s.%s.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur SET_ITEM hat versucht, das Attribut Eingabe erlaubt eines Nicht-AnzeigeObjekts einzuschalten.

Maßnahme:	Um das Attribut Eingabe erlaubt eines Objekts einzuschalten, müssen Sie auch das Attribut Angezeigt des Objekts einschalten.

Schweregrad:	>25

Typ:	Fehler


FRM-41021
FRM-41021:  Attribut QUERYABLE nicht möglich bei Nicht-Anzeige-Objekt %s.%s.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur SET_ITEM hat versucht, das Attribut Abfrage erlaubt eines Nicht-Anzeige-Objekts einzuschalten.

Maßnahme:	Um das Attribut Abfrage erlaubt eines Objekts einzuschalten, müssen Sie auch das Attribut Angezeigt des Objekts einschalten.

Schweregrad:	>25

Typ:	Fehler


FRM-41022
FRM-41022:  Attribut REQUIRED nicht möglich bei nicht änderbarem Objekt %s.%s.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur SET_ITEM hat versucht, das Attribut Obligatorisch eines nicht änderbaren Objekts einzuschalten.

Maßnahme:	Um das Attribut Obligatorisch eines Objekts einzuschalten, müssen Sie auch das Attribut Aktualisieren erlaubt oder Aktualisieren bei Null des Objekts einschalten.

Schweregrad:	>25

Typ:	Fehler


FRM-41023
FRM-41023:  Attribut UPDATE ALLOWED nicht möglich bei gesichertem Objekt %s.%s.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur SET_ITEM hat versucht, das Attribut Aktualisieren erlaubt eines Datenbankobjekts zu ändern, für das der Benutzer keine Änderungsberechtigung hat.

Maßnahme:	Korrigieren Sie die Anweisung SET_ITEM, oder erteilen Sie dem Benutzer die Änderungsberechtigung für die Spalte.

Schweregrad:	>25

Typ:	Fehler


FRM-41024
FRM-41024:  Attribut UPDATE_NULL nicht möglich bei gesichertem Objekt %s.%s.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur SET_ITEM hat versucht, das Attribut Aktualisieren bei Null eines Datenbankobjekts zu ändern, für das der Benutzer keine Änderungsberechtigung hat.

Maßnahme:	Korrigieren Sie die Anweisung SET_ITEM, oder erteilen Sie dem Benutzer die Änderungsberechtigung für die Spalte.

Schweregrad:	>25

Typ:	Fehler


FRM-41025
FRM-41025:  Seitennummer %d ist nicht vorhanden.

Ursache:	Entwicklungsfehler in der Anwendung. Sie haben versucht, einen Vorgang mit einer nicht vorhandenen Seite auszuführen.

Maßnahme:	Prüfen Sie die Argumente auf seitenorientierte vordefinierte Prozeduren.

Schweregrad:	>25

Typ:	Fehler


FRM-41026
FRM-41026:  Das Feld versteht den Vorgang nicht.

Ursache:	Sie haben versucht, einen Vorgang auszuführen, der für den angegebenen Objekttyp ungültig ist.

Maßnahme:	Versuchen Sie nicht, den Vorgang mit einem Objekt auszuführen, für das der Vorgang nicht zulässig ist.


FRM-41027
FRM-41027:  Für diesen Block muß der Primärschlüssel definiert werden.

Ursache:	Es gibt keine Primärschlüsselobjekte in dem Block und eines der folgenden Ereignisse ist eingetreten:

Sie haben versucht,  Key_Mode oder die Primärschlüssel-Option für einen Block festzulegen.

Key_Mode ist auf Automatisch eingestellt und die Datenquelle, bei der Sie angemeldet sind, unterstützt den Modus UNIQUE nicht.

Maßnahme:	Geben Sie einen oder mehrere Primärschlüsselobjekte für den Block an.

Schweregrad:	>25

Typ:	Fehler


FRM-41028
FRM-41028:  Ungültiges Attribut.

Ursache:	Sie haben eine ungültige Attributkonstante an eine vordefinierte Get- oder Set-Prozedur übergeben.

Maßnahme:	Überprüfen Sie die Argumente.

Schweregrad:	>25

Typ:	Fehler


FRM-41029
FRM-41029:  Ungültiger Parameter.

Ursache:	Sie haben versucht, ein Form-, Block-, Objekt- oder Datensatz-Attribut auf einen ungültigen Wert einzustellen.

Maßnahme:	Überprüfen Sie die Argumente für SET_FORM_PROPERTY, SET_BLOCK_PROPERTY, SET_ITEM_PROPERTY oder SET_RECORD_PROPERTY.

Schweregrad:	>25

Typ:	Fehler


FRM-41030
FRM-41030:  ITEM_LENGTH von Feld %s.%s kann nicht zurückgesetzt werden.

Ursache:	Entwicklungsfehler in der Anwendung. Sie haben versucht, die Länge eines Objekts mit fester Länge zu ändern.

Maßnahme:	Deklarieren Sie das Objekt statisch als ein Objekt mit der maximalen erforderlichen Länge, oder ändern Sie den Objekttyp.

Schweregrad:	>25

Typ:	Fehler


FRM-41031
FRM-41031:  ITEM_LENGTH kann nicht auf einen größeren Wert als der zugewiesene Puffer gesetzt werden.

Ursache:	Entwicklungsfehler in der Anwendung. Sie haben versucht, ITEM_LENGTH auf einen größeren Wert als der zugewiesene Puffer zu setzen.

Maßnahme:	Vergrößern Sie die Objektlänge in der Formdefinition.

Schweregrad:	>25

Typ:	Fehler


FRM-41032
FRM-41032:  Attribut ENABLED nicht möglich bei aktuellem Objekt %s.%s.

Ursache:	Ein Aufruf von SET_ITEM_PROPERTY hat versucht, das Attribut Enabled des aktuellen Objekts zu setzen.

Maßnahme:	Korrigieren Sie den Aufruf von SET_ITEM_PROPERTY, oder navigieren Sie zu einem anderen Objekt, bevor Sie das Attribut Enabled einstellen.

Schweregrad:	>25

Typ:	Fehler


FRM-41033
FRM-41033:  Attribut ENABLED nicht möglich bei Nicht-Anzeige-Objekt %s.%s.

Ursache:	Bei einem Aufruf von SET_ITEM_PROPERTY wurde versucht, das Attribut Enabled eines Nicht-Anzeige-Objekts zu setzen.

Maßnahme:	Navigieren Sie zuerst zu dem Objekt, und stellen Sie dann das Attribut Enabled mit einem Aufruf von SET_ITEM_PROPERTY ein.

Schweregrad:	>25

Typ:	Fehler


FRM-41034
FRM-41034:  Attribut NAVIGABLE nicht möglich bei Nicht-Anzeige-Objekt %s.%s.

Ursache:	Bei einem Aufruf von SET_ITEM_PROPERTY wurde versucht, das Attribut Navigable eines Nicht-Anzeige-Objekts zu setzen.

Maßnahme:	Navigieren Sie zuerst zu dem Objekt, und stellen Sie dann das Attribut Navigable mit einem Aufruf von SET_ITEM_PROPERTY ein.

Schweregrad:	>25

Typ:	Fehler


FRM-41035
FRM-41035:  Attribut NAVIGABLE nicht möglich bei nicht-aktiviertem Objekt %s.%s.

Ursache:	Bei einem Aufruf von SET_ITEM_PROPERTY wurde versucht, das Attribut Navigable eines nicht-aktivierten Objekts zu setzen.

Maßnahme:	Zuerst setzen Sie das Attribut Enabled des Objekts mit einem Aufruf von SET_ITEM_PROPERTY. Danach setzen Sie das Attribut Navigable des Objekts mit einem weiteren Aufruf von SET_ITEM_PROPERTY.

Schweregrad:	99

Typ:	Fehler


FRM-41036
FRM-41036:  Ein Kontrollkästchen, das keine Abfragen erlaubt, kann nicht geändert werden.

Ursache:	Sie haben versucht, ein Kontrollkästchen zu ändern, das keine Abfragen erlaubt.

Maßnahme:	Stellen Sie zuerst das Attribut Abfrage erlaubt auf True. Danach kann der Endbenutzer mit gedrückter Umschalttaste auf das Kontrollkästchen klicken, um das Objekt zu aktivieren oder zu deaktivieren.

Schweregrad:	99

Typ:	Fehler


FRM-41037
FRM-41037:  Optionsgruppen, die keine Abfragen erlauben, können nicht geändert werden.

Ursache:	Sie haben versucht, eine Optionsgruppe zu ändern, die keine Abfrage erlaubt.

Maßnahme:	Setzen Sie zuerst das Attribut Enabled mit einem Aufruf von SET_RADIO_BUTTON_PROPERTY auf True.

Schweregrad:	>25

Typ:	Fehler


FRM-41038
FRM-41038:  Objekt %s ist kein Kontrollkästchen.

Ursache:	Bei einem Aufruf von CHECKBOX_CHECKED wurde ein Objekt aufgerufen, bei dem es sich nicht um ein Kontrollkästchen handelt.

Maßnahme:	Korrigieren Sie den Aufruf von CHECKBOX_CHECKED.

Schweregrad:	>25

Typ:	Fehler


FRM-41039
FRM-41039:  Ungültige Warnfenster-ID %d.

Ursache:	Eine ungültige ID wurde an die vordefinierte Prozedur übergeben.

Maßnahme:	Prüfen Sie, ob ein korrekter Aufruf von FIND_ALERT durchgeführt wird.

Schweregrad:	>25

Typ:	Fehler


FRM-41040
FRM-41040:  Optionsschaltfläche %s nicht gefunden.

Ursache:	Eine ungültige ID oder ein ungültiger Name wurde an ein vordefiniertes Unterprogramm übergeben.

Maßnahme:	Prüfen Sie den eingegebenen Namen bzw. die eingegebene ID, und wiederholen Sie den Versuch.

Schweregrad:	>25

Typ:	Fehler


FRM-41041
FRM-41041:  Formmodul nicht gefunden: Ungültige ID.

Ursache:	Eine ungültige ID wurde an die vordefinierte Prozedur übergeben.

Maßnahme:	Prüfen Sie, ob ein korrekter Aufruf von FIND_FORM durchgeführt wird.

Schweregrad:	>25

Typ:	Fehler


FRM-41042
FRM-41042:  Für Set_Item_Property gibt es dieses Attribut nicht.

Ursache:	Sie haben versucht, ein ungültiges Objektattribut einzustellen.

Maßnahme:	Lesen Sie in der Dokumentation nach, wie Objektattribute eingestellt werden, und wiederholen Sie den Versuch.

Schweregrad:	>25

Typ:	Fehler


FRM-41043
FRM-41043:  Timer nicht gefunden: Ungültige ID.

Ursache:	Eine ungültige ID wurde an die vordefinierte Prozedur übergeben.

Maßnahme:	Prüfen Sie, ob ein korrekter Aufruf von FIND_TIMER durchgeführt wird.

Schweregrad:	>25

Typ:	Fehler


FRM-41044
FRM-41044:  Fehler beim Löschen von Timer %s.

Ursache:	Bei der Ausführung der vordefinierten Prozedur DELETE_TIMER ist ein Fehler aufgetreten.

Maßnahme:	Prüfen Sie, ob der Timer richtig erstellt wurde.

Schweregrad:	>25

Typ:	Fehler


FRM-41045
FRM-41045:  Objekt nicht gefunden: Ungültige ID.

Ursache:	Eine ungültige ID wurde an die vordefinierte Prozedur übergeben.

Maßnahme:	Prüfen Sie, ob ein korrekter Aufruf von FIND_ALERT durchgeführt wird.

Schweregrad:	>25

Typ:	Fehler


FRM-41046
FRM-41046:  Für Set_Item_Property wurde ein ungültiger Parameter angegeben.

Ursache:	Ein ungültiger Parameter wurde an SET_ITEM_PROPERTY übergeben.

Maßnahme:	Prüfen Sie die gültigen Parameter für SET_ITEM_PROPERTY, und wiederholen Sie den Versuch.

Schweregrad:	>25

Typ:	Fehler


FRM-41047
FRM-41047:  Im Abfragemodus ist Navigieren aus dem aktuellen Block nicht möglich.

Ursache:	Es wurde versucht, im Abfragemodus aus dem aktuellen Block zu navigieren, dies ist nicht möglich.

Maßnahme:	Führen Sie den Vorgang durch, bevor Sie den Abfragemodus aufrufen.

Schweregrad:	>25

Typ:	Fehler


FRM-41048
FRM-41048:  Prozedur %s ist in einem %s Trigger nicht zulässig.

Ursache:	Die angegebene Prozedur ist nicht gültig, wenn sie aus dem angegebenen Trigger aufgerufen wird. Bei der Prozedur kann es sich um eine eingeschränkte Prozedur handeln, die nicht aus einem Trigger aufgerufen werden kann, der während der Navigation ausgelöst wird.

Maßnahme:	Korrigieren Sie den ungültigen Trigger.

Schweregrad:	20

Typ:	Fehler


FRM-41049
FRM-41049:  Dieser Datensatz kann nicht gelöscht werden.

Ursache:	Sie haben versucht, einen Datensatz in einem Block zu löschen, der keine Löschvorgänge erlaubt.

Maßnahme:	Versuchen Sie nicht, Datensätze in diesem Block zu löschen, bis das Blockattribut Löschen erlaubt auf True gesetzt wurde.

Schweregrad:	>20

Typ:	Fehler


FRM-41050
FRM-41050:  Dieser Datensatz kann nicht aktualisiert werden.

Ursache:	Sie haben versucht, einen Datensatz in einem Block zu aktualisieren, in dem keine Aktualisierungen zulässig sind.

Maßnahme:	Versuchen Sie nicht, Datensätze in diesem Block zu aktualisieren, bevor das Blockattribut Aktualisieren erlaubt auf True gesetzt wurde.

Schweregrad:	20

Typ:	Fehler


FRM-41051
FRM-41051:  Datensätze können hier nicht erstellt werden.

Ursache:	Sie haben versucht, Datensätze in einem Block zu erstellen, der keine Einfügenvorgänge zuläßt.

Maßnahme:	Versuchen Sie nicht, neue Datensätze in diesem Block zu erstellen und einzufügen, bevor das Blockattribut Einfügen erlaubt auf True gesetzt wurde.

Schweregrad:	20

Typ:	Fehler


FRM-41052
FRM-41052:  Fenster nicht gefunden: Ungültige ID.

Ursache:	Eine ungültige ID wurde an die vordefinierte Prozedur übergeben.

Maßnahme:	Prüfen Sie, ob ein korrekter Aufruf von FIND_WINDOW ausgeführt wird.

Schweregrad:	20

Typ:	Fehler


FRM-41053
FRM-41053:  Leinwand nicht gefunden: Ungültige ID.

Ursache:	Eine ungültige ID wurde an die vordefinierte Prozedur übergeben.

Maßnahme:	Prüfen Sie, ob ein korrekter Aufruf von FIND_CANVAS durchgeführt wird.

Schweregrad:	20

Typ:	Fehler


FRM-41054
FRM-41054:  Für Get_Record_Property gibt es dieses Attribut nicht.

Ursache:	Sie haben versucht, ein nicht vorhandenes Datensatzattribut einzulesen.

Maßnahme:	Prüfen Sie, ob GET_RECORD_PROPERTY ein gültiges Attribut enthält.

Schweregrad:	20

Typ:	Fehler


FRM-41055
FRM-41055:  Für Set_Record_Property gibt es dieses Attribut nicht.

Ursache:	Sie haben versucht, ein nicht vorhandenes Datensatzattribut zu setzen.

Maßnahme:	Prüfen Sie, ob der Aufruf von SET_RECORD_PROPERTY ein gültiges Attribut enthält.

Schweregrad:	20

Typ:	Fehler


FRM-41056
FRM-41056:  Block nicht gefunden: Ungültige ID.

Ursache:	Eine ungültige ID wurde an die vordefinierte Prozedur übergeben.

Maßnahme:	Prüfen Sie, ob ein korrekter Aufruf von FIND_BLOCK ausgeführt wird.

Schweregrad:	>25

Typ:	Fehler


FRM-41057
FRM-41057:  Für Set_View_Property gibt es dieses Attribut nicht.

Ursache:	Sie haben versucht, ein nicht vorhandenes Ansicht-Attribut einzustellen.

Maßnahme:	Prüfen Sie, ob der Aufruf von SET_VIEW_PROPERTY ein gültiges Attribut enthält.

Schweregrad:	20

Typ:	Fehler


FRM-41058
FRM-41058:  Für Get_Item_Property gibt es dieses Attribut nicht.

Ursache:	Sie haben versucht, ein nicht vorhandenes Objektattribut einzulesen.

Maßnahme:	Prüfen Sie, ob der Aufruf von GET_ITEM_PROPERTY ein gültiges Attribut enthält.

Schweregrad:	20

Typ:	Fehler


FRM-41059
FRM-41059:  Für Set_Canvas_Property gibt es dieses Attribut nicht.

Ursache:	Sie haben versucht, ein nicht vorhandenes Leinwand-Attribut zu setzen.

Maßnahme:	Prüfen Sie, ob der Aufruf von SET_CANVAS_PROPERTY ein gültiges Attribut enthält.

Schweregrad:	20

Typ:	Fehler


FRM-41060
FRM-41060:  Primärschlüsselattribut des einzigen Schlüsselobjekts kann nicht deaktiviert werden.

Ursache:	Sie haben versucht, das Attribut Primärschlüssel bei dem letzten Primärschlüsselobjekt in einem Block wie folgt auszuschalten:

Attribut Primärschlüssel

Schlüsselmodus des Primärschlüssels

Die Datenbank, bei der Sie angemeldet sind, unterstützt den Modus UNIQUE nicht

Maßnahme:	Deaktivieren Sie zuerst die Blockattribute.

Schweregrad:	20

Typ:	Fehler


FRM-41061
FRM-41061:  Für Get_Window_Property gibt es dieses Attribut nicht.

Ursache:	Sie haben versucht, ein nicht vorhandenes Fensterattribut einzulesen.

Maßnahme:	Prüfen Sie, ob der Aufruf von GET_WINDOW_PROPERTY ein gültiges Attribut enthält.

Schweregrad:	99

Typ:	Fehler


FRM-41062
FRM-41062:  Editor nicht gefunden: Ungültige ID.

Ursache:	Eine ungültige ID wurde an die vordefinierte Prozedur übergeben.

Maßnahme:	Prüfen Sie, ob ein korrekter Aufruf von FIND_EDITOR ausgeführt wird.

Schweregrad:	20

Typ:	Fehler


FRM-41063
FRM-41063:  Editor kann nicht erstellt werden.

Ursache:	Es ist nicht genügend Speicherplatz für Forms Runtime vorhanden.

Maßnahme:	Versuchen Sie, SHOW_EDITOR erneut aufzurufen, nachdem Sie einige der Fenster geschlossen haben.

Schweregrad:	20

Typ:	Fehler


FRM-41064
FRM-41064:  Timer %s kann nicht erstellt werden: Unzulässiger Name.

Ursache:	Unzulässiger Bezeichnername.

Maßnahme:	Prüfen Sie die korrekte Syntax für das Benennen von Timern.

Schweregrad:	99

Typ:	Fehler


FRM-41065
FRM-41065:  Menü nicht gefunden: Ungültige ID.

Ursache:	Eine ungültige ID wurde an die vordefinierte Prozedur übergeben.

Maßnahme:	Prüfen Sie, ob ein korrekter Aufruf von FIND_MENU ausgeführt wird.

Schweregrad:	20

Typ:	Fehler


FRM-41066
FRM-41066:  Für Get_Form_Property gibt es dieses Attribut nicht.

Ursache:	Sie haben versucht, ein nicht vorhandenes Formattribut einzulesen.

Maßnahme:	Prüfen Sie, ob der Aufruf von GET_FORM_PROPERTY ein gültiges Attribut enthält.

Schweregrad:	20

Typ:	Fehler


FRM-41067
FRM-41067:  Menüpunkt nicht gefunden: Ungültige ID.

Ursache:	Eine ungültige ID wurde an die vordefinierte Prozedur übergeben.

Maßnahme:	Prüfen Sie, ob ein korrekter Aufruf von FIND_MENU_ITEM ausgeführt wird.

Schweregrad:	20

Typ:	Fehler


FRM-41068
FRM-41068:  Fehler bei Set_Menu_Item_Property.

Ursache:	Ungültiger Aufruf von SET_MENU_ITEM_PROPERTY.

Maßnahme:	Überprüfen Sie die gültigen Parameter, und wiederholen Sie den Versuch.

Schweregrad:	20

Typ:	Fehler


FRM-41069
FRM-41069:  Fehler bei Get_Menu_Item_Property.

Ursache:	Ungültiger Aufruf von GET_MENU_ITEM_PROPERTY.

Maßnahme:	Überprüfen Sie die gültigen Parameter, und wiederholen Sie den Versuch.

Schweregrad:	20

Typ:	Fehler


FRM-41070
FRM-41070:  Unbekanntes Attribut für Set_Menu_Item_Property.

Ursache:	Sie haben versucht, ein nicht vorhandenes Objektattribut einzustellen.

Maßnahme:	Prüfen Sie, ob der Aufruf von SET_MENU_ITEM_PROPERTY ein gültiges Attribut enthält.

Schweregrad:	20

Typ:	Fehler


FRM-41071
FRM-41071:  Unbekanntes Attribut für Get_Menu_Item_Property.

Ursache:	Sie haben versucht, ein nicht vorhandenes Menüpunkt-Attribut einzulesen.

Maßnahme:	Prüfen Sie, ob der Aufruf von GET_MENU_ITEM_PROPERTY ein gültiges Attribut enthält.

Schweregrad:	20

Typ:	Fehler


FRM-41072
FRM-41072:  Gruppe %s kann nicht erstellt werden.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1.  Doppelte Spaltennamen in SQL-Anweisung.

2.  Ungültiger Datensatzgruppenname.

3.  Ungültige Abfrage.

Maßnahme:	Prüfen Sie den Gruppennamen, und/oder korrigieren Sie die SQL-Anweisung.

Schweregrad:	20

Typ:	Fehler


FRM-41073
FRM-41073:  Gruppe nicht gefunden: Ungültige ID.

Ursache:	Eine ungültige ID wurde an die vordefinierte Prozedur übergeben.

Maßnahme:	Prüfen Sie, ob ein korrekter Aufruf von FIND_GROUP ausgeführt wird.

Schweregrad:	20

Typ:	Fehler


FRM-41074
FRM-41074:  Gruppe oder Spalte nicht gefunden: Ungültige ID.

Ursache:	Eine ungültige ID wurde an die vordefinierte Prozedur übergeben.

Maßnahme:	Prüfen Sie, ob ein korrekter Aufruf von FIND_GROUP oder FIND_COLUMN ausgeführt wird.

Schweregrad:	20

Typ:	Fehler


FRM-41075
FRM-41075:  Fehler beim Löschen der Gruppe.

Ursache:	Der Name der Datensatzgruppe oder die in dem Aufruf von DELETE_GROUP angegebene ID ist ungültig, oder die Datensatzgruppe wurde nicht dynamisch erstellt.

Maßnahme:	Prüfen Sie den Namen der Datensatzgruppe oder die ID, und stellen Sie sicher, daß die angegebene Datensatzgruppe dynamisch erstellt wurde.

Schweregrad:	20

Typ:	Fehler


FRM-41076
FRM-41076:  Fehler beim Füllen der Gruppe.

Ursache:	Die Abfrage konnte wegen eines ungültigen Spalten- oder Tabellennamens nicht durchgeführt werden, oder die Struktur der Abfrage- und Gruppenspalte stimmt nicht überein.

Maßnahme:	Prüfen Sie die SQL SELECT-Anweisung in dem Aufruf von POPULATE_GROUP_WITH_QUERY.

Schweregrad:	20

Typ:	Fehler


FRM-41077
FRM-41077:  Fehler beim Löschen der Gruppenzeile(n).

Ursache:	DELETE_GROUP_ROW kann nicht benutzt werden, um Datensätze aus einer statischen Datensatzgruppe zu löschen, oder Sie haben eine ungültige Zeilennummer angegeben.

Maßnahme:	Korrigieren Sie den Aufruf von DELETE_GROUP_ROW.

Schweregrad:	20

Typ:	Fehler


FRM-41078
FRM-41078:  Fehler beim Zurücksetzen der Gruppenauswahl.

Ursache:	Der Name oder die ID der Datensatzgruppe ist ungültig.

Maßnahme:	Prüfen Sie den Namen der Datensatzgruppe oder der ID, und wiederholen Sie den Versuch.

Schweregrad:	20

Typ:	Fehler


FRM-41079
FRM-41079:  Fehler beim Hinzufügen einer Gruppenspalte.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie können keine Spalten zu einer Gruppe hinzufügen, die schon Zeilen enthält.

2.  Die Breite der Spalten vom Typ CHAR_COLUMN darf nicht kleiner als die Breite der entsprechenden Datenbankspalte sein.

3.  Sie haben den Namen einer nicht vorhandenen oder ungültigen Datensatzgruppe eingegeben.

4.  Sie haben Namen einer nicht vorhandenen oder ungültigen Spalte eingegeben.

5.  Sie haben einen anderen Spaltentyp als CHAR, NUMBER oder DATE eingegeben.

Maßnahme:	Sie können nur Spalten zu einer Gruppe hinzufügen, nachdem diese mit einem Aufruf von CREATE_GROUP erstellt wurde. Wenn die Gruppe schon Zeilen enthält, löschen Sie die Zeilen mit DELETE_GROUP_ROW, und fügen Sie die Spalte dann hinzu.

Schweregrad:	20

Typ:	Fehler


FRM-41080
FRM-41080:  Fehler beim Hinzufügen einer Gruppenzeile.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1.  Sie haben versucht, Zeilen zu einer Gruppe hinzuzufügen, die nicht vorhanden ist oder keine Spalten enthält.

2.  Sie haben den Namen einer nicht vorhandenen Datensatzgruppe eingegeben.

3.  Sie haben eine Zeilennummer angegeben, die außerhalb des zulässigen Bereichs liegt oder ungültig ist.

Maßnahme:	Erstellen Sie die Gruppe, und fügen Sie zuerst Spalten hinzu. Prüfen Sie den Aufruf von ADD_GROUP_ROW, um sicherzustellen, daß der Datensatzgruppenname und die Zeilennummer gültig sind.

Schweregrad:	20

Typ:	Fehler


FRM-41081
FRM-41081:  Objektverschiebung nicht möglich: Ungültige Position.

Ursache:	Sie haben versucht, ein Objekt an eine ungültige Position auf der Leinwand zu verschieben.

Maßnahme:	Prüfen Sie, ob die Koordinaten, die Sie in dem Aufruf von SET_ITEM_PROPERTY ausgewählt haben, gültig sind.

Schweregrad:	99

Typ:	Fehler


FRM-41082
FRM-41082:  Objekt kann nicht skaliert werden: Position außerhalb der Leinwand.

Ursache:	Die Höhe und/oder Breite, die Sie in dem Aufruf von SET_ITEM_PROPERTY angegeben haben, ist ungültig, oder die angegebene Höhe und/oder Breite führt dazu, daß das Objekt über die Leinwand hinausreicht.

Maßnahme:	Korrigieren Sie den Aufruf von SET_ITEM_PROPERTY.

Schweregrad:	99

Typ:	Fehler


FRM-41083
FRM-41083:  Für Set_Form_Property gibt es dieses Attribut nicht.

Ursache:	Sie haben versucht, ein nicht vorhandenes Formattribut einzustellen.

Maßnahme:	Prüfen Sie, ob der Aufruf von SET_FORM_PROPERTY ein gültiges Attribut enthält.

Schweregrad:	20

Typ:	Fehler


FRM-41084
FRM-41084:  Fehler beim Abrufen einer Gruppenzelle.

Ursache:	Ungültiger Aufruf von GET_GROUP_CHAR_CELL, GET_GROUP_DATE_CELL oder GET_GROUP_NUMBER_CELL.

Maßnahme:	Prüfen Sie, ob der Spaltentyp CHAR, DATE bzw. NUMBER ist. Prüfen Sie die Gültigkeit der angegebenen Zeilennummer und des angegebenen Spaltennamens.

Schweregrad:	20

Typ:	Fehler


FRM-41085
FRM-41085:  Fehler beim Abrufen der Gruppen-Zeilenanzahl.

Ursache:	Ungültiger Aufruf von GET_GROUP_ROW_COUNT.

Maßnahme:	Prüfen Sie den Datensatzgruppennamen, und wiederholen Sie den Versuch.

Schweregrad:	20

Typ:	Fehler


FRM-41086
FRM-41086:  Fehler beim Abrufen der Gruppen-Auswahlanzahl.

Ursache:	Sie haben einen ungültigen Datensatzgruppennamen angegeben. Ungültiger Aufruf von GET_GROUP_SELECTION_COUNT.

Maßnahme:	Korrigieren Sie den Aufruf von GET_GROUP_SELECTION.

Schweregrad:	20

Typ:	Fehler


FRM-41087
FRM-41087:  Fehler bei der Gruppenauswahl.

Ursache:	Sie haben einen ungültigen Datensatzgruppennamen oder eine ungültige Auswahlnummer angegeben. Ungültiger Aufruf von GET_GROUP_SELECTION.

Maßnahme:	Korrigieren Sie den Aufruf von GET_GROUP_SELECTION.

Schweregrad:	20

Typ:	Fehler


FRM-41088
FRM-41088:  Gruppenauswahl kann nicht eingestellt werden.

Ursache:	Sie haben einen ungültigen Datensatzgruppennamen, eine ungültige ID oder Zeilennummer angegeben.

Maßnahme:	Korrigieren Sie den Aufruf von SET_GROUP_SELECTION.

Schweregrad:	20

Typ:	Fehler


FRM-41089
FRM-41089:  Verschiebung nicht möglich: Ungültige Position.

Ursache:	Die in dem Aufruf von SET_VIEW_PROPERTY angegebenen x-, y-Koordinaten sind ungültig.

Maßnahme:	Korrigieren Sie den Aufruf von SET_VIEW_PROPERTY, und stellen Sie sicher, daß die mit den Koordinaten angegebene Position auf der Leinwand liegt.

Schweregrad:	99

Typ:	Fehler


FRM-41090
FRM-41090:  Ungültiger Objekttyp für go_item: %s.

Ursache:	Sie können nicht zu dem Objekt navigieren.

Maßnahme:	Prüfen Sie, ob es sich bei dem Objekt um ein navigierbares Objekt handelt.

Schweregrad:	20

Typ:	Fehler


FRM-41091
FRM-41091:  Werteliste nicht gefunden: Ungültige ID.

Ursache:	Eine ungültige ID wurde an die vordefinierte Prozedur übergeben.

Maßnahme:	Prüfen Sie, ob ein korrekter Aufruf von FIND_LOV ausgeführt wird.

Schweregrad:	20

Typ:	Fehler


FRM-41092
FRM-41092:  Block %s enthält keine Datensätze.

Ursache:	Sie haben versucht, einen Wert in ein Objekt in einem Block zu setzen, der keine Datensätze enthält.

Maßnahme:	Setzen Sie zuerst Datensätze in den Block.

Schweregrad:	20

Typ:	Fehler


FRM-41093
FRM-41093:  Fehler beim Setzen des Objektattributs %s.

Ursache:	Sie haben Datensatz sperren angegeben, und bei dem Objekt handelt es sich nicht um ein Textobjekt, oder Sie haben eine Abfrage ohne Groß/Klein-Unterscheidung angegeben, und der Datentyp war nicht ALPHA oder CHAR.

Maßnahme:	Bei Datensatz sperren prüfen Sie, ob es sich bei dem Objekt um ein Textobjekt handelt. Wenn eine Abfrage ohne Groß/Klein-Unterscheidung angegeben wurde, prüfen Sie, ob der Datentyp ALPHA oder CHAR ist.

Schweregrad:	20

Typ:	Fehler


FRM-41094
FRM-41094:  Für Get_View_Property gibt es dieses Attribut nicht.

Ursache:	Sie haben versucht, ein nicht vorhandenes Ansicht-Attribut einzulesen.

Maßnahme:	Überprüfen Sie den Aufruf von GET_VIEW_PROPERTY auf gültige Attribute.

Schweregrad:	99

Typ:	Fehler


FRM-41095
FRM-41095:  Für Get_Canvas_Property gibt es dieses Attribut nicht.

Ursache:	Sie haben versucht, ein nicht vorhandenes Leinwandattribut einzulesen.

Maßnahme:	Prüfen Sie, ob der Aufruf von GET_CANVAS_PROPERTY ein gültiges Attribut enthält.

Schweregrad:	99

Typ:	Fehler


FRM-41096
FRM-41096:  Ansicht kann nicht skaliert werden: Ungültige Größe.

Ursache:	Durch die angegebenen x-, y-Koordinaten steht die Ansicht nicht mehr auf der Leinwand.

Maßnahme:	Wählen Sie andere x-, y-Koordinaten.

Schweregrad:	99

Typ:	Fehler


FRM-41097
FRM-41097:  Leinwand kann nicht skaliert werden: Ungültige Größe.

Ursache:	Durch die angegebenen x-, y-Koordinaten steht die Ansicht nicht in dem Fenster.

Maßnahme:	Wählen Sie andere x-, y-Koordinaten.

Schweregrad:	99

Typ:	Fehler


FRM-41098
FRM-41098:  Anzeigeposition einer Inhaltsansicht kann nicht geändert werden.

Ursache:	Das Attribut Anzeigeposition gilt nur für gestapelte Leinwandausschnitte.

Maßnahme:	Korrigieren Sie den Aufruf von SET_VIEW_PROPERTY.

Schweregrad:	99

Typ:	Fehler


FRM-41099
FRM-41099:  Größe einer Inhaltsansicht kann nicht geändert werden.

Ursache:	Die Größe einer Inhaltsansicht hängt von der Fenstergröße ab. Mit SET_VIEW_PROPERTY kann nur die Größe von gestapelten Ansichten geändert werden.

Maßnahme:	Korrigieren Sie den Aufruf von SET_VIEW_PROPERTY.

Schweregrad:	99

Typ:	Fehler


FRM-41100
FRM-41100:  Beziehung %s nicht gefunden.

Ursache:	Sie haben versucht, eine ungültige Beziehung einzulesen, einzustellen oder zu suchen.

Maßnahme:	Überprüfen Sie den Aufruf der vordefinierten Prozedur auf richtige Argumente.

Schweregrad:	>25

Typ:	Fehler


FRM-41101
FRM-41101:  Für Get_Relation_Property gibt es dieses Attribut nicht.

Ursache:	Sie haben versucht, ein nicht vorhandenes Beziehungsattribut einzulesen.

Maßnahme:	Prüfen Sie den Aufruf von GET_RELATION_PROPERTY auf gültige Attribute.

Schweregrad:	99

Typ:	Fehler


FRM-41102
FRM-41102:  Für Set_Relation_Property gibt es dieses Attribut nicht.

Ursache:	Sie haben versucht, ein nicht vorhandenes Beziehungsattribut einzustellen.

Maßnahme:	Überprüfen Sie den Aufruf von SET_RELATION_PROPERTY auf gültige Attribute.

Schweregrad:	99

Typ:	Fehler


FRM-41103
FRM-41103:  Für Set_Relation_Property gibt es dieses Attribut nicht.

Ursache:	Entwicklungsfehler in der Anwendung. Ein falscher Beziehungsattributwert wurde an die vordefinierte Prozedur SET_RELATION_PROPERTY übergeben.

Maßnahme:	Korrigieren Sie den Aufruf der vordefinierten Prozedur SET_RELATION_PROPERTY, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-41104
FRM-41104:  Beziehung nicht gefunden: Ungültige ID.

Ursache:	Eine ungültige ID wurde an die vordefinierte Prozedur übergeben.

Maßnahme:	Prüfen Sie, ob ein korrekter Aufruf von FIND_RELATION ausgeführt wird.

Schweregrad:	20

Typ:	Fehler


FRM-41105
FRM-41105:  Keine Abfrage ohne gespeicherten übergeordneten Datensatz.

Ursache:	Sie haben versucht, Detail-Datensätze abzufragen, ohne zuerst einen Master-Datensatz zu erstellen.

Maßnahme:	Erstellen Sie einen Master-Datensatz, und fragen Sie dann die Detail-Datensätze ab.


FRM-41106
FRM-41106:  Ohne übergeordneten Datensatz können keine Sätze erstellt werden.

Ursache:	Sie haben versucht, neue Detail-Datensätze zu erstellen, ohne zuerst einen Master-Datensatz zu erstellen.

Maßnahme:	Erstellen Sie einen Master-Datensatz, und fügen Sie dann die Detail-Datensätze hinzu.


FRM-41107
FRM-41107:  Master-Lösch-Option ist für Beziehung ungültig.

Ursache:	Ein ungültiger Abfrage-Datenquelltyp oder ein ungültiger DML-Datenzieltyp wurde für den Detail-Block angegeben.

Maßnahme:	Prüfen Sie, ob die Abfragedatenquelle und die DML-Datenziele für den Detail-Block vom Typ Tabelle sind.

Schweregrad:	20

Typ:	Fehler


FRM-41200
FRM-41200:  Integrationsfehler: Ungültiges Produkt.

Ursache:	Ungültiger Produktname in RUN_PRODUCT angegeben.

Maßnahme:	Prüfen Sie die RUN_PRODUCT-Parameter, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-41201
FRM-41201:  Integrationsfehler: Kommunikationsmodus muß SYNCHRONOUS oder ASYNCHRONOUS sein.

Ursache:	Ungültiger Kommunikationsmodus in RUN_PRODUCT angegeben.

Maßnahme:	Prüfen Sie die RUN_PRODUCT-Parameter, und wiederholen Sie den Versuch.

Schweregrad:	20

Typ:	Fehler


FRM-41202
FRM-41202:  Integrationsfehler: Parameterliste %s enthält keine Parameter.

Ursache:	Die Parameterliste enthält keine Argumente.

Maßnahme:	Prüfen Sie die angegebene Parameterliste auf Parameter.

Schweregrad:	20

Typ:	Fehler


FRM-41203
FRM-41203:  Integrationsfehler: Ungültige Parameterlisten-ID.

Ursache:	Eine ungültige Parameterlisten-ID wurde übergeben.

Maßnahme:	Prüfen Sie die Parameterlisten-ID, und wiederholen Sie den Versuch.

Schweregrad:	20

Typ:	Fehler


FRM-41204
FRM-41204:  Integrationsfehler: Fehler bei Speicherzuweisung.

Ursache:	Ein interner Fehler ist aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	20

Typ:	Fehler


FRM-41205
FRM-41205:  Integrationsfehler: %s ist kein Diagramm.

Ursache:	Der zur Anzeige angegebene Variablentyp ist kein Diagrammobjekt.

Maßnahme:	Geben Sie ein Diagrammobjekt für den Anzeigeparameter an.

Schweregrad:	20

Typ:	Fehler


FRM-41206
FRM-41206:  Integrationsfehler: Mehrdeutiges Objekt %s.

Ursache:	Ungültiger Objektname; möglicherweise ein Duplikat.

Maßnahme:	Geben Sie den Objektnamen im Format Blockname.Objektname an.

Schweregrad:	20

Typ:	Fehler


FRM-41207
FRM-41207:  Integrationsfehler: Objekt %s nicht gefunden.

Ursache:	Der angegebene Objektname ist nicht vorhanden.

Maßnahme:	Prüfen Sie den Namen auf Genauigkeit, und wiederholen Sie den Versuch mit dem Format Blockname.Objektname.

Schweregrad:	20

Typ:	Fehler


FRM-41208
FRM-41208:  Integrationsfehler: Ausführungsmodus muß BATCH oder RUNTIME sein.

Ursache:	Ungültiger Ausführungsmodus in RUN_PRODUCT angegeben.

Maßnahme:	Geben Sie BATCH oder RUNTIME für den Parameter execmode an.

Schweregrad:	20

Typ:	Fehler


FRM-41209
FRM-41209:  Integrationsfehler: Dokumentspeicherort muß DATEISYSTEM oder DB sein.

Ursache:	Falscher Dokumentspeicherort in RUN_PRODUCT angegeben.

Maßnahme:	Geben Sie DATEISYSTEM oder DB als Speicherortparameter an.

Schweregrad:	20

Typ:	Fehler


FRM-41210
FRM-41210:  Integrationsfehler: Null-Diagrammobjekt.

Ursache:	Für die Diagrammobjekt-Anzeige wird eine Null angegeben.

Maßnahme:	Überprüfen Sie das Anzeigeobjekt der vordefinierten Prozedur RUN_PRODUCT, und stellen Sie sicher, daß dieses nicht null ist.

Schweregrad:	20

Typ:	Fehler


FRM-41211
FRM-41211:  Integrationsfehler: SSL-Fehler bei Ausführung eines anderen Produkts.

Ursache:	Beim Starten eines anderen Produkts wurde ein Fehler entdeckt.

Maßnahme:	Prüfen Sie die vordefinierte Prozedur RUN_PRODUCT.

Schweregrad:	99

Typ:	Fehler


FRM-41212
FRM-41212:  Integrationsfehler: Ungültiger Kommunikationsmodus für den Datenaustausch.

Ursache:	Der Benutzer hat einen asynchronen RUN_PRODUCT-Modus angegeben.

Maßnahme:	Wechseln Sie zu einem synchronen RUN_PRODUCT-Kommunikationsmodus.

Schweregrad:	20

Typ:	Fehler


FRM-41213
FRM-41213:  Anmeldung bei Report-Server %s nicht möglich.

Ursache:	Bei der Anmeldung bei dem angegebenen Report-Server ist ein Problem aufgetreten.

Maßnahme:	Prüfen Sie den Report-Server, und stellen Sie sicher, daß dieser hochgefahren ist und läuft.

Schweregrad:	20

Typ:	Fehler


FRM-41214
FRM-41214:  Bericht kann nicht ausgeführt werden.

Ursache:	Der Report-Server konnte den angegebenen Bericht nicht ausführen.

Maßnahme:	Prüfen Sie den Report-Server, und stellen Sie sicher, daß dieser hochgefahren ist und läuft.

Schweregrad:	20

Typ:	Fehler


FRM-41215
FRM-41215:  Ungültiger Servername bzw. ungültige Job-ID.

Ursache:	Beim Decodieren des Rückgabewertes der vordefinierten Prozedur RUN_REPORT ist ein Problem aufgetreten.

Maßnahme:	Der Rückgabewert der vordefinierten Prozedur RUN_REPORT darf nicht geändert werden, bevor er an eine andere vordefinierte Bericht-Prozedur übergeben wird.

Schweregrad:	20

Typ:	Fehler


FRM-41216
FRM-41216:  Job kann nicht abgebrochen werden.

Ursache:	Beim Abbrechen eines Bericht-Jobs ist ein Problem aufgetreten.

Maßnahme:	Prüfen Sie den Report-Server, und stellen Sie sicher, daß der angegebene Job vorhanden ist.

Schweregrad:	20

Typ:	Fehler


FRM-41217
FRM-41217:  Job-Status für Bericht kann nicht abgerufen werden.

Ursache:	Beim Abrufen des Berichtstatus für einen bestimmten Berichtjob ist ein Problem aufgetreten.

Maßnahme:	Prüfen Sie den Report-Server, und stellen Sie sicher, daß der angegebene Job vorhanden ist.

Schweregrad:	20

Typ:	Fehler


FRM-41218
FRM-41218:  Berichtausgabe kann nicht kopiert werden.

Ursache:	Beim Kopieren der Berichtausgabe für einen bestimmten Berichtjob ist ein Problem aufgetreten.

Maßnahme:	Prüfen Sie den Report-Server, und stellen Sie sicher, daß die angegebene Ausgabedatei vorhanden ist.

Schweregrad:	20

Typ:	Fehler


FRM-41219
FRM-41219:  Bericht nicht gefunden: Ungültige ID.

Ursache:	Der Benutzer hat einen ungültigen Berichtobjektnamen angegeben.

Maßnahme:	Prüfen Sie die Form, und stellen Sie sicher, daß das Berichtobjekt vorhanden ist.

Schweregrad:	20

Typ:	Fehler


FRM-41300
FRM-41300:  Ungültiger Parameter für Set_Radio_Button_Property.

Ursache:	Sie haben einen nicht vorhandenen Parameter angegeben.

Maßnahme:	Prüfen Sie die Liste mit zulässigen Parametern.

Schweregrad:	99

Typ:	Fehler


FRM-41301
FRM-41301:  Ungültiger Parameter für Set_View_Property.

Ursache:	Sie haben einen nicht vorhandenen Parameter angegeben.

Maßnahme:	Prüfen Sie die Liste mit zulässigen Parametern.

Schweregrad:	99

Typ:	Fehler


FRM-41302
FRM-41302:  Ungültiger Parameter für Set_Canvas_Property.

Ursache:	Sie haben einen nicht vorhandenen Parameter angegeben.

Maßnahme:	Prüfen Sie die Liste mit zulässigen Parametern.

Schweregrad:	99

Typ:	Fehler


FRM-41303
FRM-41303:  Kein derartiges Attribut für Set_Window_Property.

Ursache:	Sie haben ein nicht vorhandenes Attribut angegeben.

Maßnahme:	Prüfen Sie die Liste mit zulässigen Attributen.

Schweregrad:	99

Typ:	Fehler


FRM-41304
FRM-41304:  Kein derartiges Attribut für Set_Block_Property.

Ursache:	Sie haben ein nicht vorhandenes Attribut angegeben.

Maßnahme:	Prüfen Sie die Liste mit zulässigen Attributen.

Schweregrad:	99

Typ:	Fehler


FRM-41305
FRM-41305:  Kein derartiges Attribut für Get_Block_Property.

Ursache:	Sie haben ein nicht vorhandenes Attribut angegeben.

Maßnahme:	Prüfen Sie die Liste mit zulässigen Attributen.

Schweregrad:	99

Typ:	Fehler


FRM-41306
FRM-41306:  Ungültiger Parameter für Set_Window_Property.

Ursache:	Sie haben einen ungültigen Parameter angegeben.

Maßnahme:	Prüfen Sie die Liste mit gültigen Parametern.

Schweregrad:	99

Typ:	Fehler


FRM-41307
FRM-41307:  Ungültiger Parameter für Set_Block_Property.

Ursache:	Sie haben einen ungültigen Parameter angegeben.

Maßnahme:	Prüfen Sie die Liste mit gültigen Parametern.

Schweregrad:	99

Typ:	Fehler


FRM-41308
FRM-41308:  Fehler bei der Aufhebung der Gruppenauswahl.

Ursache:	Sie haben versucht, die Auswahl eines Datensatzes oder einer Teilmenge von Datensätzen aufzuheben, die nicht ausgewählt waren oder nicht in der Datensatzgruppe stehen.

Maßnahme:	Prüfen Sie die Datensätze, die in der Gruppe erwartet werden.

Schweregrad:	20

Typ:	Fehler


FRM-41309
FRM-41309:  Kein derartiges Attribut für Get_Radio_Button_Property.

Ursache:	Sie haben ein ungültiges Attribut angegeben.

Maßnahme:	Prüfen Sie die Liste der gültigen Attribute.

Schweregrad:	99

Typ:	Fehler


FRM-41310
FRM-41310:  Kein derartiges Attribut für Set_Radio_Button_Property.

Ursache:	Sie haben ein ungültiges Attribut angegeben.

Maßnahme:	Prüfen Sie die Liste der gültigen Attribute.

Schweregrad:	99

Typ:	Fehler


FRM-41311
FRM-41311:  Ungültiges Argument oder Argumentreihenfolge für %s.

Ursache:	Sie haben eine ungültige Argumentliste angegeben.

Maßnahme:	Prüfen Sie die Liste der gültigen Argumente.

Schweregrad:	99

Typ:	Fehler


FRM-41312
FRM-41312:  Mindestens ein schreibbares Objekt muß sich im Block befinden.

Ursache:	Ein Block, bei dem das Attribut INSERT_ALLOWED oder UPDATE_ALLOWED auf True gesetzt ist, muß mindestens ein schreibbares Objekt enthalten. Sie haben versucht, das einzige verbleibende Basistabellenobjekt in dem Block zu einem nicht schreibbaren Objekt zu machen, indem Sie das Attribut DERIVED_COLUMN oder QUERY_ONLY auf True gesetzt haben.

Maßnahme:	Setzen Sie INSERT_ALLOWED oder UPDATE_ALLOWED für den Block auf False, anstatt DERIVED_COLUMN oder QUERY_ALLOWED für jedes Objekt auf False zu setzen.

Schweregrad:	10

Typ:	Informationsmeldung


FRM-41313
FRM-41313:  Kein derartiges Attribut für Set_Alert_Property.

Ursache:	Für SET_ALERT_PROPERTY wurde ein ungültiges Attribut angegeben.

Maßnahme:	Geben Sie ein gültiges Warnfenster-Attribut ein.

Schweregrad:	99

Typ:	Fehler


FRM-41314
FRM-41314:  Attribut 'Einfügen erlaubt' kann für aktuelles Objekt %s.%s nicht vergeben werden.

Ursache:	Sie haben versucht, das Attribut Einfügen erlaubt für ein Nicht-Anzeige-Objekt zu vergeben.

Maßnahme:	Das Attribut Einfügen erlaubt ist nur bei angezeigten Objekten gültig. Stellen Sie sicher, daß das Objekt angezeigt wird.

Schweregrad:	99

Typ:	Fehler


FRM-41315
FRM-41315:  'Einfügen erlaubt' nicht möglich bei einem Nicht-Anzeige-Objekt %s.%s.

Ursache:	Sie haben versucht, das Attribut Einfügen erlaubt für ein Nicht-Anzeige-Objekt zu vergeben.

Maßnahme:	Das Attribut Einfügen erlaubt ist nur bei angezeigten Objekten gültig. Stellen Sie sicher, daß das Objekt angezeigt wird.

Schweregrad:	99

Typ:	Fehler


FRM-41316
FRM-41316:  'Einfügen erlaubt' nicht möglich bei einem nicht aktiven Objekt %s.%s.

Ursache:	Sie haben versucht, das Attribut Einfügen erlaubt bei einem deaktivierten Objekt zu vergeben.

Maßnahme:	Das Attribut Einfügen erlaubt ist nur bei aktivierten Objekten gültig. Stellen Sie sicher, daß das Objekt aktiviert ist.

Schweregrad:	99

Typ:	Fehler


FRM-41317
FRM-41317:  Objekt ist keine Optionsschaltfläche %s.

Ursache:	Sie haben versucht, eine vordefinierte Prozedur für Optionsschaltflächen mit einem Objekt zu benutzen, bei dem es sich nicht um eine Optionsschaltfläche handelt.

Maßnahme:	Stellen Sie sicher, daß das Objekt eine Optionsschaltfläche ist.

Schweregrad:	99

Typ:	Fehler


FRM-41318
FRM-41318:  Objekt %s ist kein VBX-Objekt.

Ursache:	Sie haben versucht, eine vordefinierte VBX-Prozedur mit einem Objekt zu benutzen, bei dem es sich nicht um ein VBX-Objekt handelt.

Maßnahme:	Stellen Sie sicher, daß das Objekt ein VBX-Objekt ist.

Schweregrad:	5

Typ:	Informationsmeldung


FRM-41319
FRM-41319:  Ungültiges Attribut %s für VBX-Objekt %s angegeben.

Ursache:	Sie haben versucht, ein ungültiges Attribut für das angegebene VBX-Objekt einzulesen oder einzustellen.

Maßnahme:	Stellen Sie sicher, daß das Attribut für das angegebene VBX-Objekt gültig ist.

Schweregrad:	99

Typ:	Fehler


FRM-41320
FRM-41320:  Attribut %s für VBX-Objekt %s kann nicht eingelesen werden.

Ursache:	Das gültige Attribut für das VBX-Objekt kann nicht eingelesen werden.

Maßnahme:	Prüfen Sie die Liste mit zulässigen Attributen.

Schweregrad:	99

Typ:	Fehler


FRM-41321
FRM-41321:  Attribut %s für VBX-Objekt %s kann nicht festgelegt werden.

Ursache:	Das gültige Attribut für das VBX-Objekt konnte nicht festgelegt werden.

Maßnahme:	Prüfen Sie die Liste mit zulässigen Attributen.

Schweregrad:	99

Typ:	Fehler


FRM-41322
FRM-41322:  Ungültiges Ereignis %s für VBX-Objekt %s.

Ursache:	Sie haben versucht, ein ungültiges Ereignis für das angegebene VBX-Objekt einzulesen oder festzulegen.

Maßnahme:	Stellen Sie sicher, daß das Ereignis für das angegebene VBX-Objekt gültig ist.

Schweregrad:	99

Typ:	Fehler


FRM-41323
FRM-41323:  Zu viele Parameter für Ereignis %s für VBX-Objekt %s.

Ursache:	Sie haben zu viele Parameter für den Ereignisnamen für das VBX-Objekt angegeben.

Maßnahme:	Prüfen Sie, ob eine gültige Anzahl von Parametern für das Ereignis vorhanden ist.

Schweregrad:	99

Typ:	Fehler


FRM-41324
FRM-41324:  Zu wenige Parameter für Ereignis %s für VBX-Objekt %s.

Ursache:	Sie haben zu wenige Parameter für den Ereignisnamen für das VBX-Objekt angegeben.

Maßnahme:	Prüfen Sie, ob eine gültige Anzahl von Parametern für das Ereignis vorhanden ist.

Schweregrad:	99

Typ:	Fehler


FRM-41325
FRM-41325:  VBX-Ereignisparameter muß eine Zeichenfolge sein.

Ursache:	Bei dem VBX-Ereignisparameter handelt es sich nicht um eine Zeichenfolge.

Maßnahme:	Stellen Sie sicher, daß der VBX-Ereignisparameter eine Zeichenfolge ist.

Schweregrad:	99

Typ:	Fehler


FRM-41326
FRM-41326:  Ereignis %s konnte nicht an VBX-Objekt %s übergeben werden.

Ursache:	Das VBX-Ereignis konnte nicht erfolgreich ausgeführt werden.

Maßnahme:	Stellen Sie sicher, daß das Ereignis für das angegebene VBX-Objekt gültig ist.

Schweregrad:	99

Typ:	Fehler


FRM-41327
FRM-41327:  Standardattribut für VBX-Objekt %s kann nicht ermittelt werden.

Ursache:	Die vordefinierte Prozedur VBX.GET_VALUE_PROPERTY wurde nicht erfolgreich ausgeführt.

Maßnahme:	Stellen Sie sicher, daß dem Attribut für den VBX-Steuerelementwert ein Ausgangswert zugewiesen ist.

Schweregrad:	99

Typ:	Fehler


FRM-41328
FRM-41328:  Standardattribut für VBX-Objekt %s kann nicht festgelegt werden.

Ursache:	Die vordefinierte Prozedur VBX.SET_VALUE_PROPERTY konnte nicht erfolgreich ausgeführt werden.

Maßnahme:	Stellen Sie sicher, daß ein gültiges Wertattribut festgelegt wird.

Schweregrad:	99

Typ:	Fehler


FRM-41329
FRM-41329:  Objekt %s ist kein Listenobjekt.

Ursache:	Sie haben versucht, ein Listenelement zu einem Objekt hinzuzufügen, bei dem es sich nicht um eine Liste handelt.

Maßnahme:	Stellen Sie sicher, daß das Objekt ein Listenobjekt ist.

Schweregrad:	99

Typ:	Fehler


FRM-41330
FRM-41330:  Listenelement konnte nicht in %s eingefügt werden.

Ursache:	Sie haben versucht, ein Werteelement Andere in einen Block mit abgefragten oder geänderten Datensätze einzufügen.

Maßnahme:	Weitere Informationen finden Sie in dem Hilfetext zu den Einschränkungen bei ADD_LIST_ELEMENT .

Schweregrad:	99

Typ:	Fehler


FRM-41331
FRM-41331:  Element konnte nicht aus %s gelöscht werden.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

Sie haben versucht, das Werteelement Andere zu löschen, während der Block abgefragte oder geänderte Datensätze enthielt.

Sie haben versucht, ein Element aus einer Liste zu löschen, die kein Werteelement Andere enthielt, während der Block abgefragte oder geänderte Datensätze enthielt.

Maßnahme:	Weitere Informationen finden Sie in dem Hilfetext zu den Einschränkungen bei CLEAR_LIST  und  DELETE_LIST_ELEMENT .

Schweregrad:	99

Typ:	Fehler


FRM-41332
FRM-41332:  Listenelementindex außerhalb des Wertebereichs.

Ursache:	Nicht genügend Speicherplatz.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	99

Typ:	Fehler


FRM-41333
FRM-41333:  Wert des Listenelements konnte nicht konvertiert werden.

Ursache:	Der Wert des Listenelements konnte nicht in eine Zeichenfolge konvertiert werden.

Maßnahme:	Stellen Sie sicher, daß das Listenelement eine Zeichenfolge darstellt.

Schweregrad:	99

Typ:	Fehler


FRM-41334
FRM-41334:  Ungültige Datensatzgruppe für Liste.

Ursache:	Sie haben versucht, eine Liste aus einer Datensatzgruppe aufzufüllen, die nicht vorhanden ist.

Maßnahme:	Stellen Sie sicher, daß die Datensatzgruppe vorhanden ist.

Schweregrad:	99

Typ:	Fehler


FRM-41335
FRM-41335:  Populate_List: Ungültiger Spaltentyp für Spalte 1.

Ursache:	Sie haben versucht, eine Liste aus einer Datensatzgruppe aufzufüllen, die nicht vorhanden ist.

Maßnahme:	Stellen Sie sicher, daß die Datensatzgruppe vorhanden ist.

Schweregrad:	99

Typ:	Fehler


FRM-41336
FRM-41336:  Populate_List: Ungültiger Spaltentyp für Spalte 2.

Ursache:	Die Datensatzgruppe enthält keine Spalte desselben Typs.

Maßnahme:	Stellen Sie sicher, daß die Datensatzgruppe eine Spalte desselben Typs enthält.

Schweregrad:	99

Typ:	Fehler


FRM-41337
FRM-41337:  Aus Datensatzgruppe kann die Liste nicht gefüllt werden.

Ursache:	Die Datensatzgruppe ist ungültig, oder das Listenobjekt entspricht den Anforderungen für das Löschen und Hinzufügen von Elementen nicht.

Maßnahme:	Stellen Sie sicher, daß die Datensatzgruppe gültig ist. Weitere Informationen über das Löschen und Hinzufügen von Listenelementen finden Sie in dem Hilfetext zu den Einschränkungen bei DELETE_LIST_ELEMENT  und  ADD_LIST_ELEMENT .

Schweregrad:	99

Typ:	Fehler


FRM-41338
FRM-41338:  Liste kann nicht in Datensatzgruppe abgerufen werden.

Ursache:	Die Datensatzgruppe ist ungültig.

Maßnahme:	Stellen Sie sicher, daß die Datensatzgruppe gültig ist.

Schweregrad:	99

Typ:	Fehler


FRM-41339
FRM-41339:  Daten können nicht aus Liste entfernt werden.

Ursache:	Nicht genügend Speicherplatz.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	99

Typ:	Fehler


FRM-41340
FRM-41340:  Kein derartiges Attribut oder derartiger Wert für Set_Application_Property.

Ursache:	Sie haben ein ungültiges Attribut und/oder einen ungültigen Wert für ein Attribut angegeben.

Maßnahme:	Geben Sie ein gültiges Attribut und/oder einen gültigen Wert an.

Schweregrad:	99

Typ:	Fehler


FRM-41341
FRM-41341:  Ungültiger Cursortyp %s angegeben.

Ursache:	Es gibt eine vordefinierte Gruppe von Cursortypen, und ein ungültiger Cursortyp wurde eingegeben.

Maßnahme:	Geben Sie einen gültigen Cursortyp an.

Schweregrad:	99

Typ:	Fehler


FRM-41342
FRM-41342:  Ungültiger Parameter %s für VBX-Ereignis %s angegeben.

Ursache:	Sie haben einen ungültigen Parameter für ein VBX-Ereignis angegeben.

Maßnahme:	Prüfen Sie den Parametertyp.

Schweregrad:	99

Typ:	Fehler


FRM-41343
FRM-41343:  Objekt %s ist kein OLE-Objekt.

Ursache:	Sie haben ein ungültiges Objekt an eine vordefinierte OLE-Prozedur übergeben.

Maßnahme:	Geben Sie ein gültiges OLE-Objekt an.

Schweregrad:	99

Typ:	Fehler


FRM-41344
FRM-41344:  OLE-Objekt nicht definiert für %s im aktuellen Datensatz.

Ursache:	Ein leerer OLE-Container wurde definiert.

Maßnahme:	Definieren Sie ein OLE-Objekt, das in dem OLE-Container gespeichert ist.

Schweregrad:	20

Typ:	Fehler


FRM-41345
FRM-41345:  Verb %s für diesen Server nicht gefunden.

Ursache:	Sie haben ein ungültiges OLE-Verb angegeben.

Maßnahme:	Geben Sie ein gültiges OLE-Verb an.

Schweregrad:	99

Typ:	Fehler


FRM-41346
FRM-41346:  Verbenzähler für OLE-Objekt %s kann nicht festgelegt werden.

Ursache:	Keine Kommunikation mit dem OLE-Server.

Maßnahme:	Installieren Sie den OLE-Server neu.

Schweregrad:	99

Typ:	Fehler


FRM-41347
FRM-41347:  Ungültiger Verbindex für OLE-Objekt  %s.

Ursache:	Sie haben einen Index angegeben, der größer ist als der Verbzähler.

Maßnahme:	Prüfen Sie den Indexwert.

Schweregrad:	99

Typ:	Fehler


FRM-41348
FRM-41348:  OLE-Serverfehler:  %s.

Ursache:	OLE-Server hat einen Fehler festgestellt.

Maßnahme:	Versuchen Sie, den Fehler aufgrund der Meldung vom OLE-Server zu beheben.

Schweregrad:	99

Typ:	Fehler


FRM-41349
FRM-41349:  OLE-Objekt %s kann Verb nicht ausführen; Verb-ID %d.

Ursache:	Das OLE-Objekt kann das Verb nicht erkennen.

Maßnahme:	Versuchen Sie, ein anderes Verb auszuführen.

Schweregrad:	99

Typ:	Fehler


FRM-41350
FRM-41350:  OLE-Objekt wird momentan nicht angezeigt.

Ursache:	Sie haben versucht, einen Server zu schließen, der nicht läuft.

Maßnahme:	Fragen Sie, ob der Server in einem Datensatz aktiv ist, der im Augenblick nicht aktiv ist.

Schweregrad:	99

Typ:	Fehler


FRM-41351
FRM-41351:  Kann nicht aus der aktuellen Form navigieren.

Ursache:	Sie können nicht zu einer inaktiven Form navigieren.

Maßnahme:	Stellen Sie sicher, daß die Form, zu der Sie navigieren möchten, aktiv ist.

Schweregrad:	99

Typ:	Fehler


FRM-41352
FRM-41352:  Neue Sitzung konnte nicht erstellt werden.

Ursache:	Sie haben versucht, eine neue Form mit einer neuen Sitzung zu öffnen.

Maßnahme:	Prüfen Sie den Datenbank-Server.

Schweregrad:	99

Typ:	Fehler


FRM-41353
FRM-41353:  Weitere Form kann nicht aufgerufen werden.

Ursache:	Sie haben versucht, aus einer unabhängigen Form eine Form aufzurufen.

Maßnahme:	Stellen Sie sicher, daß Sie sich beim Aufrufen der Form nicht in einer unabhängigen Form befinden.

Schweregrad:	99

Typ:	Fehler


FRM-41354
FRM-41354:  Form %s kann nicht geschlossen werden.

Ursache:	Nicht erfolgreicher Versuch, eine Form zu schließen.

Maßnahme:	Prüfen Sie, ob die Form geöffnet ist.

Schweregrad:	99

Typ:	Fehler


FRM-41355
FRM-41355:  Kann nicht zu Form %s navigieren.

Ursache:	Sie können nicht zu einer inaktiven Form navigieren.

Maßnahme:	Stellen Sie sicher, daß Sie zu einer aktiven Form navigieren.

Schweregrad:	99

Typ:	Fehler


FRM-41356
FRM-41356:  Ungültige Methode %s für VBX-Objekt %s.

Ursache:	Sie haben einen ungültigen Methodennamen für das VBX-Objekt angegeben.

Maßnahme:	Geben Sie einen gültigen Methodennamen für das VBX-Objekt an.

Schweregrad:	99

Typ:	Fehler


FRM-41357
FRM-41357:  Falsche Anzahl von Argumenten für Methode %s bei VBX-Objekt %s.

Ursache:	Sie haben eine falsche Anzahl von Argumenten für die Methode bei dem VBX-Objekt angegeben.

Maßnahme:	Vergewissern Sie sich, daß die Anzahl von Argumenten den Anforderungen des VBX-Objekts entspricht.

Schweregrad:	99

Typ:	Fehler


FRM-41358
FRM-41358:  Methode %s bei VBX-Objekt %s gescheitert.

Ursache:	Sie haben einen ungültigen Methodennamen für das VBX-Objekt angegeben.

Maßnahme:	Geben Sie einen gültigen Methodennamen für das VBX-Objekt an.

Schweregrad:	5

Typ:	Informationsmeldung


FRM-41359
FRM-41359:  Sitzungsparameter Open_Form nicht aktiviert. Neue Sitzung kann nicht angelegt werden.

Ursache:	Die Funktion für Mehrfachsitzungen ist bei der Datenbank nicht aktiviert.

Maßnahme:	Der Sitzungsparameter Open_Form kann nur für eine Datenbank benutzt werden, bei der Mehrfachsitzungen aktiviert sind.

Schweregrad:	99

Typ:	Fehler


FRM-41360
FRM-41360:  Ungültiger Set_Window_Property-Wert für Fenster %s.

Ursache:	Bei dem Versuch, ein Fensterattribut einzustellen, haben Sie einen ungültigen Wert benutzt.

Maßnahme:	Geben Sie einen gültigen Wert für das Fensterattribut ein.

Schweregrad:	99

Typ:	Fehler


FRM-41361
FRM-41361:  Im Abfragemodus kann nicht aus der aktuellen Form navigiert werden.

Ursache:	Sie befinden sich im Abfragemodus und haben versucht, mit Öffnen Form zu einer anderen Form zu navigieren.

Maßnahme:	Beenden Sie den Abfragemodus, und wiederholen Sie den Versuch.

Schweregrad:	10

Typ:	Fehler


FRM-41362
FRM-41362:  Kein derartiges Attribut für Set_Alert_Button_Property.

Ursache:	Sie haben ein ungültiges Attribut für Set_Alert_Button_Property angegeben.

Maßnahme:	Geben Sie ein gültiges Attribut für Set_Alert_Button_Property an.

Schweregrad:	99

Typ:	Fehler


FRM-41363
FRM-41363:  Kein derartiges Attribut für Set_LOV_Column_Property.

Ursache:	Sie haben ein ungültiges Attribut für Set_LOV_Column_Property angegeben.

Maßnahme:	Geben Sie ein gültiges Attribut für Set_LOV_Column_Property an.

Schweregrad:	99

Typ:	Fehler


FRM-41364
FRM-41364:  Ungültige Spaltennummer für Werteliste %s angegeben.

Ursache:	Sie haben eine ungültige Spaltennummer für die Werteliste angegeben.

Maßnahme:	Geben Sie eine gültige Spaltennummer für die Werteliste an.

Schweregrad:	99

Typ:	Fehler


FRM-41365
FRM-41365:  Kein derartiges Attribut für Set_TabPage_Property.

Ursache:	Sie haben ein ungültiges Attribut für Set_TabPage_Property angegeben.

Maßnahme:	Geben Sie ein gültiges Attribut für Set_TabPage_Property an.

Schweregrad:	99

Typ:	Fehler


FRM-41366
FRM-41366:  Kein derartiges Attribut für Get_TabPage_Property.

Ursache:	Sie haben einen ungültigen Attributparameter angegeben.

Maßnahme:	Prüfen Sie die Liste der gültigen Attribute.

Schweregrad:	99

Typ:	Fehler


FRM-41367
FRM-41367:  TabPage nicht gefunden: Ungültige ID.

Ursache:	Eine ungültige ID wurde an die vordefinierte Prozedur übergeben.

Maßnahme:	Prüfen Sie, ob ein korrekter Aufruf von FIND_TABPAGE ausgeführt wird.

Schweregrad:	99

Typ:	Fehler


FRM-41368
FRM-41368:  Ungültiger Parameter für Set_TabPage_Property verwendet.

Ursache:	Sie haben einen ungültigen Parameter angegeben.

Maßnahme:	Prüfen Sie die Liste mit gültigen Parametern.

Schweregrad:	99

Typ:	Fehler


FRM-41369
FRM-41369:  Kann keinen zweiten Datensatz in Block für einen einzigen Datensatz einfügen.

Ursache:	Sie (oder die Anwendung) haben versucht, einen zweiten Datensatz in einen Block einzufügen, dessen Attribut SINGLE_RECORD auf TRUE gesetzt ist.

Maßnahme:	Versuchen Sie nicht, einen Datensatz in einen derartigen Block einzufügen.

Schweregrad:	99

Typ:	Fehler


FRM-41370
FRM-41370:  Berechnetes Objekt %s.%s kann nicht geändert werden.

Ursache:	Entwicklungsfehler in der Anwendung. Die Anwendung hat versucht, einem berechneten Objekt einen Wert zuzuweisen.

Maßnahme:	Wenn es sich bei dem berechneten Objekt um ein Formelobjekt handelt, bestimmt immer die Formel den Wert. Möglicherweise muß die Formel geändert werden. Sie können aber auch das berechnete Objekt in ein nicht berechnetes Steuerelement ändern, dessen Wert in verschiedenen Triggern bestimmt wird.

Schweregrad:	99

Typ:	Fehler


FRM-41371
FRM-41371:  Attribut INSERT_ALLOWED von berechnetem Objekt %s.%s kann nicht eingestellt werden.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur SET_ITEM_PROPERTY oder SET_ITEM_INSTANCE_PROPERTY hat versucht, das Attribut INSERT_ALLOWED eines berechneten Objekts auf TRUE zu setzen.

Maßnahme:	Der Aufruf der vordefinierten Prozedur muß geändert oder entfernt werden.

Schweregrad:	99

Typ:	Fehler


FRM-41372
FRM-41372:  Attribut ITEM_IS_VALID von berechnetem Objekt %s.%s kann nicht eingestellt werden.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur SET_ITEM_PROPERTY hat versucht, das Attribut ITEM_IS_VALID eines berechneten Objekts auf FALSE zu setzen.

Maßnahme:	Der Aufruf der vordefinierten Prozedur muß geändert oder entfernt werden.

Schweregrad:	99

Typ:	Fehler


FRM-41373
FRM-41373:  Attribut LOCK_RECORD von berechnetem Objekt %s.%s kann nicht eingestellt werden.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur SET_ITEM_PROPERTY hat versucht, das Attribut LOCK_RECORD eines berechneten Objekts auf TRUE zu setzen.

Maßnahme:	Der Aufruf der vordefinierten Prozedur muß geändert oder entfernt werden.

Schweregrad:	99

Typ:	Fehler


FRM-41374
FRM-41374:  Attribut PRIMARY_KEY von berechnetem Objekt %s.%s kann nicht eingestellt werden.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur SET_ITEM_PROPERTY hat versucht, das Attribut PRIMARY_KEY eines berechneten Objekts auf TRUE zu setzen.

Maßnahme:	Der Aufruf der vordefinierten Prozedur muß geändert oder entfernt werden.

Schweregrad:	99

Typ:	Fehler


FRM-41375
FRM-41375:  Attribut QUERYABLE von berechnetem Objekt %s.%s kann nicht eingestellt werden.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur SET_ITEM_PROPERTY hat versucht, das Attribut QUERYABLE eines berechneten Objekts auf TRUE zu setzen.

Maßnahme:	Der Aufruf der vordefinierten Prozedur muß geändert oder entfernt werden.

Schweregrad:	99

Typ:	Fehler


FRM-41376
FRM-41376:  Attribut REQUIRED von berechnetem Objekt %s.%s kann nicht eingestellt werden.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur SET_ITEM_PROPERTY oder SET_ITEM_INSTANCE_PROPERTY hat versucht, das Attribut REQUIRED eines berechneten Objekts auf TRUE zu setzen.

Maßnahme:	Der Aufruf der vordefinierten Prozedur muß geändert oder entfernt werden.

Schweregrad:	99

Typ:	Fehler


FRM-41377
FRM-41377:  Attribut UPDATEABLE von berechnetem Objekt %s.%s kann nicht eingestellt werden.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur SET_ITEM_PROPERTY oder SET_ITEM_INSTANCE_PROPERTY hat versucht, das Attribut UPDATEABLE eines berechneten Objekts auf TRUE zu setzen.

Maßnahme:	Der Aufruf der vordefinierten Prozedur muß geändert oder entfernt werden.

Schweregrad:	99

Typ:	Fehler


FRM-41378
FRM-41378:  Attribut UPDATE_NULL von berechnetem Objekt %s.%s kann nicht eingestellt werden.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur SET_ITEM_PROPERTY hat versucht, das Attribut UPDATE_NULL eines berechneten Objekts auf TRUE zu setzen.

Maßnahme:	Der Aufruf der vordefinierten Prozedur muß geändert oder entfernt werden.

Schweregrad:	99

Typ:	Fehler


FRM-41379
FRM-41379:  Nicht-Formel-Objekt %s.%s kann nicht neu berechnet werden.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur RECALCULATE hat ein Objekt angegeben, bei dem es sich nicht um ein Formelobjekt handelt.

Maßnahme:	Der Aufruf der vordefinierten Prozedur muß geändert oder entfernt werden.

Schweregrad:	99

Typ:	Fehler


FRM-41380
FRM-41380:  Abfragedatenquelle der Blöcke kann nicht gesetzt werden.

Ursache:	Der Benutzer hat versucht, die Datenquelle der Blöcke dynamisch zu ändern. Dies war nicht erfolgreich.

Maßnahme:	Prüfen Sie die Form, und stellen Sie sicher, daß es sich bei dem angegebenen Block nicht um einen Steuerblock handelt und daß der Blockstatus neu ist.

Schweregrad:	20

Typ:	Fehler


FRM-41381
FRM-41381:  DML-Zieldatenquelle der Blöcke kann nicht gesetzt werden.

Ursache:	Der Benutzer hat versucht, das DML-Datenziel des Blocks dynamisch zu ändern. Dies war nicht erfolgreich.

Maßnahme:	Prüfen Sie die Form, und stellen Sie sicher, daß es sich bei dem angegebenen Block nicht um einen Steuerblock handelt und daß der Blockstatus neu ist.

Schweregrad:	20

Typ:	Fehler


FRM-41382
FRM-41382:  Kein derartiges Attribut für Get_Item_Instance_Property.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur GET_ITEM_INSTANCE_PROPERTY hat ein ungültiges Attribut angegeben.

Maßnahme:	Das Attribut muß in BORDER_BEVEL, INSERT_ALLOWED, NAVIGABLE, REQUIRED, UPDATEABLE oder VISUAL_ATTRIBUTE geändert werden. Sonst muß der Aufruf der vordefinierten Prozedur entfernt werden.

Schweregrad:	99

Typ:	Fehler


FRM-41383
FRM-41383:  Kein derartiges Attribut für Set_Item_Instance_Property.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur SET_ITEM_INSTANCE_PROPERTY hat ein ungültiges Attribut angegeben.

Maßnahme:	Das Attribut muß in BORDER_BEVEL, INSERT_ALLOWED, NAVIGABLE, REQUIRED, UPDATEABLE oder VISUAL_ATTRIBUTE geändert werden. Sonst muß der Aufruf der vordefinierten Prozedur entfernt werden.

Schweregrad:	99

Typ:	Fehler


FRM-41384
FRM-41384:  Ungültiger Parameter für Set_Item_Instance_Property benutzt.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur SET_ITEM_INSTANCE_PROPERTY hat einen ungültigen Wert für ein Attribut angegeben.

Maßnahme:	Der Aufruf der vordefinierten Prozedur muß geändert oder entfernt werden.

Schweregrad:	99

Typ:	Fehler


FRM-41385
FRM-41385:  Max. Anzahl abgefragter Datensätze überschritten.

Ursache:	Die vom Benutzer angegebene Höchstzahl von Datensätzen für einen bestimmten Block ist erreicht.

Maßnahme:	Prüfen Sie die Block- und Ebenenattribute der Form.

Schweregrad:	99

Typ:	Informationsmeldung


FRM-41386
FRM-41386:  VISIBLE-Attribut von Register mit aktuellem Objekt kann nicht gesetzt werden.

Ursache:	Sie haben versucht, das Attribut Visible für das Register zu setzen, das das aktuelle Objekt enthält.

Maßnahme:	Das Attribut Visible ist nur für Register gültig, die das aktuelle Objekt nicht enthalten.

Navigieren Sie zuerst zu einem Objekt in einem anderen Register oder einer anderen Leinwand.

Schweregrad:	99

Typ:	Fehler


FRM-41387
FRM-41387:  VISIBLE-Attribut von letztem Register zur Eingabe kann nicht gesetzt werden.

Ursache:	Sie haben versucht, das Attribut Visible für das einzige Eingaberegister auf der Leinwand zu setzen.

Maßnahme:	Stellen Sie sicher, daß mindestens ein weiteres Eingaberegister auf der Leinwand vorhanden ist, bevor Sie versuchen, das Attribut Visible zu setzen.

Schweregrad:	99

Typ:	Fehler


FRM-41388
FRM-41388:  ENABLED-Attribut von Register mit aktuellem Objekt kann nicht gesetzt werden.

Ursache:	Sie haben versucht, das Attribut Enabled für das Register zu setzen, das das aktuelle Objekt enthält.

Maßnahme:	Das Attribut ist nur für Register gültig, die das aktuelle Objekt nicht enthalten.

Navigieren Sie zuerst zu einem Objekt in einem anderen Register oder einer anderen Leinwand.

Schweregrad:	99

Typ:	Fehler


FRM-41389
FRM-41389:  ENABLED-Attribut von letztem Eingaberegister kann nicht gesetzt werden.

Ursache:	Sie haben versucht, das Attribut Enabled für das einzige Eingaberegister auf der Leinwand zu setzen.

Maßnahme:	Prüfen Sie, ob mindestens ein weiteres Register zur Eingabe auf der Leinwand vorhanden ist, bevor Sie versuchen, das Attribut Enabled zu setzen.

Schweregrad:	99

Typ:	Fehler


FRM-41390
FRM-41390: Attribut OBLIGATORISCH eines untergeordneten Spiegelobjekts %s.%s kann nicht eingestellt werden.

Ursache:	Fehler bei der Anwendungsentwicklung.  Eine vordefinierte Prozedur SET_ITEM_PROPERTY oder SET_ITEM_INSTANCE_PROPERTY hat versucht, das Attribut Obligatorisch eines untergeordneten Spiegelobjekts einzustellen. Da der Laufzeit-Kompatibilitätsmodus der Form 5.0 ist, wird das Attribut Obligatorisch von dem übergeordneten Spiegelobjekt abgerufen (dem Objekt, das mit dem Attribut Mit Objekt synchronisieren angegeben wird).

Maßnahme:	Stellen Sie das Attribut Obligatorisch des übergeordneten Spiegelobjekts ein.

Schweregrad:	25

Typ:	Fehler


FRM-41391
FRM-41391: Visuelles Attribut nicht gefunden: ungültige ID.

Ursache:	Eine ungültige ID wurde an die vordefinierte Prozedur übergeben.

Maßnahme:	Prüfen Sie, ob Find_VA korrekt aufgerufen wird.

Schweregrad:	99

Typ:	Fehler


FRM-41392
FRM-41392: Kein derartiges Attribut für Get_VA_Property.

Ursache:	Sie haben versucht, ein nicht vorhandenes visuelles Attribut einzulesen.

Maßnahme:	Prüfen Sie den Aufruf von Get_VA_Property auf ein gültiges Attribut.

Schweregrad:	99

Typ:	Fehler


FRM-41393
FRM-41393: Kein derartiges Attribut für Set_VA_Property.

Ursache:	Sie haben versucht, ein ungültiges visuelles Attribut festzulegen.

Maßnahme:	Lesen Sie in der Dokumentation nach, wie visuelle Attribute festgelegt werden, und wiederholen Sie den Versuch..

Schweregrad:	99

Typ:	Fehler


FRM-41394
FRM-41394: Ungültiger Parameterwert für Set_VA_Property benutzt.

Ursache:	Sie haben versucht, einen ungültigen Wert für ein visuelles Attribut festzulegen.

Maßnahme:	Lesen Sie in der Dokumentation nach, wie visuelle Attribute festgelegt werden, und wiederholen Sie den Versuch..

Schweregrad:	99

Typ:	Fehler


FRM-41395
FRM-41395: Ungültiger Parameter für Set_Report_Object_Property benutzt.

Ursache:	Sie haben einen nicht vorhandenen Parameter angegeben.

Maßnahme:	Prüfen Sie die Liste mit zulässigen Parametern.

Schweregrad:	99

Typ:	Fehler


FRM-41396
FRM-41396: Kein derartiges Attribut für Get/Set_Report_Object_Property.

Ursache:	Sie haben ein nicht vorhandenes Attribut angegeben.

Maßnahme:	Prüfen Sie die Liste mit zulässigen Attributen.

Schweregrad:	99

Typ:	Fehler


FRM-41397
FRM-41397: Ungültiger Parameterwert für Set_Graphics_Property benutzt.

Ursache:	Sie haben versucht, einen ungültigen Wert für ein Grafikattribut festzulegen.

Maßnahme:	Lesen Sie in der Dokumentation nach, wie Grafikattribute festgelegt werden, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-41398
FRM-41398: Objekttext kann in Set_Graphics_Property nicht festgelegt werden.

Ursache:	Fehler bei dem Versuch, den Text eines Grafikobjekts festzulegen.

Maßnahme:	Prüfen Sie, ob genügend Speicherplatz vorhanden ist.

Maßnahme:	Wenn genügend Speicherplatz vorhanden ist, ist die Form möglicherweise beschädigt.

Schweregrad:	99

Typ:	Fehler


FRM-41399
FRM-41399: Nur der Text für ein Grafikobjekt vom Typ Text oder Rahmen kann festgelegt werden.

Ursache:	Sie haben versucht, den Text eines Grafikobjekts festzulegen, bei dem es sich nicht um ein Textobjekt handelt.

Maßnahme:	Prüfen Sie, ob Sie das richtige Grafikobjekt angegeben haben, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-41400
FRM-41400: Kein derartiges Attribut für Set_Graphics_Property.

Ursache:	Sie haben versucht, ein ungültiges Grafikattribut festzulegen.

Maßnahme:	Lesen Sie in der Dokumentation nach, wie Grafikattribute festgelegt werden, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-41401
FRM-41401: Kein derartiges Attribut für Get_Graphics_Property.

Ursache:	Sie haben versucht, ein nicht vorhandenes Grafikttribut einzulesen.

Maßnahme:	Prüfen Sie den Aufruf von Get_Graphics_Property auf ein gültiges Attribut.

Schweregrad:	99

Typ:	Fehler


FRM-41402
FRM-41402: Ungültiger visueller Attributtyp an Set_<object>_Property übergeben.

Ursache:	Sie haben versucht, für ein visuelles Attribut eines Objekts ein VA des falschen Typs einzustellen.

Maßnahme:	Prüfen Sie die VA-Typen im Entwickler, und geben Sie ein gültiges VA für dieses Objekt an.

Schweregrad:	99

Typ:	Fehler


FRM-41800
FRM-41800:  Für dieses Feld ist keine Werteliste verfügbar.

Ursache:	Sie haben [Auflisten] gedrückt, die Form enthält jedoch keine Werteliste für dieses Feld.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	10

Typ:	Informationsmeldung


FRM-41801
FRM-41801:  Letzter abgerufener Wert.

Ursache:	Sie haben [Auflisten] und danach [Nächstes Objekt] gedrückt, nachdem der letzte Wert in der Liste angezeigt wurde.

Maßnahme:	Geben Sie einen Objektwert ein, oder drücken Sie [Auflisten] erneut, um die Liste mit möglichen Werten anzuzeigen.

Schweregrad:	10

Typ:	Informationsmeldung


FRM-41802
FRM-41802:  Datensatz-Duplikationsfunktion nur für neue Datensätze erlaubt.

Ursache:	Sie haben [Datensatz duplizieren] gedrückt, der aktuelle Datensatz ist jedoch der Datensatz, der aus der Datenbank abgerufen wurde.

Maßnahme:	Keine Maßnahme erforderlich. Sie können [Datensatz duplizieren] nur beim Erstellen eines neuen Datensatzes benutzen.

Schweregrad:	10

Typ:	Fehler


FRM-41803
FRM-41803:  Kein vorheriger Datensatz vorhanden, von dem kopiert werden kann.

Ursache:	Sie haben [Objekt duplizieren] oder [Datensatz duplizieren] gedrückt, der aktuelle Datensatz ist jedoch der erste Datensatz in dem Block.

Maßnahme:	Keine Maßnahme erforderlich. [Objekt duplizieren] und [Datensatz duplizieren] sind in diesem Kontext bedeutungslos.

Schweregrad:	10

Typ:	Fehler


FRM-41804
FRM-41804:  Variable wurde nicht eingegeben: %.30s.

Ursache:	Ihre Antwort auf das Warnfenster Abfrage wo enthielt einen Platzhalter, der in keinem der Abfrageobjekte benutzt wird.

Maßnahme:	Korrigieren Sie den Platzhalter in Ihrer Antwort, oder definieren Sie ihn in einem der Abfrageobjekte. Danach führen Sie die Abfrage erneut aus.

Schweregrad:	>25

Typ:	Fehler


FRM-41805
FRM-41805:  Kein eindeutiger Objektname: %s.

Ursache:	Entwicklungsfehler in der Anwendung. Kein eindeutiger Objektname.

Maßnahme:

Schweregrad:	>25

Typ:	Fehler


FRM-41806
FRM-41806:  Es wurden zu viele Variablen verwendet.

Ursache:	Sie haben mehr als 25 Substitutionsvariablen in der Abfrage benutzt.

Maßnahme:	Reduzieren Sie die Anzahl von Substitutionsvariablen, und führen Sie die Abfrage erneut aus.

Schweregrad:	>25

Typ:	Fehler


FRM-41809
FRM-41809:  Fehler beim Initialisieren des Menüs.

Ursache:	Sie haben versucht, die Menükomponente aus Form Builder zu verwenden, und ein interner Fehler ist aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-41810
FRM-41810:  Fehler beim Erstellen des Menüs.

Ursache:	Sie haben versucht, die Menükomponente aus Form Builder zu verwenden, und ein interner Fehler ist aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-41811
FRM-41811:  Fehler beim Entfernen von Menü.

Ursache:	Sie haben versucht, Menüs aus Form Builder zu verwenden, und ein interner Menüfehler ist aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-41812
FRM-41812:  Fehler beim Zurücksetzen von Menü.

Ursache:	Sie haben versucht, die Menükomponente aus Form Builder zu verwenden, und ein interner Fehler ist aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-41813
FRM-41813:  Die Form wurde im Debug-Modus beendet.

Ursache:	Sie haben die Option Exit Oracle Forms Runtime im Menü Break Processing ausgewählt.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	>25

Typ:	Working


FRM-41814
FRM-41814:  Ungültige Seitenposition.

Ursache:	Entwicklungsfehler in der Anwendung. Ein Trigger hat versucht, eine Ansicht auf eine Seite zu verschieben bzw. eine Ansicht zu skalieren, wodurch die ganze oder ein Teil der Ansicht nicht mehr auf dem Bildschirm angezeigt würde.

Maßnahme:	Korrigieren Sie die Anweisung.

Schweregrad:	>25

Typ:	Fehler


FRM-41815
FRM-41815:  Kein derartiges Attribut für Get_LOV_Property.

Ursache:	Sie haben versucht, ein nicht vorhandenes Wertelistenattribut einzulesen.

Maßnahme:	Prüfen Sie die gültigen Wertelistenattribute, und wiederholen Sie den Versuch.

Schweregrad:	>25

Typ:	Fehler


FRM-41816
FRM-41816:  Es wurde versucht, den bestehenden Timer %s zu erstellen.

Ursache:	Sie haben versucht, einen Timer zu erstellen, der schon vorhanden ist.

Maßnahme:	Löschen oder ändern Sie den bestehenden Timer, bevor Sie einen neuen Timer erstellen.

Schweregrad:	>25

Typ:	Fehler


FRM-41817
FRM-41817:  Timer %s ist nicht vorhanden.

Ursache:	Sie haben versucht, einen nicht vorhandenen Timer zu ändern oder zu löschen.

Maßnahme:	Prüfen Sie die vordefinierte Prozedur auf richtige Argumente.

Schweregrad:	>25

Typ:	Fehler


FRM-41818
FRM-41818:  Toolkit konnte den Timer %s nicht erstellen: Möglicherweise kein Speicherplatz mehr.

Ursache:	Bei dem Versuch, einen Timer zu erstellen, ist ein interner Fehler aufgetreten, wahrscheinlich, weil kein Speicherplatz mehr vorhanden ist.

Maßnahme:	Überprüfen und ändern Sie die Speicherquoten nach Bedarf.

Schweregrad:	>25

Typ:	Fehler


FRM-41819
FRM-41819:  Timer werden in dieser Umgebung nicht unterstützt.

Ursache:	Unzulässiger Versuch, einen Timer auf einer Plattform zu erstellen, auf der keine Timer unterstützt werden.

Maßnahme:	Keine. Eine Timer-Option ist bei Ihrer Plattform nicht verfügbar.

Schweregrad:	>25

Typ:	Fehler


FRM-41820
FRM-41820:  Toolkit konnte Timer %s nicht löschen.

Ursache:	Interner Fehler, verursacht durch einen Timer-Fehler.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	>25

Typ:	Fehler


FRM-41821
FRM-41821:  Timer-Name %s ist zu lang.

Ursache:	Sie haben versucht, einen Timer mit einem Namen zu erstellen, der mehr als 30 Byte umfaßt.

Maßnahme:	Wiederholen Sie den Versuch mit einem kürzeren Namen.

Schweregrad:	>25

Typ:	Fehler


FRM-41822
FRM-41822:  Timer-Name darf nicht Null sein.

Ursache:	Sie haben versucht, einen Timer mit einem Null-Namen zu erstellen.

Maßnahme:	Wiederholen Sie den Versuch mit einem anderen Namen als Null.

Schweregrad:	>25

Typ:	Fehler


FRM-41823
FRM-41823:  Unzulässiges Intervall für Timer %s.

Ursache:	Sie haben versucht, einen Timer mit einem Intervall von weniger als 1 ms zu erstellen.

Maßnahme:	Erstellen Sie den Timer mit einem Intervall von mindestens 1 ms neu.

Schweregrad:	>25

Typ:	Fehler


FRM-41824
FRM-41824:  Datum-/Uhrzeitbefehl für %s nicht erfolgreich.

Ursache:	Ein interner Fehler ist aufgetreten, während versucht wurde, einen Datums-/Zeit-Ausgangswert für ein Objekt aufzulösen.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	10

Typ:	Fehler


FRM-41825
FRM-41825:  Kein derartiges Attribut für Get_LOV_Property.

Ursache:	Sie haben versucht, ein nicht vorhandenes Wertelistenattribut einzulesen.

Maßnahme:	Prüfen Sie die gültigen Wertelistenattribute, und wiederholen Sie den Versuch.

Schweregrad:	>25

Typ:	Fehler


FRM-41826
FRM-41826:  Gruppe kann nicht ersetzt werden: Spalten entsprechen nicht der Werteliste.

Ursache:	Die aktuelle Datensatzgruppe der Werteliste kann nicht durch eine Datensatzgruppe ersetzt werden, die mit der Spaltenstruktur der Werteliste nicht kompatibel ist.

Maßnahme:	Versuchen Sie nicht, diese Datensatzgruppe der Werteliste zuzuweisen.

Schweregrad:	>25

Typ:	Fehler


FRM-41827
FRM-41827:  Gruppe ist nicht vorhanden.

Ursache:	Der Gruppenname oder die angegebene ID ist ungültig.

Maßnahme:	Prüfen Sie den eingegebenen Namen oder die eingegebene ID, und wiederholen Sie den Versuch.

Schweregrad:	>25

Typ:	Fehler


FRM-41828
FRM-41828:  Werteliste ist nicht vorhanden.

Ursache:	Der angegebene Wertelistenname bzw. die angegebene ID ist ungültig.

Maßnahme:	Prüfen Sie den eingegebenen Namen oder die eingegebene ID, und wiederholen Sie den Versuch.

Schweregrad:	>25

Typ:	Fehler


FRM-41829
FRM-41829:  Datensatz wurde nicht erstellt.

Ursache:	Entwicklungsfehler in der Anwendung. Der Ausgangswert des Datensatzes konnte nicht eingelesen werden.

Maßnahme:	Nehmen Sie Verbindung mit dem Entwickler der Anwendung auf.

Schweregrad:	>25

Typ:	Fehler


FRM-41830
FRM-41830:  Werteliste enthält keine Einträge.

Ursache:	Die Datensatzgruppe, die der Werteliste zugrundeliegt, enthält keine Datensätze.

Maßnahme:	Prüfen Sie, ob Kriterien, mit denen eine lange Werteliste verkürzt wurde, nicht alle Übereinstimmungen eliminiert haben.

Schweregrad:	>5

Typ:	Fehler


FRM-41832
FRM-41832:  Fehler: Programmblock %s in Bibliothek %s nicht kompiliert.

Ursache:	Sie haben einen nicht kompilierten Programmblock aus einer Bibliothek aufgerufen.

Maßnahme:	Befolgen Sie die Angaben für den PL/SQL-Programmfehler.

Schweregrad:	99

Typ:	Fehler


FRM-41833
FRM-41833:  Warnung! Programmblock %s in Bibliothek %s nicht kompiliert.

Ursache:	Sie haben einen nicht kompilierten Programmblock in einer Bibliothek aufgerufen, während der Debug-Modus angegeben war.

Maßnahme:	Dies ist nur eine Warnung. Forms Runtime versucht, den Programmblock zu kompilieren und erneut auszuführen.

Schweregrad:	99

Typ:	Informationsmeldung


FRM-41834
FRM-41834:  Fehler: PECS-Klasse %s kann nicht erstellt werden.

Ursache:	Die PECS-Datendatei kann nicht erstellt werden.

Maßnahme:	Im PECS-Anhang wird beschrieben, wo die PECS-Datendateien gespeichert sind. Prüfen Sie, ob Sie die richtige Berechtigung für diese Datei haben und ob die Pfad-Umgebungsvariable auf einen gültigen Pfad eingestellt ist.

Schweregrad:	99

Typ:	Informationsmeldung


FRM-41835
FRM-41835:  Leinwand %s ist keine Registerleinwand.

Ursache:	Sie haben versucht, einen für Registerleinwände spezifischen Vorgang mit einer Leinwand auszuführen, bei der es sich nicht um eine Registerleinwand handelt.

Maßnahme:	Stellen Sie sicher, daß eine Registerleinwand angegeben wird.

Schweregrad:	99

Typ:	Fehler


FRM-41836
FRM-41836:  Kein Register %s in Leinwand %s.

Ursache:	Sie haben versucht, einen Vorgang in einem Register durchzuführen, das in der angegebenen Leinwand nicht vorhanden ist.

Maßnahme:	Geben Sie ein Register an, das in der angegebenen Registerleinwand vorhanden ist.

Schweregrad:	99

Typ:	Fehler


FRM-41837
FRM-41837:  Fehler beim Aufrufen des Registers %s.

Ursache:	Das angegebene Register konnte nicht in den Vordergrund gestellt werden (zur aktuellen Seite der Registerleinwand gemacht werden).

Maßnahme:	Stellen Sie sicher, daß die angegebene Seite aktiviert und nicht verborgen ist.

Schweregrad:	99

Typ:	Fehler


FRM-41838
FRM-41838:  Temporäre Datensatz-Pufferdatei %s kann nicht geöffnet werden.

Ursache:	Sie können die als temporären Datensatzpuffer benutzte Datei nicht öffnen.

Maßnahme:	Prüfen Sie, ob das Dateisystem oder der Ordner, in dem die Datei gespeichert ist, vorhanden ist, und daß Sie die Lese- und Schreibberechtigung für die Datei haben.

Schweregrad:	99

Typ:	Fehler


FRM-41839
FRM-41839:  Platten-E/A-Fehler bei temporärer Datensatz-Pufferdatei %s.

Ursache:	Ein E/A-Fehler ist bei dem Versuch aufgetreten, einen Datensatz in der temporären Datensatz-Pufferdatei zu lesen oder zu schreiben.

Maßnahme:	Prüfen Sie, ob das Dateisystem oder der Ordner, in dem die Datei gespeichert ist, vorhanden ist, daß Sie die Lese- und Schreibberechtigung für die Datei haben und daß ausreichend Platz vorhanden ist.

Schweregrad:	99

Typ:	Fehler


FRM-41840
FRM-41840:  Nicht genügend Arbeitsspeicher für Datensatzpuffer.

Ursache:	Es ist nicht möglich, Speicherplatz für einen Datensatz zuzuweisen, der in einem Block erstellt wird.

Maßnahme:	Versuchen Sie, die Anwendung neu zu starten, wenn weniger Programme gleichzeitig laufen, oder versuchen Sie, die Anwendung auf einem Rechner mit mehr Speicherplatz zu starten. Möglicherweise muß der Entwurf geändert werden, so daß ein oder mehrere Blöcke kleinere Werte bei dem Attribut Gepufferte Datensätze haben.

Schweregrad:	99

Typ:	Fehler


FRM-41841
FRM-41841:  Debugger-aktiviertes ausführbares Programm verwenden, wenn DEBUG=YES angegeben ist.

Ursache:	Sie haben versucht, einen Debugger aus einem ausführbaren Programm zu benutzen, das den Debugger nicht enthält.

Maßnahme:	Führen Sie das andere ausführbare Programm (Name variiert je nach Betriebssystem) aus, das den Debugger enthält.

Schweregrad:	99

Typ:	Fehler


FRM-41900
FRM-41900:  Wegen Abbruchfehler abgebrochen.

Ursache:	Ein Abbruchfehler führte zu einem Abbruch der Form.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	20

Typ:	Fehler


FRM-41901
FRM-41901:  Fehler: %d Cursor wurden nicht geschlossen.

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.

Schweregrad:	>25

Typ:	Fehler


FRM-41902
FRM-41902:  Gesamtzahl der verwendeten Cursor %d.

Ursache:	Diese Meldung wird angezeigt, wenn Sie eine Form ausführen, während die Voreinstellung Statistik ausgewählt ist.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	>25

Typ:	Informationsmeldung


FRM-41903
FRM-41903:  Ende der Eingabedatei bewirkte Abbruch.

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	>25

Typ:	Fehler


FRM-42015
FRM-42015:  Bei nicht interaktivem Modus muß eine Tastendatei angegeben werden.

Ursache:	Sie haben versucht, die Form im nicht interaktiven Modus auszuführen, ohne beim Starten der Form den Namen einer Tasteneingabedatei anzugeben.

Maßnahme:	Geben Sie den Namen der Tastendatei an.

Schweregrad:	>25

Typ:	Fehler


FRM-42016
FRM-42016:  Lese- und Schreibdatei dürfen nicht denselben Namen haben.

Ursache:	Sie haben versucht, denselben Namen für eine Lese- und eine Schreibdatei anzugeben.

Maßnahme:	Geben Sie verschiedene Namen für die beiden Dateien an.

Schweregrad:	>25

Typ:	Fehler


FRM-42017
FRM-42017:  Modulname muß angegeben werden.

Ursache:	Sie haben keinen Modulnamen angegeben.

Maßnahme:	Geben Sie einen Modulnamen an.

Schweregrad:	>25

Typ:	Fehler


FRM-42100
FRM-42100:  In letzter Zeit sind keine Fehler aufgetreten.

Ursache:	Sie haben [Fehler anzeigen] gedrückt, in letzter Zeit ist jedoch kein Fehler aufgetreten.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	5

Typ:	Informationsmeldung


FRM-42400
FRM-42400:  Ereignis-Trigger %s wird ausgeführt.

Ursache:	Diese Meldung wird während eines Triggers angezeigt, wenn der Debug-Modus angegeben ist.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	>25

Typ:	Informationsmeldung


FRM-42401
FRM-42401:  Programm-Trigger %s wird ausgeführt.

Ursache:	Diese Meldung wird während eines Triggers angezeigt, wenn der Debug-Modus angegeben ist.

Maßnahme:	Keine Maßnahme erforderlich.

Schweregrad:	>25

Typ:	Informationsmeldung


FRM-42423
FRM-42423:  Trigger %s kann nicht ausgeführt werden: Kein kompilierter Status.

Ursache:	Diese Meldung wird bei der Ausführung einer Form im Debug-Modus angezeigt, wenn der kompilierte Status eines Triggers zerstört wurde. Dies kann geschehen, wenn Sie eine Änderung an dem Triggertext vornehmen und diese Änderung zu Kompilierungsfehlern führt.

Maßnahme:	Sie können den Trigger im Debugger neu kompilieren oder die Form beenden und neu starten.

Schweregrad:	99

Typ:	Fehler


FRM-47000
FRM-47000:  Parameterliste %s kann nicht erstellt werden: Interner Fehler.

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	99

Typ:	Fehler


FRM-47001
FRM-47001:  Parameterliste %s kann nicht erstellt werden: Gleichnamige Liste besteht bereits.

Ursache:	Der Name, den Sie für die Parameterliste angegeben haben, wird schon benutzt.

Maßnahme:	Geben Sie einen anderen Namen für die Parameterliste an.

Schweregrad:	99

Typ:	Fehler


FRM-47002
FRM-47002:  Parameterliste kann nicht erstellt werden: Name darf nicht Null sein.

Ursache:	Der Name der Parameterliste darf nicht Null sein.

Maßnahme:	Geben Sie einen Namen für die Parameterliste an.


FRM-47003
FRM-47003:  Parameterliste kann nicht gelöscht werden: Interner Fehler.

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	99

Typ:	Fehler


FRM-47004
FRM-47004:  Parameterliste kann nicht gelöscht werden: Ungültige ID.

Ursache:	Sie haben versucht, eine ungültige ID einer Parameterliste zu übergeben.

Maßnahme:	Prüfen Sie die Listen-ID, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-47005
FRM-47005:  Parameter %s kann nicht validiert werden: Interner Fehler.

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	99

Typ:	Fehler


FRM-47006
FRM-47006:  Parameterliste '%s' kann nicht erstellt werden: Unzulässiger Bezeichnername.

Ursache:	Unzulässiger Bezeichnername.

Maßnahme:	Prüfen Sie die gültige Syntax für Bezeichnernamen.

Schweregrad:	99

Typ:	Fehler


FRM-47007
FRM-47007:  Attribute für Parameter %s nicht aus Parameterliste abrufbar: Ungültige Listen-ID.

Ursache:	Sie haben eine ungültige Parameterlisten-ID angegeben.

Maßnahme:	Prüfen Sie die Parameterlisten-ID, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-47008
FRM-47008:  Parameter %s kann nicht zur Parameterliste %s hinzugefügt werden: Interner Fehler.

Ursache:	Ein interner Fehler ist aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	99

Typ:	Fehler


FRM-47009
FRM-47009:  Parameter %s kann nicht zur Parameterliste hinzugefügt werden: Ungültige Listen-ID.

Ursache:	Sie haben eine ungültige Parameterlisten-ID angegeben.

Maßnahme:	Prüfen Sie die Parameterlisten-ID, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-47010
FRM-47010:  Parameter kann nicht zur Parameterliste %s hinzugefügt werden: Null-Schlüssel angegeben.

Ursache:	Kein Name für den Parameter angegeben.

Maßnahme:	Geben Sie einen Parameternamen <Schlüssel> in dem Aufruf von ADD_PARAMETER an.

Schweregrad:	99

Typ:	Fehler


FRM-47011
FRM-47011:  Parameter %s kann nicht zur Parameterliste %s hinzugefügt werden: Falscher Typ angegeben.

Ursache:	Sie haben einen ungültigen Parametertyp angegeben.

Maßnahme:	Geben Sie TEXT_PARAMETER oder DATA_PARAMETER an.

Schweregrad:	99

Typ:	Fehler


FRM-47012
FRM-47012:  Parameter %s kann nicht zur Parameterliste %s hinzugefügt werden: Gruppe %s nicht vorhanden.

Ursache:	Der Name der Datensatzgruppe ist nicht vorhanden.

Maßnahme:	Prüfen Sie den Datensatzgruppennamen, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-47013
FRM-47013:  Parameter %s kann nicht zur Parameterliste %s hinzugefügt werden: Gleichnamiger Parameter vorhanden.

Ursache:	Ein Parameter mit diesem Namen ist bereits vorhanden.

Maßnahme:	Geben Sie einen anderen Namen für den Parameter an.

Schweregrad:	99

Typ:	Fehler


FRM-47014
FRM-47014:  Parameter %s kann nicht aus Parameterliste %s gelöscht werden: Interner Fehler.

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	99

Typ:	Fehler


FRM-47015
FRM-47015:  Parameter %s kann nicht aus Parameterliste gelöscht werden: Ungültige Listen-ID.

Ursache:	Sie haben eine ungültige Parameterlisten-ID angegeben.

Maßnahme:	Prüfen Sie die Listen-ID, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-47016
FRM-47016:  Parameter kann nicht aus Parameterliste %s gelöscht werden: Null-Schlüssel angegeben.

Ursache:	Sie haben keinen Namen für den Parameter angegeben.

Maßnahme:	Korrigieren Sie den Aufruf von DELETE_PARAMETER, indem Sie einen Parameternamen angeben.

Schweregrad:	99

Typ:	Fehler


FRM-47017
FRM-47017:  Parameter %s kann nicht aus Parameterliste %s gelöscht werden: Parameter nicht vorhanden.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie haben eine ungültige Parameterlisten-ID angegeben.

2. Sie haben einen nicht vorhandenen Parameternamen angegeben.

Maßnahme:	Prüfen Sie den Parameternamen, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-47018
FRM-47018:  Attribute von Parameter %s können nicht in Parameterliste %s gesetzt werden: Interner Fehler.

Ursache:	Interner Fehler: Sie haben eine ungültige Parameterlisten-ID angegeben.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	99

Typ:	Fehler


FRM-47019
FRM-47019:  Attribute von Parameter %s können nicht in Parameterliste gesetzt werden: Ungültige Listen-ID.

Ursache:	Sie haben eine ungültige Parameterlisten-ID angegeben.

Maßnahme:	Prüfen Sie die Parameterlisten-ID, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-47020
FRM-47020:  Attribute von Parameter %s können nicht in Parameterliste %s gesetzt werden: Parameter nicht vorhanden.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie haben eine ungültige Parameterlisten-ID angegeben.

2. Sie haben einen nicht vorhandenen Parameternamen angegeben.

Maßnahme:	Prüfen Sie den Parameternamen, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-47021
FRM-47021:  Parameterliste %s enthält keinen Parameter namens %s.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie haben eine ungültige Parameterlisten-ID angegeben.

2. Sie haben einen nicht vorhandenen Parameternamen angegeben.

Maßnahme:	Prüfen Sie den Namen, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-47022
FRM-47022:  Parameterliste %s kann nicht erstellt werden: Name ist ein reserviertes Wort.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie haben eine ungültige Parameterlisten-ID angegeben.

2. Sie haben einen Namen angegeben, bei dem es sich um ein reserviertes Wort handelt.

Maßnahme:	Geben Sie einen anderen Namen für die Parameterliste an.

Schweregrad:	99

Typ:	Fehler


FRM-47023
FRM-47023:  Form %s enthält keinen Parameter namens %s.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie haben eine ungültige Parameterlisten-ID angegeben.

2. Sie haben einen nicht vorhandenen Parameternamen angegeben.

Maßnahme:	Prüfen Sie den Namen, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-47024
FRM-47024:  Typ von Parameter %s stimmt nicht mit der Definition in Form %s überein.

Ursache:	Sie haben einen Parametertyp angegeben, der nicht mit der Definition in der Form übereinstimmt.

Maßnahme:	Geben Sie einen Parametertyp an, der mit der Definition in der Form übereinstimmt.

Schweregrad:	99

Typ:	Fehler


FRM-47025
FRM-47025:  Attribute von Parameter %s können nicht aus Parameterliste %s abgefragt werden: Interner Fehler.

Ursache:	Interner Fehler: Sie haben eine ungültige Parameterlisten-ID angegeben.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	99

Typ:	Fehler


FRM-47026
FRM-47026:  Attribute von Parameter %s können nicht aus Parameterliste %s abgefragt werden: Parameter nicht vorhanden.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie haben eine ungültige Parameterlisten-ID angegeben.

2. Sie haben einen nicht vorhandenen Parameternamen angegeben.

Maßnahme:	Prüfen Sie den Namen, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-47027
FRM-47027:  Parameter %s kann nicht zur Parameterliste %s hinzugefügt werden: Ungültiges Schlüsselwort.

Ursache:	Sie haben eine ungültige Parameterlisten-ID angegeben.

Maßnahme:	Prüfen Sie den Namen, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-47028
FRM-47028:  Attribut von Parameter %s kann nicht in Parameterliste %s gesetzt werden: Gruppe %s nicht vorhanden.

Ursache:	Sie haben eine ungültige Parameterlisten-ID angegeben.

Maßnahme:	Prüfen Sie den Namen, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-47029
FRM-47029:  Ungültige Parameterlisten-ID in Form %s.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie haben eine ungültige Parameterlisten-ID angegeben.

2. Sie haben einen nicht vorhandenen Parameternamen angegeben.

Maßnahme:	Prüfen Sie die ID, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-47030
FRM-47030:  Parameterwert %s zu lang für Definition in Form %s.

Ursache:	Sie haben einen Parameter angegeben, der zu lang ist.

Maßnahme:	Geben Sie einen gültigen Parameter an.

Schweregrad:	99

Typ:	Fehler


FRM-47031
FRM-47031:  Wert von Parameter %s kann nicht in DEFAULT-Parameterliste gesetzt werden: Ungültiger Wert angegeben.

Ursache:	Entwicklungsfehler in der Anwendung. Eine vordefinierte Prozedur (wie z.B. SET_PARAMETER_ATTR) versucht, den Wert eines Parameters zu setzen, der beim Entwurf der Form definiert wurde, der Wert ist jedoch für den Datentyp des Parameters nicht zulässig.

Maßnahme:	Der Aufruf der vordefinierten Prozedur muß geändert oder entfernt werden.

Schweregrad:	99

Typ:	Fehler


FRM-47032
FRM-47032:  Wert von Parameter %s kann nicht in DEFAULT-Parameterliste gesetzt werden: Interner Fehler.

Ursache:	Bei dem Versuch, den Wert eines Parameters zu setzen, ist ein interner Fehler aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	99

Typ:	Fehler


FRM-47033
FRM-47033:  Wert von schreibgeschützter Bindevariable %s kann nicht gesetzt werden.

Ursache:	Entwicklungsfehler in der Anwendung. Die Anwendung hat versucht, einer Bindevariablen einen Wert zuzuweisen, die nicht programmgesteuert geändert werden kann.

Maßnahme:	Die Zuweisung muß entfernt werden.

Schweregrad:	25

Typ:	Fehler


FRM-47100
FRM-47100:  Bilddatei %s kann nicht gelesen werden.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie haben eine ungültige Parameterlisten-ID angegeben.

2. Form Builder konnte die Datei nicht finden oder öffnen.

3. Die Daten in der Datei haben nicht das angegebene Format.

Maßnahme:	Prüfen Sie den Dateinamen und das Dateiformat, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-47101
FRM-47101:  Bilddatei %s kann nicht geschrieben werden.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie haben eine ungültige Parameterlisten-ID angegeben.

2. Form Builder konnte die Datei nicht finden oder öffnen.

3. Die Daten in der Datei haben nicht das angegebene Format.

Maßnahme:	Prüfen Sie den Dateinamen, und stellen Sie sicher, daß Sie die Schreibberechtigung für die Datei haben.

Schweregrad:	99

Typ:	Fehler


FRM-47102
FRM-47102:  Vorgang %s kann für die Bilder %s und %s nicht ausgeführt werden.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie haben eine ungültige Parameterlisten-ID angegeben.

2. Dieser Vorgang kann mit Farbbildern nicht durchgeführt werden.

Maßnahme:	Prüfen Sie, ob beide Bilder schwarz/weiß sind.

Schweregrad:	99

Typ:	Fehler


FRM-47103
FRM-47103:  Bild %s kann nicht vergrößert werden.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie haben eine ungültige Parameterlisten-ID angegeben.

2. Ein interner Multimediafehler wurde durch den Versuch, ein Nullbild zu skalieren, oder durch ungültige Bilddaten verursacht.

Maßnahme:	Prüfen Sie den Namen des zu vergrößernden Bildes, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-47104
FRM-47104:  Bildtyp %s ist ungültig.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie haben eine ungültige Parameterlisten-ID angegeben.

2. Die Daten in dem angegebenen Dateinamen entsprechen nicht dem angegebenen Datentyp.

Maßnahme:	Prüfen Sie den Dateinamen, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-47105
FRM-47105:  Es wurde kein Bildname angegeben.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie haben eine ungültige Parameterlisten-ID angegeben.

2. Sie haben keinen Namen für den Aufruf der vordefinierten Prozedur angegeben.

Maßnahme:	In der Dokumentation finden Sie die richtige Syntax für die betreffende vordefinierte Prozedur.

Schweregrad:	99

Typ:	Fehler


FRM-47106
FRM-47106:  Es wurde kein Bildtyp angegeben.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie haben eine ungültige Parameterlisten-ID angegeben.

2. Sie haben beim Aufruf von READ_IMAGE_FILE oder WRITE_IMAGE_FILE keinen Bildtyp angegeben.

Maßnahme:	Geben Sie einen Bildtyp als Argument in dem Aufruf von READ_IMAGE_FILE oder WRITE_IMAGE_FILE an.

Schweregrad:	99

Typ:	Fehler


FRM-47107
FRM-47107:  Ungültiger Skalierungsfaktor %d für Image_Zoom.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie haben eine ungültige Parameterlisten-ID angegeben.

2. Sie haben einen ungültigen Skalierungsfaktor angegeben.

Maßnahme:	Korrigieren Sie den Aufruf von IMAGE_ZOOM.

Schweregrad:	20

Typ:	Fehler


FRM-47108
FRM-47108:  Objekt %s ist kein Bildobjekt.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie haben eine ungültige Parameterlisten-ID angegeben.

2. Sie haben versucht, einen Bildvorgang mit einem Objekt durchzuführen, bei dem es sich nicht um ein Bildobjekt handelt.

Maßnahme:	Prüfen Sie den Objektnamen, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-47109
FRM-47109:  Bilddatei %s nicht gefunden.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie haben eine ungültige Parameterlisten-ID angegeben.

2. Sie haben eine Datei angegeben, die nicht gefunden wurde oder nicht vorhanden ist.

Maßnahme:	Prüfen Sie, ob die Datei vorhanden und der Pfadname richtig ist.

Schweregrad:	20

Typ:	Fehler


FRM-47110
FRM-47110:  Für Image_Zoom %s wurde kein Bereich ausgewählt.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie haben eine ungültige Parameterlisten-ID angegeben.

2. Sie haben versucht, ein Bild zu vergrößern, ohne einen Bildbereich auszuwählen.

Maßnahme:	Wählen Sie einen Bildbereich aus.

Schweregrad:	20

Typ:	Fehler


FRM-47111
FRM-47111:  Wert kann nicht in Objekt %s kopiert werden.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie haben eine ungültige Parameterlisten-ID angegeben.

2. Sie haben versucht, die vordefinierte Prozedur COPY für ein Bildobjekt zu benutzen.

Maßnahme:	Sie können die vordefinierte Prozedur COPY nicht für ein Bildobjekt benutzen.

Schweregrad:	20

Typ:	Fehler


FRM-47200
FRM-47200:  Objekt %s ist kein Klangobjekt.

Ursache:	Dieser Fehler kann eine der folgenden Ursachen haben:

1. Sie haben eine ungültige Parameterlisten-ID angegeben.

2. Sie haben versucht, einen Klangvorgang mit einem Objekt durchzuführen, bei dem es sich nicht um ein Klangobjekt handelt.

Maßnahme:	Prüfen Sie den Objektnamen, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-47201
FRM-47201:  Klang %s kann nicht wiedergegeben werden.

Ursache:	Der Klang in dem angeforderten Klangobjekt kann nicht wiedergegeben werden. Möglicherweise ist das Klang-Ausgabegerät belegt.

Maßnahme:	Stoppen Sie andere Programme, die die Ausgabe an das Klanggerät weiterleiten, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-47202
FRM-47202:  Kein Klangdateiname angegeben.

Ursache:	Sie haben keinen Dateinamen bei dem Aufruf der vordefinierten Prozedur angegeben.

Maßnahme:	In der Dokumentation finden Sie die richtige Syntax für die betreffende vordefinierte Prozedur.

Schweregrad:	99

Typ:	Fehler


FRM-47203
FRM-47203:  Klangdatei %s nicht gefunden.

Ursache:	Form Builder konnte die in READ_SOUND_FILE angegebene Datei nicht finden.

Maßnahme:	Prüfen Sie den Dateinamen, und wiederholen Sie den Versuch.

Schweregrad:	99

Typ:	Fehler


FRM-47204
FRM-47204:  Klangdatei %s kann nicht gelesen werden.

Ursache:	Form Builder konnte die Klangdatei nicht lesen, wahrscheinlich, weil der angegebene Dateityp nicht mit dem Dateiinhalt übereinstimmt.

Maßnahme:	Prüfen Sie den Inhalt der Klangdatei.

Schweregrad:	99

Typ:	Fehler


FRM-47205
FRM-47205:  Kein Klangtyp angegeben.

Ursache:	Sie haben beim Aufruf von WRITE_SOUND_FILE keinen Klangtyp angegeben.

Maßnahme:	Geben Sie einen Klangtyp als Argument in dem Aufruf von WRITE_SOUND_FILE an.

Schweregrad:	99

Typ:	Fehler


FRM-47206
FRM-47206:  Klangdatei %s kann nicht geschrieben werden.

Ursache:	Form Builder konnte die Klangdatei nicht erstellen. Die Klangdaten sind möglicherweise beschädigt.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	99

Typ:	Fehler


FRM-47207
FRM-47207:  In dieser Version kann Play_Sound nur mit dem aktuellen Objekt ausgeführt werden.

Ursache:	PLAY_SOUND wurde für ein anderes Objekt als das aktuelle Objekt aufgerufen.

Maßnahme:	Setzen Sie den Eingabefokus in das Klangobjekt, bevor Sie PLAY_SOUND aufrufen.

Schweregrad:	99

Typ:	Fehler


FRM-47208
FRM-47208:  Leere Klangdatei kann nicht erstellt werden. (%s).

Ursache:	WRITE_SOUND_FILE wurde für ein Klangobjekt aufgerufen, das keine Klangdaten enthält.

Maßnahme:	Laden Sie Klangdaten in das Klangobjekt, bevor Sie WRITE_SOUND_FILE aufrufen.

Schweregrad:	99

Typ:	Fehler


FRM-47300
FRM-47300: Element stellt keinen hierarchischen Baum dar. (%s)

Ursache:	Eine vordefinierte Prozedur für hierarchische Bäume wurde für ein anderes Element aufgerufen.

Maßnahme:	Prüfen Sie den Typ und den Namen des Elements.

Schweregrad:	99

Typ:	Fehler


FRM-47301
FRM-47301: Daten können nicht als gleichrangiges Objekt zu der Baumwurzel hinzugefügt werden.

Ursache:	Die Prozedur ADD_TREE_DATA bzw. ADD_TREE_NODE hat versucht, der Baumwurzel Daten als gleichrangiges Objekt hinzuzufügen.

Maßnahme:	Fügen Sie die Daten auf einer niedrigeren Ebene der Baumstruktur hinzu.

Schweregrad:	99

Typ:	Fehler


FRM-47302
FRM-47302: Daten können nur als untergeordnetes oder gleichrangiges Objekt zu dem Baum hinzugefügt werden.

Ursache:	Die Prozedur ADD_TREE_DATA bzw. ADD_TREE_NODE hat versucht, einen unbekannten Wert für den Parameter offset_type zu verwenden.

Maßnahme:	Für den Parameter offset_type können nur PARENT_OFFSET und SIBLING_OFFSET verwendet werden.

Schweregrad:	99

Typ:	Fehler


FRM-47303
FRM-47303: ADD_TREE_DATA akzeptiert nur Daten aus einer Gruppe oder Abfrage.

Ursache:	Die Prozedur ADD_TREE_DATA hat versucht, einen unbekannten Wert für den Parameter datasource zu verwenden.

Maßnahme:	Für den Parameter datasource können nur RECORD_GROUP und QUERY_TEXT verwendet werden.

Schweregrad:	99

Typ:	Fehler


FRM-47304
FRM-47304: Wurzelknoten eines Baums kann nicht gelöscht werden.

Ursache:	Die Prozedur DELETE_TREE_NODE hat versucht, den Wurzelknoten zu löschen.

Maßnahme:	Prüfen Sie vor dem Löschen eines Knotens mit ID_NULL, ob es sich um den Wurzelknoten handelt.

Schweregrad:	99

Typ:	Fehler


FRM-47305
FRM-47305: Ein Baum kann nur nach Beschriftung oder Wert durchsucht werden.

Ursache:	FIND_TREE_NODE hat versucht, einen unbekannten Wert für den Parameter search_by zu verwenden.

Maßnahme:	Stellen Sie den Parameter search_by auf NODE_LABEL oder NODE_VALUE ein.

Schweregrad:	99

Typ:	Fehler


FRM-47306
FRM-47306: Search_type muß FIND_NEXT oder FIND_NEXT_CHILD sein.

Ursache:	FIND_TREE_NODE hat versucht, einen ungültigen Wert für den Parameter search_type zu verwenden.

Maßnahme:	Stellen Sie den Parameter search_type auf FIND_NEXT oder FIND_NEXT_CHILD ein.

Schweregrad:	99

Typ:	Fehler


FRM-47307
FRM-47307: Attribute des Baumwurzelknotens können nicht ermittelt werden.

Ursache:	GET_TREE_NODE_PARENT bzw. GET_TREE_NODE_PROPERTY hat versucht, Informationen vom Wurzelknoten abzurufen.

Maßnahme:	Führen Sie die vordefinierten Prozeduren nur an gültigen Knoten aus.

Schweregrad:	99

Typ:	Fehler


FRM-47308
FRM-47308: Ungültiges Attribut für GET oder SET_TREE_NODE_PROPERTY.

Ursache:	An die Prozedur GET bzw. SET_TREE_NODE_PROPERTY wurde eine ungültige Attributkonstante übergeben.

Maßnahme:	Überprüfen Sie die Argumente.

Schweregrad:	99

Typ:	Fehler


FRM-47309
FRM-47309: Ungültiges Attribut für GET oder SET_TREE_PROPERTY.

Ursache:	An die Prozedur GET bzw. SET_TREE_PROPERTY wurde eine ungültige Attributkonstante übergeben.

Maßnahme:	Überprüfen Sie die Argumente.

Schweregrad:	99

Typ:	Fehler


FRM-47310
FRM-47310: Falscher Auswahlindex für GET_TREE_SELECTION.

Ursache:	Der Auswahlindex muß einen Wert zwischen 1 und der Anzahl der ausgewählten Knoten aufweisen.

Maßnahme:	Stellen Sie sicher, daß die Auswahl im gültigen Bereich liegt.

Schweregrad:	99

Typ:	Fehler


FRM-47311
FRM-47311: Fehler beim Auffüllen der Datensatzgruppe.

Ursache:	Für POPULATE_GROUP_FROM_TREE wurde eine ungültige Datensatzgruppe angegeben.

Maßnahme:	Prüfen Sie, ob die Datensatzgruppe vorhanden und nicht als statisch definiert ist.

Schweregrad:	99

Typ:	Fehler


FRM-47312
FRM-47312: Interner Fehler beim Auffüllen der Datensatzgruppe.

Ursache:	Interner Fehler in der Prozedur POPULATE_GROUP_FROM_TREE. Unter Umständen sind einige Zeilen jedoch hinzugefügt worden.

Maßnahme:	Der Datensatzgruppe kann keine Zeile hinzugefügt werden.

Schweregrad:	99

Typ:	Fehler


FRM-47313
FRM-47313: Ungültige Abfrage für hierarchischen Baum.

Ursache:	Zum angegebenen Abfragetext konnten keine gültigen Baumdaten erstellt werden.

Maßnahme:	Prüfen Sie, ob der Abfragetext eine gültige Anzahl von Spalten und gültige Datentypen enthält.

Schweregrad:	99

Typ:	Fehler


FRM-47314
FRM-47314: Attribute des Baumwurzelknotens können nicht festgelegt werden.

Ursache:	SET_TREE_NODE_PROPERTY hat versucht, ein Attribut des Wurzelknotens einzustellen.

Maßnahme:	Führen Sie die vordefinierte Prozedur nur an gültigen Knoten aus.

Schweregrad:	99

Typ:	Fehler


FRM-47315
FRM-47315: Ungültiger Parameterwert für SET_TREE_NODE_PROPERTY.

Ursache:	Prüfen Sie die Parameterwerte für das eingestellte Knotenattribut.

Maßnahme:	Korrigieren Sie den an SET_TREE_NODE_PROPERTY übergebenen Parameterwert.

Schweregrad:	99

Typ:	Fehler


FRM-47316
FRM-47316: Zweigknoten ohne untergeordnete Objekte sind nicht zulässig.

Ursache:	Es wurde versucht, einen Blatt- in einen Zweigknoten zu konvertieren. Bei diesem Baum sind keine leeren Zweigknoten zulässig.

Maßnahme:	Ändern Sie den Baum dahingehend, daß leere Zweigknoten zulässig sind, oder fügen Sie dem Knoten untergeordnete Objekte hinzu.

Schweregrad:	99

Typ:	Fehler


FRM-47317
FRM-47317: Blattknoten können keine untergeordneten Objekte enthalten.

Ursache:	Es wurde versucht, einen Zweigknoten mit untergeordneten Objekten in einen Blattknoten zu konvertieren.

Maßnahme:	Löschen Sie die untergeordneten Objekte, bevor Sie den Status des Knotens ändern.

Schweregrad:	99

Typ:	Fehler


FRM-47318
FRM-47318: Ungültiger Parameterwert für SET_TREE_PROPERTY.

Ursache:	Prüfen Sie die Parameterwerte für das eingestellte Baumattribut.

Maßnahme:	Korrigieren Sie den an SET_TREE_PROPERTY übergebenen Parameterwert.

Schweregrad:	99

Typ:	Fehler


FRM-47319
FRM-47319: Baumwurzelknoten kann nicht ausgewählt werden.

Ursache:	SET_TREE_SELECTION hat versucht, den Wurzelknoten auszuwählen.

Maßnahme:	Führen Sie die vordefinierte Prozedur nur an gültigen Knoten aus.

Schweregrad:	99

Typ:	Fehler


FRM-47320
FRM-47320: Falscher Auswahltyp für SET_TREE_SELECTION.

Ursache:	SET_TREE_SELECTION hat versucht, einen ungültigen Wert für den Parameter selection_type zu verwenden.

Maßnahme:	Verwenden Sie für den Parameter selection_type den Wert SELECT_ON, SELECT_OFF oder SELECT_TOGGLE.

Schweregrad:	99

Typ:	Fehler


FRM-47321
FRM-47321: Für das Auffüllen des Baums benutzte Daten sind ungültig.

Ursache:	Die Prozedur ADD_TREE_DATA hat versucht, Daten mit falschem Format zu verwenden.

Maßnahme:	Prüfen Sie die Anzahl und die Typen der Spalten in der Gruppe bzw. Abfrage.

Schweregrad:	99

Typ:	Fehler


FRM-47322
FRM-47322: Die angegebene Baumdatenquelle ist keine Datensatzgruppe.

Ursache:	Die Datenquelle für den Baum wurde fälschlicherweise als Datensatzgruppe deklariert.

Maßnahme:	Prüfen Sie, ob die ID bzw. der angegebene Name zu einer vorhandenen Datensatzgruppe gehört.

Schweregrad:	99

Typ:	Fehler


FRM-47323
FRM-47323: In dem Baum sind keine Knoten ausgewählt.

Ursache:	Es wurde versucht, einen ausgewählten Knoten abzurufen, aber es war kein Knoten ausgewählt.

Maßnahme:	Prüfen Sie die Anzahl der ausgewählten Knoten, bevor Sie versuchen, einen Knoten abzurufen.

Schweregrad:	99

Typ:	Fehler


FRM-47324
FRM-47324: Speicher für Baumstrukturen konnte nicht zugeordnet werden.

Ursache:	Es konnte kein Speicher für interne Baumstrukturen zugeordnet werden. Der Baum wurde gelöscht.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	99

Typ:	Fehler


FRM-47325
FRM-47325: Speicher für Baumknoten konnte nicht zugeordnet werden.

Ursache:	Es konnte kein Speicher für einen Baumknoten zugeordnet werden.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	99

Typ:	Fehler


FRM-47333
FRM-47333: Erforderlicher Status für Baumknoten konnte nicht festgelegt werden.

Ursache:	Der Status eines Baumknotens konnte nicht geändert werden.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	99

Typ:	Fehler


FRM-47334
FRM-47334: Speicherplatz für Symbolzeichenfolge von Baumknoten konnte nicht zugeordnet werden.

Ursache:	Es konnte kein Speicher für den Namen eines Baumknotensymbols zugeordnet werden.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	99

Typ:	Fehler


FRM-47335
FRM-47335: Symbol für Baumknoten konnte nicht gefunden werden. (%s).

Ursache:	Das erforderliche Symbol konnte an den Standard-Speicherorten nicht gefunden werden.

Maßnahme:	Prüfen Sie, ob sich die Symbole für die Baumknoten in den richtigen Verzeichnissen befinden.

Schweregrad:	99

Typ:	Fehler


FRM-47336
FRM-47336: Angefordertes Symbol konnte Baumknoten nicht zugewiesen werden.

Ursache:	Das erforderliche Symbol für den Baumknoten konnte nicht eingestellt werden.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	99

Typ:	Fehler


FRM-47337
FRM-47337: Beschriftung von Baumknoten darf nicht null sein.

Ursache:	Es wurde versucht, als Beschriftung für einen Baumknoten einen Nullwert zu verwenden.

Maßnahme:	Stellen Sie für die Beschriftung einen Wert ungleich Null ein.

Schweregrad:	99

Typ:	Fehler


FRM-47338
FRM-47338: Speicherplatz für Beschriftung von Baumknoten konnte nicht zugeordnet werden.

Ursache:	Es konnte kein Speicher für die Beschriftung eines Baumknotens zugeordnet werden.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	99

Typ:	Fehler


FRM-47339
FRM-47339: Angeforderte Beschriftung konnte Baumknoten nicht zugewiesen werden.

Ursache:	Die erforderliche Beschriftung für den Baumknoten konnte nicht eingestellt werden.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	99

Typ:	Fehler


FRM-47340
FRM-47340: Speicherplatz für Baumknotenwert konnte nicht zugeordnet werden.

Ursache:	Es konnte kein Speicher für einen Baumknotenwert zugeordnet werden.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	99

Typ:	Fehler


FRM-47341
FRM-47341: Es sind zu viele Knoten für den Baum vorhanden.

Ursache:	In einem Baum können nur aktuelle und gelöschte MAX-SIGNED-4-BYTE-Knoten verwendet werden.

Maßnahme:	Reduzieren Sie die Anzahl der Knoten im Baum. Wenn Sie häufig Knoten hinzufügen und löschen, müssen Sie unter Umständen alle Knoten aus dem Baum löschen und den Baum anschließend neu auffüllen.

Schweregrad:	99

Typ:	Fehler


FRM-47342
FRM-47342: Speicherplatz für Text von Baumabfrage konnte nicht zugeordnet werden.

Ursache:	Es konnte kein Speicher für den Baumabfragetext zugeordnet werden.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.

Schweregrad:	99

Typ:	Fehler


FRM-99999
FRM-99999:   Fehler  %d aufgetreten. Weitere Informationen über diesen Fehler finden Sie in der Datei mit den Versionshinweisen (relnotes).

Ursache:	Ein Fehler ist aufgetreten. Der Fehler wird in der Datei mit den Versionshinweisen dokumentiert.

Maßnahme:	Siehe Datei mit den Versionshinweisen.


FRM-30004
FRM-30004:  Modulname muß angegeben werden.

Ursache:	Der Modulname wurde nicht angegeben, oder der angegebene Modulname kann nicht benutzt werden.

Maßnahme:	Geben Sie einen gültigen Modulnamen ein.


FRM-30009
FRM-30009:  Es wurden keine Blöcke eingegeben.

Ursache:	Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-30012
FRM-30012:  Block muß mindestens ein Objekt haben.

Ursache:	Sie haben keine Objekte in den Block eingegeben.

Maßnahme:	Geben Sie Objekte in den Block ein, oder erstellen Sie den Block neu.


FRM-30013
FRM-30013:  Block %s enthält kein derartiges Objekt %s.

Ursache:	Sie haben ein Objekt referenziert, das im aktuellen Block nicht vorhanden ist.

Maßnahme:	Prüfen Sie den Namen des Objekts, und gehen Sie folgendermaßen vor:

1. Entfernen Sie die Referenz auf das Objekt.

2. Korrigieren Sie den Namen des Objekts.


FRM-30014
FRM-30014:  Kein derartiger Block %s vorhanden.

Ursache:	Sie haben einen Block referenziert, der in der aktuellen Form nicht vorhanden ist.

Maßnahme:	Prüfen Sie den Namen des Blocks, und gehen Sie folgendermaßen vor:

1. Entfernen Sie die Referenz auf den Block.

2. Korrigieren Sie den Namen des Blocks.


FRM-30015
FRM-30015:  Mehrdeutiger Objektname %s.

Ursache:	Sie haben einen Objektnamen eingegeben, der in mehr als einem Block vorhanden ist.

Maßnahme:	Geben Sie den Blocknamen an, um den Objektnamen eindeutig zu machen. Verwenden Sie dabei das Format Blockname.Objektname (z.B. EMP.SALARY).


FRM-30016
FRM-30016:  Objekt %s ist nicht vorhanden.

Ursache:	Sie haben ein Objekt referenziert, das in der aktuellen Form nicht vorhanden ist.

Maßnahme:	Prüfen Sie den Namen des Objekts, und gehen Sie folgendermaßen vor:

1. Entfernen Sie die Referenz auf das Objekt.

2. Korrigieren Sie den Namen des Objekts.


FRM-30018
FRM-30018:  Interner Fehler: Speicher kann nicht zugewiesen werden.

Ursache:	Möglicherweise haben Sie keinen Speicherplatz mehr, oder der Speicher wurde beschädigt.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.


FRM-30020
FRM-30020:  Interner Fehler: VGS-Kontext kann nicht zugewiesen werden.

Ursache:	Bei dem Versuch, einen VGS-Kontext für den Layouteditor zuzuweisen, ist ein Fehler aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-30021
FRM-30021:  Interner Fehler: VGS Boilerplate-Information kann nicht erstellt werden.

Ursache:	Interner Fehler, der durch beschädigte Boilerplate-Daten verursacht wird.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-30028
FRM-30028:  WHERE-Klausel ist zu lang.

Ursache:	Die SQL-Anweisung, die Sie als Bestandteil eines V2-Triggers angegeben haben, ist zu lang.

Maßnahme:	Kürzen Sie die Anweisung (maximale Länge = 4096 Zeichen).


FRM-30029
FRM-30029:  Fenster %s nicht gefunden.

Ursache:	Für das Fenster wird ein ungültiges übergeordnetes Fenster angegeben.

Maßnahme:	Geben Sie ein gültiges übergeordnetes Fenster für das Fenster an.


FRM-30032
FRM-30032:  Die Zahl der angezeigten Datensätze muß zwischen 1 und 255 liegen.

Ursache:	Die Anzahl der angezeigten Datensätze liegt nicht im gültigen Bereich. Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-30033
FRM-30033:  Anzahl gepufferter Datensätze muß größer sein als Anzahl angezeigter Datensätze.

Ursache:	Die Anzahl gepufferter Datensätze war nicht größer als die Anzahl angezeigter Datensätze. Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-30040
FRM-30040:  Kein gültiger Objekttyp.

Ursache:	Sie haben einen ungültigen Objekttyp eingegeben. Dieser Fehler tritt normalerweise auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-30041
FRM-30041:  Position von Objekt außerhalb der Leinwand.

Ursache:	Sie haben ungültige Y-Koordinaten für das Objekt angegeben.

Maßnahme:	Geben Sie Koordinaten innerhalb einer Leinwand an.


FRM-30042
FRM-30042:  Objektlänge muß zwischen 1 und 133 liegen.

Ursache:	Die eingegebene Objektlänge lag nicht im gültigen Bereich. Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-30043
FRM-30043:  Objektlänge muß zwischen 1 und 255 liegen.

Ursache:	Die eingegebene Objektlänge lag nicht im gültigen Bereich. Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-30044
FRM-30044:  Anzeigelänge muß zwischen 1 und 133 liegen, jedoch nicht größer als Länge.

Ursache:	Die eingegebene Objektlänge lag nicht im gültigen Bereich. Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-30045
FRM-30045:  Abfragelänge des Objekts muß 0 (Standard) oder größer als die aktuelle Länge sein.

Ursache:	Sie haben eine ungültige Abfragelänge eingegeben. Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-30046
FRM-30046:  Interner Fehler: Zeiger kann nicht umgestellt werden.

Ursache:	Ein interner Kompilierungsfehler ist aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-30047
FRM-30047:  Objektreferenz %s kann nicht aufgelöst werden.

Ursache:	Das referenzierte Objekt ist nicht vorhanden.

Maßnahme:	Ändern Sie die Referenz, oder erstellen Sie das Objekt.


FRM-30048
FRM-30048:  Datensatzgruppe %s nicht gefunden.

Ursache:	Die innerhalb des Wertelistenobjektes oder hierarchischen Baumobjektes angegebene Datensatzgruppe ist ungültig.

Maßnahme:	Prüfen Sie den angegebenen Datensatzgruppennamen bzw. die angegebene ID.


FRM-30049
FRM-30049:  Spaltenzuordnung kann nicht erstellt werden.

Ursache:	Die Referenz auf Datensatzgruppenspalten innerhalb des Wertelistenobjekts kann nicht gefunden werden.

Maßnahme:	Prüfen Sie die in dem Wertelistenobjekt angegebenen Spaltennamen.


FRM-30051
FRM-30051:  Interner Fehler: Heaps können nicht für die Ausgabe vorbereitet werden.

Ursache:	Ein interner Kompilierungsfehler ist aufgetreten.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


FRM-30052
FRM-30052:  Benanntes visuelles Attribut %s ist nicht vorhanden.

Ursache:	Sie haben einem Objekt einen undefinierten visuellen Attributnamen zugewiesen.

Maßnahme:	Prüfen Sie den visuellen Attributnamen, und wiederholen Sie den Versuch.


FRM-30053
FRM-30053:  Unbenanntes visuelles Attribut kann nicht erstellt werden.

Ursache:	Diese Meldung wird durch einen internen Fehler oder einen Fehler bei der Speicherzuweisung verursacht.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-30054
FRM-30054:  Leinwand %s nicht gefunden.

Ursache:	Sie haben einen ungültigen Leinwandnamen oder eine ungültige ID angegeben.

Maßnahme:	Prüfen Sie den Leinwandnamen oder die ID, und wiederholen Sie den Versuch.


FRM-30056
FRM-30056:  Warnung! Prompt für Objekt %s.%s wurde abgeschnitten.

Ursache:	Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-30057
FRM-30057:  Max. Datensatzlänge für die Datensatzgruppe wurde überschritten.

Ursache:	Sie haben zu viele Spalten angegeben.

Maßnahme:	Fügen Sie keine zusätzlichen Spalten zu dieser Datensatzgruppe hinzu.


FRM-30058
FRM-30058:  Ungültiger Name für Datensatzgruppenspalte %s.

Ursache:	Sie haben einen ungültigen Spaltennamen angegeben.

Maßnahme:	Prüfen Sie den Spaltennamen, und wiederholen Sie den Versuch.


FRM-30059
FRM-30059:  Spaltenname %s ist doppelt vorhanden.

Ursache:	Sie haben einen schon vorhandenen Spaltennamen angegeben.

Maßnahme:	Geben Sie einen eindeutigen Spaltennamen an.


FRM-30060
FRM-30060:  Spaltendeskriptor %s kann nicht erstellt werden.

Ursache:	Interner Fehler oder Fehler bei der Speicherzuweisung.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-30061
FRM-30061:  INTO-Klausel kann nicht aus Anwendung %s gelöscht werden.

Ursache:	Fehler bei der Substitution von Bindevariablen: eine SELECT-Anweisung innerhalb einer Werteliste oder einer Datensatzgruppe ist falsch.

Maßnahme:	Prüfen Sie die Syntax der SELECT-Anweisung, und fügen Sie die INTO-Klausel hinzu.


FRM-30062
FRM-30062:  Ausführung der Bindevariablensubstitution ist für Anweisung %s nicht möglich.

Ursache:	Die referenzierte Bindevariable ist nicht vorhanden.

Maßnahme:	Erstellen Sie die Variable, oder korrigieren Sie die Referenz.


FRM-30063
FRM-30063:  Cursor kann nicht zum Analysieren der Datensatzgruppenabfrage %s geöffnet werden.

Ursache:	Die Verbindung mit der Datenbank ist möglicherweise unterbrochen.

Maßnahme:	Prüfen Sie die Datenbankverbindung, oder nehmen Sie Verbindung mit dem DBA auf.


FRM-30064
FRM-30064:  Analysieren von Anweisung %s ist nicht möglich.

Ursache:	In der SELECT-Anweisung innerhalb einer Werteliste oder einer Datensatzgruppe ist ein Syntaxfehler aufgetreten.

Maßnahme:	Prüfen Sie die Anweisung, und fügen Sie die FROM-Klausel hinzu.


FRM-30065
FRM-30065:  Spaltentyp %d wird nicht unterstützt.

Ursache:	Der angegebene Spaltentyp war nicht CHAR, NUMBER oder DATE.

Maßnahme:	Ändern Sie den Spaltentyp in einen von Form Builder unterstützten Spaltentyp.


FRM-30069
FRM-30069:  Kein gültiger Triggername.

Ursache:	Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-30081
FRM-30081:  SQL-Anweisung ist zu lang.

Ursache:	Sie haben eine SQL-Anweisung (als Bestandteil eines V2-Triggers) eingegeben, die die maximal zulässige Länge überschreitet.

Maßnahme:	Kürzen Sie die Anweisung auf 4096 Zeichen oder weniger.


FRM-30082
FRM-30082:  In Non-Commit-Triggern sind nur SELECT-Anweisungen zulässig.

Ursache:	Der Trigger enthält eine andere SQL-Anweisung als eine SELECT-Anweisung.

Maßnahme:	Verschieben Sie die Anweisung in einen Trigger, in dem andere SQL-Anweisungen als SELECT-Anweisungen zulässig sind.


FRM-30083
FRM-30083:  Editor %s nicht gefunden.

Ursache:	Der referenzierte Editorname ist nicht vorhanden.

Maßnahme:	Erstellen Sie den Editor, oder löschen Sie die Referenz.


FRM-30084
FRM-30084:  Werteliste %s nicht gefunden.

Ursache:	Der referenzierte Wertelistenname ist nicht vorhanden.

Maßnahme:	Geben Sie einen anderen Wertelistenamen an, oder löschen Sie die Referenz.


FRM-30085
FRM-30085:  Form kann nicht für die Ausgabe umgestellt werden.

Ursache:	Diese Meldung wird durch einen internen Fehler oder einen Fehler bei der Speicherzuweisung verursacht.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-30087
FRM-30087:  Formdatei %s kann nicht erstellt werden.

Ursache:	Sie haben nicht die erforderlichen Berechtigungen in dem angegebenen Ordner, oder die Plattenkapazität reicht nicht aus.

Maßnahme:	Fragen Sie den DBA, ob Sie die benötigten Zugriffsberechtigungen haben.


FRM-30089
FRM-30089:  Zu viele Seiten.

Ursache:	Interner ORACLE-Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-30090
FRM-30090:  Zu viele Boilerplate-Objekte.

Ursache:	Interner ORACLE-Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-30091
FRM-30091:  Zu viele Trigger-Schritte.

Ursache:	Interner ORACLE-Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-30092
FRM-30092:  Zu viele Geltungsbereiche.

Ursache:	Interner ORACLE-Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-30093
FRM-30093:  Zu viele Trigger.

Ursache:	Interner ORACLE-Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-30094
FRM-30094:  Zu viele Objektzeiger.

Ursache:	Interner ORACLE-Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-30096
FRM-30096:  Form-Ausgabedatei %s konnte nicht erstellt werden.

Ursache:	Ein Betriebssystemfehler hat verhindert, daß Form Builder eine Ausgabedatei erstellen konnte.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-30100
FRM-30100:  Block muß mindestens ein Primärschlüsselobjekt enthalten.

Ursache:	Mindestens ein Objekt muß als Bestandteil des Primärschlüssels markiert sein, wenn eine der folgenden Bedingungen zutrifft:

1. Der Schlüsselmodus für den Block ist UPDATEABLE_PRIMARY_KEY oder NON_UPDATEABLE_PRIMARY_KEY.

2. Der Schlüsselmodus für den Block ist AUTOMATIC, die Datenquelle, bei der Sie angemeldet sind, unterstützt den Schlüsselmodus UNIQUE jedoch nicht.

Maßnahme:	Markieren Sie eines der Objekte als Bestandteil des Primärschlüssels, und kompilieren Sie neu.


FRM-30101
FRM-30101:  Zu viele Zeichenfolgen.

Ursache:	Interner ORACLE-Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-30102
FRM-30102:  Ausgabedatei konnte nicht komplett geschrieben werden.

Ursache:	Ein Betriebssystemfehler hat verhindert, daß Form Builder eine Ausgabedatei erstellen konnte.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-30109
FRM-30109:  Objekt %s.%s ist rechtsbündig ausgerichtet und Auswahlobjekt.

Ursache:	Ein Objekt kann entweder ein Auswahlobjekt oder ein rechtsbündig ausgerichtetes Objekt sein, jedoch nicht beides.

Maßnahme:	Definieren Sie das Objekt als Auswahlobjekt oder rechtsbündig ausgerichtetes Objekt.


FRM-30110
FRM-30110:  Sie müssen J, *J, **J, N, *N oder **N eingeben.

Ursache:	Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-30112
FRM-30112:  Warnung! %s bezieht sich auf Objekt im Block PARAMETER.

Ursache:	Sie haben auf ein Feld und nicht auf einen Parameter gezeigt.

Maßnahme:	Prüfen Sie, ob Sie dies wirklich wollen.


FRM-30113
FRM-30113:  Block muß Nicht-Abfrage-Datenbankobjekt enthalten.

Ursache:	Ein Block, bei dem Aktualisieren- und Einfügenvorgänge zulässig sind, muß mindestens ein Objekt enthalten, das von der Datenbank abgeleitet wurde.

Maßnahme:	Erstellen Sie ein abgeleitetes Objekt in dem Block.


FRM-30118
FRM-30118:  Warnmeldungsdatei %s konnte nicht erstellt werden.

Ursache:	Ein Betriebssystemfehler hat verhindert, daß Form Builder die Warnmeldungsdatei erstellt hat.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-30119
FRM-30119:  Fehler und Warnmeldungen wurden in Datei %s geschrieben.

Ursache:	Kompilierungsfehler.

Maßnahme:	Prüfen Sie die Fehler und Warnmeldungen in der angegebenen Datei.


FRM-30120
FRM-30120:  Makro %s von Version 1 nicht unterstützt.

Ursache:	Sie haben einen Makro von Forms Version 1.0 (#MACRO, #MACROIF oder #KEY) verwendet, der bei späteren Versionen von Form Builder nicht unterstützt wird.

Maßnahme:	Ersetzen Sie den Makro durch den entsprechenden Makro der späteren Version.


FRM-30121
FRM-30121:  Fehler in INTO-Klausel oder fehlende FROM-Klausel.

Ursache:	Ein V2-Trigger enthält eine fehlerhafte SQL-Anweisung.

Maßnahme:	Korrigieren Sie die SQL-Anweisung.


FRM-30122
FRM-30122:  Falsche Zeilenzahl.

Ursache:	Für ein Objekt wurde eine ungültige Y-Position angegeben. Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-30123
FRM-30123:  Falsche Spaltenzahl.

Ursache:	Für ein Objekt wurde eine ungültige X-Position angegeben. Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-30124
FRM-30124:  Zu viele Prozeduren.

Ursache:	Interner ORACLE-Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-30125
FRM-30125:  Zu viel Bibliothekseinheit-Speicher.

Ursache:	Interner ORACLE-Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-30129
FRM-30129:  Kompilierungsfehler bei Prozedurspezifikation für Prozedur %s.

Ursache:	Sie haben versucht, eine Prozedur zu kompilieren, die eine ungültige Spezifikation enthält.

Maßnahme:	Korrigieren Sie die Spezifikation.


FRM-30130
FRM-30130:  Für Trigger %s angegebener Code ist kein anonymer Block.

Ursache:	Sie haben Triggertext eingegeben, bei dem es sich nicht um einen anonymen Block handelte.

Maßnahme:	Schreiben Sie den Trigger neu, um ihn zu einem anonymen Block zu machen.


FRM-30131
FRM-30131:  Ungültige Parameterreferenz in Trigger %s.

Ursache:	Sie haben Triggertext eingegeben, der Parameter referenziert.

Maßnahme:	Entfernen Sie die Parameterreferenzen aus dem Trigger. HINWEIS: Um Parameter zu benutzen, schreiben Sie eine Prozedur auf Formebene.


FRM-30132
FRM-30132:  Für Trigger %s angegebener Code ist nicht ausführbar.

Ursache:	Sie haben nicht ausführbaren Triggertext eingegeben.

Maßnahme:	Schreiben Sie den Trigger neu.


FRM-30133
FRM-30133:  Kompilierungsfehler bei Trigger %s.

Ursache:	Sie haben ungültigen Triggertext eingegeben.

Maßnahme:	Zeigen Sie die Kompilierungsfehler auf dem Fehlerbildschirm an.


FRM-30134
FRM-30134:  Prozedur- und Einheitennamen für Prozedur %s stimmen nicht überein.

Ursache:	Der Prozedurname stimmt nicht mit dem im Prozedurtext angegebenen Namen überein.

Maßnahme:	Ändern Sie die Namen, so daß sie übereinstimmen.


FRM-30135
FRM-30135:  Für Prozedur %s angegebener Code ist keine benannte Einheit.

Ursache:	Sie haben einen anonymen Block eingegeben, während Sie eine Prozedur auf Formebene eingeben sollten.

Maßnahme:	Schreiben Sie die Prozedur auf Formebene neu.


FRM-30136
FRM-30136:  Für Prozedur %s angegebener Code ist nicht ausführbar.

Ursache:	Sie haben einen nicht ausführbaren Code für die angegebene Prozedur auf Formebene eingegeben.

Maßnahme:	Schreiben Sie die Prozedur auf Formebene neu.


FRM-30137
FRM-30137:  Kompilierungsfehler bei Prozedur %s.

Ursache:	Sie haben eine falsche Prozedur auf Formebene eingegeben.

Maßnahme:	Zeigen Sie die Kompilierungsfehler auf dem Fehlerbildschirm an.


FRM-30145
FRM-30145:  Zu viele Bindevariablen.

Ursache:	Interner ORACLE-Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-30148
FRM-30148:  Zu viel Pufferspeicher.

Ursache:	Interner ORACLE-Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-30149
FRM-30149:  Zu viele Wertelisten.

Ursache:	Interner ORACLE-Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-30150
FRM-30150:  Fehler in Wertelistentext für Objekt %s.%s.

Ursache:	Sie haben eine ungültige SQL-Anweisung in der Werteliste angegeben.

Maßnahme:	Schreiben Sie die SQL-Anweisung neu.


FRM-30152
FRM-30152:  Anmeldung bei der Datenbank nicht möglich.

Ursache:	Interner Systemfehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-30156
FRM-30156:  Form-Ausgabedatei %s konnte nicht geschlossen werden.

Ursache:	Ein Betriebssystemfehler hat verhindert, daß Form Builder eine Ausgabedatei schließen konnte.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-30157
FRM-30157:  Länge von LONG-Objekt muß zwischen 1 und 65534 liegen.

Ursache:	Die Länge des LONG-Objekts lag nicht im gültigen Bereich. Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-30158
FRM-30158:  Anzeigelänge muß zwischen 0 und 133 liegen.

Ursache:	Die Anzeigelänge lag nicht im gültigen Bereich. Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-30159
FRM-30159:  Trigger-Anweisung enthält keinen Text.

Ursache:	Ein leerer Trigger-Schritt wurde angetroffen. Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-30161
FRM-30161:  Inkonsistente Beziehung zwischen Fenster %s und der Primärleinwand %s.

Ursache:	Das Fenster stimmt nicht mit dem entsprechenden Fensterattribut der Primärleinwand überein.

Maßnahme:	Prüfen Sie das Fensterattribut der Primärleinwand oder der Leinwand.


FRM-30162
FRM-30162:  Inkonsistente Beziehung zwischen Fenster %s und der horizontalen Symbolleiste %s.

Ursache:	Das Fenster stimmt nicht mit dem Fensterattribut der horizontalen Symbolleiste überein.

Maßnahme:	Prüfen Sie das Fensterattribut der horizontalen Symbolleiste oder der Symbolleiste.


FRM-30163
FRM-30163:  Inkonsistente Beziehung zwischen Fenster %s und der vertikalen Symbolleiste %s

Ursache:	Das Fenster stimmt nicht mit dem Fensterattribut der vertikalen Symbolleiste überein..

Maßnahme:	Prüfen Sie das Fensterattribut der horizontalen Symbolleiste oder der Symbolleiste.


FRM-30169
FRM-30169:  Benutzername und Kennwort sind erforderlich.

Ursache:	Sie haben Ihren Benutzernamen und das Kennwort nicht angegeben, um sich bei der Datenbank anzumelden.

Maßnahme:	Geben Sie Ihren Benutzernamen und das Kennwort ein.


FRM-30170
FRM-30170:  Warnfenster muß mindestens eine Schaltfläche enthalten - %s.

Ursache:	Das Warnfenster enthält keine Schaltflächen.

Maßnahme:	Erstellen Sie mindestens eine Schaltfläche für das Warnfenster.


FRM-30172
FRM-30172:  Dieses Objekt ist nicht vorhanden.

Ursache:	Sie haben ein Objekt angegeben, das innerhalb der referenzierten Datensatzgruppe nicht vorhanden ist.

Maßnahme:	Korrigieren Sie die Referenz.


FRM-30173
FRM-30173:  Modul enthält keine Leinwände.

Ursache:	Sie haben versucht, ein Formmodul zu kompilieren, das keine Leinwand enthält.

Maßnahme:	Definieren Sie mindestens eine Leinwand für das Formmodul.


FRM-30174
FRM-30174:  Werte von Ausgewähltem und Nicht ausgewähltem Kontrollkästchen müssen verschieden sein.

Ursache:	Das Kontrollkästchen hat identische Werte für den Status Ausgewählt und Nicht ausgewählt.

Maßnahme:	Prüfen Sie die Werte, und wiederholen Sie den Versuch.


FRM-30179
FRM-30179:  Block %s nicht gefunden.

Ursache:	Der angegebene Blockname ist nicht vorhanden.

Maßnahme:	Prüfen Sie den Blocknamen, und wiederholen Sie den Versuch.


FRM-30180
FRM-30180:  Keine Optionsschaltflächen in der Optionsgruppe.

Ursache:	Eine Optionsgruppe wurde ohne Optionsschaltflächen definiert.

Maßnahme:	Definieren Sie mindestens eine Optionsschaltfläche für die Optionsgruppe.


FRM-30182
FRM-30182:  Länge des Bildobjekts muß mindestens 1024 betragen.

Ursache:	Die maximale Länge des Bildes muß größer sein als 1024.

Maßnahme:	Vergrößern Sie das Bild auf die maximale Länge.


FRM-30184
FRM-30184:  Anderer Wert nicht gefunden.

Ursache:	Der definierte Andere Wert entspricht keinem der gültigen Werte bzw. keiner der gültigen Beschriftungs-Zeichenfolgen.

Maßnahme:	Definieren Sie einen gültigen Anderen Wert.


FRM-30185
FRM-30185:  Datensatzgruppe %s enthält mehr als eine Spalte vom Typ LONG.

Ursache:	Eine Datensatzgruppe kann nur eine LONG-Spalte enthalten.

Maßnahme:	Gehen Sie folgendermaßen vor:

1. Entfernen Sie alle LONG-Spalten mit Ausnahme von einer in der Datensatzgruppe.

2. Ändern Sie den Typ von allen LONG-Spalten in der Datensatzgruppe mit Ausnahme von einer.


FRM-30186
FRM-30186:  Statische Datensatzgruppe %s enthält LONG-Spalte.

Ursache:	Statische Datensatzgruppen dürfen keine Spalten vom Typ LONG enthalten.

Maßnahme:	Gehen Sie folgendermaßen vor:

1. Machen Sie die Gruppe zu einer Abfrage-Datensatzgruppe.

2. Ändern Sie den Typ der LONG-Spalte.


FRM-30187
FRM-30187:  Größe der CHAR-Spalte in einer Datensatzgruppe muß zwischen 1 und 2000 liegen.

Ursache:	Die Größe einer Zeichenspalte in der Datensatzgruppe wurde falsch angegeben.

Maßnahme:	Stellen Sie sicher, daß die Größe der Zeichenspalten in der Datensatzgruppe zwischen 1 und 2000 liegt.


FRM-30188
FRM-30188:  Kein Ausgangswert angegeben, und andere Werte sind nicht zulässig (Objekt %s.%s).

Ursache:	Für ein Objekt wurde kein Ausgangswert angegeben.

Maßnahme:	Geben Sie einen Ausgangswert für das Objekt an.


FRM-30089
FRM-30089:  Attributklasse %s nicht gefunden.

Ursache:	Interner ORACLE-Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-30190
FRM-30190:  Keine Listenobjekte für T-Liste definiert.

Ursache:	Sie haben eine leere T-Liste definiert.

Maßnahme:	Definieren Sie Objekte in der T-Liste.


FRM-30191
FRM-30191:  Keine Listenobjekte für obligatorische Popup-Liste definiert.

Ursache:	Sie haben eine leere Popup-Liste definiert.

Maßnahme:	Definieren Sie Objekte in der Popup-Liste.


FRM-30193
FRM-30193:  Formatmaske bei JDATE-Objekt %s.%s nicht zulässig.

Ursache:	Formatmasken sind nur bei Objekten vom Typ NUMBER, DATE, TIME und DATETIME zulässig.

Maßnahme:	Entfernen Sie die Formatmaske von dem JDATE-Objekt.


FRM-30195
FRM-30195:  Formatmaske bei EDATE-Objekt %s.%s nicht zulässig.

Ursache:	Formatmasken sind nur bei Objekten vom Typ NUMBER, DATE, TIME und DATETIME zulässig.

Maßnahme:	Entfernen Sie die Formatmaske von dem EDATE-Objekt.


FRM-30196
FRM-30196:  Zu viele benutzerdefinierte Trigger.

Ursache:	Sie haben mehr benutzerdefinierte Trigger definiert, als Forms Speicherplatz zuweisen kann.

Maßnahme:	Definieren Sie weniger benutzerdefinierte Trigger.


FRM-30197
FRM-30197:  Zeile kann nicht an Datensatzgruppe angefügt werden.

Ursache:	Sie müssen die Datensatzgruppe erstellen und Spalten hinzufügen, bevor Sie versuchen, Zeilen hinzuzufügen.

Maßnahme:	Prüfen Sie, ob die angegebene Datensatzgruppe vorhanden ist.


FRM-30199
FRM-30199:  Für diesen Block sind keine Transaktions-Trigger vorhanden.

Ursache:	Sie haben einen Transaktions-Trigger referenziert, für dieses Modul sind jedoch keine Transaktions-Trigger vorhanden.

Maßnahme:	Erstellen Sie den Trigger, oder löschen Sie die Referenz.


FRM-30201
FRM-30201:  Fehler beim Upgrade der Form aufgetreten.

Ursache:	Bei der Konvertierung von SQL*Forms 3.0 zu Forms 4.5 ist ein Fehler aufgetreten.

Maßnahme:	Prüfen Sie gegebenenfalls angezeigte zusätzliche Fehlermeldungen, oder nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-30203
FRM-30203:  Keine Objekte in Block %s.

Ursache:	Sie haben versucht, ein Formmodul zu kompilieren, das einen Block ohne Objekte enthält.

Maßnahme:	Definieren Sie einige Objekte für den Block.


FRM-30204
FRM-30204:  Komplette Datenlänge der Objekte dieses Blocks ist zu groß.

Ursache:	Die Feldlänge des Objekts überschreitet den Grenzwert.

Maßnahme:	Reduzieren Sie die Feldlänge des Objekts.


FRM-30205
FRM-30205:  Parameter-Referenz %s kann nicht aufgelöst werden.

Ursache:	Der referenzierte Parameter wurde nicht gefunden.

Maßnahme:	Deklarieren Sie den Parameter, oder entfernen Sie die Referenz.


FRM-30207
FRM-30207:  Mausnavigation muß für Objekt %s.%s in Kombinationsfeld auf Ja gesetzt sein.

Ursache:	Das Attribut Mausnavigation muß für ein Kombinationsfeld auf Ja gesetzt sein.

Maßnahme:	Setzen Sie den Attributwert auf Ja.


FRM-30209
FRM-30209:  Modul enthält keine Fenster.

Ursache:	Für ein Formmodul muß mindestens ein Fenster definiert sein.

Maßnahme:	Definieren Sie ein Fenster für das Formmodul.


FRM-30305
FRM-30305:  Bibliotheksdatei %s kann nicht geöffnet werden.

Ursache:	Die Attribute des VBX-Steuerelements wurden geändert.

Maßnahme:	Definieren Sie die VBX-Attribute neu.


FRM-30306
FRM-30306:  Bibliothek %s kann nicht gespeichert werden.

Ursache:	Die Attribute des VBX-Steuerelements wurden geändert.

Maßnahme:	Definieren Sie die VBX-Attribute neu.


FRM-30307
FRM-30307:  Prozeduren können nicht aus Bibliothek geladen werden.

Ursache:	Die Attribute des VBX-Steuerelements wurden geändert.

Maßnahme:	Definieren Sie die VBX-Attribute neu.


FRM-30308
FRM-30308:  Speicherzuweisung ist nicht möglich.

Ursache:	Die Attribute des VBX-Steuerelements wurden geändert.

Maßnahme:	Definieren Sie die VBX-Attribute neu.


FRM-30309
FRM-30309:  Bibliothek enthält keinen PL/SQL-Code.

Ursache:	Die Attribute des VBX-Steuerelements wurden geändert.

Maßnahme:	Definieren Sie die VBX-Attribute neu.


FRM-30311
FRM-30311:  Bibliotheken können nicht zugeordnet werden.

Ursache:	Die Attribute des VBX-Steuerelements wurden geändert.

Maßnahme:	Definieren Sie die VBX-Attribute neu.


FRM-30312
FRM-30312:  Bibliothek konnte nicht kompiliert werden.

Ursache:	Die Attribute des VBX-Steuerelements wurden geändert.

Maßnahme:	Definieren Sie die VBX-Attribute neu.


FRM-30213
FRM-30213:  Wert für den oberen Bereich muß größer sein als Wert für den unteren Bereich.

Ursache:	Der Maximalwert ist bei Textobjekten größer als der Minimalwert.

Maßnahme:	Definieren Sie einen Maximalwert, der größer ist als der Minimalwert.


FRM-30351
FRM-30351:  Keine Listenelemente für Listenobjekt definiert.

Ursache:	Eine Kombinationsliste muß Listenelemente enthalten.

Maßnahme:	Definieren Sie Elemente für eine Kombinationsliste.


FRM-30352
FRM-30352:  Ungültiger Spiegelobjektname %s für Objekt %s.%s.

Ursache:	Ein ungültiger Spiegelobjektname wurde für das Objekt angegeben.

Maßnahme:	Benutzen Sie einen gültigen Spiegelobjektnamen.


FRM-30353
FRM-30353:  Keine VBX-Steuerelementdatei für VBX-Objekt angegeben.

Ursache:	Es wurde keine VBX-Steuerdatei angegeben.

Maßnahme:	Geben Sie eine VBX-Steuerdatei in Form Builder an.


FRM-30354
FRM-30354:  Kein VBX-Steuerelementname für VBX-Objekt angegeben.

Ursache:	Es wurde kein VBX-Steuerelementname angegeben.

Maßnahme:	Geben Sie einen VBX-Steuerelementnamen in Form Builder an.


FRM-30355
FRM-30355:  Zu viele Spiegelobjekte für Objekt %s angegeben.

Ursache:	Die Anzahl von Spiegelobjekten überschreitet den Höchstwert von 100.

Maßnahme:	Stellen Sie sicher, daß Sie die maximale Anzahl von Spiegelobjekten nicht überschreiten.


FRM-30356
FRM-30356:  Zu viele Datensätze für dieses Objekt angezeigt.

Ursache:	Die Anzahl von Datensätzen, die für dieses Objekt angezeigt wird, überschreitet die Anzahl von Datensätzen, die für den Block angezeigt werden.

Maßnahme:	Reduzieren Sie die Anzahl von angezeigten Datensätzen für das Objekt.


FRM-30357
FRM-30357:  Objekt ist sein eigenes Spiegelobjekt.

Ursache:	Sie haben das Attribut Spiegelobjekt für ein Objekt auf das Objekt selbst eingestellt.

Maßnahme:	Geben Sie ein anderes gültiges Objekt für das Attribut Spiegelobjekt an.


FRM-30358
FRM-30358:  Spiegelobjekt %s des Objekts bezieht sich auch auf ein Spiegelobjekt.

Ursache:	Sie haben das Attribut Spiegelobjekt für ein Objekt auf ein Objekt eingestellt, das ebenfalls ein Spiegelobjekt angibt.

Maßnahme:	Geben Sie ein Objekt an, bei dem es sich nicht um ein Spiegelobjekt handelt.


FRM-30359
FRM-30359:  Objekt gibt nicht vorhandene Leinwand %s an.

Ursache:	Sie haben eine Leinwand angegeben, die nicht vorhanden ist.

Maßnahme:	Geben Sie eine gültige Leinwand an.


FRM-30360
FRM-30360:  Warnfenster enthält die angegebene Standardschaltfläche nicht.

Ursache:	Sie haben eine Standardschaltfläche angegeben, die nicht Bestandteil der Definition des Warnfensters ist.

Maßnahme:	Geben Sie eine Beschriftung für die Standardschaltfläche an, oder geben Sie eine gültige Standardschaltfläche an.


FRM-30361
FRM-30361:  Ungültiger Ausgangswert für Kontrollkästchen.

Ursache:	Sie haben einen Ausgangswert für ein Kontrollkästchen-Objekt angegeben, der nicht mit den Werten des Status Ausgewählt bzw. Nicht ausgewählt übereinstimmt.

Maßnahme:	Geben Sie einen gültigen Ausgangswert an.


FRM-30362
FRM-30362:  Ausgangswert stimmt nicht mit verfügbaren Listenelementen überein.

Ursache:	Sie haben einen Wert angegeben, der nicht mit einem Wert in der verfügbaren Elementeliste übereinstimmt.

Maßnahme:	Geben Sie einen gültigen Wert an.


FRM-30363
FRM-30363:  Ausgangswert entspricht keiner der Optionsschaltflächen.

Ursache:	Sie haben einen Wert angegeben, der nicht mit einer Optionsschaltfläche in einer Optionsgruppe verknüpft ist.

Maßnahme:	Geben Sie einen Wert an, der mit einer Optionsschaltfläche in der Optionsgruppe verknüpft ist.


FRM-30364
FRM-30364:  Anderer Wert stimmt mit keiner der Optionsschaltflächen überein.

Ursache:	Sie haben einen Wert angegeben, bei dem es sich nicht um den Namen einer Optionsschaltfläche oder den Wert handelt, der mit einer Optionsschaltfläche in einer Optionsgruppe verknüpft ist.

Maßnahme:	Geben Sie einen Namen einer Optionsschaltfläche in der Optionsgruppe oder einen Wert an, der mit einer Optionsschaltfläche in der Optionsgruppe verknüpft ist.


FRM-30367
FRM-30367:  OLE-Objekt kann kein Spiegelobjekt angeben.

Ursache:	Sie haben ein OLE-Objekt zur Angabe eines Spiegelobjekts benutzt.

Maßnahme:	OLE-Objekte können nicht gespiegelt werden. Benutzen Sie ein anderes Objekt, um ein Spiegelobjekt anzugeben.


FRM-30368
FRM-30368:  Objekt gibt eine Registerseite %s an, die nicht vorhanden ist.

Ursache:	Sie haben einen ungültigen Namen einer Registerseite angegeben.

Maßnahme:	Stellen Sie sicher, daß der Name der Registerseite in der Registerleinwand für dieses Objekt vorhanden ist.


FRM-30369
FRM-30369:  Popup-Menüpunkt gibt nicht vorhandenes Untermenü %s an.

Ursache:	Sie haben einen ungültigen Untermenünamen angegeben.

Maßnahme:	Prüfen Sie den Untermenünamen, und wiederholen Sie den Versuch.


FRM-30370
FRM-30370:  Popup-Menü muß mindestens einen Menüpunkt enthalten.

Ursache:	Das Popup-Menü enthält keine Menüpunkte.

Maßnahme:	Fügen Sie mindestens einen Menüpunkt zu dem Popup-Menü hinzu.


FRM-30373
FRM-30373:  Ungültiger Befehlstyp für Popup-Menüpunkt angegeben.

Ursache:	Sie haben einen Befehlstyp ausgewählt, der für die Popup-Menüpunkte nicht gültig ist.

Maßnahme:	Wählen Sie einen Befehlstyp, der für Popup-Menüpunkte gültig ist.


FRM-30374
FRM-30374:  Ungültiger Objekttyp für Popup-Menüpunkt.

Ursache:	Sie haben einen ungültigen Objekttyp für einen Popup-Menüpunkt ausgewählt.

Maßnahme:	Wählen Sie einen gültigen Objekttyp aus.


FRM-30375
FRM-30375:  Datentyp für Nicht-Min/Max-Summenobjekt muß Number sein.

Ursache:	Ein Summenobjekt mit einer Summenfunktion von Anzahl, Summe, Mittelwert, Varianz oder Standardabweichung hat einen anderen Datentyp als Number.

Maßnahme:	Entfernen Sie das Summenobjekt, oder ändern Sie den Datentyp in Number.


FRM-30376
FRM-30376:  Datentyp für Min/Max-Summenobjekt muß mit summiertem Objekt übereinstimmen.

Ursache:	Ein Summenobjekt mit einer Summenfunktion von Min oder Max hat einen Datentyp, der nicht mit dem Datentyp des summierten Objekts übereinstimmt.

Maßnahme:	Entfernen Sie das Summenobjekt, oder ändern Sie den Datentyp so, daß er dem Datentyp des summierten Objekts entspricht.


FRM-30377
FRM-30377:  Summenobjekt muß in Einzeldatensatzblock oder im selben Block wie das summierte Objekt stehen.

Ursache:	Ein Summenobjekt steht in einem anderen Block als das summierte Objekt, und für den Block des Summenobjekts wurde das Attribut Einzelner Datensatz nicht auf Ja eingestellt.

Maßnahme:	Verschieben Sie das Summenobjekt in den Block, der das summierte Objekt enthält, oder in einen Block, für den das Attribut Einzelner Datensatz auf Ja eingestellt ist.


FRM-30378
FRM-30378:  Summiertes Objekt darf nicht Summenobjekt sein und darf nicht in einem Einzeldatensatzblock stehen.

Ursache:	Ein Summenobjekt gibt eines der folgenden Objekte als summiertes Objekt an:

1. Ein anderes Summenobjekt.

2. Ein Objekt in einem Block, für den das Attribut Einzelner Datensatz auf Ja eingestellt ist.

Maßnahme:	Entfernen Sie das Summenobjekt, oder ändern Sie es so, daß ein Nicht-Summenobjekt in einem Block summiert wird, für den das Attribut Einzelner Datensatz auf Nein eingestellt ist.


FRM-30379
FRM-30379:  Hinweistext darf 255 Zeichen nicht überschreiten.

Ursache:	Der Hinweistext für das Objekt ist länger als 255 Zeichen.

Maßnahme:	Kürzen Sie den Hinweistext.


FRM-30380
FRM-30380:  Endlosfolge von abhängigen berechneten Objekten vorhanden.

Ursache:	Es ist eine Endlosfolge von berechneten Objekten vorhanden, wobei der Wert jedes Objekts in der Folge von dem Wert des nächsten Objekts in der Folge abhängig ist.

Die Objekte in der Folge werden unter der Fehlermeldung aufgeführt.

Maßnahme:	Entfernen Sie ein Objekt in der Folge, oder ändern Sie ein Objekt in der Folge, so daß es nicht von einem anderen Objekt in der Folge abhängig ist.

Bei Formelobjekten müssen Sie sicherstellen, daß weder die Formel noch eine Funktion oder Prozedur, die dieses aufruft, ein Objekt in der Folge referenziert.

Bei Summenobjekten müssen Sie sicherstellen, daß das Objekt, das summiert wird, nicht in der Folge steht.


FRM-30390
FRM-30390:  Warnung: Attribut Hinweis bei berechnetem Objekt %s.%s ignoriert.

Ursache:	Das Attribut Hinweis wurde für ein berechnetes Objekt angegeben. Es wird ignoriert.

Maßnahme:	Keine Maßnahme erforderlich.


FRM-30391
FRM-30391:  Warnung: Attribut Wert aus Objekt kopieren bei berechnetem Objekt %s.%s ignoriert.

Ursache:	Das Attribut Wert aus Objekt kopieren wurde für ein berechnetes Objekt angegeben. Es wird ignoriert.

Maßnahme:	Keine Maßnahme erforderlich.


FRM-30392
FRM-30392:  Warnung: Attribut Ausgangswert bei berechnetem Objekt %s.%s ignoriert.

Ursache:	Das Attribut Ausgangswert wurde für ein berechnetes Objekt angegeben. Es wird ignoriert.

Maßnahme:	Keine Maßnahme erforderlich.


FRM-30393
FRM-30393:  Warnung: Attribut Maximalwert bei berechnetem Objekt %s.%s ignoriert.

Ursache:	Das Attribut Maximalwert wurde für ein berechnetes Objekt angegeben. Es wird ignoriert.

Maßnahme:	Keine Maßnahme erforderlich.


FRM-30394
FRM-30394:  Warnung: Attribut Minimalwert bei berechnetem Objekt %s.%s ignoriert.

Ursache:	Das Attribut Minimalwert wurde für ein berechnetes Objekt angegeben. Es wird ignoriert.

Maßnahme:	Keine Maßnahme erforderlich.


FRM-30395
FRM-30395:  Andere Werte für berechnetes Objekt erforderlich.

Ursache:	Das Attribut Zuordnung anderer Werte wurde für ein berechnetes Objekt nicht angegeben, bei dem es sich um ein Kontrollkästchen, ein Listenobjekt oder eine Optionsgruppe handelt.

Maßnahme:	Setzen Sie das Attribut Zuordnung anderer Werte für das Objekt.


FRM-30396
FRM-30396:  Summenfunktion für Summenobjekt erforderlich.

Ursache:	Für das Attribut Summenfunktion wurde bei einem Summenobjekt Keine angegeben.

Maßnahme:	Setzen Sie das Attribut Summenfunktion auf einen anderen Wert als Keine.


FRM-30397
FRM-30397:  Warnung: Summenfunktion bei Nicht-Summenobjekt %s.%s ignoriert.

Ursache:	Das Attribut Summenfunktion wurde für ein Objekt angegeben, bei dem es sich nicht um ein Summenobjekt handelt. Es wird ignoriert.

Maßnahme:	Keine Maßnahme erforderlich. Um diese Warnmeldung in Zukunft zu vermeiden, setzen Sie das Attribut Summenfunktion auf Keine.


FRM-30398
FRM-30398:  Attribute Summierter Block und Summiertes Objekt sind für Summenobjekte erforderlich.

Ursache:	Die Attribute Summierter Block und Summiertes Objekt wurden für ein Summenobjekt nicht eingestellt.

Maßnahme:	Geben Sie Werte für die Attribute an.


FRM-30399
FRM-30399:  Warnung: Summiertes Objekt bei Nicht-Summenobjekt %s.%s ignoriert.

Ursache:	Das Attribut Summierter Block oder Summiertes Objekt wurde für ein Objekt angegeben, bei dem es sich nicht um ein Summenobjekt handelt. Das Attribut wird ignoriert.

Maßnahme:	Keine Maßnahme erforderlich.


FRM-30400
FRM-30400:  Formel erforderlich für Formelobjekt.

Ursache:	Das Attribut Formel wurde nicht für ein Formelobjekt angegeben.

Maßnahme:	Geben Sie das Attribut Formel an.


FRM-30401
FRM-30401:  Warnung: Formel ignoriert bei Nicht-Formelobjekt %s.%s.

Ursache:	Das Attribut Formel wurde für ein Objekt angegeben, bei dem es sich nicht um ein Formelobjekt handelt. Das Attribut wird ignoriert.

Maßnahme:	Keine Maßnahme erforderlich. Um diese Warnmeldung in Zukunft zu vermeiden, löschen Sie das Attribut Formel.


FRM-30402
FRM-30402:  Berechnetes Objekt kann kein Rückgabeobjekt einer Werteliste sein.

Ursache:	Ein berechnetes Objekt wird in der Spaltenzuordnung für eine Werteliste als Rückgabeobjekt angegeben.

Maßnahme:	Entfernen Sie das Rückgabeobjekt, oder geben Sie ein Objekt an, bei dem es sich nicht um ein berechnetes Objekt handelt.


FRM-30403
FRM-30403:  Berechnetes Objekt kann kein Spiegelobjekt angeben oder als Spiegelobjekt angegeben werden.

Ursache:	Ein berechnetes Objekt gibt ein Spiegelobjekt an oder wird von einem anderen Objekt in dem Block als Spiegelobjekt angegeben.

Maßnahme:	Entfernen Sie das Attribut Spiegelobjekt. Damit zwei berechnete Objekte einander spiegeln, machen Sie eines der Objekte zu einem Formelobjekt, dessen Formel einfach ':' gefolgt vom Namen des anderen berechneten Objekts lautet.


FRM-30404
FRM-30404:  Objekttyp von summiertem Objekt darf nicht Schaltfläche, Diagramm, Bild, Klang oder OLE-Container sein.

Ursache:	Ein Summenobjekt gibt ein summiertes Objekt an, bei dem es sich um eine Schaltfläche, ein Diagramm, ein Bild, einen Klang oder einen OLE-Container handelt. Ein solches Objekt hat keinen zugehörigen Datenwert und kann somit nicht summiert werden.

Maßnahme:	Entfernen Sie das Summenobjekt, oder ändern Sie das summierte Objekt in ein Objekt, das einen zugehörigen Datenwert hat.


FRM-30405
FRM-30405:  Datentyp für summiertes Objekt Summe/Mittelwert/Varianz/Stdabw muß Number sein.

Ursache:	Ein Summenobjekt, dessen Summenfunktion Summe, Mittelwert, Varianz oder Standardabweichung ist, gibt ein summiertes Objekt mit einem anderen Datentyp als Number an.

Maßnahme:	Entfernen Sie das Summenobjekt, oder ändern Sie das summierte Objekt in einen Datentyp Number.


FRM-30406
FRM-30406:  Block mit Array-DML muß erforderliche Primärschlüsselobjekte haben.

Ursache:	Der Wert des Blockattributs DML-Array-Größe ist größer als 1, für keines der Objekte ist jedoch das Attribut Primärschlüssel auf Ja eingestellt. Außerdem treffen folgende Bedingungen zu:

1. Der Schlüsselmodus für den Block ist UPDATEABLE_PRIMARY_KEY oder NON_UPDATEABLE_PRIMARY_KEY.

2. Die Datenquelle, bei der Sie angemeldet sind, unterstützt den Schlüsselmodus UNIQUE nicht.

Maßnahme:	Gehen Sie folgendermaßen vor:

1. Geben Sie einen Primärschlüssel für den Datenblock an, indem Sie das Attribut Primärschlüssel für ein oder mehrere Objekte auf Ja setzen.

2. Setzen Sie das Attribut DML-Array-Größe für den Datenblock auf 1.


FRM-30407
FRM-30407:  Block muß mindestens ein Datenbankobjekt haben.

Ursache:	Das Formmodul enthält einen Datenblock ohne Datenbankobjekte.

Maßnahme:	Definieren Sie mindestens ein Datenbankobjekt für den Datenblock.


FRM-30408
FRM-30408:  Ungültiger Wert.

Ursache:	Der eingegebene Wert für den angegebenen Datentyp ist ungültig.

Maßnahme:	Korrigieren Sie einen oder mehrere der folgenden Werte:

1. Datentyp des Arguments, das dem angegebenen Wert in der Prozedurargumentliste der angegebenen Prozedur entspricht.

2. Wert des Arguments in der Prozedurargumentliste der angegebenen Prozedur.


FRM-30409
FRM-30409:  Verhalten bei Datensatz löschen für die Beziehung ist ungültig.

Ursache:	Das Verhalten bei Datensatz löschen für die Beziehung ist mit dem Detail-Datenblock nicht kompatibel.

Maßnahme:	Ändern Sie einen der folgenden Werte:

1. Das Verhalten bei Datensatz löschen für die Beziehung.

2. Den DML-Datenzieltyp/Abfrage-Datenquelltyp des Detail-Datenblocks. (Wenn für Verhalten bei Datensatz löschen Kaskadierend angegeben wird, muß der DML-Datenzieltyp des Detail-Datenblocks Tabelle sein. Wenn für Verhalten bei Datensatz löschen der Beziehung Isoliert angegeben wird, muß der Abfrage-Datenquelltyp des Detail-Datenblocks Tabelle sein.)


FRM-30410
FRM-30410:  Warnung: Attribut Einzelner Datensatz bei Nicht-Steuerblock %s ignoriert.

Ursache:	Das Attribut Einzelner Datensatz für einen Block wurde als Ja angegeben, allerdings wird auch eine Abfrage-Datenquelle oder ein DML-Datenziel angegeben.

Maßnahme:	Keine Maßnahme erforderlich. Um diese Warnmeldung in Zukunft zu vermeiden, stellen Sie das Attribut Einzelner Datensatz auf Nein ein.


FRM-30411
FRM-30411:  Speicherzuweisung nicht erfolgreich. Form neu kompilieren mit compile_all=yes.

Ursache:	Eine Speicherzuweisung war nicht erfolgreich, während Abhängigkeitsinformationen für ein berechnetes Objekt berechnet wurden.

Maßnahme:	Gehen Sie folgendermaßen vor. Kompilieren Sie das Formmodul:

1. 'Eigenständig' (nicht innerhalb von Form Builder), wobei angegeben wird, daß der gesamte PL/SQL-Code kompiliert werden muß.

2. Auf einem Rechner mit mehr Speicherplatz.

3. Auf einem Rechner mit weniger gleichzeitig ausgeführten Jobs.


FRM-30413
FRM-30413:  Beziehung hat keinen Detail-Block.

Ursache:	In einer Master-Detail-Beziehung wurde kein Detail-Block angegeben.

Maßnahme:	Geben Sie einen Detail-Block an.


FRM-30414
FRM-30414:  Detail-Block der Beziehung ist nicht vorhanden.

Ursache:	Eine Master-Detail-Beziehung gibt einen nicht vorhandenen Detail-Block an.

Maßnahme:	Geben Sie einen vorhandenen Detail-Block an.


FRM-30415
FRM-30415:  Detail-Block der Beziehung ist ein Steuerblock.

Ursache:	Eine Master-Detail-Beziehung gibt einen Detail-Block an, bei dem es sich um einen Steuerblock handelt.

Maßnahme:	Geben Sie einen Detail-Block an, bei dem es sich um einen Datenbankblock handelt.


FRM-30416
FRM-30416:  Master-Block der Beziehung ist ein Steuerblock.

Ursache:	Eine Master-Detail-Beziehung gibt einen Master-Block an, bei dem es sich um einen Steuerblock handelt.

Maßnahme:	Geben Sie einen Master-Block an, bei dem es sich um einen Datenbankblock handelt.


FRM-30417
FRM-30417:  Detail-Block der Beziehung ist identisch mit Master-Block.

Ursache:	Eine Master-Detail-Beziehung gibt einen Detail-Block an, der identisch mit dem Master-Block ist.

Maßnahme:	Geben Sie unterschiedliche Master- und Detail-Blöcke an.


FRM-30418
FRM-30418:  Block enthält zu viele Objekte (mehr als %d) für aktuelle Plattform.

Ursache:	Die Anzahl von Objekten in diesem Block überschreitet die zulässige Höchstzahl pro Block.

Maßnahme:	Benutzen Sie weniger Objekte in dem Block, oder teilen Sie die Objekte auf zwei oder mehr separate Blöcke auf.


FRM-30419
FRM-30419:  Block-Bildlaufleiste gibt ein Register %s an, das nicht vorhanden ist.

Ursache:	Eine Bildlaufleiste ist einem Register zugewiesen, das in der Form nicht vorhanden ist.

Maßnahme:	Prüfen Sie den Namen des Registers, und stellen Sie sicher, daß dieses in der Leinwand vorhanden ist, zu der diese Bildlaufleiste gehört.


FRM-30420
FRM-30420:  QUERY-PROCEDURE-Trigger kann nicht kompiliert werden.

Ursache:	Abfrage-Prozedurspalten und/oder Abfrage-Prozedurargumente sind nicht richtig deklariert.

Maßnahme:	Korrigieren Sie die Definitionen der Abfrage-Prozedurspalten und/oder Abfrage-Prozedurargumente.


FRM-30421
FRM-30421:  INSERT-PROCEDURE-Trigger kann nicht kompiliert werden.

Ursache:	Einfüge-Prozedurspalten und/oder Einfüge-Prozedurargumente sind nicht richtig deklariert.

Maßnahme:	Korrigieren Sie die Definitionen der Einfüge-Prozedurspalten und/oder Einfüge-Prozedurargumente.


FRM-30422
FRM-30422:  UPDATE-PROCEDURE-Trigger kann nicht kompiliert werden.

Ursache:	Aktualisieren-Prozedurspalten und/oder Aktualisieren-Prozedurargumente sind nicht richtig deklariert.

Maßnahme:	Korrigieren Sie die Definitionen der Aktualisieren-Prozedurspalten und/oder Aktualisieren-Prozedurargumente.


FRM-30423
FRM-30423:  DELETE-PROCEDURE-Trigger kann nicht kompiliert werden.

Ursache:	Löschen-Prozedurspalten und/oder Löschen-Prozedurargumente sind nicht richtig deklariert.

Maßnahme:	Korrigieren Sie die Definitionen der Löschen-Prozedurspalten und/oder Löschen-Prozedurargumente.


FRM-30424
FRM-30424:  LOCK-PROCEDURE-Trigger kann nicht kompiliert werden.

Ursache:	Sperren-Prozedurspalten und/oder Sperren-Prozedurargumente sind nicht richtig deklariert.

Maßnahme:	Korrigieren Sie die Definitionen der Sperren-Prozedurspalten und/oder Sperren-Prozedurargumente.


FRM-30425
FRM-30425:  Summiertes Datenbankobjekt muß in einem Block stehen, für den bei Alle Datensätze abfragen oder Summen im voraus berechnen Ja angegeben ist.

Ursache:	Ein Summenobjekt gibt ein summiertes Objekt an, bei dem es sich um ein Datenbankobjekt in einem Datenbankblock handelt, dessen Attribute Alle Datensätze abfragen und Summen im voraus berechnen beide auf Nein eingestellt sind.

Maßnahme:	Entfernen Sie das Summenobjekt, oder stellen Sie die Attribute Summen im voraus berechnen oder Alle Datensätze abfragen für den Block des summierten Objekts auf Ja ein.


FRM-30426
FRM-30426:  Summiertes Steuerobjekt muß in einem Steuerblock stehen oder in einem Block, für den Alle Datensätze abfragen auf Ja gesetzt ist.

Ursache:	Ein Summenobjekt gibt ein summiertes Objekt an, bei dem es sich um ein Steuerobjekt in einem Datenbankblock handelt, dessen Attribut Alle Datensätze abfragen auf Nein gesetzt ist.

Maßnahme:	Entfernen Sie das Summenobjekt, oder setzen Sie das Attribut Summen im voraus berechnen für den Block des summierten Objekts auf Nein und Alle Datensätze abfragen auf Ja.


FRM-30427
FRM-30427:  Summiertes Steuerobjekt darf nicht in einem Block stehen, bei dem für Summen im voraus berechnen Ja angegeben ist.

Ursache:	Ein Summenobjekt gibt ein summiertes Steuerobjekt an, das in einem Block steht, für den das Attribut Summen im voraus berechnen auf Ja eingestellt ist.

Maßnahme:	Entfernen Sie das Summenobjekt, oder setzen Sie das Attribut Summen im voraus berechnen für den Block des summierten Objekts auf Nein und Alle Datensätze abfragen auf Ja.


FRM-30428
FRM-30428:  Summiertes Min/Max-Objekt kann nicht in einem Block stehen, bei dem für Summen im voraus berechnen Ja angegeben ist.

Ursache:	Ein Summenobjekt mit einer Summenfunktion Min oder Max gibt ein summiertes Objekt in einem Block an, bei dem für Summen im voraus berechnen Ja angegeben ist.

Maßnahme:	Entfernen Sie das Summenobjekt, oder setzen Sie das Attribut Summen im voraus berechnen für den Block des summierten Objekts auf Nein und Alle Datensätze abfragen auf Ja.


FRM-30429
FRM-30429:  Für Block mit Summen im voraus berechnen muß Abfrage-Datenquelltyp als Tabelle oder FROM-Klausel-Abfrage angegeben werden.

Ursache:	Für einen Block ist das Attribut Summen im voraus berechnen auf Ja gesetzt, der Abfrage-Datenquelltyp ist jedoch auf Prozedur oder Transaktions-Trigger gesetzt.

Maßnahme:	Setzen Sie Summen im voraus berechnen auf Nein. Wenn der Block summierte Objekte enthält, setzen Sie Alle Datensätze abfragen auf Ja.


FRM-30430
FRM-30430:  Warnung: Block %s gibt Summen im voraus berechnen an, Isolationsmodus der Form ist jedoch nicht Serialisierbar.

Ursache:	Bei einem Block wird für Summen im voraus berechnen Ja angegeben, die Form gibt jedoch den Isolationsmodus nicht als Serialisierbar an.

Maßnahme:	Keine Maßnahme erforderlich. Dennoch kann die Lesekonsistenz nicht garantiert werden. Möglicherweise können Aktionen von anderen Benutzern zwischen dem Zeitpunkt erfolgen, an dem Summen im voraus berechnet werden, und dem Zeitpunkt, an dem die Abfrage für das Auffüllen des Blocks ausgelöst wird. Derartige Aktionen können dazu führen, daß die Werte des Summenobjekts nicht mit dem Blockinhalt übereinstimmen.


FRM-30431
FRM-30431:  Warnung: Doppelter Spaltenname %s in Block %s.

Ursache:	Dieser Fehler kann folgende Ursachen haben:

Es sind mehrere Objekte mit demselben Datenbank-Spaltennamen vorhanden.

Der Spaltenname eines Objekts stimmt mit dem Objektnamen eines Objekts überein, das keinen Spaltennamen hat.

Maßnahme:	Prüfen Sie, ob die Namen der Datenbankspalten für Objekte eindeutig sind.


FRM-30432
FRM-30432:  Definition für Prozedur ist nicht vollständig.

Ursache:	Die Spalten oder Argumente für die Prozedur sind nicht angegeben.

Maßnahme:	Geben Sie sowohl die Spalten als auch die Argumente in die Prozedurdefinition ein.


FRM-30433
FRM-30433:  Abfrageprozedur darf nur ein Argument vom Typ REFCURSOR/TABLE haben, und der Modus muß IN OUT sein.

Ursache:	Die Abfrage-Prozedurdefinition hat:

1. Kein Argument vom Typ TABLE/REFCURSOR.

2. Mehrere Argumente vom Typ TABLE/REFCURSOR oder

3. Ein Argument vom Typ TABLE/REFCURSOR mit einem Modus, der nicht als IN OUT definiert ist.

Maßnahme:	Definieren Sie die Argumente wie folgt:

1. Definieren Sie nur ein einziges Argument vom Typ TABLE oder REFCURSOR.

2. Deklarieren Sie den Modus für das Argument TABLE/REFCURSOR als IN OUT.


FRM-30434
FRM-30434:  Tabellenargument in der Prozedurdefinition muß einen Typnamen haben.

Ursache:	Der Typname für das Argument TABLE in der angegebenen Prozedur wurde nicht eingegeben.

Maßnahme:	Geben Sie den Typnamen für das Argument TABLE in der angegebenen Prozedur ein.


FRM-30435
FRM-30435:  DML-Prozeduren dürfen nur ein Argument vom Typ TABLE haben, und der Modus muß IN oder IN OUT sein.

Ursache:	DML- (Einfügen, Aktualisieren, Löschen, Sperren) Prozedurdefinition hat:

1. Kein Argument vom Typ TABLE.

2. Mehrere Argumente vom Typ TABLE oder

3. Ein Argument vom Typ TABLE mit einem als OUT definierten Modus.

Maßnahme:	Definieren Sie die Argumente wie folgt:

1. Definieren Sie ein einziges Argument vom Typ TABLE.

2. Deklarieren Sie den Modus für das Argument TABLE als IN oder IN OUT.


FRM-30436
FRM-30436:  Kein übergeordnetes Fenster für Leinwand angegeben.

Ursache:	Für die Leinwand wurde kein Fenster angegeben, in dem sie enthalten ist. Daraus ergeben sich folgende Standardresultate:

1. In Forms 4.0 wird die Leinwand ROOT_WINDOW zugeordnet.

2. In einer Forms 4.5 Anwendung ist ROOT_WINDOW möglicherweise nicht vorhanden, so daß die Leinwand automatisch dem ersten Fenster in der Objektnavigator-Hierarchie zugeordnet wird.

3. In 5.0 können Forms referenziert und Attribute wie Fenstername außer Kraft gesetzt werden. Deshalb sollten Sie das Attribut Fenstername für die Leinwand stets angeben.

Maßnahme:	Geben Sie das Attribut Fenstername für die Leinwand an.


FRM-30437
FRM-30437:  Warnung: POST-CHANGE bei untergeordnetem Spiegelobjekt %s.%s ignoriert.

Ursache:	Ein POST-CHANGE-Trigger wurde für ein untergeordnetes Spiegelobjekt angegeben. Da der Kompatibilitätsmodus der Form zur Laufzeit 5.0 ist, wird der POST-CHANGE-Trigger von dem übergeordneten Spiegelobjekt abgerufen (dem Objekt, das von dem Attribut Mit Objekt synchronisieren angegeben wird).

Maßnahme:	Geben Sie den POST-CHANGE-Trigger in dem übergeordneten Spiegelobjekt an.


FRM-30438
FRM-30438:  Warnung: WHEN-VALIDATE-ITEM-Trigger bei untergeordnetem Spiegelobjekt %s.%s ignoriert.

Ursache:	Ein WHEN-VALIDATE-ITEM Trigger wurde für ein untergeordnetes Spiegelobjekt angegeben. Da der Kompatibilitätsmodus der Form zur Laufzeit 5.0 ist, wird der WHEN-VALIDATE-ITEM-Trigger von dem übergeordneten Spiegelobjekt abgerufen (dem Objekt, das von dem Attribut Mit Objekt synchronisieren angegeben wird).

Maßnahme:	Geben Sie den WHEN-VALIDATE-ITEM-Trigger in dem übergeordneten Spiegelobjekt an.


FRM-30439
FRM-30439:  Warnung: ON-SEQUENCE-NUMBER bei untergeordnetem Spiegelobjekt %s.%s ignoriert.

Ursache:	Ein ON-SEQUENCE-NUMBER-Trigger wurde für ein untergeordnetes Spiegelobjekt angegeben. Da der Kompatibilitätsmodus der Form zur Laufzeit 5.0 ist, wird der ON-SEQUENCE-NUMBER-Trigger von dem übergeordneten Spiegelobjekt abgerufen (dem Objekt, das von dem Attribut Mit Objekt synchronisieren angegeben wird).

Maßnahme:	Geben Sie den ON-SEQUENCE-NUMBER-Trigger in dem übergeordneten Spiegelobjekt an.


FRM-30440
FRM-30440:  Warnung: Wert aus Objekt kopieren bei untergeordnetem Spiegelobjekt %s.%s ignoriert.

Ursache:	Das Attribut Wert aus Objekt kopieren wurde für ein untergeordnetes Spiegelobjekt angegeben. Da der Kompatibilitätsmodus der Form zur Laufzeit 5.0 ist, wird das Attribut Wert aus Objekt kopieren von dem übergeordneten Spiegelobjekt abgerufen (dem Objekt, das von dem Attribut Mit Objekt synchronisieren angegeben wird).

Maßnahme:	Geben Sie das Attribut Wert aus Objekt kopieren in dem übergeordneten Spiegelobjekt an.


FRM-30441
FRM-30441:  Warnung: Ausgangswert bei untergeordnetem Spiegelobjekt %s.%s ignoriert.

Ursache:	Das Attribut Ausgangswert wurde für ein untergeordnetes Spiegelobjekt angegeben. Da der Kompatibilitätsmodus der Form zur Laufzeit 5.0 ist, wird das Attribut Ausgangswert von dem übergeordneten Spiegelobjekt abgerufen (dem Objekt, das von dem Attribut Mit Objekt synchronisieren angegeben wird).

Maßnahme:	Geben Sie das Attribut Ausgangswert in dem übergeordneten Spiegelobjekt an.


FRM-30442
FRM-30442:  Warnung: Attribut Obligatorisch bei untergeordnetem Spiegelobjekt %s.%s ignoriert.

Ursache:	Das Attribut Obligatorisch wurde für ein untergeordnetes Spiegelobjekt angegeben. Da der Kompatibilitätsmodus der Form zur Laufzeit 5.0 ist, wird das Attribut Obligatorisch von dem übergeordneten Spiegelobjekt abgerufen (dem Objekt, das von dem Attribut Mit Objekt synchronisieren angegeben wird).

Maßnahme:	Geben Sie das Attribut Obligatorisch in dem übergeordneten Spiegelobjekt an.


FRM-30443
FRM-30443:  Warnung: Attribut Maximalwert erlaubt bei untergeordnetem Spiegelobjekt %s.%s ignoriert.

Ursache:	Das Attribut Maximalwert erlaubt wurde für ein untergeordnetes Spiegelobjekt angegeben. Da der Kompatibilitätsmodus der Form zur Laufzeit 5.0 ist, wird das Attribut Maximalwert erlaubt von dem übergeordneten Spiegelobjekt abgerufen (dem Objekt, das von dem Attribut Mit Objekt synchronisieren angegeben wird).

Maßnahme:	Geben Sie das Attribut Maximalwert erlaubt in dem übergeordneten Spiegelobjekt an.


FRM-30444
FRM-30444:  Warnung: Attribut Minimalwert erlaubt bei untergeordnetem Spiegelobjekt %s.%s ignoriert.

Ursache:	Das Attribut Minimalwert erlaubt wurde für ein untergeordnetes Spiegelobjekt angegeben. Da der Kompatibilitätsmodus der Form zur Laufzeit 5.0 ist, wird das Attribut Minimalwert erlaubt von dem übergeordneten Spiegelobjekt abgerufen (dem Objekt, das von dem Attribut Mit Objekt synchronisieren angegeben wird).

Maßnahme:	Geben Sie das Attribut Minimalwert erlaubt in dem übergeordneten Spiegelobjekt an.


FRM-30445
FRM-30445:  Benutzung des Attributs REF-Objekt aufnehmen erfordert Alias-Attribut Nicht-Null.

Ursache:	Das Attribut REF-Objekt aufnehmen für diesen Block ist TRUE, wodurch ein neues verborgenes Objekt mit der Bezeichnung REF erstellt wird, das die Objekt-ID für diesen Block enthält. Der Spaltenname für dieses neue Objekt ist 'REF(a)', wobei 'a' der Wert des Blockattributs Alias ist. Das Alias-Attribut darf nicht Null ein.

Maßnahme:	Geben Sie einen anderen Wert als Null für das Blockattribut Alias an.


FRM-30446
FRM-30446: Ungültiger Elementname '%s'.

Ursache:	Der eingegebene Elementname ist ungültig.

Maßnahme:	Entfernen Sie die Leerzeichen im Elementnamen.


FRM-30453
FRM-30453: Grenzwert von 255 für benanntes visuelles Attribut überschritten.

Ursache:	Die Form enthält mehr als 255 benannte visuelle Attribute.

Maßnahme:	Reduzieren Sie die Anzahl der benannten visuellen Attribute.


FRM-31601
FRM-31601:  Optionen -e, -g, -m, -p und -r schließen sich gegenseitig aus.

Ursache:	Sie haben mehr als eine dieser Optionen angegeben.

Maßnahme:	Diese Optionen schließen sich gegenseitig aus. Verwenden Sie sie nicht kombiniert.


FRM-31602
FRM-31602:  Es wurde kein Modulname angegeben.

Ursache:	Sie haben keinen Modulnamen angegeben.

Maßnahme:	Geben Sie einen Modulnamen an.


FRM-31603
FRM-31603:  Kein Benutzer für Berechtigungserteilung/-entzug.

Ursache:	Sie haben versucht, die Zugriffsberechtigung zu Form Builder einem Benutzer zu erteilen bzw. zu entziehen, haben jedoch den Benutzernamen nicht angegeben.

Maßnahme:	Führen Sie den Befehl erneut aus, und geben Sie den Benutzernamen an.


FRM-31605
FRM-31605:  Modul %s ist unbekannt.

Ursache:	Sie haben versucht, auf ein Modul zuzugreifen, das in der Datenbank nicht vorhanden ist.

Maßnahme:	Prüfen Sie, ob der Modulname korrekt ist, und wiederholen Sie den Versuch.


FRM-31606
FRM-31606:  Datei %s konnte nicht geöffnet werden.

Ursache:	Entweder sind die Dateiberechtigungen nicht richtig eingestellt, oder die zu öffnende Bibliothek ist ungültig.

Maßnahme:	Kompilieren Sie die Modulbibliothek neu, und wiederholen Sie den Versuch.


FRM-31616
FRM-31616:  Warnung! Für Menü %s sind keine Menüpunkte definiert.

Ursache:	Sie generieren ein Modul, das über ein Menü ohne Menüpunkte verfügt.

Maßnahme:	Keine Maßnahme erforderlich.


FRM-31626
FRM-31626: Gemeinsame Menüreferenz in Menümodul erkannt.

Ursache:	Das Menümodul, das Sie kompilieren wollten, enthält gemeinsame Menüreferenzen (mindestens zwei Menüpunkte verwenden gemeinsam das gleiche Untermenü).

Maßnahme:	Definieren und verwenden Sie separate Untermenüs für jeden Menüpunkt.


FRM-31627
FRM-31627:  Endlosschleife in Menümodul entdeckt.

Ursache:	Das Menümodul, das Sie kompilieren wollten, enthält Endlosschleifen (Instanzen, bei denen ein Menüpunkt ein Menü aufruft, das in der Hierarchie darüber liegt).

Maßnahme:	Grenzen Sie die Endlosschleifen ein, und lösen Sie sie auf.


FRM-31628
FRM-31628:  Objekt referenziert ein nicht definiertes Menü.

Ursache:	Das Objekt referenziert ein Untermenü, das nicht Bestandteil des Moduls ist.

Maßnahme:	Definieren Sie ein Untermenü als Bestandteil des Menüs, oder legen Sie fest, daß das Objekt ein Untermenü referenziert, das Bestandteil des Moduls ist.


FRM-31629
FRM-31629:  Generierungsfehler in Datei %s geschrieben.

Ursache:	Kompilierungsfehler.

Maßnahme:	Hierzu wird auf Fehler- und Warnmeldungen in der angegebenen Datei verwiesen.


FRM-31631
FRM-31631:  Datei %s konnte nicht geschlossen werden.

Ursache:	Ein Betriebssystemfehler hat verhindert, daß Form Builder eine Ausgabedatei schließen konnte.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA oder der Zentralen Kundenunterstützung von Oracle auf.


FRM-31633
FRM-31633:  Hauptmenü %s nicht in Modul gefunden.

Ursache:	Der angegebene Menüname ist in diesem Modul nicht vorhanden.

Maßnahme:	Prüfen Sie, ob ein Menü mit diesem Namen vorhanden ist.


FRM-31634
FRM-31634:  Fehler beim Schreiben von Datei %s.

Ursache:	Sie haben nicht die erforderlichen Berechtigungen in dem angegebenen Ordner, oder die Plattenkapazität reicht nicht aus.

Maßnahme:	Fragen Sie den DBA, ob Sie die benötigten Zugriffsberechtigungen haben.


FRM-31635
FRM-31635:  Angegebene Datei enthält kein Menü.

Ursache:	Die Datei wurde geladen, in der Datei wurde jedoch kein Menümodul gefunden.

Maßnahme:	Prüfen Sie, ob es sich bei der Datei um eine MMB-Datei handelt.


FRM-31637
FRM-31637:  Fehler beim Upgrade. Abbruch.

Ursache:	Bei der Durchführung eines Menü-Upgrade wurde ein SQL-Fehler entdeckt.

Maßnahme:	Prüfen Sie, ob Sie als SYSTEM angemeldet sind und ob Oracle Forms 4.5 und die Menütabellen richtig installiert sind.


FRM-31639
FRM-31639:  Keine Module für Upgrade vorhanden.

Ursache:	Es wurde kein Modul angegeben, das nicht schon in Oracle Forms 4.5-Tabellen vorhanden ist.

Maßnahme:	Stellen Sie sicher, daß kein Menümodul mit diesem Namen schon in Oracle Forms 4.5 vorhanden ist.


FRM-31640
FRM-31640:  Name des Untermenüs wurde nicht angegeben.

Ursache:	Für einen Menüpunkt wurde kein Menü angegeben.

Maßnahme:	Geben Sie ein Untermenü für den Menüpunkt an.


FRM-31641
FRM-31641:  Für Optionsgruppenobjekte muß der Optionsgruppenname angegeben werden.

Ursache:	Ein Menüpunkt wurde als Optionsschaltfläche definiert, es wurde jedoch keine Optionsgruppe angegeben.

Maßnahme:	Geben Sie den Namen einer Optionsgruppe an.


FRM-31643
FRM-31643:  Menü %s ist nicht vorhanden.

Ursache:	Dieses Objekt wurde als Menüpunkt definiert, das referenzierte Menü ist jedoch nicht vorhanden.

Maßnahme:	Erstellen Sie ein Menü mit diesem Namen.


FRM-31644
FRM-31644:  Menü %s verfügt über keine Menüpunkte.

Ursache:	Sie haben keine Auswahlen für ein Menü angegeben.

Maßnahme:	Ändern Sie die Form so, daß Menüpunkte für das Menü angegeben werden.


FRM-31645
FRM-31645:  Pro Modul ist nur eine Instanz jedes magischen Menüpunktes erlaubt.

Ursache:	Sie haben mehr als eine Instanz eines bestimmten magischen Menüpunkts verwendet.

Maßnahme:	Löschen Sie alle Instanzen jedes magischen Menüpunkts, mit Ausnahme von einer.


FRM-31646
FRM-31646:  Magischer Menüpunkt %s enthält einen ungültigen Befehlstyp.

Ursache:	Sie haben einen Befehlstyp ausgewählt, der für den angegebenen magischen Menüpunkt nicht gültig ist.

Maßnahme:	Wählen Sie einen Befehlstyp, der mit dem aktuellen Typ des magischen Menüpunkts kompatibel ist.


FRM-31649
FRM-31649:  Bezeichnung für Menüpunkt %s ist zu lang.

Ursache:	Sie haben eine Bezeichnung eines Menüpunkts angegeben, die mehr als die maximal zulässige Anzahl von Zeichen enthält.

Maßnahme:	Kürzen Sie die Bezeichnung des Menüpunkts.


FRM-31650
FRM-31650:  Name des Menüpunkts %s ist zu lang.

Ursache:	Sie haben den Namen eines Menüpunkts angegeben, der mehr als die maximal zulässige Anzahl von Zeichen enthält.

Maßnahme:	Kürzen Sie den Namen des Menüpunkts.


FRM-31651
FRM-31651:  Kein PL/SQL-Quellcode in Menüpunkt %s.

Ursache::	Sie haben den Namen eines Menüpunkts angegeben, der den Befehlstyp PL/SQL hat, jedoch keinen Befehlstext.

Maßnahme:	Ändern Sie den Befehlstyp in Null, oder geben Sie einen Befehlstext ein.


FRM-32009
FRM-32009:  Vorzeitiges Dateiende in Zeile %05d.

Ursache:	Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-32010
FRM-32010:  Eingabedatei-Sequenzfehler in Zeile %05d.

Ursache:	Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-32011
FRM-32011:  Datei enthält keine gültige Run Form-Quelle.

Ursache:	Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-32035
FRM-32035:  Unzulässiger Feldtyp (%s) in %s.%s.

Ursache:	Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-32036
FRM-32036:  Warnung! Prompt oberhalb von Zeile 1 für %s.%s.

Ursache:	Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-32037
FRM-32037:  Warnung! Prompt hat neben Feld %s.%s keinen Platz.

Ursache:	Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-32041
FRM-32041:  Erwartet: %s: Gefunden: %s.

Ursache:	Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-32042
FRM-32042:  Fehler (Zeile %05d): erwartet Ja/Nein, erhalten %s.

Ursache:	Sie haben eine andere Angabe als Ja oder Nein gemacht.

Maßnahme:	Antworten Sie mit Ja oder Nein.


FRM-32051
FRM-32051:  Unzulässiger Befehl in Zeile %05d des Formtextes.

Ursache:	Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.

Ursache:	Dieser Fehler tritt im allgemeinen auf, wenn die .INP-Datei bearbeitet wird.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf, wenn die .INP-Datei nicht bearbeitet wurde.


FRM-32079
FRM-32079:  Ungültiger Ausgangswert für angegebenen Datentyp.

Ursache:	Sie haben einen ungültigen Ausgangswert für den Datentyp angegeben.

Maßnahme:	Geben Sie einen gültigen Ausgangswert für den entsprechenden Datentyp an.


FRM-32080
FRM-32080:  Ungültiger Bereich für angegebenen Datentyp.

Ursache:	Sie haben einen ungültigen Bereichswert für den Datentyp angegeben.

Maßnahme:	Geben Sie einen gültigen Bereichswert für den Datentyp an.


FRM-32081
FRM-32081:  Ungültiger Standardwert für gegebenen Datentyp.

Ursache:	Sie haben einen ungültigen Standard-Parameterwert für den gegebenen Datentyp angegeben.

Maßnahme:	Geben Sie einen gültigen Standard-Parameterwert für den Datentyp an.


FRM-32082
FRM-32082:  Ungültiger Wert für gegebenen Objekttyp.

Ursache:	Sie haben versucht, einen Wert für das Attribut Ausgangswert oder für andere Wert-Attribute anzugeben, der den Wert für die maximale Länge überschreitet.

Maßnahme:	Geben Sie einen Wert an, der den für das Attribut Maximale Länge angegebenen Wert nicht überschreitet.


FRM-32083
FRM-32083:  Wertelänge überschreitet max. Länge für das Objekt.

Ursache:	Sie haben einen Wert angegeben, der länger ist als die maximale Länge des Objekts.

Maßnahme:	Geben Sie einen kürzeren Wert an.


FRM-32084
FRM-32084:  Objekttyp ist nicht kompatibel zu Spiegelobjekt %s.

Ursache:	Sie haben ein Objekt angegeben, das mit dem Attribut Spiegelobjekt nicht kompatibel ist.

Maßnahme:	Geben Sie ein gültiges Spiegelobjekt an.


FRM-32085
FRM-32085:  Strip_Source benötigt Dateinamen für Ausgabe.

Ursache:	Bei der Generierung einer Bibliothek aus der Befehlszeile haben Sie keinen Ausgabedateinamen angegeben.

Maßnahme:	Geben Sie einen Ausgabedateinamen an.


FRM-32086
FRM-32086:  Bindevariable: %s Analyse gescheitert bei <%s>.

Ursache:	Die Bindevariable konnte wegen eines ungültigen Formats nicht analysiert werden.

Maßnahme:	Wechseln Sie zu einem gültigen Format.


FRM-32087
FRM-32087:  Bindevariable: %s mit mehr als einem Objekt gebunden.

Ursache:	Die Bindevariable ist nicht eindeutig, weil sie mit mehr als einem Objekt gebunden ist.

Maßnahme:	Stellen Sie sicher, daß die Bindevariable nur mit einem Objekt gebunden ist.


FRM-32088
FRM-32088: Festlegen von Datensatzgruppe und Abfragetext bei hierarchischer Baumansicht ist nicht zulässig.

Ursache:	Sowohl die Datensatzgruppe als auch der Abfragetext weisen für die hierarchische Baumansicht Werte auf.

Maßnahme:	Entfernen Sie einen der Werte aus der Baumansicht, entweder die Datensatzgruppe oder den Abfragetext.


FRM-32089
FRM-32089: Bäume müssen in einzeiligen Blöcken mit einzelnen Elementen stehen.

Ursache:	Die Baumansicht wurde in einen Block mit einem anderen Objekt oder in einen mehrzeiligen Block gesetzt.

Maßnahme:	Setzen Sie den Baum in den dazugehörigen einzeiligen Block.


FRM-99999
FRM-99999:   Fehler  %d aufgetreten. Weitere Informationen über diesen Fehler finden Sie in der Datei mit den Versionshinweisen (relnotes).

Ursache:	Ein Fehler ist aufgetreten. Der Fehler wird in der Datei mit den Versionshinweisen dokumentiert.

Maßnahme:	Siehe Datei mit den Versionshinweisen.


FRM-10200
FRM-10200:  Die Funktion ist in diesem Kontext unzulässig.

Ursache:	Sie haben eine Taste gedrückt, die in diesem Kontext nicht gültig ist.

Maßnahme:	Drücken Sie [Tastenbelegung], um eine Liste der gültigen Funktionstasten anzuzeigen.


FRM-10201
FRM-10201:  Es werden keine Parameter benötigt.

Ursache:	Sie haben [Anwendungsparameter eingeben] oder [Menüparameter eingeben] gedrückt, in diesem Kontext sind jedoch keine Parameter erforderlich.

Maßnahme:	Keine Maßnahme erforderlich.


FRM-10202
FRM-10202:  Die Menüs sind zu tief verschachtelt.

Ursache:	Sie haben versucht, ein Objekt auszuwählen, mit dem Menüs über mehr als 10 Ebenen verschachtelt würden.

Maßnahme:	Drücken Sie [Hauptmenü], um zum Hauptmenü zurückzugehen, und navigieren Sie dann zu dem Menü Ihrer Wahl.


FRM-10203
FRM-10203:  Der ausgewählte Menüpunkt befindet sich nicht in diesem Menü.

Ursache:	In einem Gesamtbildschirmmenü haben Sie eine Zahl eingegeben, die die Höchstzahl von Menüpunkten überschreitet.

Maßnahme:	Wählen Sie einen Menüpunkt, der sich in diesem Menü befindet.


FRM-10204
FRM-10204:  Für den ausgewählten Hintergrundmenüpunkt ist kein Befehl vorhanden.

Ursache:	Sie haben [Hintergrundmenü n] gedrückt, wobei n größer war als die Höchstzahl im Hintergrundmenü.

Maßnahme:	Keine Maßnahme erforderlich. Drücken Sie [Hintergrundmenü anzeigen], um die gültigen Hintergrundmenüpunkte anzuzeigen.


FRM-10205
FRM-10205:  Menü %s wurde nicht gefunden.

Ursache:	In einem Auswahlfeld eines Gesamtbildschirmmenüs haben Sie einen Menünamen eingegeben, der in dieser Anwendung nicht vorhanden ist oder in der Bibliothek nicht gefunden wurde.

Maßnahme:	Keine Maßnahme erforderlich, wenn das Menü in der Anwendung nicht vorhanden ist. Wenn es vorhanden ist, kompilieren Sie die Bibliothek neu.


FRM-10206
FRM-10206:  Dynamischer Speicher ist voll.

Ursache:	Form Builder hat keinen Speicherplatz mehr.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.


FRM-10207
FRM-10207:  Es ist kein Hintergrundmenü vorhanden.

Ursache:	Sie haben [Hintergrundmenü anzeigen] gedrückt, es ist jedoch kein Hintergrundmenü vorhanden.

Maßnahme:	Keine Maßnahme erforderlich.


FRM-10208
FRM-10208:  Parameter %s nicht gefunden.

Ursache:	Ein Menüpunkt hat einen undefinierten Parameter referenziert.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.


FRM-10209
FRM-10209:  In diesem Kontext gibt es kein 'Nächstes Menü' aus Hintergrund.

Ursache:	Die Anwendung hat versucht, aus dem Hintergrundmenü zu einem benannten Menü zu navigieren.

Maßnahme:	Keine Maßnahme erforderlich.


FRM-10210
FRM-10210:  Eine Antwort ist erforderlich.

Ursache:	Sie haben einen obligatorischen Parameter nicht eingegeben oder haben das Auswahlfeld in einem Gesamtbildschirmmenü leer gelassen.

Maßnahme:	Machen Sie eine Eingabe.


FRM-10211
FRM-10211:  Das Feld muß vollständig ausgefüllt werden.

Ursache:	Sie haben einen Parameter, der vollständig eingegeben werden muß, teilweise eingegeben.

Maßnahme:	Geben Sie genügend Daten ein, um das Feld vollständig auszufüllen.


FRM-10212
FRM-10212:  Anmeldung war unter diesem Benutzernamen und Kennwort erfolglos.

Ursache:	Sie haben einen ungültigen Benutzernamen und ein ungültiges Kennwort angegeben.

Maßnahme:	Prüfen Sie den Benutzernamen und das Kennwort, und wiederholen Sie den Versuch.


FRM-10213
FRM-10213:  Anmeldeprozedur beendet.

Ursache:	Sie haben dreimal hintereinander erfolglos versucht, sich bei ORACLE anzumelden.

Maßnahme:	Keine Maßnahme erforderlich. Wenn Sie ein gültiger Benutzer sind, prüfen Sie Ihren Benutzernamen und das Kennwort.


FRM-10214
FRM-10214:  Sie haben zur Anwendungsausführung keine Berechtigung.

Ursache:	Sie sind kein gültiger Benutzer eines Moduls in Form Builder.

Maßnahme:	Keine Maßnahme erforderlich. Wenn Sie der Auffassung sind, daß Sie ein gültiger Benutzer sein sollten, bitten Sie den DBA, Ihnen die Zugriffsberechtigung zu dem gewünschten Modul zu erteilen.


FRM-10215
FRM-10215:  Es ist keine Hilfe verfügbar.

Ursache:	Sie haben [Hilfe] gedrückt, für dieses Objekt ist jedoch keine Hilfe verfügbar.

Maßnahme:	Keine Maßnahme erforderlich.


FRM-10216
FRM-10216:  Die Weitergabe eines Befehls an das Betriebssystem war erfolglos.

Ursache:	Das Betriebssystem konnte einen Subprozeß nicht weitergeben.

Maßnahme:	Hierzu wird auf die Fehlermeldung verwiesen, die vom Betriebssystem ausgegeben wird.


FRM-10217
FRM-10217:  Sie haben für die Menüpunkte in diesem Menü keine Berechtigung.

Ursache:	Sie haben versucht, zu einem Menü zu gehen, das keine Menüpunkte enthält, auf die Sie zugreifen können.

Maßnahme:	Prüfen Sie den eingegebenen Menünamen, und wiederholen Sie den Versuch.


FRM-10218
FRM-10218:  Fehler bei Menü %s.

Ursache:	Form Builder konnte die Bibliotheksinformationen für dieses Menü nicht lesen, oder ein ungültiger Menüname wurde angegeben.

Maßnahme:	Kompilieren Sie die Bibliothek neu, oder korrigieren Sie den Menünamen.


FRM-10219
FRM-10219:  Die Menüpunkt-Nummer ist ungültig.

Ursache:	Sie haben in einem Gesamtbildschirmmenü eine ungültige Nummer in dem Auswahlfeld eingegeben.

Maßnahme:	Prüfen Sie die Nummer des Menüpunkts, und geben Sie sie erneut ein.


FRM-10220
FRM-10220:  Für diesen Menüpunkt ist keine detaillierte Hilfe verfügbar.

Ursache:	Sie haben [Hilfe] gedrückt, für diesen Menüpunkt ist jedoch keine Hilfe verfügbar.

Maßnahme:	Keine Maßnahme erforderlich.


FRM-10221
FRM-10221:  Datei %s kann nicht gelesen werden.

Ursache:	Entweder sind die Dateiberechtigungen nicht richtig eingestellt, oder die zu öffnende Datei ist ungültig.

Maßnahme:	Kompilieren Sie die Anwendungsbibliothek neu, und wiederholen Sie den Versuch.


FRM-10222
FRM-10222:  Menü %s wurde mit einer alten Version von Forms Compiler erstellt.

Ursache:	Sie benutzen eine neuere Version von Form Builder als die Version, mit der dieses Menümodul erstellt wurde.

Maßnahme:	Kompilieren Sie das Menümodul neu, und führen Sie den Befehl erneut aus.


FRM-10223
FRM-10223:  Das Anwendungsparametermodul ist nicht vorhanden.

Ursache:	Die Parameterinformationen konnten in der Bibliothek nicht gefunden werden. Dies ist möglicherweise auf eine ungültige Bibliotheksdatei oder eine Datei zurückzuführen, die eine andere Anwendung enthält.

Maßnahme:	Kompilieren Sie die Anwendungsbibliothek neu, und wiederholen Sie den Versuch. Wenn dies nicht erfolgreich verläuft, nehmen Sie Verbindung mit dem DBA auf.


FRM-10224
FRM-10224:  Das Bindevariablenmodul dieser Anwendung ist nicht vorhanden.

Ursache:	Die Bindevariableninformationen konnten in der Bibliothek nicht gefunden werden. Dies ist möglicherweise auf eine ungültige Bibliotheksdatei zurückzuführen.

Maßnahme:	Kompilieren Sie die Anwendungsbibliothek neu, und wiederholen Sie den Versuch. Wenn dies nicht erfolgreich verläuft, nehmen Sie Verbindung mit dem DBA auf.


FRM-10225
FRM-10225:  Die Parameterdaten konnten nicht gelesen werden.

Ursache:	Die Anwendungsbibliothek ist ungültig.

Maßnahme:	Kompilieren Sie die Anwendungsbibliothek neu, und wiederholen Sie den Versuch. Wenn dies nicht erfolgreich verläuft, nehmen Sie Verbindung mit dem DBA auf.


FRM-10226
FRM-10226:  Die Bindevariablendaten konnten nicht gelesen werden.

Ursache:	Die Anwendungsbibliothek ist ungültig.

Maßnahme:	Kompilieren Sie die Anwendungsbibliothek neu, und wiederholen Sie den Versuch. Wenn dies nicht erfolgreich verläuft, nehmen Sie Verbindung mit dem DBA auf.


FRM-10227
FRM-10227:  Zu viele Menüparameter.

Ursache:	Die Anwendung enthält mehr Menüparameter als im Betriebssystem benutzt werden können.

Maßnahme:	Überprüfen und kompilieren Sie die Anwendung neu, oder nehmen Sie Verbindung mit dem DBA auf.


FRM-10228
FRM-10228:  Der Hilfetext konnte nicht gelesen werden.

Ursache:	Die Anwendungsbibliothek ist ungültig.

Maßnahme:	Kompilieren Sie die Anwendungsbibliothek neu, und wiederholen Sie den Versuch. Wenn dies nicht erfolgreich verläuft, nehmen Sie Verbindung mit dem DBA auf.


FRM-10229
FRM-10229:  Datei %s konnte nicht geschlossen werden.

Ursache:	Betriebssystemfehler oder interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.


FRM-10230
FRM-10230:  Das Modul für die Anwendungsprozedur ist nicht vorhanden.

Ursache:	Die Prozedurinformationen konnten in der Bibliothek nicht gefunden werden. Dies ist möglicherweise auf eine ungültige Bibliotheksdatei zurückzuführen.

Maßnahme:	Kompilieren Sie die Anwendungsbibliothek neu, und wiederholen Sie den Versuch. Wenn dies nicht erfolgreich verläuft, nehmen Sie Verbindung mit dem DBA auf.


FRM-10231
FRM-10231:  Prozedurdaten konnten nicht gelesen werden.

Ursache:	Die Anwendungsbibliothek ist ungültig.

Maßnahme:	Kompilieren Sie die Anwendungsbibliothek neu, und wiederholen Sie den Versuch. Wenn dies nicht erfolgreich verläuft, nehmen Sie Verbindung mit dem DBA auf.


FRM-10233
FRM-10233:  Ungültige Navigationsprozeduren/-makros im aktuellen Menütyp.

Ursache:	Sie haben versucht, vordefinierte Navigationsprozeduren oder -makros im Gesamtbildschirmmodus in dem Pulldown-Menü oder der Menüleiste zu verwenden.

Maßnahme:	Unterrichten Sie den DBA.


FRM-10234
FRM-10234:  In der Makro-Anweisung fehlt ein Semikolon.

Ursache:	Die für dieses Objekt angegebene Befehlszeile enthält einen Syntaxfehler.

Maßnahme:	Unterrichten Sie den DBA.


FRM-10235
FRM-10235:  Makro %s wurde nicht gefunden.

Ursache:	Der Menüentwickler hat einen undefinierten Makro zur Ausführung angegeben.

Maßnahme:	Unterrichten Sie den DBA.


FRM-10236
FRM-10236:  Es wurde kein Makro/keine Prozedur angegeben.

Ursache:	Der Menüentwickler hat einen leeren Befehl angegeben.

Maßnahme:	Unterrichten Sie den DBA.


FRM-10237
FRM-10237:  Für Prozedur/Makro ist kein Argument zulässig.

Ursache:	Der Menüentwickler hat ein Argument für einen Befehl angegeben, für den keine Argumente zulässig sind.

Maßnahme:	Unterrichten Sie den DBA.


FRM-10238
FRM-10238:  Fehler beim Ausführen von %s. Bitte Argument(e) überprüfen.

Ursache:	Der Menüentwickler hat ein Argument für einen Befehl angegeben, für den keine Argumente zulässig sind.

Maßnahme:	Unterrichten Sie den DBA.


FRM-10239
FRM-10239:  Form mit diesem Namen kann nicht gelesen werden.

Ursache:	Form Builder hat versucht, eine Form zu lesen, die im aktuellen Ordner nicht vorhanden ist.

Maßnahme:	Unterrichten Sie den DBA.


FRM-10240
FRM-10240:  Formname wurde nicht angegeben.

Ursache:	In dem Forms Runtime-Befehl wurde kein Name einer auszuführenden Form angegeben.

Maßnahme:	Unterrichten Sie den DBA.


FRM-10241
FRM-10241:  Unzulässiger Vorgang bei aktivem Form Builder.

Ursache:	Der Menüentwickler hat eine vordefinierte Prozedur oder einen Makro angegeben, der nicht benutzt werden kann, wenn Form Builder Forms Runtime aufruft.

Maßnahme:	Unterrichten Sie den DBA.


FRM-10242
FRM-10242:  Aufruf von eingebundenen Forms aus Form Builder nicht möglich.

Ursache:	Der Menüentwickler hat einen Aufruf von eingebundenen Forms aus Form Builder angegeben.

Maßnahme:	Unterrichten Sie den DBA.


FRM-10243
FRM-10243:  Fehler beim Aufrufen von Form Builder.

Ursache:	Ein Aufruf von Forms Runtime verlief erfolglos.

Maßnahme:	Unterrichten Sie den DBA.


FRM-10244
FRM-10244:  Die Anwendung %s ist nicht vorhanden.

Ursache:	Der angegebene Anwendungsname ist in der Datenbank nicht vorhanden, oder Sie haben keine Zugriffsberechtigung zu der Anwendung.

Maßnahme:	Prüfen Sie den Anwendungsnamen, und wiederholen Sie den Versuch, oder nehmen Sie Verbindung mit dem DBA auf.


FRM-10245
FRM-10245:  Sie befinden sich bereits bei dem ersten Objekt.

Ursache:	Sie haben [Vorheriges Objekt] bei dem ersten Objekt in der Parameterform gedrückt.

Maßnahme:	Keine Maßnahme erforderlich. Sie können zu keinem Objekt vor dem ersten Objekt in einer Parameterform gehen.


FRM-10246
FRM-10246:  Fehler beim Ausführen einer vordefinierten Prozedur - Inaktive Form.

Ursache:	Der Menüentwickler hat eine vordefinierte Prozedur angegeben, die im aktuellen Kontext nicht ausgeführt werden kann.

Maßnahme:	Unterrichten Sie den DBA.


FRM-10247
FRM-10247:  Im Hauptmenü der Anwendung befinden sich keine aktiven Menüpunkte.

Ursache:	Sie haben versucht, eine Anwendung zu öffnen, das Hauptmenü enthält jedoch keine Menüpunkte, auf die Sie zugreifen können. Das Hauptmenü ist entweder das Hauptmenü der Anwendung oder ein anderes Menü, das beim Aufruf von Forms Designer durch Form Builder angegeben wurde.

Maßnahme:	Unterrichten Sie den DBA.


FRM-10248
FRM-10248:  Keine direkte Menüauswahl bei Gebrauch eines Hauptmenüs erlaubt.

Ursache:	Das Hauptmenü ist nicht das Hauptmenü des Moduls, weil Form Builder ein anderes Hauptmenü beim Aufruf von Forms Designer angegeben hat.

Maßnahme:	Keine Maßnahme erforderlich. Sie können nur die direkte Menüauswahl benutzen, wenn das Hauptmenü des Moduls das Hauptmenü ist.


FRM-10249
FRM-10249:  Sie haben zum Ausführen von Anwendung %s keine Berechtigung.

Ursache:	Sie sind kein gültiger Benutzer der Anwendung, die Sie ausführen wollten.

Maßnahme:	Keine Maßnahme erforderlich. Wenn Sie glauben, daß Sie ein gültiger Benutzer sein sollten, bitten Sie den DBA, Ihnen die Zugriffsberechtigung zu der Anwendung zu erteilen.


FRM-10250
FRM-10250:  Fehler beim Initialisieren der Forms Runtime-Anwendung.

Ursache:	Sie haben das Modul nicht richtig benannt.

Maßnahme:	Prüfen Sie den Modulnamen, und geben Sie ihn richtig ein.


FRM-10251
FRM-10251:  Nicht unterstützter Befehlstyp-4-Schalter (-e,-i,-r,-w).

Ursache:	Die Menüoption hat versucht, eine Form auszuführen, hat jedoch ein Befehlszeilenargument für Forms Runtime angegeben, das bei der Ausführung einer Form aus einem Menü ungültig ist.

Maßnahme:	Unterrichten Sie den DBA.


FRM-10252
FRM-10252:  Unbekannter Befehlstyp-4-Schalter benutzt.

Ursache:	Diese Menüoption hat versucht, eine Form auszuführen, hat jedoch ein ungültiges Befehlszeilenargument für Forms Runtime angegeben.

Maßnahme:	Unterrichten Sie den DBA.


FRM-10253
FRM-10253:  Der Dateiname muß eingegeben werden.

Ursache:	Sie haben keinen Namen für die Datei eingegeben (oder haben einen Namen gelöscht).

Maßnahme:	Sie müssen einen Dateinamen eingeben.


FRM-10254
FRM-10254:  Datei für Bildschirmabzug kann nicht geöffnet werden.

Ursache:	Das Betriebssystem konnte eine Datei nicht öffnen (z.B. Probleme mit der Zugriffsberechtigung, nicht genügend Plattenkapazität).

Maßnahme:	Beheben Sie die Betriebssystembedingung, die den Fehler verursacht hat.


FRM-10255
FRM-10255:  Beim Ausdrucken des Bildschirmabzugs ist ein Fehler aufgetreten.

Ursache:	Das Betriebssystem hatte Probleme mit einer Datei.

Maßnahme:	Beheben Sie die Betriebssystembedingung, die den Fehler verursacht hat.


FRM-10256
FRM-10256:  Der Benutzer hat zur Ausführung von Form Builder-Menü keine Berechtigung.

Ursache:	Sie sind nicht zur Benutzung von Form Builder berechtigt. Sie haben keine SELECT-Zugriffsberechtigung für die Basistabellen von Form Builder.

Maßnahme:	Unterrichten Sie den DBA.


FRM-10257
FRM-10257:  Benutzer ist für gewählte Option nicht berechtigt.

Ursache:	Sie haben versucht, einen Menüpunkt auszuwählen, zu dem Sie keine Zugriffsberechtigung haben.

Maßnahme:	Wählen Sie einen anderen Menüpunkt, oder unterrichten Sie den DBA.


FRM-10258
FRM-10258:  Das angegebene Menü ist bereits aktiv.

Ursache:	Sie haben versucht, zum aktuellen Menü zu navigieren.

Maßnahme:	Keine Maßnahme erforderlich.


FRM-10259
FRM-10259:  Ungültiges Null-Argument bei vordefinierter Prozedur oder Funktion.

Ursache:	Sie haben kein Argument für eine vordefinierte Prozedur angegeben, oder das Argument ist ungültig.

Maßnahme:	Prüfen Sie die Online-Hilfe auf korrekte Syntax der vordefinierten Prozedur.


FRM-10260
FRM-10260:  Keine aktiven Menüpunkte im ausgewählten Menü.

Ursache:	Sie haben keine Zugriffsberechtigung für Menüpunkte in diesem Menü.

Maßnahme:	Bitten Sie den DBA um die Zugriffsberechtigung, wenn Sie der Meinung sind, daß Sie die Zugriffsberechtigung zu den Menüpunkten in diesem Menü benötigen.


FRM-10261
FRM-10261:  Menü %s wurde mit einer neuen Version von Forms Compiler erstellt.

Ursache:	Sie benutzen eine alte Version von Forms Runtime mit einer neuen Version von Forms Compiler.

Maßnahme:	Stellen Sie auf die neue Version von Forms Runtime um.


FRM-10262
FRM-10262:  Optionsschaltflächen, Kontrollkästchen oder Trennsymbole können nicht in Menüleiste gesetzt werden.

Ursache:	Sie haben versucht, Optionsschaltflächen, Kontrollkästchen oder Trennsymbole in die Menüleiste zu setzen.

Maßnahme:	Setzen Sie diese Objekte in ein Untermenü.


FRM-10263
FRM-10263:  Symboldatei für Menüpunkt in Form eines Moduls nicht vorhanden.

Ursache:	Kein Ordnername für dieses Symbol.

Maßnahme:	Nehmen Sie Verbindung mit der Person auf, die die Menüanwendung erstellt hat.


FRM-10264
FRM-10264:  Angegebener Menüpunkt ist nicht vorhanden.

Ursache:	Sie haben einen Menüpunkt angegeben, der in der Form nicht vorhanden ist.

Maßnahme:	Versuchen Sie, den Namen erneut einzugeben, oder wählen Sie einen anderen Namen für den Menüpunkt.


FRM-10265
FRM-10265:  Bibliothek wurde mit einer alten Version von Forms Compiler erstellt.

Ursache:	Form Builder kann die Bibliothek nicht benutzen.

Maßnahme:	Kompilieren Sie die Bibliothek mit der aktuellen Version von Forms Compiler neu.


FRM-10266
FRM-10266:  Bibliothek wurde mit einer neuen Version von Forms Compiler erstellt.

Ursache:	Form Builder kann die Bibliothek nicht benutzen.

Maßnahme:	Kompilieren Sie die Bibliothek mit der aktuellen Version von Forms Compiler neu.


FRM-10267
FRM-10267:  Magische Menüpunkte müssen im Hauptmenü stehen.

Ursache:	Sie haben magische Hilfe-Menüpunkte in ein Untermenü gesetzt.

Maßnahme:	Setzen Sie den magischen Hilfe-Menüpunkt in das Menü der obersten Ebene (Hauptmenü).


FRM-10268
FRM-10268:  Fehler: Programmblock %s in Bibliothek %s nicht kompiliert.

Ursache:	Sie haben einen nicht kompilierten Programmblock aus einer Bibliothek aufgerufen.

Maßnahme:	Befolgen Sie die Angaben für den PL/SQL-Programmfehler.


FRM-10269
FRM-10269:  Warnung! Programmblock %s in Bibliothek %s nicht kompiliert.

Ursache:	Beim Debuggen von Forms Runtime haben Sie einen nicht kompilierten Programmblock in einer Bibliothek aufgerufen.

Maßnahme:	Dies ist nur eine Warnung. Forms Runtime versucht, den Programmblock zu kompilieren und erneut auszuführen.


FRM-10270
FRM-10270:  Bibliothek %s kann nicht zugeordnet werden, während Menü %s geöffnet wird.

Ursache:	Die angegebene Bibliotheksdatei ist dem angegebenen Menü zugeordnet, kann jedoch in dem Suchpfad für PL/SQL-Bibliotheken nicht gefunden werden.

Maßnahme:	Prüfen Sie, ob die Bibliotheksdatei gefunden werden kann, bevor Sie versuchen, sie erneut mit dem angegebenen Menü auszuführen. Speichern Sie die Datei z.B. im Arbeitsordner.


FRM-10401
FRM-10401:  Datei %s kann nicht als Ausgabedatei geöffnet werden.

Ursache:	Das Betriebssystem hatte Probleme beim Öffnen einer Datei (z.B. Probleme mit der Zugriffsberechtigung, nicht genügend Plattenkapazität).

Maßnahme:	Beheben Sie die Betriebssystembedingung, die den Fehler verursacht hat.


FRM-10402
FRM-10402:  Diese Anwendung ist nicht vorhanden.

Ursache:	Die angeforderte Anwendung konnte zur Dokumentation nicht gefunden werden.

Maßnahme:	Prüfen Sie, ob Sie den richtigen Anwendungsnamen angegeben haben.


FRM-10409
FRM-10409:  Datei kann nicht geschlossen werden.

Ursache:	Betriebssystemfehler oder interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.


FRM-99999

FRM-99999:   Fehler  %d aufgetreten. Weitere Informationen über diesen Fehler finden Sie in der Datei mit den Versionshinweisen (relnotes).

Ursache:	Ein Fehler ist aufgetreten. Der Fehler wird in der Datei mit den Versionshinweisen dokumentiert.

Maßnahme:	Siehe Datei mit den Versionshinweisen.


FRM-21011
FRM-21011:  Nicht behandelte PL/SQL-Exception %s.


Voreinstellungen

Voreinstellungen des Registers Allgemein

Speichern vor Generieren

Generieren vor Ausführen

Hinweise unterdrücken

Systemeditor benutzen

Farbpalette

Farbmodus

Drucker

Module asynchron ausführen

Voreinstellungen des Registers Zugriff

Zugriff

Pfad für das Einordnen in Unterklassen

Voreinstellungen des Registers Assistenten

Willkommen-Dialogfeld

Register des Willkommen-Dialogfeldes

Voreinstellungen des Registers Laufzeit

Datensätze in Datei puffern

Debug-Meldungen

Array-Verarbeitung

SQL-Verarbeitung optimieren

Transaktionsverarbeitung optimieren

Statistiken

Blockmenü anzeigen

Abfragemodus

Ton aus

HTML-Dateiname


Dialogfeld Optionen

Optionen des Registers Designer

Farbmodus

Farbpalette

Generieren vor Ausführen

Objektzugriff

Drucker

Module asynchron ausführen

Speichern

Hinweise unterdrücken

Speichern vor Generieren

Hinweise unterdrücken

Systemeditor benutzen

Optionen des Registers Laufzeit

Array-Verarbeitung

Datensätze in Datei puffern

Debug-Modus

Blockmenü anzeigen

SQL-Verarbeitung optimieren

Transaktionsverarbeitung optimieren

Abfragemodus

Ton aus

Statistiken


Glossar

A

    Abfrage
    Abfragefilterfunktion
    Abgleichen
    Abhängige Daten
    Abhängigkeitsansicht
    Abhängigkeitsbaum
    Abschnitt
    Abtrennbares Menü
    Achsendiagramm
    ActiveX
    Ada
    Adreßetikettenlayout
    Aggregatfunktion
    Aktion
    Aktives Fenster/Aktive Ansicht
    Aktiviert
    Aktualisieren
    Alias
    Anhang
    Anker
    Ankerpunkt
    Anmelden
    Anonymer Block
    Ansicht
    Anweisung
    Anwendung
    Anzeigeobjekt
    Applet
    Argument
    Argument für ausführbares Programm
    ASCII
    Attribut
    Attribut
    Attributklasse
    Attributmaske
    Attributspalte
    Attributwert
    Aufgelöstes Objekt
    Aufgliedern
    Aufrufschnittstelle
    Aufrufstapel
    Ausdruck
    Ausführen
    Ausführung
    Ausrichtung
    Ausschneiden
    Ausschnitt
    Auswahl
    Auswahlskript
    Äußere Umrandung

 B

    Bedingung
    Beenden
    Befehlszeile
    Benutzerdefinierte Aktion
    Benutzerdefinierter Makro
    Benutzerdefiniertes Maß
    Benutzerdefinierter Typ
    Benutzerregistrierung
    Beschriftung
    Bibliothek
    Bild
    Bildschirmteiler
    Bindereferenz
    Bindevariable
    Blatt
    Block
    Boilerplate
    Break-Trigger
    Builder

C

    Cache (Speicher)
    cartridge
    CGI
    CGM
    CHAR-Datentyp
    Client
    Client-/Server-Architektur
    CMDFILE
    Collection-Typ
    Cursor

D

    Darstellungstyp
    Data Dictionary
    DATE
    Dateiknoten
    Datenbank
    Datenbank-Trigger
    Datenlink
    Datenmodell
    Datenquelle
    Datensatz
    Datensatzgruppe
    Datenstruktur-Knoten
    Datentyp
    Datumsachse
    DB-Adresse
    Deaktiviert
    Debug-Aktion
    Debuggen
    Debugger
    Debug-Trigger
    Designer
    Designer (Oracle)
    Detail-Abfrage
    Diagrammelement
    Diagrammobjekt
    Diagrammvorlage
    Dialogfeld
    DIANA
    Dimension
    Dimensionshierarchie
    Dimensionswert
    Dokumentvorlage
    Druckersteuercode
    Duplizieren
    Dynamisch gespeicherte Auswahl

E

    EBCDIC
    Ebene
    Editor
    Einfügen
    Einfügen-Modus
    Eingabeobjekt
    Element
    Elementtyp
    Entfernte Datenbank
    Ersetzen-Modus
    Exception
    Exportdatei
    Exportieren
    Externe Abfrage
    Externe PL/SQL-Bibliothek

F

    Familie
    Farbpalette
    Feld
    Feldvorlage
    Fenster
    Filter
    Firewall
    Flattened Object
    Flex-Modus
    Fokus
    Formatmaske
    Format-Trigger
    Formel
    Formelspalte
    Formlayout
    Fremdschlüssel
    Füllbereich
    Funktion

G

    Gefangen-Modus
    Geltungsbereich
    Generieren
    Generieren
    Gespeicherte Auswahl
    Gespeicherter Programmblock
    Gespeichertes Unterprogramm
    Gleichrangiges Objekt
    Gleichzeitigkeit
    Globale Registrierung
    Globale Variable
    Grafische Anwendung
    Gruppe
    Gruppenbaum
    Gruppenfilter
    Gruppenwechselbericht
    Gruppenwechseldiagramm
    Gültige XML
    GUI

H

    Handle
    Hauptknoten
    Hauptteil
    Hierarchie
    Hintergrundelement
    Hintergrundprozeß
    HTML
    HTTP
    Hyperlink
    Hypertext

I

    ICD
    Implizites Objekt
    Importieren
    Index
    Innere Umrandung
    Integritätsregel
    Internet
    Interpreter-Skript
    Intranet
    IP (Internet Protocol)-Adresse

J

    JAR
    Java
    Join
    Justierung

K

    Kaskadierende Dokumentvorlage
    Kategorie
    Kategorienachse
    Kategorienachse
    Klassifizierung
    Klausel
    Knoten
    Kommentar
    Kompilieren
    Komponente
    Konstrukt
    Kontextbereich
    Kontrollgruppe
    Kontrollkästchen
    Kontrollspalte
    Kontrollsumme
    Koordinaten (x, y)
    Koordinatenebene
    Koordinatensystem
    Korrelierte Unterabfrage
    Kopieren
    Kreuzprodukt
    Kreuztabelle

L

    Laufzeit
    Laufzeit-Parametermaske
    Launcher
    Layouteinheit
    Layout
    Leinwandausschnitt
    Leinwand
    Lesekonsistenz
    Lexikalische Referenz
    Link
    Link-Datei
    Listenfeld
    Listenobjekt
    Logische Operatoren
    Logische Seite
    Lokale Datenbank
    Lokale Registrierung
    Lokale Variable

M

    Makro
    Master-/Detail-Layout
    Maß
    Matrixbericht
    Matrixlayout
    Matrixzelle
    Megabyte (MB)
    Mehrzeilenfeld
    Meldungsfeld
    Methode
    Modales Fenster
    Modul
    Muster

N

    NA-Wert
    Nach unten erweiterbar
    Nicht im Cache vorhandene Spalte
    Nicht-modales Fenster
    NOCACHE
    NULL-Wert
    Numerische Operatoren

O

    Objekte auf Berichtebene
    Objekt
    Objekt
    Objektgruppe
    Objekt-Handle
    Objektknoten
    Objektnavigator
    Objektspalte
    Objekttabelle
    Objekttyp
    ODBC
    OLE
    OLE-Container
    OLE-Server
    Optionsgruppe
    Optionsschaltfläche
    Oracle-Datentyp
    Oracle Designer
    ORACLE_HOME
    Organisationsknoten

P

    Paket
    Paketrumpf
    Paketspezifikation
    Palette
    Parameter
    Parameterliste
    Pcode
    PDF
    Physikalische Seite
    Platzhalter-Benutzername
    PL/SQL
    pld-Datei
    pll-Datei
    pls-Datei
    plx-Datei
    Popup-Liste
    Port
    Primärschlüssel
    Programmblock
    Programmstop
    Projekt
    Projektansicht
    Projekt-Assistent
    Projektdatei
    Projektknoten
    Projektnavigator
    Projektobjekt
    Projektregistrierung
    Protokoll
    Prozedur
    prt-Datei
    Puffer

Q

    Qualifizierende Dimension
    Quelle

R

    Rahmen
    Rand/Auffüllen/Textanzeige
    Rand
    Rand
    Rand
    Rasterlinien
    RC4
    RDBMS
    rdf-Datei
    Referenzlinie
    REF-Spalte
    Registrieren
    Registrierung
    Relationale Operatoren
    rep-Datei
    Reports Background Engine (RWRBE60)
    Reports Queue Manager (RWRQM60)
    Reports Server (RWMTS60S)
    Reports Web Cartridge
    Reports Web CGI (RWCGI60)
    rex-Datei
    RGB
    Richtig formatierte XML
    Routine
    RTF
    Runfile

S

    Schalter
    Schaltfläche
    Schaltfläche Auslassungszeichen
    Schaltflächenprozedur
    Schema
    Schleife
    Schlüsselwort
    Seite
    Seitenumbruch
    SELECT-Anweisung
    Selektor
    Serienbrief-Layout
    Sitzung
    Skript
    Socket
    Spalte
    Spaltenobjekt
    Speichern
    Spezifikation
    SQL
    SQL-Anweisung
    SQL-Datei
    SQL-Skript
    Stamm
    Standard
    Stapel
    Stapel
    Stapelkompilierung
    Statische gespeicherte Auswahl
    Stellvertreterzeichen
    Steuerungspunkt
    Summenspalte
    SYLK
    Symbol
    Symbolleiste
    Syntax
    Systemvariable

T

    Tabellarisch
    Tabelle
    Tabellentyp
    TCP
    Textobjekt
    Titel
    Titelleiste
    Titelseite
    Transaktion
    Trigger
    Typ

U

    Übergeordneter Knoten
    Übergeordnetes Objekt
    Übergeordnetes Objekt
    Überlauf
    Umgebung
    Umrandung
    Umschließendes Objekt
    Unabhängige Daten
    Untergeordnete Abfrage
    Untergeordnetes Objekt
    Untergeordnetes Objekt
    Unterprogramm
    Unterprojekt
    Unterprojektknoten
    URL
    Ursprung
    User Exit

V

    Variable
    Variierender Array-Typ
    VBX
    VBX-Steuerfeld
    Veränderung
    Verborgen
    Vererben
    Vergleichsoperatoren
    Verschachtelte Matrix
    Verschlüsselung
    Virtueller Ordner
    Virtuelles Dateisystem
    Visuelles Attribut
    Vordefinierte Aktion
    Vordefinierte Funktion
    Vordefinierte Prozeduren
    Vordefinierter Datentyp
    Vordefinierter Makro
    Vordefinierter Typ
    Vordergrundelement
    Voreinstellungen
    Vorgänger
    Vorgängergruppe
    Vorschau
    Vorschau

W

    Warnfenster
    Web
    Web-Browser
    Web-Cartridge
    Web-Link
    Web-Server
    Werkzeug
    Werkzeug Abgleichen
    Werkzeug Alle
    Werkzeug Attribut
    Werkzeug Bereich
    Werkzeug Ebene
    Werkzeug Exception
    Werkzeug Familie
    Werkzeug Gespeicherte Auswahl
    Werkzeug Liste
    Werkzeug Oben/Unten
    Werkzeug Selektor
    Werkzeug Sortieren
    Werkzeugpalette
    Wert der Basislinie
    Werteachse
    Werteachse
    Werteliste
    Wertkonstrukt
    Wiederholungsrahmen
    WRB
    WKS
    WWW

X

    XML

Y

Z

    Zeile
    Zeilenobjekt
    Zelle
    Ziehen
    Ziel
    Zielknoten
    Zoom
    Zugeordnete Bibliothek
    Zugriffsberechtigung
    Zustellen
    Zwischenablage


In Project Builder eine Befehlsfolge, die entweder von Project Builder oder vom Benutzer angegeben wird, der für Dateien eines bestimmten Typs zuständig ist. Eine Aktion ist nicht auf einen einzelnen Dateityp beschränkt. Wenn die Aktion "Kompilieren" z.B. sowohl für Forms als auch für C-Quelldateien definiert ist, werden bei Auswahl von "Projekt kompilieren" alle .fmb- und .c-Dateien mit den entsprechenden Tools kompiliert. Siehe auch vordefinierte Aktion, Benutzerdefinierte Aktion


Eine Programmiersprache auf hoher Ebene, die vom U.S. Department of Defense zur Benutzung in eingebetteten Computersystemen entwickelt wurde.


Ein Fenster oder eine Ansicht, die eine Benutzereingabe aufnehmen kann.


(Oracle Express) Die Konsolidierung von Daten für verschiedene Dimensionswerte zu einem einzigen Wert, wie z.B. die Gesamtanzahl von Einheiten, die in allen Städten verkauft wurden, oder zu kleineren Wertegruppen, wie z.B. die durchschnittlich in den Städten einer Region verkauften Einheiten. Daten werden häufig auf der niedrigsten Detailebene erfaßt und mit der Aggregatfunktion im Hinblick auf die Analyse auf höheren Ebenen verbunden.


Ein modales Fenster, das Sie über eine Bedingung unterrichtet, die aufgrund der als letztes von Ihnen ausgeführten Aktion aufgetreten ist. Sie müssen auf ein Warnfenster reagieren.


Mit Ausrichtung wird angegeben, wie die Daten in einem Feld positioniert sind. Die Daten können linksbündig, rechtsbündig, zentriert, im Flattersatz linksbündig, im Flattersatz rechtsbündig oder im Flattersatz zentriert innerhalb der definierten Breite eines Feldes ausgerichtet werden.


Ein sekundärer Name, der in einer SQL-Anweisung zur Bezugnahme auf eine Tabelle, eine Ansicht oder eine Spalte benutzt wird.


(Oracle Express) Ein Werkzeug im Dialogfeld Selektor, mit dem Sie alle Werte in einer Dimension oder alle Werte in einer Dimension bei einer bestimmten Hierarchie auswählen können.


(Oracle Express) Ein Dimensionswert auf einer beliebigen Ebene über einem bestimmten Wert in einer Hierarchie. Der Vorgängerwert entspricht der aggregierten Gesamtsumme der Werte der untergeordneten Objekte. Im folgenden Beispiel wird der Dimensionswert "Europa" als Vorgänger von "Frankreich", "Lyon" und "Paris" in der Dimension GEOGRAPHY dargestellt.


Eine Gruppe, die direkt oder indirekt Eigentümer einer anderen Gruppe ist.


Ein Layoutobjekt, mit dem ein Punkt auf einem Objekt an einem Punkt auf einem anderen Objekt fixiert wird, wobei die Position des ersten Objekts in bezug auf das zweite Objekt verankert wird.


(Oracle Express) Ein spezifischer Dimensionswert, der benutzt wird, wenn Dimensionswerte basierend auf deren Familienzugehörigkeit ausgewählt werden oder durch eine Hierarchie navigiert wird.


Ein PL/SQL-Programmblock, der keinen Namen hat und das Vorhandensein der Schlüsselwörter BEGIN und END zur Einrahmung der ausführbaren Anweisungen nicht explizit fordert. Da anonyme Blöcke unbenannt sind, können andere Programmblöcke sie nicht referenzieren.


Ein Objekt, das im Gruppenbaum eines anderen Objekts über diesem anderen Objekt steht. Jedes Objekt ist ein übergeordnetes Objekt des entsprechenden untergeordneten Objekts.


 Ein Java-Ausdruck für kleine Programme, die dynamisch nach Bedarf in Web-Seiten oder Anwendungen importiert werden können.


Ein oder mehrere Programmodule, mit denen ein bestimmtes Ergebnis erzielt wird. Anwendungen können innerhalb von anderen Anwendungen verschachtelt sein. So könnte z.B. eine Anwendung zur Kontrolle des Lagerbestands einer Firma aus verschiedenen Form Builder-Anwendungen zur Eingabe von Daten und verschiedenen Graphics Builder-Anwendungen zur visuellen Darstellung der Daten bestehen.


1. Ein optionaler Ausdruck, der an einen Programmblock übergeben wird, damit der Programmblock diesen bearbeitet.
2. Klauseln, die Schlüsselwörter und die entsprechenden Werte enthalten.


Akronym für American National Standard Code for Information Interchange.


Eine schreibgeschützte Sammlung von PL/SQL-Unterprogrammen, die im allgemeinen mit einer Anwendung geliefert werden und die entsprechende PL/SQL-Quelle darstellen. Programmblöcke in einer zugeordneten Bibliothek werden implizit geladen, wenn sie zuerst beim Kompilieren oder zur Laufzeit von einem anderen Programmblock aufgerufen werden. Sie bleiben geladen, damit sie schnell wieder benutzt werden können, wodurch die Speicheranforderungen zur Laufzeit reduziert werden und die Leistung einer Anwendung verbessert wird. Siehe auch:  Bibliothek


1. Siehe Attribut.
2.  Ein Teil oder eine Komponente einer Oracle8-Objekttypdefinition. Jedes Attribut hat einen Namen und einen Oracle8-Datentyp. Wenn eine Objekttabelle basierend auf dem Objekttyp erstellt wird, entsprechen die Spalten in der Tabelle den Attributen in der Objekttypdefinition. Wenn ein Spaltenobjekt in einer relationalen Tabelle basierend auf dem Objekttyp erstellt wird, enthält das Spaltenobjekt das Äquivalent von Unterspalten, von denen eine jede einem Attribut in der Objekttypdefinition entspricht. Jedes Oracle8-Objektattribut wird in einer Tabelle als separates Datenobjekt behandelt, so als wäre es eine separate Spalte. Dies gilt sowohl für Objekttabellen als auch für Spaltenobjekte in relationalen Tabellen.
3. (Oracle Express) Eine beschreibende Eigenschaft, die von Dimensionswerten gemeinsam benutzt wird. Attribute stellen logische Gruppierungen dar, mit denen Benutzer Daten basierend auf ähnlichen Eigenschaften auswählen können. In einer Datenbank für Schuhe können Sie z.B. das Attribut Schuhfarbe verwenden, um alle Stiefel, Loafers und Slipper, die dieselbe Farbe haben, auszuwählen.


Die Spalten, aus denen ein Spaltenobjekt besteht (Oracle8).


In Graphics Builder das erste Element in einem Attribut-Deskriptor. Hier handelt es sich um eine 32-Bit-Maske, die das Toolkit über die Attribute unterrichtet, die von einem nachfolgenden Funktionsaufruf gesetzt oder abgerufen werden. Nur die Elemente, bei denen die entsprechenden Bits in der Attributmaske gesetzt sind, werden eingestellt oder abgerufen.


(Oracle Express) Ein Werkzeug im Dialogfeld Selektor, mit dem Sie Dimensionswerte basierend auf Attributen und Attributwerten auswählen können. In einer Datenbank für Soft Drinks könnten Sie z.B. alle Produkte auswählen, deren Größe 1 Liter entspricht. In diesem Beispiel ist Größe ein Attribut und 1 Liter ein Attributwert.


(Oracle Express) Die Werte in der Datenbank, aus denen ein Attribut besteht. In einer Datenbank für Eiscreme könnten die folgenden Attribute zu einem Geschmacksattribut in einer Dimension Produkt gehören: Vanille, Schokolade und Erdbeere. Dimensionswerte auf verschiedenen Ebenen in der Dimension Produkt - z.B. Marke, Präsentation und Größe  -- könnten denselben Wert für Geschmack verwenden.


Eine Diagrammart, bei der die Daten entsprechend ihrer Position auf der Diagrammachse dargestellt werden Ein Achsendiagramm kann zwei oder drei Achsen enthalten, wobei jede eine Werteachse, Kategorienachse oder Datumsachse sein kann.


Der weiße Teil eines Musters. Mit der Füllfarbenpalette weisen Sie dem Hintergrundelement Farben zu.


Ein nicht interaktiver Prozeß, der in einer Betriebssystemumgebung abläuft und einen bestimmten Dienst bzw. eine bestimmte Aktion ausführt. Bestimmte Oracle-Produkte verwenden Hintergrundprozesse für verschiedene Aufgaben, wie z.B. die Ausführung und Koordinierung von Aufgaben für gleichzeitige Benutzer der Datenbank, die Verarbeitung und Zustellung von E-Mails und die Verwaltung von Druckdiensten.


Der Wert, der als Anfangspunkt für die Darstellung von Feldern auf der Werteachse eines Diagramms benutzt wird.


Die ausführbare Datei, die eine Anwendung im Stapelmodus ausführt, ohne ein Fenstersystem zu benutzen.


Bei der Stapelkompilierung werden mehrere PL/SQL-Programmblöcke auf einmal in eine maschinenausführbare Form umgesetzt.


Eine Bezugnahme auf einen Parameter, der einen einzelnen literalen Wert (z.B. eine Zeichenfolge, eine Zahl oder ein Datum) ersetzt, der an einer beliebigen Stelle in einem PL/SQL-Konstrukt oder einer SQL SELECT-Anweisung auftritt. Bei einer Bindereferenz muß vor dem Parameternamen ein Doppelpunkt (:) stehen.


Eine globale Variable, die Sie erstellen und außerhalb eines PL/SQL-Pakets verwenden können.


1. Der Hauptprogrammblock in PL/SQL, der mit den Schlüsselwörtern DECLARE, BEGIN, EXCEPTION und END definiert wird.

2. In Form Builder ein logischer Container, der zu einer Datenbanktabelle oder Ansicht gehört.


1. Enthält dieselben Informationen wie die Programmblockspezifikation und umfaßt außerdem die tatsächliche Implementierung des Unterprogramms (d.h. die Folge von Aktionen). In den meisten Fällen muß nur ein Hauptteil für ein Unterprogramm definiert werden.

2. In Report Builder ein Bereich, der den Großteil des Berichtlayouts enthält (Text, Grafiken, Daten und Berechnungen) und in diesem Fall als Rumpf bezeichnet wird. Der Berichtrumpf steht zwischen den Titel- und Schlußseiten des Berichts.


Text und/oder Grafiken, die bei jeder Ausführung des Berichts in einem Bericht angezeigt werden. Bei einigen Produkten wird dies als "konstanter" Text bzw. "konstante" Grafiken bezeichnet.


Eine benutzerdefinierte Einrahmung eines Layoutobjekts, mit der im allgemeinen der Inhalt des Objekts hervorgehoben wird. Ränder werden so gezeichnet, daß die eine Hälfte der Randbreite außerhalb der Objekteinrahmung und die Hälfte innerhalb der Einrahmung liegt.


Siehe Innere Umrandung, Äußere Umrandung


Ein Achsendiagramm, bei dem zwei Datenkategorien auf einer Achse dargestellt werden.


Eine Abfragespalte, die einer Kontrollgruppe zugewiesen ist.


Eine Gruppe, mit der Berichtdaten aufgeteilt oder kategorisiert werden. Alle Daten in Abfragespalten, die einer Kontrollgruppe zugewiesen sind, werden über den Daten in den Spalten angezeigt, die zu anderen Gruppen gehören. Jeder Datensatz, der für eine Kontrollgruppe abgerufen wird, wird nur einmal angezeigt, während mehrere zusammengehörige Datensätze in anderen Gruppen angezeigt werden können.


Ein Bericht, der Kategorien enthält, mit denen die Berichtdaten in Gruppen aufgeteilt werden.


Ein PL/SQL -Block, der immer dann ausgeführt wird, wenn ein Programmstop erreicht wird. Siehe auch:  Programmstop.


Eine Debug-Aktion, die Sie in eine beliebige ausführbare Quellzeile in einem PL/SQL-Unterprogramm setzen können. Ein Programmstop unterbricht die Ausführung des Programmblocks und übergibt die Kontrolle an den PL/SQL-Interpreter. Mit Programmstops können Sie ein Unterprogramm inkremental ausführen und nach Laufzeitfehlern suchen. Siehe auch: Break-Trigger


Bezieht sich auf eine Komponente, mit der eine bestimmte Art von Dokument erstellt wird. So wird Form Builder z.B. benutzt, um Forms zu erstellen, während mit Report Builder Berichte erstellt werden.


Ein Datentyp, der von dem Oracle-Server definiert und unterstützt wird.


Eine Reihe von Erweiterungen der PL/SQL-Sprache, die zur Benutzung mit der Software ausgelegt sind. Vordefinierte Prozeduren umfassen Datentypen, Prozeduren, Funktionen, Exceptions und Konstanten.


In Project Builder ein mit Project Builder gelieferter Makro. Siehe auch Makro..


Ein temporärer Speicherbereich für Daten während der Übertragung dieser Daten zwischen dem Computer und einem Peripheriegerät oder zwischen Teilen eines Computers. Ein Puffer verhindert einen Datenverlust aufgrund von Differenzen in der Geschwindigkeit bzw. zeitlichen Steuerung des Transfers und beschleunigt bestimmte Funktionen.


1. Ein Oberflächenelement, mit dem ein Aktionsobjekt ausgewählt, ein Dialogfeld angezeigt oder die aktuelle Bedingung bestätigt werden kann.

2. Ein Objekt in einer Anwendung, mit dem eine PL/SQL-Prozedur verknüpft ist. Die Prozedur wird im allgemeinen aufgrund eines vom Benutzer ausgelösten Mausereignisses ausgeführt.


Eine PL/SQL-Prozedur, die mit einem Anwendungsobjekt verknüpft ist, das ausgeführt wird, wenn zur Laufzeit ein bestimmtes Mausereignis für das Objekt eintritt (z.B. das Klicken auf eine Schaltfläche). Die Prozedur wird ausgeführt, indem eine Hierarchie für die abgerufenen Daten mit einer Kontrollgruppe erstellt wird.


Ein temporärer Speicherbereich für Daten der Datenbank, auf die gerade zugegriffen wird oder die von Benutzern geändert werden, bzw. für Daten, die Oracle-Server zur Unterstützung der Benutzer benötigt. Die Begriffe werden häufig austauschbar verwendet.


Eine Schnittstelle, mit der Sie ausführbare Routinen der Forms Developer- oder Reports DeveloperKomponente für andere Oracle-Produkte oder ein 3GL-Programm aufrufen können.


Eine Folge von Unterprogrammaufrufen von der ursprünglichen Eintrittsstelle nach unten bis zu dem gerade ausgeführten Unterprogramm. Jeder Unterprogrammaufruf wird durch einen Rahmen in dem nach unten erweiterbaren Aufrufstapel dargestellt, wobei neu eingegebene Unterprogramme am Ende des Stapels hinzugefügt werden.


Siehe Editor


In Form Builder das Hintergrundobjekt, auf dem Sie die Schnittstellenobjekte positionieren, mit denen die Benutzer in der Laufzeitanwendung arbeiten. Ein Leinwandausschnitt ist im allgemeinen einem Fenster zugeordnet.


Verwaltbare Objekte, die über eine Open API in Client, Anwendungs-Server oder Datenbank eingesteckt werden.


Siehe Dokumentvorlage


Eine Beschriftungskomponente, mit der zwischen Informationen auf der Grundlage einer nicht hierarchischen Darstellung bzw. Einteilung und nicht auf der Grundlage von Empfindlichkeitsebenen unterschieden werden kann. Bei der Klassifizierung werden Kategorien benutzt, um den Zugriff zu Informationen einzuschränken.


Siehe Kategorienachse


Eine Dateninstanz in einem Kalkulationsblatt (z.B. Microsoft Excel).


Akronym für Common Gateway Interface. Die dem Industriestandard entsprechende Technik zur Ausführung von Anwendungen auf einem Web-Server. Während standardmäßige HTML-Dokumente, die von einem Web-Server abgerufen werden, statisch sind (es wird jedesmal genau derselbe Text abgerufen), kann ein auf dem Web-Server ausgeführtes Programm über CGI mit einem anderen Computer kommunizieren, um "dynamische" HTML-Dokumente als Antwort auf vom Benutzer eingegebene Seiten zu generieren.


Akronym für Computer Graphics Metafile. Ein Dateiformat, das international anerkannt ist und für die Speicherung bzw. den Transport objektorientierter Grafiken von einem System oder Programm zu einem anderen benutzt wird.


Ein Oracle-Datentyp, der im Hinblick auf die ANSI/ISO-Kompatibilität enthalten ist. Eine CHAR-Spalte ist eine Spalte mit fester Länge. Sie kann ausdruckbare Zeichen enthalten, wie z.B. A, 3, & oder Leerzeichen und kann von 1 bis 255 Zeichen umfassen bzw. gleich null sein.


Ein Balken, eine Linie, ein Symbol oder ein anderes Grafikobjekt, das einen einzelnen Wert für ein Feld darstellt.


Ein Rechteck mit beliebiger Größe mit einem Rand, mit dem Graphics Builder-Diagramme in eine Form oder einen Bericht eingebettet werden können.


Eine Sammlung von Attributen und Eigenschaften, die das Format eines Diagramms definieren.


Ein Oberflächenelement, das als kleines Quadrat angezeigt wird, das ein Benutzer ein- oder ausschalten kann.


Ein Algorithmus zur Fehlerprüfung.


1. Ein Objekt, das Bestandteil einer Gruppe ist und unmittelbar unter dem Gruppenobjekt in dem entsprechenden Gruppenbaum steht. Die Objekte, die ein Gruppenobjekt bilden, sind untergeordnete Objekte dieser Gruppe. Jedes Objekt ist ein untergeordnetes Objekt des entsprechenden übergeordneten Objekts.

2. (Oracle Express) Ein Dimensionswert auf der Ebene unmittelbar unter einem bestimmten Wert in einer Hierarchie. Werte von untergeordneten Objekten sind in der Berechnung enthalten, die die aggregierte Gesamtsumme für ein übergeordnetes Objekt erzeugt. Ein Dimensionswert kann ein untergeordnetes Objekt von mehr als einem übergeordneten Objekt sein, wenn die Dimension mehr als eine Hierarchie hat. Im folgenden Beispiel werden die Dimensionswerte "Lyon" und "Paris" als untergeordnete Objekte von "Frankreich" in der Dimension GEOGRAPHY dargestellt.


Siehe Detail-Abfrage


Eine hierarchische Ebene, mit der die Empfindlichkeit der beschrifteten Informationen angegeben wird. Mit Klassifizierungen kann der Zugriff zu Informationen begrenzt werden.


Ein Teil einer SQL-Anweisung, der nicht die ganze Anweisung darstellt, z.B. eine "WHERE-Klausel".


Ein Benutzer, eine Softwareanwendung oder ein Computer, der die Dienste, Daten oder eine Verarbeitung von einer anderen Anwendung bzw. einem anderen Computer (dem "Server") anfordert. In einer Zwei-Task-Umgebung ist der Client der Benutzer-Prozeß. In einer Netzwerkumgebung ist der Client der lokale Benutzerprozeß, und der Server kann lokal oder entfernt sein.


Aufteilung der Verarbeitung zwischen zwei Zentraleinheiten, wobei eine als Server dient, der Dienste in einer Transaktion leistet, und die andere als Client in der Transaktion, der Dienste anfordert und empfängt. Alle Verantwortlichkeiten der gemeinsamen Datenverwaltung können von dem Computer verarbeitet werden, auf dem das Datenbankverwaltungssystem ausgeführt wird, während die Workstations, die die Datenbankanwendung ausführen, sich auf die Interpretation und Anzeige von Daten konzentrieren.


Ein Speicherpuffer. Ein Objekt bleibt in der Zwischenablage, bis Sie ein weiteres Objekt ausschneiden oder kopieren bzw. bis Sie die Anwendung beenden.


Ein benutzerdefinierter Datentyp, der eine Dateneinheit beschreibt, die aus einer unbestimmten Anzahl von Elementen besteht, die alle denselben Datentyp aufweisen. Variierende Array-Typen und Tabellentypen sind Collection-Typen.  (Oracle8)


Ein Argument, mit dem Sie eine Datei angeben können, die eine Gruppe von Befehlszeilenargumenten für ausführbare Prozeduren von Forms Developer enthält.


Enthält alle Farben, die für das Fenstersystem, die Zeichnungsoberfläche oder ein Fenster und die zugehörigen Ansichten verfügbar sind.


1. Ein vertikaler Bereich in einer Datenbanktabelle, der eine bestimmte Datendomäne darstellt. Eine Spalte hat einen Spaltennamen (z.B. ENAME) und einen bestimmten Datentyp (z.B. CHAR). In einer Tabelle mit Mitarbeiterdaten würden z.B. die Namen aller Mitarbeiter eine Spalte darstellen. Eine Datensatzgruppenspalte stellt eine Datenbankspalte dar.
2. In Report Builder ein Datenmodellobjekt, das automatisch für jeden Spaltenausdruck in der SELECT-Liste einer Abfrage bzw. manuell erstellt wird, um Summen bzw. Formeln zu berechnen oder als Platzhalter zu fungieren.


In einer relationen Oracle8-Tabelle oder Objekttabelle, eine Spalte, deren Definition auf einem Objekttyp basiert.  Die Spalte ist ein zusammengesetztes Objekt, das den Attributen des Objekttyps entspricht.


Eine Befehlszeile auf Betriebssystemebene. Die meisten Oracle-Produkte können aus einer Befehlszeile mit einer Reihe von Argumenten für ausführbare Programme aufgerufen werden.


Ein Sprachkonstrukt für die Aufnahme von erläuterndem Text in einem Programm, dessen Ausführung davon nicht betroffen wird.


Wenn die Änderung von Daten in der Datenbank festgeschrieben wird, spricht man vom Speichern. Bevor Änderungen gespeichert werden, sind sowohl die alten als auch die neuen Daten vorhanden, so daß Änderungen gespeichert oder die Daten im vorherigen Zustand wiederhergestellt werden können.


(Oracle Express)

>	Größer als

<	Kleiner als

=	Gleich

<=	Kleiner als oder gleich

>=	Größer als oder gleich

<>	Ungleich

Bei Zahlen werden die Operanden auf den niedrigsten gemeinsamen Typ erweitert (Ganzzahl ist vorrangig gegenüber Long, was wiederum vorrangig gegenüber einfacher Genauigkeit ist, was vorrangig gegenüber doppelter Genauigkeit ist). Bei Zeichenfolgen muß die Schreibweise bei dem Vergleich berücksichtigt werden. Der Vergleich basiert auf der Sortierfolge, die von der in der Windows-Systemsteuerung angegebenen Sprache benutzt wird. Das Ergebnis ist 0 bei FALSE und -1 bei TRUE.


Übersetzung eines Quellprogramms in ein binäres, ausführbares Format. PL/SQL-Programmblöcke müssen kompiliert werden, bevor sie ausgeführt werden können.


Ein bestimmtes Zielobjekt, das Bestandteil einer größeren Anwendung ist, z.B. eine Form in einem System zur Auftragseingabe oder eine Bibliothek, die von vielen anderen Elementen gemeinsam genutzt wird. Siehe auch Ziel.


Der gleichzeitige Zugriff auf dieselben Daten durch mehrere Benutzer, die verschiedene Datenbankanwendungen oder dieselbe Anwendung ausführen. Bei der Datenbanksoftware erfordert eine Gleichzeitigkeit eine zusätzliche Logik, um zu gewährleisten, daß alle Benutzer konsistente Daten erhalten und daß alle Änderungen in der richtigen Reihenfolge durchgeführt werden.


Ein Ausdruck, dessen Wert entweder wahr oder falsch ist wie z.B. X> 100. So können Sie z.B. eine Bedingung in einer Abfrage festlegen, wenn die Abfrage nur die Zeilen anzeigen soll, deren Auswertung in dem Ausdruck wahr ist.


Layouteditor-Modus, der verhindert, daß untergeordnete Objekte verschoben oder innerhalb bzw. außerhalb der übergeordneten Objekte skaliert werden.


Zur Anmeldung bei einer Datenbank wird eine DB-Adresse verwendet. Sie müssen sich anmelden, wenn Sie Abfragen erstellen oder ändern bzw. auf Anwendungen zugreifen möchten, die in einer Datenbank gespeichert sind.


Die Gruppe von Parametern, einschließlich einem Protokoll, die SQL*Net benutzt, um sich bei einer bestimmten Oracle-Instanz im Netzwerk anzumelden.


Eine Regel oder Einschränkung, die sich auf bestimmte Daten bezieht (wie z.B. eine NOT NULL-Einschränkung für eine Spalte), die auf Datenbankebene und nicht auf Objekt- oder Anwendungsebene durchgesetzt wird.


Eine PL/SQL-Codestruktur. Es gibt zwei Arten von Konstrukten: Nicht-Wert-Konstrukte, die keinen Wert zurückgeben, und Wert-Konstrukte, die einen Wert zurückgeben.


Ein Arbeitsbereich, in dem Oracle-Server die aktuelle SQL-Anweisung sowie die Spaltenüberschriften und eine Zeile des Ergebnisses speichert, wenn es sich bei der Anweisung um eine Abfrage handelt. Wird auch als Cursor bezeichnet.


Eine Achse, auf der Werte dargestellt werden, die mit einem Wert beginnen und fortgeführt werden, bis ein anderer Wert erreicht ist. Auf diese Weise sind diese Werte mathematisch miteinander verbunden. Abhängige Daten werden im allgemeinen auf dieser Achse dargestellt, die auch als Werteachse bezeichnet wird.


Die vier Eckpunkte des virtuellen Rechtecks, das die Idealform eines Objekts darstellt. Wenn Sie ein Objekt in dem Layout auswählen, werden die Steuerungspunkte angezeigt. Je nach ausgewähltem Objekt können Sie das Objekt ändern, indem Sie einen Steuerungspunkt ziehen.


Das zweidimensionale Raster, in dem gezeichnet wird.


Die Art von x-, y-Einheiten, mit denen Objekte in der Layouteditor-Ansicht positioniert und skaliert werden. Die verfügbaren Koordinatensysteme sind 1) Zeichen, das die ursprüngliche Größe der Zeicheneinheit der Plattform verwendet, und 2) reell, bei dem in Pixel-, Zentimeter-, Zoll- oder Punkt-Einheiten gemessen wird.


Die Positionspunkte für Objekte in dem Layout. Die x- und y-Koordinaten bestimmen die horizontale (x) und vertikale (y) Position von Objekten.


Speichern einer Replik eines ausgewählten Objektes in der Zwischenablage, damit das Objekt gegebenenfalls an einer anderen Stelle im Editor eingefügt werden kann.


Eine Unterabfrage, die auf denselben Tabellen basiert, wie die übergeordnete Abfrage (d.h. Spalten in den Tabellen referenziert, die in der übergeordneten Abfrage enthalten sind).


Gruppe, die zwei oder mehr andere Gruppen besitzt und ein mathematisches Kreuzprodukt erzeugt (d.h. eine Korrelation zwischen den Werten berechnet).


Siehe Matrixzelle


1. Ein kleines Symbol, mit dem die Position der Maus dargestellt wird. Die Cursorform variiert je nach ausgewähltem Tool.

2. Ein interner Zeiger auf Daten, die von einer Abfrage abgerufen werden. Der Cursor zeigt immer nur auf eine Datenzeile gleichzeitig. Sie können jedoch vordefinierte Unterprogramme verwenden, um den Cursor zu einer beliebigen Zeile in der Datengruppe zu setzen.


(Oracle Express) Eine von einem Benutzer erstellte Formel, mit der die Datenanalyse optimiert werden kann. Sie erstellen benutzerdefinierte Maße anhand von Basismaßen in der Datenbank. Wenn die Datenbank z.B. das vorhandene Maß Volume Share enthält, können Sie mit diesem Maß ein benutzerdefiniertes Maß mit der Bezeichnung Volume Share Year Ago erstellen. Mit diesem benutzerdefinierten Maß können Sie den absoluten Anteil eines Produkts im vergangenen Jahr ermitteln.


Löschen von einem oder mehreren Objekten und Speichern dieser Objekte in der Zwischenablage, damit sie gegebenenfalls an einer anderen Stelle im Editor eingefügt werden können.


Eine Ansicht wird verändert, wenn sie voll oder teilweise von einer anderen Ansicht verdeckt wird.


Eine Gruppe von Tabellen und Ansichten, die dem Datenbankadministrator gehören. Dies ist die zentrale Informationsquelle für Oracle-Server und andere relationale Datenbanken.


Ein Datenmodellobjekt, mit dem eine Master-/Detail-Beziehung (Beziehung zwischen übergeordnetem und untergeordnetem Objekt) zwischen einer Gruppe und einer Abfrage definiert wird.


Ein relationales Modell, mit dem definiert wird, welche Daten aus der Datenbank abgerufen werden sollen, welche Daten berechnet werden sollen und wie Daten in einem Bericht angeordnet werden sollen. Report Builder-Objekte, die das Datenmodell definieren, sind Abfragen, Gruppen, Spalten, Parameter und Links.


Eine Quelle für Daten, die von einer Abfrage zurückgegeben werden, einschließlich Datenbankobjekten, wie Tabellen, Ansichten, Synonymen, Snapshots und als Ansichten gespeicherte Abfragen.


In Project Builder ein Knoten im Projektnavigator, der das Projektobjekt angibt, das die Struktur eines offenen Projekts bestimmt. So gibt z.B. der Knoten Globale Registrierung die Globale Registrierung an, die eine Liste von lokalen Registrierungen und eine Liste von globalen Definitionen enthält.


Eine Gruppe von Dictionary-Tabellen und Benutzertabellen, die als eine Einheit benutzt werden.


Ein gespeicherter PL/SQL-Block, der implizit ausgeführt wird, wenn eine triggerauslösende Anweisung INSERT, UPDATE oder DELETE für die zugehörige Tabelle in der Datenbank ausgegeben wird. Siehe auch: Debug-Trigger.


Eine Standardform von Daten. Einige gebräuchliche Oracle-Datentypen sind CHAR, VARCHAR2, DATE, NUMBER, LONG, RAW und LONG RAW.


Ein Datentyp von Oracle-Server. Eine Datumsspalte kann ein Datum und eine Zeit zwischen dem 1. Januar 4712 v.Chr. und dem 31. Dezember 4712 n.Chr. enthalten.


Eine Achse, auf der Datumswerte dargestellt werden, die bei einem Datum beginnen und fortgeführt werden, bis ein anderes Datum erreicht ist.


Erkennen, Diagnostizieren und Beheben von Laufzeitfehlern in Programmen.


Ein vom Benutzer angegebenes Ereignis, das in ein PL/SQL-Unterprogramm gesetzt wird, im allgemeinen im Hinblick auf die Behebung von Laufzeitfehlern.


Eine bedingte Debug-Aktion, die Sie in jede Quellzeile in einem PL/SQL-Unterprogramm setzen können. Wenn die angegebene Bedingung erfüllt wird, wird die angegebene Aktion ausgelöst, bevor die Ausführung des Unterprogramms wiederaufgenommen wird. Siehe auch: Datenbank-Trigger.


Die Funktionalität von Procedure Builder innerhalb einer Software-Komponente, die für das Testen und Debuggen benutzt wird.


In Oracle8 sind Objekttypen und Objekte zusammengesetzte Objekte, die aus Bestandteilen oder Attributen bestehen. Forms Developer oder Reports Developer behandelt jeden Bestandteil bzw. jedes Attribut als unabhängiges, individuell auswählbares Datenobjekt. Dies führt zu einem aufgelösten Objekt (gelegentlich auch als Flattened Object bezeichnet).  Das Objekt ist keine homogene Entität innerhalb der Developer-Umgebung.


Eine Datengruppe, deren Wert von anderen Daten abhängt. So kann z.B. die Betriebsangehörigkeit eines Mitarbeiters den Wert 10 haben, der vom Wert des Mitarbeiternamens abhängt. Wird auch als Wertdaten bezeichnet.


Ein Wert, der vom System geliefert wird, wenn ein Benutzer keinen erforderlichen Befehlsparameter bzw. kein erforderliches Befehlsattribut angibt.


Vorbereitung und Bereitstellung einer fertigen Anwendung zur Verteilung und Benutzung.


In Project Builder der Mechanismus, mit dem Project Builder bestimmt, wie Dateien kompiliert werden, die in Projekten referenziert werden. Objekte am oberen linken Rand des Baums hängen von den Objekten am unteren linken Rand ab. Wenn z.B. eine Kopfzeilendatei entweder veraltet oder neuer ist als die ausführbare Datei, mit der sie generiert wurde, generiert Project Builder die ausführbare Datei mit einem Build-Befehl neu. Abhängigkeiten erstrecken sich auch auf Unterprojekte. Wenn z.B. ein Unterprojekt aus einer Funktionsbibliothek besteht, die neu generiert wurde, weiß Project Builder, daß das abhängige Projekt neu generiert werden muß, um die aktualisierten Bibliotheksfunktionen zu benutzen. Siehe auch Abhängigkeitsansicht


Zeigt in Project Builder die Dateien im Projektnavigator in der Reihenfolge an, in der sie voneinander abhängen, wobei Projektknoten am obersten Punkt in der Hierarchie stehen, gefolgt von Zielknoten, auf die wiederum generierbare Komponenten dieser Ziele folgen. So hängt eine ausführbare Form z.B. von einer .fmb-Datei ab, die auf die Form folgt, die wiederum von einer Bibliothek abhängt und von dieser gefolgt wird, die für eine USEREXIT-Prozedur benutzt wird usw. Siehe auch Projektansicht, Ziel


1. Ein Objekt, das in dem Gruppenbaum eines anderen Objekts an einer beliebigen Stelle unterhalb dieses anderen Objekts steht. Jedes Objekt ist ein untergeordnetes Objekt der entsprechenden übergeordneten Objekte.

2. (Oracle Express) Ein Dimensionswert auf einer beliebigen Ebene unter einem bestimmten Wert in einer Hierarchie. Werte von untergeordneten Objekten sind in der Berechnung enthalten, die die aggregierte Summe für ein Vorgängerobjekt erzeugt. Im folgenden Beispiel werden die Dimensionswerte "Frankreich", "Lyon" und "Paris" als untergeordnete Objekte von "Europa" in der Dimension GEOGRAPHY dargestellt


Die Oberfläche, auf der verschiedene Komponenten einer Forms Developer- oder Reports Developer-Anwendung entworfen werden.


Siehe Oracle Designer..


Eine Gruppe von Werkzeugen zur Modellierung, Entwicklung und Generierung von Anwendungen. Mit Oracle Designer können Sie Forms und Menüs aus Moduldefinitionen generieren, die im Oracle-Repository aufgezeichnet sind.


Bei der Definition eines Master-/Detail-Berichts ruft die Detailabfrage alle zusammengehörigen Datensätze für jeden Datensatz ab, der von der Master- oder übergeordneten Abfrage abgerufen wird.


Ein Teilbildschirm bzw. ein Fenster, in dem Sie aufgefordert werden, die zur Ausführung eines Vorgangs erforderlichen Informationen einzugeben.


Eine Zwischendarstellung eines Programmblocks, die vom Compiler generiert wird. DIANA umfaßt alle syntaktischen und semantischen Informationen für einen kompilierten Programmblock. Um eine Referenz auf einen Programmblock zu kompilieren, muß der Compiler Zugriff zu der referenzierten DIANA-Darstellung des Programmblocks haben. Wenn z.B. Programmblock A Programmblock B aufruft, muß die DIANA-Darstellung für B verfügbar sein, bevor A kompiliert werden kann.


(Oracle Express) Ein Typ eines Datenbankobjekts, bei dem es sich um eine Werteliste handelt, die Kategorien für Daten bereitstellt. Eine Dimension fungiert als Index zur Kennzeichnung von Werten einer Variablen. Angenommen, Umsatzdaten mit separaten Umsatzzahlen für jeden Monat sind vorhanden. In diesem Fall haben die Daten eine Dimension MONTH, d.h. die Daten sind nach Monat organisiert. Eine Dimension kann mit einem Schlüssel in einer relationalen Datenbank verglichen werden.

Jedes Datenobjekt innerhalb einer mehrdimensionalen Variablen kann eindeutig und vollständig ausgewählt werden, indem ein Element aus jeder der Dimensionen der Variablen angegeben wird. Wenn z.B. eine Variable Gehalt nach MONTH, PRODUCT und MARKET dimensioniert ist, wobei "Januar" für die Dimension MONTH, "Stereos" für die Dimension PRODUCT und  "Osten" für die Dimension MARKET angegeben wird, wird nur eine Zelle in der Variablen eindeutig angegeben. Somit bieten Dimensionen eine präzise und intuitive Möglichkeit Daten zu organisieren und auszuwählen, um Abrufen-, Aktualisieren- und Berechnenvorgänge durchzuführen.

Eine Dimension kann einfach sein, mit Werten, bei denen es sich um einfache Text- oder ganzzahlige Werte handelt. Sie kann jedoch auch eine Conjoint-Dimension sein, mit Werten, bei denen es sich um Kombinationen aus anderen Werten in anderen Dimensionen handelt. Ein zusammengesetztes Objekt ist keine Dimension, sondern ein conjoint-ähnliches Objekt, das Express im Hinblick auf die Verarbeitung von selten auftretenden Daten als Dimension behandelt.


 (Oracle Express) Ein Element in der Liste, aus der eine Dimension besteht. Eine Computerfirma könnte z.B. Dimensionswerte mit der Bezeichnung "LAPPC" und "DESKPC" in der Dimension PRODUCT haben. Werte in der Dimension GEOGRAPHY könnten "Boston" und "Paris" umfassen. Werte in der Dimension TIME könnten "MAY96" und "JAN97" umfassen.


Der Status eines Oberflächenelements, mit dem angegeben wird, daß ein Menüpunkt, eine Schaltfläche usw. im aktuellen Kontext nicht benutzt werden kann, d.h. daß das Objekt nicht auf eine Tastatur- oder Mauseingabe reagiert.


Eine Achse, auf der verschiedene Werte in festen Intervallen dargestellt werden. Diese Werte stehen mathematisch nicht in Beziehung zueinander. Unabhängige Daten werden im allgemeinen auf dieser Achse dargestellt.


Ein Graphics Builder-Dokument, das eine beliebige Kombination von Diagrammen, Bildern, Textobjekten und Formeln enthält.


In Form Builder ein Objekt, in dem Informationen gespeichert und angezeigt werden, die mit PL/SQL abgerufen oder programmgesteuert zugewiesen werden müssen.


Zum Aufrufstapel gehörig, in dem neu eingegebene Unterprogramme am Ende des Stapels hinzugefügt werden. Der früheste Rahmen, der dem ursprünglichen Eintrittspunkt in das Programm entspricht, befindet sich am oberen Rand des Stapels, während der letzte Rahmen, der mit dem am tiefsten verschachtelten Unterprogrammaufruf verknüpft ist, am unteren Ende des Stapels steht.


Beim Ziehen halten Sie eine Maustaste gedrückt, während Sie den Mauszeiger zu einer bestimmten Stelle in einem Fenster schieben.


(Oracle Express) Beim Aufgliedern wird in den Aggregationsebenen in einer Dimension, die eine Hierarchie hat, nach oben und unten navigiert. Wenn Sie Dimensionswerte auswählen oder Daten anzeigen, können Sie eine Dimensionshierarchie ein- oder ausblenden, indem Sie in ihr nach oben oder unten aufgliedern. Beim Aufgliedern nach unten wird die Ansicht eingeblendet, damit die untergeordneten Objekte aufgenommen werden, die mit übergeordneten Werten in der Dimensionshierarchie verknüpft sind. Beim Aufgliedern nach oben wird die Liste mit untergeordneten Werten ausgeblendet, die mit einem übergeordneten Wert in der Dimensionshierarchie verknüpft sind.

Sie können auf ein Plus-Symbol ( [image]) klicken, um die Hierarchie einzublenden oder auf ein Minus-Symbol ( [image]), um sie auszublenden.

Im Selektor können Sie auf das Symbol Aufgliedern ( [image]) klicken, um das Dialogfeld Aufgliedern anzuzeigen, so daß Sie eine Detail-Ebene für die ganze Dimension auswählen können.


Eine Option, mit der Sie Objekte direkt auf dem Layout kopieren können, ohne daß sich dies auf den Inhalt der Zwischenablage auswirkt.


(Oracle Express) Eine gespeicherte Auswahl kann bei jeder Auswertung verschiedene Dimensionswerte aufweisen. Die ausgewählten Dimensionswerte können sich von Benutzung zu Benutzung unterscheiden. Dagegen ist eine statische gespeicherte Auswahl eine Liste mit Dimensionswerten, die sich nicht ändert. Ein Skript für eine dynamisch gespeichertes Auswahl könnte "Select the last three Months" enthalten, während ein Skript für eine statisch gespeicherte Auswahl  "Select February 1996, March 1996, and April 1996" enthalten könnte.


Akronym für Extended Binary-Coded Decimal Interchange Code.


Die Umrandung eines Objekts.


Ein Anzeigefeld in der Werkzeugpalette des Layouteditors, in dem die aktuellen Einstellungen für Rand, Füllung, Textmuster und Farben dargestellt werden.


Ein Arbeitsbereich, in dem Sie bestimmte Aufgaben ausführen, wie z.B. einen Programmblock erstellen oder eine Anwendung entwerfen.


Ein wichtiges Objekt, zu dem Sie Informationen aufzeichnen müssen. Elemente werden von Attributen und Verknüpfungen mit anderen Elementen beschrieben.


Ein beliebiges Element im Dictionary wird als Element eines bestimmten Typs eingeordnet. Beispiele für Elementtypen sind Entität, Attribut, Programmodul, Tabelle, Diagramm, Text, Softbox. Vorkommen bzw. Instanzen dieser Elemente werden ebenfalls als Elemente bezeichnet.


(Oracle Express) Diese Schaltfläche zeigt ein Dialogfeld für die gerade ausgeführte Aufgabe an, im allgemeinen, damit Sie einen oder mehrere benötigte Werte auswählen können.


Status eines Oberflächenelements, der angibt, daß ein Menüpunkt, eine Schaltfläche usw. im aktuellen Kontext benutzt werden kann, d.h. auf eine Tastatur- und/oder Cursor-/Mauseingabe reagiert.


Ein Objekt, das ein anderes Objekt enthält. Ein Objekt ist nur dann von einem anderen Objekt umschlossen, wenn folgende Bedingungen alle wahr sind: Beide Objekte gehören zum selben Bereich (Hauptteil, Rand, Titel oder Anhang), das äußerste der beiden Objekte ist ein Rahmen oder Wiederholungsrahmen, das äußerste der beiden Objekte steht hinter dem anderen Objekt, das innerste der beiden Objekte liegt voll innerhalb der Umrandung des anderen Objekts.


Beim Verschlüsseln werden Daten so codiert, daß nur der beabsichtigte Empfänger sie decodieren (entschlüsseln) und lesen kann.


Der Computer-Arbeitsplatz des Benutzers, einschließlich der Tools, die normalerweise benutzt werden, und deren Konfiguration. Bei Project Builder bezieht sich dies auf die Teilmenge von Tools, mit denen verschiedene Aufgaben im Zusammenhang mit der Entwicklung von Forms Developer-Anwendungen ausgeführt werden.


Eine Warn- oder Fehlerbedingung, die von einem PL/SQL-Unterprogramm generiert wird.


(Oracle Express) Ein Werkzeug im Dialogfeld Selektor, mit dem der Benutzer Dimensionswerte auswählen kann, die mit den Daten verknüpft sind, die den von Benutzer angegebenen Bedingungen entsprechen. So könnte der Benutzer z.B. alle Produkte auswählen, deren Umsätze in der Woche, die am 23.Dezember 1995 endet, im Bereich München höher als 10.000 DM waren.


Ein Argument, das Sie an die ausführbare Routine eines Produkts übergeben können, wie z.B. 'OPENFILE=my_disp' und 'PRINT=YES'. Diese Argumente werden im allgemeinen angegeben, wenn die ausführbare Routine über die Befehlszeile aufgerufen wird.


Siehe Ausführen


Speichern einer Kopie von Objekten, Modulen, ausgewählten Texten oder Bildern in einer Datei oder Datenbank. Bei Project Builder wird mit Exportieren der Prozeß bezeichnet, bei dem eine Datei, die Projekt-, Typ-, Aktions- und/oder Makro-Definitionen enthält, in ein portierbares Format zur Verteilung an andere Benutzer geschrieben wird, die möglicherweise auf heterogenen Plattformen arbeiten. Siehe auch Exportdatei, Importieren.


In Project Builder die gemeinsam benutzbare, portierbare Datei, die durch das Exportieren eines Projekts erstellt wird.


1. Ein PL/SQL-Konstrukt, in dem Variablen, Konstanten, Literale und Vorgänge mit den Werten kombiniert werden.

2. (Oracle Express) Ein oder mehrere Datenwerte, die in einem Programm in der Express-Sprache angegeben werden. Sie können z.B. Ausdrücke als Argumente für Programme und Funktionen angeben. Ein Ausdruck kann aus einem der folgenden Elemente bestehen:

•	Ein einfacher, literaler Wert (z.B. 10)

•	Eine Variable oder Formel, die einen oder mehrere Werte enthält

•	Eine Funktion, die einen oder mehrere Werte zurückgibt

•	Eine Berechnung, mit der Werte, wie z.B. Variablen, Formeln oder Funktionen mit arithmetischen oder Booleschen Operatoren kombiniert werden.


Siehe Bibliothek


Eine SQL SELECT-Anweisung im ANSI-Standard, auf die von anderen Oracle-Produkten Bezug genommen werden kann.


(Oracle Express) Eine Gruppe mit zusammengehörigen Dimensionswerten, die den Ebenen der Dimensionshierarchie entsprechen. Dimensionswerte innerhalb einer Familie können in einer Beziehung Vorgänger, übergeordnetes Objekt, untergeordnetes Objekt und Nachfolger zueinander stehen. In dem folgenden Beispiel werden die Familienbeziehungen für den Dimensionswert "Frankreich" in der Dimension GEOGRAPHY dargestellt.


(Oracle Express) Ein Werkzeug im Dialogfeld Selektor, mit dem der Benutzer eine Familie mit Dimensionswerten für eine bestimmte Hierarchie auswählen kann. Eine Familie umfaßt ein übergeordnetes Objekt und alle untergeordneten Dimensionswerte. Der Benutzer kann z.B. alle Familienmitglieder unter der Ebene des Marktes Chicago in der Dimension Geography auswählen.


1. Ein Oberflächenelement, in dem Sie Daten eingeben, bearbeiten oder löschen. 2. In Graphics Builder oder Report Builder ein Layoutobjekt, mit dem definiert wird, wie die Daten für eine bestimmte Abfragespalte angezeigt werden.


In Graphics Builder eine Sammlung von Attributen und Eigenschaften, mit denen bestimmt wird, wie abhängige Daten (Werte) als Diagrammfelder dargestellt werden, wie z.B. Balken oder Linien.


In Project Builder ein Knoten im Projektnavigator, der eine Datei angibt, die im Dateisystem gespeichert ist. So entsprechen z.B. die globalen und lokalen Registrierungsknoten den globalen und lokalen Registrierungsdateien.


Der Bereich innerhalb eines Objekts, für den eine Füllfarbe bzw. ein Füllmuster angewandt werden soll.


Eine PL/SQL-Funktion oder eine anonyme Funktion, die die Daten einschränkt, die von einer Gruppe angezeigt werden.


Ein Computer, der den Zugriff auf Computer in einem lokalen Netzwerk von außen und den Zugriff auf externe Computer aus dem lokalen Netzwerk reguliert.


Siehe Aufgelöstes Objekt.


Layouteditor-Modus, in dem übergeordnete Objekte automatisch skaliert oder verkleinert werden, wenn untergeordnete Objekte verschoben oder skaliert werden, und bei dem die Positionen von anderen Layoutobjekten angepaßt werden, die sonst von der Positionsänderung oder Skalierung der Objekte betroffen wären.


Status einer Entität, die auf die Eingabe vom Benutzer oder dem Client reagieren kann. Wenn eine Entity den Tastaturfokus hat, kann sie Ereignisse empfangen, wenn der Benutzer eine Taste drückt. Wenn eine gezeichnete Ansicht den Zeichnenfokus hat, kann sie auf Client-Routinen reagieren, die sich auf das Zeichnen auswirken.


Der schwarze Teil eines Musters. Mit der Randfarbpalette können Sie Farbe für das Vordergrundelement anwenden.


Ein Wert oder eine Spalte in einer Tabelle, die sich auf einen Primärschlüssel in einer anderen Tabelle bezieht.


In Report Builder ein Standard-Layoutstil, bei dem Beschriftungen links neben den Feldern angezeigt werden und bei dem jeder Datensatz auf einer separaten logischen Seite gedruckt wird.


In Report Builder ein Standard-Layoutstil, der Boilerplate und Felder mischt, wobei Zeilen bei ganzen Wörtern umbrochen werden.


(Feldattribute) Eine Einstellung, die das Format eines Feldwertes definiert. So wird z.B. eine Formatmaske benutzt, um die Anzeige von Währungsbeträgen und Datumsangaben zu bestimmen.


Eine PL/SQL-Funktion, mit der Sie die Formatierungsattribute eines Objekts dynamisch ändern können.


(Oracle Express) Ein Typ eines Datenbankobjekts, das eine gespeicherte Berechnung, einen Ausdruck oder eine Prozedur darstellt, die einen Wert erzeugt. Mit einer Formel können komplexe oder häufig benutzte Beziehungen innerhalb der Daten definiert und gespeichert werden, ohne daß die Daten selbst erneut gespeichert werden müssen. Immer wenn Sie eine Formel benutzen, führt Express die Berechnung oder Prozedur aus, die zur Erzeugung des Wertes erforderlich ist.


Eine vom Benutzer erstellte Spalte, die ihre Daten aus einer PL/SQL-Funktion bzw. einem PL/SQL-Ausdruck, einem User Exit, einer SQL-Anweisung oder einer beliebigen Kombination dieser erhält.


In Graphics Builder der Teil einer Diagrammvorlage, der die Grundstruktur eines Diagramms definiert, jedoch nicht bestimmt, wie die Daten dargestellt werden.
2. In Report Builder ein Layoutobjekt, mit dem andere Layoutobjekte umschlossen werden und mit dem Formatierung, Wiederholung und Position von mehreren Objekten gleichzeitig gesteuert wird.


Ein PL/SQL-Unterprogramm, das eine bestimmte Folge von Aktionen ausführt und dann einen Wert zurückgibt. Es kann auf dem Client und dem Datenbank-Server gespeichert sein und ausgeführt werden.


Speichern einer Anwendung in einer Datei oder Datenbank in einem Binärformat, das von ausführbaren Laufzeit- und Stapel-Routinen ausgeführt werden kann.


Die ausführbare Routine von Form Builder, mit der eine Anwendung in einer Datei oder Datenbank im Binärformat gespeichert wird.


Eine Registrierung von Project Builder, bei der Informationen gespeichert werden, die für die ganze Forms Developer- oder Reports Developer-Installation gelten. Diese Informationen sind auf Typdefinitionen und die zugehörigen Aktionen und vordefinierte bzw. benutzerdefinierte Attribute beschränkt. Die Benutzung der Globalen Registrierung ist optional; ihre Funktionen können von einzelnen Benutzerregistrierungen ausgeführt werden. Siehe auch Registrierung, Benutzerregistrierung


Ein logischer Container, der anwendungsübergreifend vorhanden ist. Wenn eine Anwendung eine globale Variable benutzt, verwaltet die Anwendung die Variable, bis die Anwendung beendet wird oder bis ein anderes Objekt sie explizit entfernt.


Mit einer Zugriffsberechtigung wird einem Benutzer der Zugriff auf ein Modul erteilt. Nur der Modulersteller kann anderen Benutzern den Zugriff auf das Modul erteilen.


In Graphics Builder die Linien, die Zeilen und Spalten im Layouteditor trennen.


1. Ein Objekt, das aus mehreren anderen Objekten besteht.
2. In Report Builder ein Datenmodellobjekt, das automatisch so erstellt wird, daß alle von einer Abfrage ausgewählten Spalten enthalten sind, oder das vom Benutzer so erstellt wird, daß die Hierarchie der Daten in einem Bericht geändert wird; das Modellobjekt wird in erster Linie für das Erstellen von Programmstops in einem Bericht verwendet sowie für das Zurücksetzen von Berechnungen.
3. In Project Builder Sammlungen von zusammengehörigen Objekten, die über Untermenüs aus dem Launcher aufgerufen werden können. Mit Gruppen können Benutzer den Launcher so konfigurieren, daß er im wesentlichen wie das Start-Menü von Windows 95 aussieht mit beliebigen "Gruppen" als Einträgen, die Zugang zu anderen Objekten und/oder Gruppen ermöglichen. So könnte ein Benutzer z.B. eine Gruppe namens "Project Docs" mit einem Projektplan, einer Liste von auszuführenden Aufgaben, Komponentenspezifikationen usw. definieren; bei einigen Dateien kann es sich um .txt-Dateien und bei anderen um .doc-Dateien handeln.


Eine PL/SQL-Funktion, die die Daten einschränkt, die von einer Gruppe abgerufen werden.


Ein hierarchisches Modell, das einem "Stammbaum" entspricht und die Beziehung zwischen Gruppenobjekten und den Objekten beschreibt, aus denen die Gruppenobjekte bestehen.


Akronym für Graphical User Interface (grafische Benutzeroberfläche). Die Benutzung von Bildern und nicht nur Wörtern zur Darstellung der Ein- und Ausgabe eines Programms. Programme mit GUIs laufen unter Systemen in Fenster-Technik (wie z.B. X Windows, Microsoft Windows, Apple Macintosh usw.). Bei GUI-Programmen werden Symbole, Schaltflächen usw. in Fenstern auf dem Bildschirm angezeigt. Benutzer steuern die GUI-Programme im wesentlichen, indem sie einen (typischerweise durch eine Maus gesteuerten) Zeiger bewegen. Wird auch als Bitmap-Oberfläche bezeichnet.


Ein interner Zeiger auf ein Anwendungsobjekt. Um Bezug auf ein Objekt in einem PL/SQL-Programmblock zu nehmen, müssen Sie dessen Handle als Argument an das entsprechende Unterprogramm übergeben.


Ein optionaler Berichtbereich, der einführendes Material für den Bericht enthalten kann, einschließlich Text, Grafiken, Daten und Berechnungen. Der Berichttitel wird zuerst vor dem Hauptteil und dem Anhang angezeigt.


Ein Knoten im Objektnavigator, der einen Objekttyp angibt, der in einem Bericht enthalten oder mit einem Bericht verknüpft sein kann. Durch Auswahl eines übergeordneten Knotens wird kein Objekt in dem Bericht ausgewählt.


(Feldattribute) Ein Attribut, mit dem angegeben wird, ob Report Builder das angegebene Feld bei der entsprechenden Position im Layout unterdrückt. Wenn Verborgen angegeben ist, wird der Feldwert nur angezeigt, wenn in Textobjekten (mit &fieldname) Bezug auf den Feldwert genommen wird.


(Oracle Express) Eine Möglichkeit, Daten zu organisieren und zu strukturieren. Von einer Hierarchie wird gesprochen, wenn Werte innerhalb einer Dimension in Ebenen geordnet sind, wobei jede Ebene die aggregierte Gesamtsumme der Daten aus der Ebene darunter darstellt. Einige Dimensionen haben mehrere Hierarchien, die auf ihnen basieren.

Im folgenden Beispiel wird eine Hierarchie basierend auf der Dimension GEOGRAPHY dargestellt, in der Dimensionswerte in fünf Ebenen angeordnet sind. Daten auf der Ebene Customers werden in der Ebene Cities aggregiert, die wiederum in den Ebenen Countries/Areas, Continents/Regions und Global aggregiert wird.


Akronym für Hypertext Markup Language.  Eine kennzeichen-orientierte ASCII-Sprache, mit der Inhalt und Links zu anderen Dokumenten auf Web-Servern im Internet angegeben werden. Endbenutzer mit Web-Browsern können HTML-Dokumente anzeigen und Links verfolgen, um anderen Dokumente anzuzeigen.


Akronym für Hypertext Transfer Protocol. Das Protokoll, mit dem der WWW-Verkehr zwischen einem Computer mit WWW- Browser und dem WWW-Server bewältigt wird, auf den zugegriffen wird.


Eine Referenz (ein Link) von einem bestimmten Punkt in einem Dokument zu einem bestimmten Punkt in einem anderen Dokument oder einem bestimmten Punkt in demselben Dokument. Ein Web-Browser zeigt im allgemeinen einen Hyperlink unterschiedlich (in einer anderen Farbe, einer anderen Schriftart oder einem anderen Stil) an. Wenn Benutzer Hyperlinks aktivieren (indem sie mit der Maus auf sie klicken), zeigt der Browser das Ziel des Links an.


Eine Sammlung von Dokumenten, die Querverweise enthalten, mit denen die Leser mit Hilfe eines Web-Browsers schnell von einem Dokument zu einem anderen wechseln können.


Querverweise, mit denen Leser mit Hilfe eines Web-Browsers direkt von einem Dokument zu einem anderen gehen können.


Akronym für Interface C Definition - eine PL/SQL-Anwendungsprogrammierschnittstelle zu der in C implementierten Funktionalität.


Eine grafische Darstellung eines Fensters oder Werkzeugs.


Ein Bitmap-Objekt, das in eine Anwendung gespeichert und geladen werden kann. Der Client kann ein importiertes Bild nicht ändern.


In Project Builder ein Projektobjekt, im allgemeinen das Ergebnis einer automatischen Generierung, das Project Builder erkennt und für das es automatisch Einträge im Projektnavigator erstellt. So kann Project Builder z.B. .obj-Dateien erkennen, die während der Kompilierung von C-Quelldateien als Zwischenschritt generiert werden, und kann Einträge für diese im Projektnavigator erstellen. Auch wenn das Zurücksetzen der Attribute eines impliziten Objekts nur von begrenztem Nutzen ist (die nächste Kompilierung zerstört die Änderungen), können derartige Objekte nützlich sein, da sie über Aktionen wie Bearbeiten, Ansicht und Drucken überprüft werden können. Siehe auch Objekt, Aktion.


1. Einlesen eines Moduls aus dem Dateisystem oder der Datenbank und Integration des Moduls in einer Anwendung.
2. Lesen in einer Datei, die Projektinformationen enthält.


Datenelemente, deren Wert nicht von anderen Daten abhängig ist. So kann z.B. der Name eines Mitarbeiters den Wert Johann enthalten, der unabhängig von den Werten der Namen der anderen Mitarbeiter oder zugehöriger Daten ist. Wird auch als Kategoriedaten bezeichnet.


Eine optionale Struktur, die mit einer Tabelle verknüpft ist, mit der Oracle-Server Zeilen der Tabelle schnell sucht und (optional) garantiert, daß jede Zeile eindeutig ist.


In Project Builder die Übernahme von Informationen für Aktionen, Typen, Makros oder Attributdefinitionen aus einem übergeordneten Knoten im Abhängigkeitsbaum. Wenn in einem übergeordneten Knoten zugehörige Attribute vorhanden sind, können diese vererbt werden. So können z.B. Dateisystem-Objekte wie Forms und Dokumente Aktionsdefinitionen von Unterprojekten, Projekten, der Benutzerregistrierung oder der Globalen Registrierung erben. Projekte können Typdefinitionen von der lokalen oder Globalen Registrierung erben usw.


Das virtuelle Rechteck, das die Idealform eines Objekts darstellt und die vier Steuerungspunkte verbindet, unabhängig von der Randstärke oder anderen Attributeinstellungen.


Die Datei, mit der ein Ziel generiert wird: zum Beispiel ist eine .fmb-Datei das Eingabeelement für eine .fmx-Datei. Wird auch als Quelle bezeichnet.


Ein Modus, bei dem jedes eingegebene Zeichen bei der Cursorposition eingefügt wird, wobei die nachfolgenden Zeichen nach rechts verschoben werden. Das Gegenteil von Einfügen-Modus ist Ersetzen-Modus.


Ein weltweites TCP/IP-gestütztes Computernetzwerk.


Eine Datei, die eine Mischung aus PL/SQL-Quellcode, Procedure Builder-Befehlen und SQL-Anweisungen enthält.


Ein internes TCP/IP-Netzwerk. Der Zugriff auf dieses Netzwerk ist (über einen Firewall) auf Einzelpersonen innerhalb eines Unternehmens oder einer Organisation beschränkt. Ein Intranet bietet innerhalb einer Organisation ähnliche Dienste wie das Internet, ist jedoch nicht notwendigerweise an das Internet angeschlossen. Ein allgemeines Beispiel für ein Intranet ist die Einrichtung von einem oder mehreren Web-Servern in einem internen Netzwerk innerhalb eines Unternehmens zur Verteilung von Informationen oder Anwendungen innerhalb des Unternehmens.


Eine aus vier Bestandteilen zusammengesetzte Zahl mit maximal drei Ziffern in jedem Teil, die einen Computer im Internet eindeutig kennzeichnet.


In Project Builder ein Objekt im Dateisystem, das mit dem Projekt verknüpft ist, wie z.B. eine Form oder ein Dokument, auf das ein Knoten im Projektnavigator zeigt bzw. das durch einen Knoten im Projektnavigator dargestellt wird.


In Project Builder ein Eintrag im Projektnavigator-Fenster, der aus einem Symbol und einem beschreibenden Titel besteht. Knoten weisen auf tatsächliche Objekte im Dateisystem hin, wie z.B. Form Builder-Dateien und Dokumente. Siehe auch Knoten, Objekt.


Akronym für Java ARchive.  Eine Datei, mit der viele Dateien (Java-Klassendateien, Bilder usw.) zu einer Datei verbunden werden.


Eine Computersprache, die die Programmierung für das Internet in Form von plattformunabhängigien "Applets" unterstützt.


Kombinieren von Daten aus zwei (oder mehr) Tabellen in einer einzigen SELECT-Anweisung.


Siehe Ausrichtung


1. Teil einer Befehlszeilensyntax, der mit einem entsprechenden Argument angegeben werden muß. 2. Ein obligatorischer Teil eines PL/SQL-Konstrukts.


Text, der die Werte bzw. die Bedeutung der visuellen Objekte einer Anwendung kennzeichnet.


(Oracle Express) Eine Position in einer Dimensionshierarchie. Jede Ebene über das Basisebene stellt die aggregierte Gesamtsumme der Daten aus der Ebene darunter dar. So könnte die Dimension TIME z.B. aufsteigende Ebenen wie Month, Quarter und Year haben. Innerhalb einer Dimensionshierarchie hat ein Dimensionswert auf einer Ebene eine Familienbeziehung mit den Dimensionswerten auf den Ebenen über und unter dieser Ebene.


(Oracle Express) Ein Werkzeug im Dialogfeld Selektor, mit dem der Benutzer Dimensionswerte basierend auf deren Ebene in einer bestimmten Hierarchie auswählen kann. Der Benutzer kann z.B. alle Dimensionswerte auf der Ebene Key Account in der Dimension Geography auswählen.


Der Bereich eines Editors, in dem Sie Objekte erstellen, ändern, positionieren oder löschen können.


Eine Maßeinheit, mit der gewährleistet wird, daß ein konsistentes Maßsystem bei den verschiedenen Anzeigegeräten verwendet wird. Wird zur Angabe einer Position auf dem Layout oder zur Angabe der Abmessungen eines Objekts benutzt.


Eine Referenz auf einen Parameter, mit dem eine Textfolge in einer SQL SELECT-Anweisung dargestellt wird. Für eine lexikalische Referenz muß vor dem Parameternamen ein Et-Zeichen (&) stehen.


Eine Sammlung aus einem oder mehreren PL/SQL-Programmblöcken, die gemeinsam in einer Datei im Client-Dateisystem oder in der Datenbank gespeichert sind. In einer Bibliothek gespeicherte Programmblöcke können von mehreren Anwendungen gleichzeitig referenziert werden. Im Gegensatz zu gespeicherten Programmblöcken, die in der Datenbank gespeichert sind und ausgeführt werden, werden Programmblöcke in Bibliotheken immer innerhalb der PL/SQL-Engine auf der Client-Seite geladen und ausgeführt. Um Programmblöcke zu referenzieren, die in einer Bibliothek gespeichert sind, müssen Sie die Bibliothek zuerst zuordnen. Siehe auch: Zugeordnete Bibliothek..


Ein Datenmodellobjekt, mit dem eine Master-/Detail-Beziehung (Beziehung zwischen übergeordnetem und untergeordnetem Objekt) zwischen einer Gruppe und einer Abfrage definiert wird.


Name einer Datei, mit der ein Boilerplate-Objekt verknüpft ist. Zur Laufzeit importiert Report Builder den Inhalt der Datei in Ihr Berichtlayout.


Eine Liste mit Objekten innerhalb eines Dialogfeldes. Im allgemeinen enthält das Listenfeld verschiedene Optionen zur Auswahl. Außerdem kann ein Bildlauf durch das Listenfeld vorgenommen werden.


In Form Builder ein Objekt, das eine Liste mit Auswahlen anzeigt.


Eine Werteliste entspricht einem Popup-Fenster, durch das ein Bildlauf vorgenommen werden kann und das eine ein- oder mehrspaltige Auswahlliste für den Benutzer anzeigt.


(Oracle Express) Ein Werkzeug im Dialogfeld Selektor, mit dem Sie Dimensionswerte aus einer Liste der momentan ausgewählten Werte in der Dimension auswählen können.


1. Die Datenbank auf dem Computer, auf dem die Anwendung ausgeführt wird. 2. Die Datenbank, mit der eine Anwendung verbunden ist. Diese Datenbank analysiert und führt alle SQL-Anweisungen aus, die von der Anwendung generiert werden.


Siehe Benutzerregistrierung.


Eine PL/SQL-Variable, die nur im Geltungsbereich des aktuellen Programmblocks deklariert wird.


(Oracle Express)

Not	Unäres Not -- Operand kann vom Typ Ganzzahl oder Long sein. Der Vorgang wird bitweise (Einerkomplement) durchgeführt.

And	And - Operanden können vom Typ Ganzzahl oder Long sein. Der Vorgang wird bitweise durchgeführt.

Or	Inklusives Or  -- Operanden können vom Typ Ganzzahl oder Long sein. Der Vorgang wird bitweise durchgeführt.

Xor	Exklusives Or -- Operanden können vom Typ Ganzzahl oder Long sein. Der Vorgang wird bitweise durchgeführt.

Eqv	Äquivalenz -- Operanden können vom Typ Ganzzahl oder Long sein. Der Vorgang wird bitweise durchgeführt. (A Eqv B) ist identisch mit (Not (A Xor B)).

Imp	Implikation -- Operanden können vom Typ Ganzzahl oder Long sein. Der Vorgang wird bitweise durchgeführt. (A Imp B) ist identisch mit ((Not A) OR B).


Eine Seite des tatsächlichen Berichts (es können eine oder mehrere physikalische Seiten angezeigt werden).


In einem PL/SQL-Unterprogramm eine Bedingungsanweisung, die wiederholt wird, bis die Bedingung nicht mehr erfüllt wird.


In Project Builder eine typspezifische Variable, mit der Aktionen individuell gestaltet und erweitert werden können. Bei einem Makro kann es sich entweder um eine Konstante oder einen einfachen Ausdruck handeln (der wiederum andere Konstanten und/oder Ausdrücke enthalten kann). Durch die Benutzung von Makros wird die Ausgabe von Befehlsoptionen wesentlich flexibler gestaltet. Außerdem kann der Benutzer Befehlssätze einfacher ändern, indem er eine Attributdefinition ändert.


Ein Standardlayout, bei dem Datensätze in einer oder mehreren Spalten auf der Seite angezeigt werden. In einem einzelnen Wiederholungsrahmen werden Felder direkt untereinander angezeigt.


Ein optionaler Berichtbereich, der am oberen und unteren Ende jeder logischen Seite im Hauptteil angezeigt wird. Der Rand kann ein beliebiges Layoutobjekt enthalten, enthält jedoch typischerweise Boilerplates und Felder (für Seitennummern, Gesamtanzahl von Seiten, Gesamtsummen und laufendes Datum und Uhrzeit).


Ein Standardlayout, bei dem Detail-Datensätze unter den Master-Datensätzen stehen. Master-Datensätze werden im Form-Layoutstil angezeigt, während Detail-Datensätze im tabellarischen Layoutstil angezeigt werden.


(Oracle Express) Ein Werkzeug im Dialogfeld Selektor, mit dem der Benutzer Dimensionswerte auswählen kann, indem Zeichen in den Namen von Dimensionswerten mit den vom Benutzer angegebenen Zeichen abgeglichen werden. Der Benutzer kann z.B. alle Dimensionswerte in der Dimension Produkt auf der Ebene Marke auswählen, die die Zeichen "neu" enthalten.


Eine Wiederholungsrichtung, bei der jeder Datensatz eines Wiederholungsrahmens als eine Zelle einer Matrix angezeigt wird.


Ein Standardlayout, das einem Raster entspricht, das die vier Datengruppen formatiert, die für einen Matrixbericht erforderlich sind. Eine Datengruppe wird als eine Zeile mit Beschriftungen angezeigt, eine andere als eine Spalte mit Beschriftungen, eine Datengruppe erstellt das Raster, und eine Datengruppe füllt die Zellen des Rasters auf.


Eine Kreuztabellierung von vier Datengruppen: Eine Datengruppe wird horizontal auf der Seite angezeigt, eine Datengruppe wird vertikal auf der Seite angezeigt, eine Datengruppe ist das Kreuzprodukt, das alle möglichen Positionen bestimmt, bei denen horizontale und vertikale Daten in Bezug zueinander stehen, und das eine Zelle an diese Stellen setzt. Schließlich wird noch eine Datengruppe als "Füller" der Zellen angezeigt.


(Oracle Express) Daten die überprüft und analysiert werden können, wie z.B Umsatzzahlen oder Kostendaten. Sie können die Daten in einem Maß auswählen. Maße können als Variablen oder Beziehungen gespeichert werden. Maße können auch mit Hilfe von Formeln berechnet werden.


Eine Speichereinheit, die 1.048.576 Byte (1024 x 1024) entspricht. Wird häufig auf eine Million Byte gerundet.


Ein modales Fenster, das Sie über eine Bedingung unterrichtet, die aufgrund Ihrer letzten Aktion aufgetreten ist. Sie müssen auf ein Meldungsfeld reagieren.


Ausführbarer Code, der über die Objekttypdefinition einem Oracle8-Objekt zugeordnet ist.


Ein Fenster, das eine Antwort vom Operator erfordert, bevor die Anwendung fortgesetzt werden kann.


Ein nicht eingeschränktes Fenster, das so viel Funktionalität aufweisen kann, wie das zur Laufzeit benutzte Fensterverwaltungsprogramm unterstützt.


1. Ein Objekt, das von mehreren Anwendungen benutzt werden kann. Externe Abfragen und PL/SQL-Bibliotheken sind Beispiele für Module. 2. In Form Builder eine wichtige Komponente einer Anwendung (d.h. ein Menümodul).


Ein Feld in einem Fenster oder Dialogfeld, das sich über mehrere Zeilen erstreckt, so daß Sie einen vertikalen Bildlauf durch die Informationen vornehmen können.


(Oracle Express) Ein besonderer Datenwert, mit dem angegeben wird, daß die Daten "nicht anwendbar" (NA) bzw. nicht verfügbar sind. NA entspricht dem Wert einer Zelle, der kein bestimmter Wert zugewiesen wurde oder für die keine Daten berechnet werden können.


Matrixbericht, bei dem die horizontale und/oder vertikale Dimension eine oder mehrere Master-/Detail-Beziehungen enthält. Es gibt keine Grenze für die zulässige Verschachtelungstiefe.


Ein Datentyp, mit dem angegeben wird, daß die Daten abgerufen werden, wenn die Seite formatiert wird, auf der die Daten stehen (und nicht abgerufen und gepuffert werden, bis die Formatierung abgeschlossen ist).


1. Eine bestimmte Position in der Objekthierarchie des Objektnavigators. Knoten können eingeblendet werden, um Informationen über ein Objekt zu geben, wie z.B. Querverweise auf andere Objekte. 2. In Project Builder ein Eintrag im Projektnavigator. Siehe auch Objekt, Objektkknoten, Organisationsknoten.


Eine Berichtspalte, die eine Datenbankspalte vom Typ NOCACHE referenziert.


Das Fehlen eines Wertes.


(Oracle Express)

^	Potenzierung

-,+	Unäres Minus und Plus

*, /	Numerische Multiplikation oder Division. Bei der Division entspricht das Ergebnis einer Zahl mit doppelter Genauigkeit.

\	Ganzzahlige Division. Die Operanden können Ganzzahlen oder Zahlen mit dem Datentyp Long sein.

Mod	Modulus oder Rest. Die Operanden können Ganzzahlen oder Zahlen mit dem Datentyp Long sein.

-, +	Numerische Addition und Subtraktion. Der Operator + kann auch für die Zeichenfolgenverkettung benutzt werden.


1. Ein Objekt, das in das Layout gesetzt werden kann. Beispiele für Objekte sind Rechteck, Linie, Ellipse, Bogen, Polygon, Polygonzug, abgerundetes Rechteck, Freihandzeichnung, Diagramm, Text, Symbol und Textfeld.2.  In Oracle8 eine Instanz eines Objekttyps. Bei einem Objekt kann es sich um eine Zeile in einer Objekttabelle  oder um den Teil einer Zeile handeln, der in einem Spaltenobjekt in einer relationalen Tabelle enthalten ist.


Siehe Spaltenobjekt.


Ein Container für eine Gruppe von Objekten, der die Möglichkeit bietet, zusammengehörige Objekte zu kopieren bzw. zu referenzieren.


Siehe Handle


Ein Fenster, das die hierarchische Liste der Objekte für die aktuelle Sitzung enthält. Die Liste wird gegliedert angezeigt. Mit ihr kann der Benutzer verschiedene Aufgaben ausführen, wie z.B. Objekte erstellen, bearbeiten, umbenennen und löschen.


In Oracle8 eine Tabelle, deren Definition auf einem Objekttyp basiert. Jedes Attribut in dem Objekttyp wird zu einer Spalte in der Objekttabelle. Jede Zeile in der Tabelle ist ein individuelles Oracle8-Objekt.


In Oracle8 eine Benutzerdefinition oder benutzerdefinierte Vorlage, auf der Objekte aufgebaut werden können. Ein Objekttyp ist ein zusammengesetztes Objekt, das aus Attributen besteht. Jedes Attribut hat einen Namen und einen Datentyp. Der Objekttyp als Ganzes hat einen Namen. Ein Objekttyp kann auch eine oder mehrere Methoden umfassen.


Akronym für Open Database Connectivity.  Ein Standard für den Zugriff auf verschiedene Datenbanksysteme. Eine Anwendung kann Anweisungen an ODBC weiterleiten, indem die ODBC-Möglichkeiten von SQL verwendet werden.  ODBC konvertiert diese dann in die Sprache, die die Datenbank versteht. Mit dem Oracle Open Client Adapter (OCA) kann eine Anwendung dann konsistent auf verschiedene Datenbankverwaltungssysteme zugreifen.  Auf diese Weise kann ein Anwendungsentwickler eine Anwendung entwickeln, kompilieren und verteilen, ohne sich nach einem bestimmten DBMS richten zu müssen.


Object Linking and Embedding (Verknüpfen und Einbetten von Objekten).


Eine Anwendung, die OLE-Objekte speichern und anzeigen kann.


Eine Anwendung, die OLE-Objekte erstellt.


Siehe Vordefinierter Datentyp.


Eine Umgebungsvariable, die das Hauptverzeichnis für Oracle-Produkte angibt.


Ein Eintrag im Projektnavigator, wie z.B. "Typen", "Projekte", "Form-Dateien" usw., mit dem der Navigator gegliedert werden kann und der den Dateityp der untergeordneten Objekte angibt. Der Eintrag kann auch einer Datenstruktur innerhalb bestimmter Typen von Dateisystemobjekten entsprechen.


In x- und y-Koordinaten dargestellt. Der Ursprung einer Ansicht gibt die Position der Ansicht auf der übergeordneten Leinwand an. Der Ursprung einer Leinwand gibt die Position der Zeichnung in einer gezeichneten Ansicht an.


Das kleinste virtuelle Rechteck, das ein Objekt vollständig umschließt.


Wenn der Inhalt eines Objekts nicht auf die aktuelle logische Seite paßt, spricht man von Überlauf. Bei einem Überlauf wird ein Teil des Inhalts auf die nächste logische Seite verschoben.


Eine PL/SQL-Funktionder Software, auf die an einer beliebigen Stelle innerhalb eines Programmblocks Bezug genommen werden kann.


Eine Methode für das Verpacken und Speichern zusammengehöriger Prozeduren, Funktionen, Variablen und anderer Paketkonstrukte als eine Einheit in der Datenbank oder auf dem Client. Während Pakete dem Datenbankadministrator oder Anwendungsentwickler Organisationsvorteile bieten, gewährleisten sie außerdem verbesserte Funktionalität und Datenbankleistung. Die Software stellt verschiedene vordefinierte Pakete bereit, die PL/SQL-Konstrukte enthalten, die von client-seitigen Programmblöcken referenziert werden können (z.B. Paket TEXT_IO). Außerdem werden verschiedene Pakete mit dem Oracle Datenbank-Server geliefert, mit denen gespeicherte Programmblöcke referenziert werden können (z.B. Paket DBMS_OUTPUT).


Umfaßt die aktuelle Implementierung des Pakets, das private Unterprogramme und Datentypen enthalten kann. Der Hauptteil ist optional, wenn das Paket nur aus Deklarationen besteht.


Deklariert die öffentliche Schnittstelle zu dem Paket, d.h. die Datentypen und Unterprogramme, die andere Programmblöcke referenzieren können.


(Oracle Express) 1. Ein Datensegment, das in einem Bericht enthalten ist. Auf zusätzlichen Seiten werden zusätzliche Datensegmente angezeigt.

In der folgenden Abbildung werden drei Seiten mit Daten dargestellt.

2. In Express kann eine Seite auch eine Speichereinheit in einer Express-Datenbank referenzieren.


(Oracle Express) Mit dem Seitenumbruch wird angegeben, wie für eine Abfrage ausgewählte Daten in Ihrem Kalkulationsblatt dargestellt werden. Das Seitenlayout hat drei Ränder - Horizontal, Vertikal und Seite. Mit den Rändern wird angegeben, wie ein mehrdimensionaler Datenkubus, der von der Abfrage definiert wird, in einem zweidimensionalen Kalkulationsblatt dargestellt wird. In Dimensionsbeschriftungen werden die Namen und Positionen der Dimensionen angegeben. Mit einer Beschriftung auf dem Horizontalen Rand wird angegeben, daß diese Dimesion als Spalte angezeigt wird. Mit einer Beschriftung auf dem Vertikalen Rand wird angegeben, daß diese Dimension als Zeile angezeigt wird. Mit einer Beschriftung auf dem Rand Seite wird angegeben, daß diese Dimension in einem Seitenfeld über den Ergebnissen angezeigt wird.


Eine Einstellung, mit der festgelegt wird, ob das aktuelle Objekt und die untergeordneten Objekte auf die nächste logische Seite verschoben werden. Sie können Seitenumbrüche vor oder hinter dem aktuellen Objekt in der Berichtausgabe festlegen.


Ein Oberflächenelement, das Werkzeuge, Farben und Muster in einem Editor anzeigt.


Ein bestimmter Teil eines Editors, in dem die Arbeit ausgeführt wird. Die Größe des Ausschnitts kann im allgemeinen geändert werden.


Die Anzahl physikalischer Seiten, die für das Ausdrucken einer logischen Seite erforderlich sind.


1. Ein PL/SQL-Konstrukt, mit dem Informationen an ein Unterprogramm übergeben werden. In dem Unterprogrammaufruf MYPROC (x) ist z.B x ein Parameter. 2. In Forms Developer werden Parameter für die Übergabe von Informationen zwischen Komponenten benutzt, wie z.B. Form Builder und Graphics Builder. 3. Eine Variable, die Sie zur Laufzeit ändern können.


Eine Gruppe mit Parameternamen und zugehörigen Werten zur Übergabe von Informationen zwischen Forms Developer-Komponenten.


1.Ein Objekt, das unmittelbar über einem anderen Objekt in dem entsprechenden Gruppenbaum steht. Ein Gruppenobjekt ist das übergeordnete Objekt von jedem der Objekte, aus denen das Gruppenobjekt besteht. Jedes Objekt ist das übergeordnete Objekt der entsprechenden untergeordneten Objekte.

2. (Oracle Express) Ein Dimensionswert auf der Ebene unmittelbar über einem bestimmten Wert in einer Hierarchie. Der übergeordnete Wert ist die aggregierte Summe der Werte der untergeordneten Objekte. Im folgenden Beispiel wird der Dimensionswert "Frankreich" als übergeordnetes Objekt von "Lyon" und "Paris" in der Dimension GEOGRAPHY dargestellt.


Beim Einfügen wird der Inhalt der Zwischenablage (ausgeschnittene oder kopierte Objekte) bei der aktuellen Cursorposition eingefügt.


Ein grafisches Attribut, das Sie für den Rand oder als Füllmuster für die meisten Objekte benutzen können.


Der Maschinencode oder die Instruktionsliste für einen kompilierten Programmblock.


Akronym für Portable Document Format.  Ein Dateiformat (von Adobe Acrobat) zur Darstellung von Dokumenten auf eine Weise, die unabhängig von der Original-Anwendungssoftware, der Hardware und dem Betriebssystem ist, mit denen die Dokumente erstellt wurden. Eine PDF-Datei kann Dokumente beschreiben, die eine beliebige Kombination von Text, Grafiken und Bildern in einem geräteunabhängigen und auflösungsunabhängigen Format enthalten.


Die Größe einer Seite, die von Ihrem Drucker ausgegeben wird.


Die Elementart, mit der ein Feld in einem Diagramm dargestellt wird, wie z.B. Balken, Linien oder Symbol.


Die Oracle-eigene Erweiterung der SQL-Sprache. Fügt prozedurale und andere Konstrukte zu SQL hinzu, mit denen Anwendungen geschrieben werden können.


Eine Datei, die ein Interpreter-Skriptdatei von Procedure Builder enthält.


Eine PL/SQL-Bibliotheksdatei, die Quellcode und kompilierten Code enthält. Die Datei kann zur Bearbeitung in Procedure Builder geöffnet werden.


Eine Textdatei, die den  PL/SQL-Quellcode eines einzigen Programmblocks enthält.


Eine PL/SQL-Laufzeitbibliothek, die nur ausführbaren Code enthält. Die Datei kann nicht zur Bearbeitung in Procedure Builder geöffnet werden.


Eine Liste, die angezeigt wird, wenn der Benutzer eine bestimmte Aktion ausführt.


Eine Zahl, mit der TCP übertragene Daten zu und von einem bestimmten Programm weiterleitet.


Eine in Project Builder enthaltene Aktion, die dem Benutzer automatisch über einen Menüpunkt und/oder eine Schaltfläche in der Symbolleiste zur Verfügung steht. Vordefinierte Aktionen umfassen Generieren, Zustellen sowie bestimmte Versionskontrolloptionen. Wenn eine vordefinierte Aktion für einen unterstützten Dateityp definiert wird, wird die Aktion für jedes ausgewählte Objekt dieses Typs aufgerufen, wenn der Benutzer die Aktion aus Project Builder aufruft. Siehe auch Aktion, Benutzerdefinierte Aktion.


Siehe Vordefinierten Datentyp


Eine Einstellung, die das Verhalten der Anwendungsschnittstelle beeinflußt.


(Oracle Express) In der Vorschau wird das Skript angezeigt, das generiert wird, wenn Sie die aktuellen Kriterien akzeptieren.  In dem Dialogfeld für jedes Selektor-Werkzeug können Sie die Auswahl anzeigen, indem Sie auf die Schaltfläche Vorschau klicken.


Die Schnittstelle, mit der Sie die Berichtausgabe online anzeigen und einen Bildlauf durch die Berichtausgabe vornehmen können.


Eine Spalte in einer Datenbanktabelle, deren Bestandteile aus eindeutigen Werten bestehen, mit denen eine Zeile in einer Tabelle identifiziert wird.


Siehe Vordefinierter Datentyp.


In einer Druckerdefinitionsdatei eine Escape-Folge, der Sie einen Druckercode zuweisen, der in einem Bericht referenziert werden kann.


Eine Datei, die eine Druckerdefinition im Textformat (z.B. ASCII oder EBCDIC) enthält.


Ein PL/SQL-Unterprogramm, das eine bestimmte Folge von Aktionen ausführt. Das Unterprogramm kann auf dem Client und dem Datenbank-Server gespeichert sein.


Eine PL/SQL-Codestruktur, die von dem PL/SQL-Compiler unabhängig erkannt und verarbeitet werden kann. Anonyme Blöcke, Unterprogrammspezifikationen und -rümpfe (Prozeduren und Funktionen) sowie Paketspezifikationen und -rümpfe sind Typen von Programmblöcken. Programmblöcke können auf dem Client und dem Datenbank-Server gespeichert sein und ausgeführt werden.  Siehe auch: Gespeicherter Programmblock.


Das Projekt ist die Basis-Datenstruktur, die von Project Builder erstellt wird. Projekte sind Sammlungen von Pointern auf alle Dateien, die Sie als Bestandteil der Anwendung betrachten, oder die Sie anderweitig konzeptionell gruppieren möchten. Sie können Editoren, Compiler und andere Werkzeuge definieren, mit denen Sie die in dem Projekt enthaltenen Datenobjekte bearbeiten möchten. Alle Projektinformationen sind in der Projektregistrierung gespeichert. Siehe auch: Projektobjekt, Projektdatei, Exportieren.


In Project Builder sind Projektdateien alle Dateien, die mit einer Anwendung verknüpft sind. Projektdateien können einen beliebigen Typ aufweisen, einschließlich Forms, Berichten, grafischen Anwendungen, 3GL-Modulen, Dokumentation und Testskripts. Siehe auch: Projekt, Projektobjekt.


In Project Builder werden alle Objekte als Projektobjekt bezeichnet, für die Attribute definiert werden können, einschließlich aller Entitäten, die unter dem Knoten Projekte, unter Typen, Aktionen und Makros gespeichert sind. Siehe auch: Projekt, Projektdatei..


Das Fenster mit einer hierarchischen Liste der Projektobjekte für die aktuelle Sitzung. Die Liste wird in Form einer Gliederung angezeigt. Mit ihr kann der Benutzer verschiedene Aufgaben ausführen, wie z.B. Objekte erstellen, bearbeiten, umbenennen und löschen. Auch wenn immer nur ein Schema gleichzeitig sichtbar ist, kann der Benutzer unter zwei verschiedenen Schemata wählen, nach denen die Objekte angeordnet werden sollen.


Der Knoten der obersten Ebene für ein Projekt. Er stellt die Projektdatei dar bzw. zeigt auf die Projektdatei. Siehe auch Projekt, Projektdatei.


In Project Builder die Datei, in der alle mit einem Projekt verknüpften Informationen gespeichert sind: Dateien, die zu dem Projekt gehören, Typen, Aktionen und Makros, die für das Projekt definiert sind, usw.


In der Projektansicht werden Objekte nach Typ und nach Projekt-/Unterprojekt-Beziehung geordnet dargestellt. Die Projekte werden alphabetisch nach Projektdatei und dann alphabetisch nach Kategorie geordnet. Siehe auch  Abhängigkeitsansicht, Projekt, Projektdatei, Ansicht.


Ein Dialogfeld, das den Benutzer bei der Ausführung der Schritte unterstützt, die beim Erstellen eines neuen Projekts oder Unterprojekts erforderlich sind.


Eine Eigenschaft eines Objekts, mit der das Verhalten oder Erscheinungsbild dieses Objekts bestimmt wird.


Ein benanntes Objekt, das eine Liste mit Attributen und deren Einstellungen enthält, mit denen das Erscheinungsbild und die Funktionalität von Objekten aufgrund dieser Klasse global gesteuert wird.


Eine Zeichenfolge, die Sie bei der Anmeldung bei einer Datenbank oder einem Server eingeben können und mit der Sie die Verbindung zu einer entfernten Datenbank bzw. einem entfernten Server herstellen können.


(Oracle Express) Wenn Sie Werte für eine der Dimensionen in einem Maß auswählen, werden die anderen Dimensionen, aus denen das Maß besteht, als qualifizierende Dimensionen bezeichnet.

Angenommen, das Maß Sales ist nach Product, Month und Geography dimensioniert. Wenn Sie die obersten zehn Städte basierend auf Sales auswählen, müssen Sie außerdem angeben, welches Produkt und welcher Monat betrachtet werden woll, wenn Sie die Sales-Werte vergleichen. In diesem Fall sind Product und Month die qualifizierenden Dimensionen.


Eine SQL SELECT-Anweisung, mit der die Daten angegeben werden, die Sie aus einer oder mehreren Tabellen bzw. Ansichten einer Datenbank abrufen möchten.


Eine PL/SQL-Funktion, die bei der Ausführung Daten filtert, die von einer Abfrage abgerufen wurden. Nur die Daten, die den Bedingungen in den Funktionen gerecht werden, werden grafisch dargestellt.


Eine Option, mit der die laufende Sitzung beendet wird und mit der der Benutzer zur Betriebssystemebene zurückkehrt.


Ein Steuerelement (wie z.B. ein Kontrollkästchen), das in Gruppen von zwei oder mehr Schaltflächen auftritt, von denen zu einem bestimmten Zeitpunkt immer nur eine "eingeschaltet" oder "ausgeschaltet" sein kann.


Eine Gruppe aus zwei oder mehr Optionsschaltflächen, von denen immer nur eine "eingeschaltet" oder "ausgeschaltet" sein kann.


(Oracle Express) Ein Werkzeug im Dialogfeld Selektor, mit dem der Benutzer fortlaufende Zeiträume als Dimensionswerte auswählen kann. Diese Zeiträume können auf folgenden Werten basieren:

•	Einer bestimmten Anzahl der letzten Zeiträume

•	Eine Anfangszeitraum und einem letzten Zeitraum

•	Einem Anfangs- und einem Endzeitraum.

Der Benutzer kann z.B. Dimensionswerte für den Bereich ab der Woche wählen, die am 25. November 1996 endet, bis zu der Woche, die am 30. Dezember 1996 endet.


Eine von RSA Data Security, Inc entwickelte Kennung, die Schlüssel mit unterschiedlicher Länge akzeptieren kann und im wesentlichen ein Zufallszahlengenerator ist, wobei die Ausgabe des Generators einem XOR mit dem Datenstrom unterzogen wird, um die verschlüsselten Daten zu generieren. Aus diesem Grund darf derselbe RC4-Schlüssel niemals zur Verschlüsselung von zwei verschiedenen Datenströmen benutzt werden.


Akronym für Relational Database Management System. Eine Datenbank, die die Definition von Datenstrukturen, Speichern- und Abrufenvorgängen und Integritätsregeln ermöglicht. In einer derartigen Datenbank sind die Daten und die Beziehungen zwischen den Daten in Tabellen angelegt.


Eine Datei, die eine einzelne Berichtdefinition im Binärformat enthält. Mit .RDF-Dateien können Berichte sowohl ausgeführt als auch bearbeitet werden.


Eine Datei, die eine einzelne Berichtdefinition im Binärformat enthält. .rep-Dateien werden nur zur Ausführung von Berichten benutzt. Eine .rep-Datei kann nicht bearbeitet werden.


Die Möglichkeit, Daten in der ganzen Datenbank ab einem bestimmten Zeitpunkt abzufragen.


Eine Zeile, die von einer SQL SELECT-Anweisung abgerufen wird.


Ein internes Datenstrukturobjekt mit einem Spalten-/Zeilengerüst, das zu dem Formmodul gehört, in dem es definiert wird.


Ein Spaltentyp, der auf Daten in anderen Spaltenobjekten oder Objekttabellen (Oracle8) zeigt.


Eine Linie, die bei einem bestimmten Wert in einem Diagramm angezeigt wird.


(Oracle Express) Beim Abgleichen werden die neuesten Daten aus einer Express-Datenbank abgerufen, nachdem die Abfrageergebnisse in Ihrem Bericht angezeigt wurden. Wenn Sie eine gespeicherte Express-Abfrage öffnen, werden die Ergebnisse automatisch abgeglichen.


Beim Registrieren wird die Definition eines Typs oder eines neuen Projekts zu der globalen oder lokalen Registrierung hinzugefügt. Nach der Registrierung können für einen neuen Typ Aktionen definiert werden, während bei einem neuen Projekt die Typen der referenzierten Dateien identifiziert werden können, so daß für diese bestimmte Aktionen aufgerufen werden können. Siehe auch Registrierung.


Eine globale und/oder benutzerspezifische Konfigurationsdatei, mit der Projektdefinitionen und Umgebungsinformationen gespeichert werden. Siehe auch Globale Registrierung, Benutzerregistrierung.


Ein Symbol in Suchkriterien, mit dem ein Vergleich zwischen zwei Werten angegeben wird, wie z.B. das Gleichheitszeichen in "WHERE DEPTNO = 10." Zeilen, bei denen der Vergleich "wahr" ergibt, werden in dem Ergebnis zurückgegeben (abgerufen), während Zeilen, bei denen der Vergleich "falsch" ergibt, vom Ergebnis ausgeschlossen werden.


Eine Datenbank auf einem Computer, bei dem es sich nicht um die lokale Datenbank handelt. Im allgemeinen ein Computer im selben Netzwerk, jedoch auf einem anderen Knoten (d.h. eine Datenbank, die Sie über einen Datenbank-Link benutzen).


Ein Layoutobjekt, mit dem Datenzeilen angezeigt werden, die für eine Gruppe abgerufen werden.


Ein Modus, bei dem jedes eingegebene Zeichen das aktuelle Zeichen bei der Cursorposition ersetzt. Das Gegenteil von Einfügen-Modus.


Die Objekte, mit denen das Datenmodell und Layout eines Berichts definiert wird. Objekte auf Berichtebene werden einem einzelnen Bericht zugeordnet und können nicht von anderen Berichten oder anderen Oracle-Produkten gemeinsam benutzt werden. Objekte umfassen Berichte, Abfragen, externe Abfragen, externe PL/SQL-Bibliotheken, Gruppen, Spalten, Parameter, Links, Rahmen, Wiederholungsrahmen, Felder, Boilerplate und Anker.


Nur bei Windows NT und Windows 95 verfügbar. Wartet, bis Befehlszeilen einen Bericht ausführen, setzt diesen Bericht in die Warteschlange zur Ausführung im Hintergrund auf dem lokalen Server. Typischerweise werden Befehlszeilen von Form Builder oder Graphics Builder über RUN_PRODUCT oder von einem anderen Bericht über SRW.RUN_REPORT empfangen. Sie können auch RWISV60 benutzen, um einen Bericht an die Reports Background Engine zu übergeben.


Behält Zeitstempel- und Statusinformationen über Berichte bei, die von Reports Server verwaltet werden.


Bei Windows NT, Windows 95 und UNIX verfügbar. Ermöglicht die Ausführung von Berichten auf einem entfernten Server. Stellt Jobanforderungen in die Warteschlange und ermöglicht eine zeitliche Planung der Ausführung der Berichte durch den Benutzer. RWCLI60 wird verwendet, um einen Bericht an den Reports Server zu senden.


Stellt eine Schnittstelle zwischen dem Web-Server und Reports Runtime dar, so daß Berichte dynamisch aus dem Web-Browser ausgeführt werden können.


Stellt eine Schnittstelle zwischen einem Web Server und dem Reports Server dar.


Eine Datei, die eine Berichtdefinition im Textformat (z.B. ASCII oder EBCDIC) enthält. .REX-Dateien werden für das Portieren von Berichten von einer Plattform zu einer anderen benutzt. Beachten Sie, daß .REX-Dateien nicht mehr erforderlich sind. Sie sind aus Gründen der Abwärtskompatibilität verfügbar.


Bezieht sich auf die Intensität der Rot-, Grün- und Blaukomponenten einer Farbe.


Das Gruppenobjekt, zu dem alle anderen Objekte in einer Anwendung gehören.


Der Knoten auf oberster Ebene für ein Projekt, der die Benutzerumgebung darstellt. Kann der Benutzerregistrierung oder Globalen Registrierung entsprechen, je nachdem, mit welcher Registrierung die Standardwerte festgelegt wurden.


Eine Gruppe mit Feldwerten in einer Tabelle, z.B. die Felder, die einen Mitarbeiter in der Beispieltabelle EMP darstellen.


Ein Objekt in einer Oracle8-Objekttabelle. Jede Zeile in der Tabelle ist ein Objekt. In Forms Developer wird eine Objekttabelle in einzelne Spalte aufgelöst, so daß das Zeilenobjekt nicht mehr als einzelne Entität vorhanden ist (nur als die entsprechenden separaten Attribute).


Ausführung einer Laufzeitversion einer Anwendung oder eines Programmblocks.


Akronym für Rich Text Format. Ein nicht-plattformspezifisches Dateiformat, das auf Steuerwörtern basiert, mit denen unformatierter Text und Bilder in verschiedenen Anwendungen und Betriebssystemen dargestellt werden. RTF benutzt den ANS-I, PC-8-, Macintosh- oder IBM PC-Zeichensatz, um die Darstellung und Formatierung eines Dokuments sowohl auf dem Bildschirm als auch auf dem Ausdruck zu steuern.


Siehe rep-Datei


Die Schnittstelle, mit der die Benutzer eine Laufzeitanwendung anzeigen und mit dieser arbeiten.


Ein Bildschirm oder Fenster, das optional zur Laufzeit angezeigt wird und in dem der Benutzer Druckoptionen und Parameter vor Ausführung des Berichts ändern kann.


(Oracle Express) Eine Gruppe von Dimensionswerten, die entweder als Werteliste oder als Skript gespeichert werden. Sie können von Ihnen generierte Auswahlen speichern, oder der Datenbankadministrator kann gespeicherte Auswahlen erstellen und Ihnen diese zur Verfügung stellen.

Gespeicherte Auswahlen sind eine zeitsparende Funktion: immer wenn Sie eine Auswahl erneut benutzen müssen, rufen Sie einfach eine gespeicherte Auswahl auf, ohne diese neu erstellen zu müssen.


(Oracle Express) Ein Werkzeug im Dialogfeld Selektor, mit dem Sie eine Auswahl von gespeicherten Dimensionswerten abrufen können.


Eine Sammlung zusammengehöriger Datenbankobjekte, die im allgemeinen nach einer Datenbank-Benutzer-ID gruppiert sind. Schemaobjekte umfassen Tabellen, Ansichten, Sequenzen, gespeicherte Programmblöcke, Synonyme, Indizes, Cluster und Datenbank-Links.


Die Ebene, auf der ein Objekt angewendet wird, bzw. der Bereich, in dem ein Objekt angewendet wird. Bei Project Builder: 1. Beschreibt den Dateibereich, der von den Befehlen Kompilieren und Alles kompilieren betroffen ist, die für kompilierbare Projektobjekte aufgerufen werden. 2. Beschreibt den Dateibereich, der von vererbbaren Definitionen betroffen ist.


 Siehe SQL-Skript, Interpreter-Skript


In Report Builder eines von mehreren Layouts in demselben Bericht, wobei ein jedes eine andere Zielperson, ein anderes Ausgabeformat, ein anderes Seitenlayout, eine andere Seitengröße oder Darstellung hat. Ein einziger Bericht kann z.B. eine Zusammenfassung für die Geschäftsleitung in einem Abschnitt und eine detaillierte Aufgliederung für einzelne Manager in einem anderen Abschnitt enthalten.


Eine SQL-Anweisung, mit der angegeben wird, welche Zeilen und Spalten aus einer oder mehreren Tabellen oder Ansichten abgerufen werden sollen.


(Oracle Express) Die Gruppe von Dimensionswerten, die momentan für eine Dimension ausgewählt sind, bzw. das Skript, das Bedingungen oder Kriterien zur Angabe dieser Werte enthält.


(Oracle Express) Wie in verschiedenen Dialogfeldern im Selektor dargestellt, entspricht das Auswahlskript einer Beschreibung der Auswahlen, die der Benutzer bei der Wahl von Dimensionswerten getroffen hat. Bei diesem Skript handelt es sich um eine Übersetzung des Skripts in der Express-Sprache in ein Skript in der normalen Sprache.


(Oracle Express) Eine Gruppe von Werkzeugen, mit denen Sie Dimensionswerte auswählen, die z.B. in einem Bericht, einer Tabelle, einer Grafik oder einem Listenfeld aufgenommen werden sollen. Mit dem Selektor können Sie z.B. die wichtigsten 10 Städte basierend auf Umsätzen oder die Städte auswählen, bei denen die Umsätze die Quote von 15% überschritten haben. Mit dem Selektor können Sie außerdem Dimensionswerte sortieren und gespeicherte Auswahlen erstellen und abrufen.


(Oracle Express) Ein Dialogfeld oder eine Gruppe von Dialogfeldern, mit denen Dimensionswerte auf eine bestimmte Weise ausgewählt oder sortiert werden können. Jedes Selektor-Werkzeug ist Bestandteil des Selektors. Mit den Selektor-Werkzeugen können Sie Dimensionswerte basierend auf deren Ebene in der Hierarchie, deren Attributen, den Zeichen in dem Wertnamen usw. auswählen. Mit den Selektor-Werkzeugen können Sie außerdem die Dimensionswerte sortieren.


Der Zeitraum zwischen dem Aufrufen und Beenden des ausführbaren Programms.


Eines von zwei oder mehr Objekten, die dasselbe übergeordnete Objekt in dem entsprechenden Gruppenbaum haben. Alle Objekte, die zu einem Gruppenobjekt gehören, sind gleichrangig.


Die Kombination einer IP-Adresse und einer Port-Nummer.


(Oracle Express) Ein Werkzeug im Dialogfeld Selektor, mit dem Sie die Reihenfolge der Dimensionswerte in einer angezeigten Auswahl neu ordnen können. Sie können eine Auswahl in aufsteigender oder absteigender Reihenfolge wie folgt sortieren:

•	Nach Alphabet

•	Nach Reihenfolge in der Datenbank

•	Nach Datenwert

•	Nach Reihenfolge oder Ebene in der Hierarchie

•	Nach Zeitraum

Sie können eine Auswahl auch manuell sortieren, indem Sie die Dimensionswerte mit Drag-and-Drop verschieben.


In PL/SQL: Anweisungen in einem Unterprogramm oder Paket. Sie benötigen den Quellcode für einen Programmblock, bevor Sie diesen zu einer ausführbaren Form kompilieren können. In Project Builder: Die Eingabetypen, die für das Erstellen der Zieltypen erforderlich sind.


Definiert nur Namen, Parameter und Rückgabetyp (gilt nur bei Funktionen) des Unterprogramms.


Ein kleines Rechteck am unteren Ende der vertikalen Bildlaufleiste und links neben der horizontalen Bildlaufleiste in einem Editor. Wenn Sie die Maustaste ziehen und loslassen, wird ein neuer Ausschnitt erstellt und die Bildlaufleiste in separate Bildlaufleisten für jeden Ausschnitt geteilt.


Eine Standard-Schnittstelle für das Speichern und Abrufen von Informationen in einer relationalen Datenbank. SQL ist ein Akronym für Structured Query Language.


Eine Datei, die eine im Textformat (ASCII oder EBCDIC) gespeicherte Abfrage enthält.


Eine Datei, die SQL-Anweisungen enthält, die Sie ausführen können, um die Datenbankverwaltung schnell und einfach zu gestalten. Mit Oracle-Produkten werden verschiedene SQL-Skripts geliefert.


Eine SQL-Instruktion für Oracle. Eine SELECT-Anweisung ist eine Art von SQL-Anweisung.


Siehe Aufrufstapel


Ein PL/SQL-Konstrukt, das für konditionale, iterative und sequentielle Steuerungen und für die Fehlerbehandlung benutzt wird. Jede PL/SQL-Anweisung muß mit einem Semikolon (;) abgeschlossen werden.


(Oracle Express) Eine gespeicherte Auswahl, die bei jeder Auswertung dieselben Dimensionswerte enthält. In statisch gespeicherten Auswahlen werden die auszuwählenden Dimensionswerte aufgeführt und nicht die Auswahlkriterien. Ein statisches gespeichertes Auswahlskript könnte z.B. "Februar 1996, März 1996 und April 1996 auswählen" enthalten, während das Skript für eine dynamisch gespeicherte Auswahl "Letzte drei Monate auswählen" enthalten könnte.


Eine Prozedur, eine Funktion oder ein Paket, das in einem Oracle-Datenbankserver gespeichert ist und in diesem ausgeführt wird.


Eine Prozedur oder Funktion, die in einem Oracle-Datenbankserver gespeichert ist und in diesem ausgeführt wird.


HTML-Erweiterungen, die leistungsfähige Formatierungsmöglichkeiten in HTML-Dokumenten bereitstellen. Um ein  HTML-Dokument anzuzeigen, das Dokumentvorlagen verwendet, zeigen Sie dieses in einem Browser an, der Dokumentvorlagen unterstützt.


Eine PL/SQL-Prozedur oder -Funktion.


In Project Builder ein Projekt, das in einer anderen Projektdatei enthalten und nicht in einer eigenen Datei gespeichert ist. Siehe auch Projekt.


In Project Builder ein Knoten, der auf ein Unterprojekt verweist. Siehe auch Projekt, Projektknoten, Unterprojektknoten


Eine Spalte vom Typ Summe, in der Zwischensummen, Gesamtsummen, laufende Summen und andere Summen der Daten in einem Bericht berechnet werden, wobei eine der vordefinierten Summenfunktionen von Report Builder benutzt wird.


Das Dateiformat, das vom Microsoft Excel-Programm verwendet wird.


Das Ordnungssystem, nach dem Befehle, Bezeichner und Parameter zu gültigen Befehlsfolgen kombiniert werden.


Eine der Variablen, die in Reports Developer enthalten sind (z.B. &Logical Page, DESTYPE).


Eine benannte Sammlung zusammengehöriger Informationen, die in einem zweidimensionalen Raster in einer relationalen Datenbank oder einem Server gespeichert sind, wobei das Raster aus Zeilen und Spalten besteht.


Ein Collection-Typ, der eine Dateneinheit definiert, die aus einer ungeordneten Gruppe von Elementen besteht, die alle denselben Datentyp aufweisen. Bei der entsprechenden Dateneinheit handelt es sich um eine verschachtelte Tabelle mit einer einzigen Spalte, deren Spaltentyp ein vordefinierter Typ oder ein Objekttyp ist.  (Oracle8)


Ein Standardlayout, bei dem Beschriftungen am oberen Rand der Seite und Datenzeilen unter den Beschriftungen angezeigt werden.


In Project Builder ein Objekt in der Mitte des Abhängigkeitsbaums. So ist z.B. eine ausführbare Routine ein (Kompilier-) Ziel für eine Bibliothek, während eine Bibliothek ein Ziel für eine Gruppe von Objekten und ein Objekt ein Ziel für eine Quelldatei ist.


Ein Knoten, mit dem das Ziel angegeben wird. Siehe auch Ziel


Akronym für Transmission Control Protocol. Das zugrundeliegende Kommunikationsprotokoll für den Austausch von HTTP-Anforderungen zwischen Clients und Web-Servern.


Ein Untermenü, das der Benutzer mit einer Maus oder einem anderen Zeigegerät von der Quelle entfernen und zu einem anderen Teil des Bildschirms ziehen kann.


In Form Builder ein Objekt, mit dem ein Zeichenfolgenwert angezeigt wird.


Der horizontale Bereich am oberen Rand eines Fensters, in dem der Name der Anwendung oder des Oberflächenelements in diesem Fenster angezeigt wird.


Siehe Titel


Mit einem Schalter wird eine Einstellung ein- oder ausgeschaltet. So können Sie den Objektnavigator z.B. verbergen oder anzeigen.


Eine Schaltfläche in Form eines Symbols, mit der Objekte in einer Anwendung erstellt und bearbeitet werden.


Eine Sammlung von Schaltflächen in Symbolform, die Produktbefehle ausführen. Die Symbolleiste ist im allgemeinen horizontal am oberen Rand oder vertikal am seitlichen Rand eines Fensters ausgerichtet.


Eine Sammlung von Werkzeugen.


(Oracle Express) Ein Werkzeug im Dialogfeld Selektor, mit dem der Benutzer Dimensionswerte basierend auf den obersten x, untersten y oder obersten x und untersten y Datenwerten auswählen kann. Der Benutzer kann z.B. eine Dimensionsauswahl erzeugen, in der Produkte enthalten sind, deren Umsatzvolumen zu den obersten 10 Prozent der Produkte bei den gesamten Verkäufen in dem vierwöchigen Zeitraum gehört, der am 30. Dezember 1995 endet.


Ein optionaler Berichtbereich, der abschließendes Material für den Bericht enthalten kann, einschließlich Text, Grafiken, Daten und Berechnungen. Der Berichtanhang wird als letztes nach Titel und Hauptteil angezeigt.


Eine Folge von SQL-Anweisungen, die als eine einzige Einheit behandelt werden.


Eine PL/SQL-Prozedur, die bei einem bestimmten Ereignis ausgeführt oder "ausgelöst" wird.


Eine Beschreibung eines Dateityps, wie z.B. eine Form, ein Dokument usw., die Informationen wie Typname und Beschreibung enthält. Jede Beschreibung gilt für einen einzigen Dateityp. Außerdem gibt es vier Metatypen "updtext", der für alle Textdateien gilt, "updproj", der für alle Projektdateien gilt, "updlink", der für alle Projekt-Links gilt, und "all", der für jeden Dateityp gilt. Sie sind die Grundlage für die Definition von Aktionen und Makros.


Beim Aktualisieren werden die Werte von Tabellendaten geändert, insbesondere durch Änderung der Datenwerte mit dem SQL-Befehl UPDATE, jedoch auch durch Löschen von Werten mit dem SQL-Befehl DELETE oder durch Einfügen von Werten mit dem SQL-Befehl INSERT.


Akronym für Uniform Resource Locator. Die "Adresse", mit der ein WWW-Server und eine Home Page angegeben werden. Zum Beispiel:
http://www.acme.com/
Dieses Beispiel gibt an, daß die Host-Adresse www.acme.com ist. Ein URL ist in den meisten Fällen ein Dateiname (wahrscheinlich mit einem langen Pfad und im allgemeinen mit einer Erweiterung HTML oder .HTM (bei PC-DOS Dateinamen)).


Eine Möglichkeit zur Übergabe der Kontrolle (und möglicherweise auch von Argumenten) von Forms Developer zu einem anderen Oracle-Produkt oder 3GL und danach zur Rückgabe der Kontrolle (und möglicherweise der Argumente) an Forms Developer.


Eine Aktion, die von einem Benutzer von Project Builder definiert wird. Derartige Aktionen können für einen einzelnen Dateityp oder für alle Dateitypen gelten. Siehe auch  Aktion, Vordefinierte Aktion.


Siehe Objekttyp.


Ein Makro, der von einem Benutzer von Project Builder definiert wird. Mit derartigen Makros können sowohl vordefinierte Aktionen als auch benutzerdefinierte Aktionen geändert werden. Siehe auch Makro, Vordefinierter Makro, Aktion, Vordefinierte Aktion


Eine Projektdatei, in der Konfigurationsinformationen pro Benutzer gespeichert werden. Auf diese Weise können Benutzer ihre individuellen Entwicklungsumgebungen gestalten. Die Benutzerregistrierung übernimmt die Typinformationen von der Globalen Registrierung. In der Benutzerregistrierung können neue Typen definiert und Aspekte der Typdefinitionen außer Kraft gesetzt werden, die in der Globalen Registrierung gespeichert sind. Außerdem enthält die Benutzerregistrierung Umgebungs- und Voreinstellungsinformationen, wie z.B. die DB-Adresse eines bestimmten Benutzers, Benutzeroberflächeneinstellungen, wie z.B. "Symbolleiste anzeigen" und bestimmte allgemeine Projektinformationen wie "Autor". Siehe auch Registrierung, Globale Registrierung.


Siehe Werteachse axis


Eine PL/SQL-Codestruktur, die einen Wert zurückgibt. Wertkonstrukte umfassen Funktionen und Ausdrücke.


Ein benanntes Objekt, dem ein Wert zugewiesen werden kann und dessen zugewiesener Wert sich im Laufe der Zeit ändern kann.


Ein Collection-Typ, der eine Dateneinheit definiert, die aus einer geordneten Gruppe von Elementen besteht, die alle denselben Datentyp aufweisen. Bei der entsprechenden Dateneinheit handelt es sich um ein variierendes Array oder VARRAY. Die Anzahl von Elementen in einem VARRAY (Größe) ist variabel. Bei der Deklaration eines variierenden Array-Typs müssen Sie jedoch eine maximale Größe angeben.


Visual Basic-Dateinamenerweiterung. Wird als Dateinamenerweiterung für bestimmte dynamische Link-Bibliotheken verwendet, die mit Dateien verteilt werden, die vordefinierte VBX-Steuerelemente enthalten.


Ein mit der Microsoft Visual Basic-Sprache generiertes Widget, mit dem die Benutzeroberfläche erweitert, Benutzereingaben empfangen und Ausgaben angezeigt werden (z.B. Schieberegler, Raster und Bedienungsknöpfe).


Eine virtuelle Tabelle, deren Zeilen nicht wirklich in der Datenbank vorhanden sind, die jedoch auf einer Tabelle aufgebaut ist, die physikalisch in der Datenbank gespeichert ist.


Ein symbolischer Ordnername (im allgemeinen eine Abkürzung oder ein Synonym), mit dem das virtuelle Dateisystem Dateien zuordnet, die im Dateisystem des Hostrechners gespeichert sind.


Eine Zuordnung, die in URL verwendete Pfadnamen mit dem Dateisystem verknüpft, das vom Betriebssystem des Hostrechners verwaltet wird.


Schriftart-, Farb- und Musterattribute, die Sie für Objekte festlegen, die auf Ihrer Anwendungsoberfläche angezeigt werden.


Siehe WWW


Ein Programm, das Endbenutzer verwenden, um HTML-Dokumente und Programme zu lesen, die auf einem Computer (der von einem Web-Server bedient wird) gespeichert sind.


Ein Programm, das auf einem Web-Server über den Web Request Broker ausgeführt wird.


Ein Server-Prozeß (HTTP-Daemon), der auf einem Web-Site ausgeführt wird und Web-Seiten als Antwort auf HTTP-Anforderungen von entfernten Web-Browsern sendet.


Ein Zeichen, das für ein 'beliebiges Zeichen' oder eine 'fortlaufende Folge von Zeichen' innerhalb eines Wortes oder Begriffs steht.


1. Ein rechteckiger Bereich auf dem Desktop, der eine Anwendung enthält. Jedes Fenster hat einen Bereich, in dem Sie mit der Anwendung zusammenarbeiten können. Fenster können geöffnet, skaliert, verschoben, als Symbol oder als Vollbild angezeigt werden. 2. In Form Builder ein Objekttyp, den Sie mit einer Leinwandansicht verknüpfen können.


Ein Dateiformat, das von einigen Spreadsheet-Programmen benutzt wird, wie z.B. SQL*Calc oder von Lotus 1-2-3 Programmen.


Akronym für Oracle Web Request Broker. Stellt eine leistungsfähige verteilte Laufzeitumgebung zur Entwickling und Weiterleitung von Anwendungen für das Web dar. Mit der WRB-Laufzeitplattform können Anwendungsentwickler Anwendungen schreiben, die unabhängig von Web-Servern sind und mit einer Reihe von Web-Servern benutzt werden können.


Akronym für World Wide Web. Das Netzwerk mit Servern im Internet, von denen ein jeder eine oder mehrere Home Pages hat, die Informationen und Links zu anderen Dokumenten auf diesem und (im allgemeinen) anderen Servern bereitstellen.


Vergrößern eines Objekts, damit mehr Platz für das Bearbeiten des Feldinhalts vorhanden ist.


Die sekundäre Symbolleiste, die (standardmäßig) auf der linken Seite des Projektnavigators angedockt ist. Die sekundäre Symbolleiste verfügt über Funktionen zur Vereinfachung von Anordnung und Starten von Anwendungen.


 Die neueste Version von OLE-Steuerelementen (OCX).


XML-Ausgabe, die den allgemeinen XML-Prinzipien entspricht, wie richtiges Markieren, Verschachteln sowie die Aufnahme einer XML-Deklaration, z.B.. <?xml version="1.0" encoding="UTF-8"?>.


Mit einem Platzhalter-Benutzernamen können sich Benutzer bei der Datenbank mit ihrem persönlichen Benutzernamen und nicht mit dem Oracle-Datenbankbenutzernamen anmelden (z.B. $user_name@database), wenn Berichte aus einem Web-Browser ausgeführt werden.


Extensible Markup Language -- eine Metasprache, die SGML zur Definition und Strukturierung von Daten verwendet. Report Builder unterstützt die XML-Ausgabe im Hinblick auf Web-Veröffentlichungen sowie den elektronischen Datenaustausch mit Anwendungen von Fremdherstellern. Mit XML können Sie auch Berichtdefinitionen generieren, die zur Laufzeit mit anderen Berichtdefinitionen zusammengeführt oder separat ausgeführt werden können.


XML-Ausgabe, bei der Stuktur und Elementinhalt einer Dokumenttypdefinition (DTD) entspricht. Eine gültige XML weist auch das richtige Format auf.


Online-Hilfe benutzen

Die folgenden Richtlinien sollen Ihnen beim optimalen Einsatz des Online-Hilfesystems helfen:

•	Machen Sie sich mit dem Register Inhalt vertraut, um eine Vorstellung vom Umfang der Themen in der Online-Hilfe zu erhalten.

•	Klicken Sie auf die Schaltfläche Verwandte Themen direkt unter den Titeln, um eine Liste der Themen aufzurufen, die mit dem aktuellen Thema verknüpft sind.

•	Klicken Sie auf die Schaltfläche Optionen am Anfang jedes Themas, um festzulegen, daß die Hilfethemen immer im Vordergrund angezeigt werden sollen, so daß die Hilfethemen bei der Entwicklung von Anwendungen stets auf dem Bildschirm bleiben.

•	Klicken Sie auf die Schaltfläche Glossar am Anfang jedes Themas, um Definitionen für Begriffe aufzurufen, mit denen Sie nicht vertraut sind..


Wegweiser zur Dokumentation

So machen Sie sich mit Oracle Developer vertraut:

1	Verschaffen Sie sich in der Kurzanleitung einen Überblick über die einzelnen Komponenten von Oracle Developer:

•	Wählen Sie Hilfe [image] Kurzanleitung.

2	Führen Sie das Lernprogramm aus, in dem die gebräuchlichsten Aufgaben Schritt für Schritt erläutert werden.

• 	Wählen Sie Hilfe [image] Lernprogramm.

3	Rufen Sie die Online-Handbücher ab (sie sind auch in gedruckter Form verfügbar):

• 	Wählen Sie Hilfe [image] Handbücher.

4	Rufen Sie das Online-Hilfesystem auf:

• 	Wählen Sie Hilfe [image] Hilfethemen.

• 	Für kontextbezogene Hilfetexte drücken Sie [Hilfe] (bei den meisten Plattformen ist dies die Taste F1).


Information Desk


Über Bildtypen

Sie können zwei Arten von Bildern in eine Form Builder-Anwendung integrieren:

•	Grafikobjekte  Ein Grafikobjekt ist ein statisches Bild (entweder Vektor- oder Bitmap-Bild), das Sie aus dem Dateisystem oder der Datenbank importieren und als statisches Grafikelement in Ihrer Anwendung verwenden. Grafikobjekte werden häufig als Hintergrundbilder benutzt. Wenn Sie ein Formmodul speichern und kompilieren, werden Grafikobjekte in die .FMB- und .FMX-Dateien integriert. Sie können Grafikobjekte wie andere Objekte im Layouteditor bearbeiten.

•	Bildobjekte  Ein Bildobjekt ist ein Schnittstellen-Steuerelement, mit dem Vektor- oder Bitmap-Bilder gespeichert und/oder angezeigt werden. Wie bei anderen Objekten, mit denen Werte gespeichert werden, kann ein Bildobjekt ein Datenblockobjekt (das direkt mit einer Datenbankspalte verbunden ist) oder ein Steuerelementobjekt sein. Wenn Sie ein Formmodul speichern und kompilieren, werden Bild-Objekte in den .FMB- und .FMX-Dateien integriert. Eine Bilddatei wird jedoch erst wirklich mit einem Bildobjekt verknüpft, wenn das Objekt zur Laufzeit aufgefüllt wird.

Zur Laufzeit können Endbenutzer zu Bildobjekten navigieren und diese auswählen, können jedoch nicht zu Grafikobjekten navigieren bzw. diese auswählen.


Über Bildformate

Form Builder unterstützt verschiedene Grafikdateiformate. In der folgenden Tabelle wird der Formattyp (Bitmap-Bild oder Vektorzeichnung) angegeben und wird dargestellt, ob das Format für Grafikobjekte oder Bildobjekte benutzt werden kann.

Format	Grafiktext und Objekte	Bildobjekte	Funktion	Komprimierung
BMP	Y	Lesen/Schreiben	Monochrom, 4- und 8-Bit LUT, 24-Bit RGB	Keine
JFIF	Y	Lesen/Schreiben	24-Bit RGB	JPEG
PCX	Y	Schreibgeschützt	Monochrom; 2-, 4- und 8-Bit LUT; 1-, 2- und 8-Bit RGB	RLE
PICT 1 & 2	Y	Lesen/Schreiben	Monochrom; 2-, 4- und 8-Bit LUT; 16- und 24-Bit RGB, Vektor-/Objektgrafik	Packbits
GIF	Y	Lesen/Schreiben	8-Bit LUT	LZW
CALS	Y	Lesen/Schreiben	Monochrom	CCITT G4 (FAX)
PCD	Y	Schreibgeschützt	Monochrom, 4- und 8-Bit LUT, 24-Bit RGB	(Kodak)
RAS	Y	Lesen/Schreiben	Monochrom, 4- und 8-Bit LUT, 24-Bit RGB	RLW
TIFF 4, 5, & 6	Y	Lesen/Schreiben	Monochrom, 8-Bit grau, 4- und 8-Bit LUT, 24-Bit RGB, planare Daten, nebeneinander angeordnete Daten, Intel-Byte-Folge, Motorola-Byte-Folge, Photometric-Interpretation, MSB/LSB	Packbits, CCITT G3 (FAX), CCITT G4 (FAX), LZW, LZW mit horizontaler Differenz, JPEG


Über Bildobjekte und Speicherzuordnung

  Verwandte Themen

Wenn Sie Bildobjekte in einem Datenblock erstellen, weist Form Builder den erforderlichen Speicherplatz für Datensätze zu, die aus der Datenbank abgerufen werden, unabhängig davon, ob dieser Datensatz gerade angezeigt wird oder nicht.

Um Client-Speicherplatz bei der Anzeige großer Bildobjekte zu sparen, reduzieren Sie die Anzahl von Datensätzen, die für den Block gepuffert werden (d.h. die Anzahl von Datensätzen, die Form Builder gleichzeitig abrufen soll). Hierzu können Sie das Blockattribut Anzahl gepufferter Datensätze einstellen. Der minimal zulässige Wert entspricht dem Wert des Blockattributs Anzahl angezeigter Datensätze + 2.

Hinweis:  Bilder und Zeichnungen werden immer in ihrem eigenen Format in der Datenbank gespeichert, es sei denn, Sie legen das Attribut Bildformat für das Bildobjekt fest. Wenn Sie also das Attribut Bildformat für ein Bildobjekt auf GIF setzen, dann READ_IMAGE_FILE ausführen, um das Objekt mit einer TIFF-Datei aufzufüllen, und dann einen Speichern-Befehl ausgeben, fügt Form Builder das Bild in die entsprechende LONG RAW-Spalte im GIF-Format (wenn möglich) ein.

Beachten Sie außerdem, daß PCX und PCD aus dem Dateisystem gelesen, jedoch nicht mit WRITE_IMAGE_FILE geschrieben werden können.


Grafikobjekte importieren

So importieren Sie ein Grafikobjekt:

1	Wählen Sie Datei [image] Importieren [image] Bild im Layouteditor. Daraufhin wird das Dialogfeld Bild importieren angezeigt.

2	Klicken Sie auf eine Optionsschaltfläche (entweder Datenbank oder Datei), um anzugeben, ob das zu importierende Bild aus der Datenbank oder dem Dateisystem stammt. Danach geben Sie den Namen des Bildes ein.

3	Um das Grafikformat des Bildes anzugeben, wählen Sie einen Wert aus der Liste Format (gilt nur für Bilder, die im Dateisystem gespeichert sind).

4	Um die Grafikqualität des Bildes anzugeben, wählen Sie einen Wert aus der Popup-Liste Qualität.

Hinweis:  Um die Bildqualität und die Speicherplatzbelegung zu optimieren, stellen Sie die Bildqualität und die Dithering-Optionen für das Bild so ein, daß ein optimaler Kompromiß zwischen den beiden Werten gefunden wird. Um diese Optionen festzulegen, wählen Sie das Bild im Layouteditor aus, und wählen Sie dann Format [image] Grafikoptionen [image] Bild.

5	Klicken Sie auf OK, um das Bild zu importieren.

Form Builder setzt das importierte Grafikobjekt in die Mitte des Zeichnenbereichs. (Wenn Sie ein Grafikobjekt in Ihre Form importieren, setzen Sie es auf eine bestimmte Leinwand.)

Tip:  Denken Sie daran, daß Sie Schnittstellenobjekte über Grafikobjekte setzen können. So könnten Sie z.B. Schaltflächen über eine Karte setzen, damit die Endbenutzer Informationen über bestimmte Bereiche abrufen können.


Bildobjekte erstellen

So erstellen Sie ein Bildobjekt:

1	Klicken Sie im Objektnavigator auf das Plussymbol [image] neben dem gewünschten Blockknoten.

Form Builder blendet den Knoten Datenblöcke ein und zeigt die zugehörigen Unterknoten an.

2	Klicken Sie auf den Knoten Objekte.

3	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

Unter dem Knoten Objekte wird ein neues Objekt mit einem Standardnamen eingefügt.

4	Doppelklicken Sie auf das Objektsymbol neben dem neuen Objekt, um die Attributpalette anzuzeigen.

5	Stellen Sie das Attribut Objekttyp unter dem Knoten Allgemein auf Bild ein.

6	Mit der Attributpalette oder dem Layouteditor bestimmen Sie das Erscheinungsbild für das Bildobjekt.

Beachten Sie folgendes, wenn Sie mit Bildobjekten arbeiten:

•	Der Datentyp eines Bildobjekts ist auf LONG RAW vordefiniert (das Attribut Datentyp wird in der Attributpalette für ein Bildobjekt nicht angezeigt).

•	Legen Sie das Attribut Komprimierungsqualität fest, damit Form Builder weiß, um welchen Faktor das Bild komprimiert werden soll, wenn es in die Form eingelesen wird. Diese Komprimierung erfolgt unabhängig davon, ob die Bilddatei im Dateisystem komprimiert wurde oder nicht.

•	Legen Sie das Attribut Skalierungsstil fest, damit Form Builder weiß, wie Bilder angezeigt werden sollen, die größer sind als der Rand des Bildobjekts. Wählen Sie Abschneiden, damit Form Builder das Bild in der eigentlichen Größe anzeigt, selbst wenn ein Teil des Bildes außerhalb der Umrandung des Bildobjekts liegt. Wählen Sie Anpassen, wenn Form Builder das Bild so skalieren soll, daß es ganz in die Umrandung des Bildobjekts paßt.


Bildobjekte auffüllen

  Verwandte Themen

Denken Sie daran, daß, obwohl die Definition eines Bildobjekts als Bestandteil der .FMB- und .FMX-Dateien des Formmoduls gespeichert wird, keine Bilddatei wirklich mit dem Bildobjekt verknüpft ist, bis das Objekt zur Laufzeit aufgefüllt wird.

Bildobjekte können wie folgt aufgefüllt werden:

•	Abruf aus einer Datenbankspalte vom Typ LONG RAW

Ein Bildobjekt in einem Datenblock wird automatisch aufgefüllt, wenn der Endbenutzer oder die Anwendung eine Abfrage in dem Block ausführt. Wenn ein abgerufenes Bild geändert oder ersetzt wird, markiert Form Builder diesen Datensatz als Geändert, und das neue Bild wird mit dem nächsten Speichervorgang in der entsprechenden LONG RAW-Spalte in der Datenbank gespeichert.

Hinweis:  Sie können keine SELECT-Anweisung schreiben, um einen LONG RAW-Wert IN ein Bildobjekt auszuwählen.

•	Ausführen der vordefinierten Prozedur READ_IMAGE_FILE, um ein Bild aus dem Dateisystem einzulesen

(Um ein Bild dynamisch aus einem Bildobjekt in eine Datei zu schreiben, verwenden Sie die vordefinierte Prozedur WRITE_IMAGE_FILE.)

•	Einfügen eines Bildes aus der Zwischenablage in ein leeres Bildobjekt

Zur Laufzeit schneiden Sie das Bild einfach aus bzw. kopieren Sie das Bild einfach in die Zwischenablage, klicken Sie auf ein leeres Bildobjekt, und wählen Sie dann Bearbeiten [image] Einfügen. Das eingefügte Bild übernimmt die Skalierung des Bildobjekts, in das es eingefügt wird. Passen Sie das Attribut Skalierungsstil des Bildobjekts entsprechend an -- entweder Abschneiden oder Anpassen.


Bildobjekte zur Laufzeit bearbeiten

  Verwandte Themen

Bildobjekte können zur Laufzeit auf zwei verschiedene Arten bearbeitet werden: durch Endbenutzer (mit der Bildpalette, sofern sie angezeigt ist) und programmgesteuert.

Die Bildpalette benutzen  Wenn Sie das Attribut Palette anzeigen für das Bildobjekt auf Ja einstellen, zeigt Form Builder eine Palette zur Bearbeitung von Bildern neben dem Objekt zur Laufzeit an. Endbenutzer können dann die drei Palettenwerkzeuge zur Bearbeitung des Bildes verwenden.

Die drei Palettenwerkzeuge zur Bildbearbeitung sind:

•	Die Schaltfläche Zoom der Bildpalette: Klicken Sie auf das Werkzeug, und klicken Sie dann wiederholt auf das Bild, um den Teil des Quellbildes schrittweise zu reduzieren, der in der Umrandung des Bildobjekts angezeigt wird.

•	  Schwenken: Klicken Sie auf das Werkzeug, und schwenken Sie unsichtbare Teile des Quellbildes mit der Hand in den Ansichtausschnitt (ist nur möglich, wenn das Quellbild über mindestens eine Umrandung des Bildobjekts hinausgeht).

•	  Drehen: Klicken Sie auf das Werkzeug, und klicken Sie dann wiederholt auf das Bild, um es in Schritten von 90 Grad im Uhrzeigersinn zu drehen.

Bildobjekte programmgesteuert bearbeiten  Um auf Ereignisse mit Bildobjekten zu reagieren, verwenden Sie die folgenden Trigger:

•	When-Image-Activated (wird ausgelöst, wenn der Endbenutzer auf ein Bildobjekt doppelklickt)

•	When-Image-Pressed (wird ausgelöst, wenn ein Endbenutzer auf ein Bildobjekt klickt oder doppelklickt)

Sie können auch die vordefinierte Prozedur IMAGE_ZOOM verwenden, um die in Bildobjekten enthaltenen Bilder zu bearbeiten.


Diagrammobjekte erstellen

So erstellen Sie ein Diagrammobjekt:

1	Klicken Sie im Objektnavigator auf den gewünschten Block.

2	Wählen Sie Werkzeuge [image] Layouteditor.

3	Im Layouteditor klicken Sie auf [image] in der Symbolleiste. Danach befolgen Sie die Angaben in dem Assistenten, um ein Diagrammobjekt zu erstellen.


Grafiktext erstellen

  Verwandte Themen

So erstellen Sie Grafiktext:

1	Klicken Sie auf das Text-Werkzeug in der Werkzeugpalette des Layouteditors.

2	Klicken Sie in den Bereich, in den Sie den Text setzen möchten.

3	Geben Sie den gewünschten Text ein.

Die Umrandung des Textobjekts wird größer, während Sie den Text eingeben. Mit Zeilenschaltungen fügen Sie gegebenenfalls einen Zeilenumbruch ein.

4	Klicken Sie außerhalb der Umrandung des Textobjekts, um den Textmodus zu beenden.

Hinweis:  Wenn die Option Skalierbare Umrandung im Dialogfeld Text-Zeichnenoptionen aktiviert ist, können Sie ein Grafiktextobjekt erstellen, indem Sie klicken und ziehen, bis die Umrandung die gewünschte Größe hat. Der Text wird automatisch zur nächsten Zeile umbrochen, wenn Sie den rechten Rand der Umrandung des Textobjekts erreichen. Um das Dialogfeld Grafikoptionen aufzurufen, wählen Sie Format [image] Grafikoptionen [image] Text. Um die Option Skalierbare Umrandung zu aktivieren, wählen Sie Skalierbare Umrandung.


Grafiktext bearbeiten

So bearbeiten Sie Grafiktext:

1	Klicken Sie auf das Text-Werkzeug in der Werkzeugpalette des Layouteditors.

2	Klicken Sie auf das zu bearbeitende Grafik-Textobjekt.

Die Text-Einfügestelle wird in dem Textobjekt angezeigt.

3	Bearbeiten Sie den Text nach Bedarf.

4	Klicken Sie außerhalb der Umrandung des Textobjekts, um den Textmodus zu beenden.


Liniengrafiken erstellen

  Verwandte Themen

So erstellen Sie Rechtecke, Linien, Ellipsen und Bogen:

1	Wählen Sie das gewünschte Werkzeug, indem Sie in der Werkzeugpalette des Layouteditors auf dieses Werkzeug klicken.

2	Setzen Sie den Zeiger an die Stelle, an der Sie mit dem Zeichnen der Grafik beginnen möchten.

3	Klicken und ziehen Sie, bis die Grafik die gewünschte Größe hat. Danach lassen Sie die Maustaste los.

Hinweis:  Wenn Sie einen neuen Bogen erstellen, ist der Standard-Bogenwinkel 90 Grad. Mit dem Umformen-Werkzeug können Sie den Standardwinkel ändern.

So erstellen Sie Polygone und Polygonzüge:

1	Wählen Sie das Polygon- oder Polygonzug-Werkzeug im Layouteditor.

2	Setzen Sie den Zeiger an die Stelle, an der das erste Segment beginnen soll, und klicken Sie einmal.

3	Verschieben Sie den Zeiger, bis das erste Liniensegment die gewünschte Länge und den gewünschten Winkel hat. Danach klicken Sie, um den Endpunkt des Segments zu markieren.

4	Klicken und verschieben Sie den Zeiger weiter, um jedes Segment des Polygons zu definieren.

5	Doppelklicken Sie, um den Endpunkt des letzten Segments zu markieren.

Wenn Sie das Polygon-Werkzeug benutzen, fügt Form Builder ein abschließendes Liniensegment hinzu, um den Endpunkt mit dem Anfangspunkt zu verbinden.

So verwenden Sie das Freihand-Werkzeug:

1	Wählen Sie das Freihand-Werkzeug.

2	Setzen Sie den Zeiger an die Stelle, an der Sie mit dem Zeichnen beginnen möchten.

3	Klicken und ziehen Sie, um die gewünschte Freihandgrafik zu zeichnen.


Grafikwerkzeuge beschränken

Sie können den Vorgang von Grafik-Werkzeugen beschränken, indem Sie die Taste [Beschränken] gedrückt halten (bei den meisten Plattformen die Umschalttaste). Beschränkte Werkzeuge werden wie folgt eingesetzt:

Ergebnis eines beschränkten Werkzeugs

Werkzeug	Ergebnis mit beschränktem Werkzeug
Ellipse	Kreis
Linie, Polygon	Horizontale, vertikale oder diagonale Winkel
Polygonzug, Rechtecke	Horizontale, vertikale oder diagonale Winkel
Rechteck	Quadrat
Abgerundetes Rechteck	Abgerundetes Quadrat
Bogen	Kreis


Objekte erstellen


Über das Erstellen von Schnittstellenobjekten

Wenn Sie ein Objekt erstellen, fügen Sie entweder ein neues Objekt in einen Block ein oder ändern ein bestehendes Objekt, indem Sie den Typ konvertieren.


Über Schaltflächen

  Verwandte Themen

Schaltflächen sind Schnittstellenobjekte, die Benutzer zur Ausführung von Befehlen oder zur Einleitung von Aktionen auswählen. Mit Schaltflächen kann die Navigation eingeleitet, können Wertelisten angezeigt, Editoren oder Fenster aufgerufen, Daten in einer Form festgeschrieben, Abfragen ausgegeben und nahezu jeder andere Vorgang ausgeführt werden, der mit PL/SQL codiert werden kann.

Form Builder unterstützt zwei Schaltflächenstile: Text und In Symbolform. Textschaltflächen werden mit einer Textbeschriftung auf der Schaltfläche angezeigt. Schaltflächen in Symbolform werden mit einer Bitmap-Grafik auf der Schaltfläche angezeigt und werden aus diesem Grund häufig in Symbolleisten benutzt.

Verhalten zur Laufzeit  Auf GUI-Plattformen wird eine Textschaltfläche als Rechteck mit einer Textbeschriftung innerhalb des Rechtecks angezeigt, die die Aktion der Schaltfläche beschreibt. Bei Plattformen im Zeichenmodus wird eine Textschaltfläche als Textfolge in Klammern angezeigt.

Schaltflächen in Symbolform werden als grafische Symbole ohne Textbeschriftungen angezeigt. Schaltflächen in Symbolform können nur auf GUI-Plattformen angezeigt werden.

Hinweis:  Bei Microsoft Windows werden die Farbattribute von Schaltflächen ausschließlich von der Farb-Funktion in der Systemsteuerung gesteuert. Um Farbattribute für Schaltflächen zu definieren (Fläche der Schaltfläche, Schattierung der Schaltfläche, Textfarbe der Schaltfläche, Schaltfläche oder Hervorhebung) müssen Sie die Farb-Funktion verwenden.


Über das Navigieren zu Schaltflächen

  Verwandte Themen

Endbenutzer navigieren zu Schaltflächen mit der Maus oder einer Funktionstaste von Form Builder. Wenn der Endbenutzer eine Funktionstaste verwendet, um zu einer Schaltfläche zu navigieren, wird der Aufruf der Schaltfläche durch die Position der Schaltfläche im Objektnavigator bestimmt.


Über die Auswahl von Schaltflächen

  Verwandte Themen

Endbenutzer wählen eine Schaltfläche aus, indem sie mit der Maus auf die Schaltfläche klicken. Der mit der Schaltfläche verknüpfte Befehl oder Vorgang wird ausgelöst, wenn die Maustaste losgelassen wird. Der Eingabefokus kann in jedem Objekt in der Form stehen, wenn die Schaltfläche ausgewählt ist. Endbenutzer müssen nicht zu der Schaltfläche navigieren, bevor sie sie auswählen.

Endbenutzer können eine Schaltfläche auch auswählen, indem sie zu der Schaltfläche navigieren und [Auswählen] drücken. Der Cursor bleibt in der Schaltfläche, es sei denn, der Schaltflächenbefehl bewegt den Cursor zu einem anderen Objekt.


Schaltflächen erstellen

  Verwandte Themen

So erstellen Sie eine Schaltfläche:

1	Klicken Sie im Objektnavigator auf das Plussymbol [image] neben dem gewünschten Blockknoten.

Form Builder blendet den Knoten Datenblöcke ein und zeigt die zugehörigen Unterknoten an.

2	Klicken Sie auf den Knoten Objekte.

3	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

Unter dem Knoten Objekte wird ein neues Objekt mit einem Standardnamen eingefügt.

4	Doppelklicken Sie auf das Objektsymbol neben dem neuen Objekt, um die Attributpalette anzuzeigen.

5	Unter dem Knoten Allgemein stellen Sie das Attribut Objekttyp auf Schaltfläche ein.

6	Stellen Sie das Attribut Datenbankobjekt unter dem Knoten Datenbank auf Nein ein.

Hinweis: Wenn Sie ein Objekt in einem Datenblock erstellen, geht Form Builder davon aus, daß es sich bei dem Objekt um ein Datenobjekt handelt und stellt das Attribut Datenbankobjekt auf Ja ein. Datenobjekte werden automatisch in SELECT-, UPDATE- und INSERT-Anweisungen aufgenommen, die an die Datenbank ausgegeben werden. Wenn das erstellt Objekt ein Oberflächenobjekt in einem Datenblock ist, müssen Sie das Attribut Datenbankobjekt explizit auf Nein einstellen.

7	Unter dem Knoten Physikalisch geben Sie bei dem Attribut Leinwand den Namen der gewünschten Leinwand an.

Hinweis: Um ein Objekt zur Laufzeit anzuzeigen, müssen Sie es einer Leinwand zuweisen.


Schaltflächenbeschriftung hinzufügen

  Verwandte Themen

So fügen Sie eine Beschriftung für eine Textschaltfläche hinzu:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben der gewünschten Schaltfläche, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Funktional geben Sie den gewünschten Text in das Feld Beschriftung ein.

Tip:  Die Schaltfläche muß groß genug zur Anzeige des Beschriftungstextes sein. Sie können die Schaltfläche im Layouteditor anzeigen, um zu sehen, wie die Textbeschriftung in die Schaltfläche paßt.


Schaltflächen in Symbolform definieren

  Verwandte Themen

So machen Sie eine Schaltfläche zu einer Schaltfläche in Symbolform:

1	Doppelklicken Sie im Objektnavigator auf das Symbol neben der gewünschten Schaltfläche, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Funktional:

•	Stellen Sie das Attribut In Symbolform auf Ja ein.

•	Geben Sie bei dem Attribut Symbol-Dateiname den Namen des Symbols ein. Wenn Sie das Attribut Symbol-Dateiname definieren, nehmen Sie die Erweiterung der Symboldatei nicht auf. Geben Sie z.B. MY_ICON und nicht MY_ICON.ICO ein.

Hinweis:  Zur Laufzeit sucht Form Builder in dem mit der Umgebungsvariablen für Ihr System angegebenen Pfad nach dem Symbol (bei Microsoft Windows UI60_ICON).


Standardschaltflächen definieren

  Verwandte Themen

So bezeichnen Sie eine Schaltfläche als Standardschaltfläche:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben der gewünschten Schaltfläche, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Funktional stellen Sie das Attribut Standardschaltfläche auf Ja ein.


Schaltflächen zur Laufzeit bearbeiten

  Verwandte Themen

Form Builder verfügt über Trigger, mit denen Sie auf Schnittstellenereignisse reagieren können, die geschehen, wenn der Endbenutzer eine Schaltfläche manipuliert.

Schaltflächencode ausführen  Damit eine Schaltfläche einen Befehl ausführt oder anstößt, müssen Sie einen When-Button-Pressed-Trigger zuordnen, der ausgelöst wird, wenn die Schaltfläche ausgewählt wird.

Wenn das Ereignis Button Pressed eintritt, d.h. wenn ein Endbenutzer auf die Schaltfläche klickt, führt Form Builder den Code im When-Button-Pressed-Trigger aus.

In dem folgenden Beispiel wird ein When-Button-Pressed-Trigger dargestellt, der eine Gesamtsumme aus den in zwei Textobjekten gespeicherten Werten berechnet:

When-Button-Pressed-Trigger:

:order.total := :order.qty * :order.price

Schaltflächenattribute programmgesteuert einstellen  Sie können Schaltflächenattribute mit den folgenden vordefinierten Unterprogrammen programmgesteuert einstellen und einlesen:

•	CONVERT_OTHER_VALUE

•	DISPLAY_ITEM

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


Über Kontrollkästchen

  Verwandte Themen

Ein Kontrollkästchen ist ein Steuerelement mit zwei Status, mit denen angegeben wird, ob eine bestimmte Bedingung oder ein bestimmter Wert ein- oder ausgeschaltet, d.h. wahr oder falsch ist.

Verhalten zur Laufzeit  Auf GUI-Plattformen wird ein Kontrollkästchen als kleines quadratisches Kästchen mit einer Textbeschriftung rechts daneben angezeigt. Auf Plattformen im Zeichenmodus wird ein Kontrollkästchen in eckigen Klammern angezeigt.

Der Anzeigestatus eines Kontrollkästchens ist entweder Ausgewählt oder Nicht ausgewählt. Endbenutzer schalten den Status eines Kontrollkästchens um, indem sie mit der Maus auf das Kontrollkästchen klicken oder indem sie zu dem Kontrollkästchen navigieren und [Auswahl] drücken.

Bei den meisten grafischen Benutzeroberflächen ist der Text in der Beschriftung des Kontrollkästchens "hot". Das heißt, Endbenutzer können das Kontrollkästchen umschalten, indem sie entweder auf das Kontrollkästchenelement oder die Textbeschriftung selbst klicken.

Im Abfragemodus kann der Endbenutzer ein Kontrollkästchen als Abfragekriterium ausschließen, indem der Status des Kontrollkästchens auf undefiniert gesetzt wird. Wenn sich ein Kontrollkästchen in einem undefinierten Status befindet, scheint es deaktiviert zu sein. Beachten Sie, daß der undefinierte Status nur im Abfragemodus gültig ist.


Über Werte von Kontrollkästchen

  Verwandte Themen

In Kontrollkästchen werden Werte vom Typ CHAR, NUMBER oder DATE gespeichert. Der Wert eines Kontrollkästchens kann durch Abrufen aus einer entsprechenden Datenbankspalte, durch eine Eingabe des Endbenutzers über Objektmanipulation oder über Ausgangswerte bzw. Zuweisungen zur Laufzeit eingestellt werden. Gleichermaßen kann der Wert eines Kontrollkästchens mit der standardmäßigen Commit-Verarbeitung in der Datenbank festgeschrieben werden.

Wenn Sie ein Kontrollkästchen definieren, geben Sie an, welchen Wert das Kontrollkästchen in der ausgewählten Form und welchen Wert es in der nicht ausgewählten Form darstellen soll.

Betrachten Sie z.B. ein Kontrollkästchen, mit dem angegeben wird, ob einem Kunden ein Kredit gewährt wurde oder nicht. Wenn Sie das Kontrollkästchen definieren, sollten Sie bei Wert, wenn ausgewählt 'CREDIT_OK' und bei Wert, wenn nicht ausgewählt 'NO_CREDIT' angeben.

Wenn ein Kundendatensatz abgerufen wird, speichert das Kontrollkästchen den abgerufenen Wert aus der entsprechenden Datenbankspalte. Wenn der abgerufene Wert 'NO_CREDIT' ist, wird das Kontrollkästchen im nicht ausgewählten Status (aus) angezeigt. Wenn der Endbenutzer das Kontrollkästchen aktiviert, um es in den ausgewählten Status (ein) umzuschalten, ändert sich der Wert des Kontrollkästchens in den Wert im ausgewählten Status, d.h. 'CREDIT_OK.'

Kontrollkästchen und andere Werte  Wenn Sie ein Kontrollkästchen erstellen, müssen Sie angeben, wie das Kontrollkästchen abgerufene oder zugewiesene Werte behandeln soll, bei denen es sich nicht um einen der Werte handelt, die mit dem Status Ausgewählt bzw. Nicht ausgewählt dargestellt werden. (Beachten Sie, daß der undefinierte Status nur im Abfragemodus benutzt wird. Mit dem undefinierten Status kann kein Wert verknüpft werden.)

Sie können angeben, daß ein Kontrollkästchen derartige Andere Werte auf drei verschiedene Arten handhabt:

•	Zurückweisung von Andere Werte als Nicht zulässig

•	Anzeige von Andere Werte als den ausgewählten Status

•	Anzeige von Andere Werte als den nicht ausgewählten Status

Im vorherigen Beispiel könnten Sie angeben, daß das Kontrollkästchen Kredit genehmigt Andere Werte als Nicht ausgewählt (ausgeschaltet) anzeigt. Wenn ein abgerufener Datensatz dann den Wert 'PENDING' zurückgibt, würde die Auswahl des Kontrollkästchens aufgehoben und damit angegeben, daß der Kredit des Kunden noch nicht genehmigt wurde. In diesem Beispiel setzt nur der Wert 'CREDIT_OK' den Status des Kontrollkästchens auf Ausgewählt, und alle Anderen Werte werden als Nicht ausgewählt angezeigt.

Wenn ein anderer Wert als der Wert Ausgewählt oder Nicht ausgewählt abgerufen oder einem Kontrollkästchen zugewiesen wird, kann der Status des Objekts ausgewählt oder nicht ausgewählt sein, der Wert des Objektes bleibt jedoch der Andere Wert, bis ein neuer Wert abgerufen oder zugewiesen wird oder bis der Endbenutzer den Status des Kontrollkästchens umschaltet.

In der folgenden Tabelle werden die möglichen Status und Werte für das Beispiel-Kontrollkästchen dargestellt:

Abgerufener oder zugewiesener Wert	Status des Kontroll-kästchens	Wert des Kontroll-kästchens	Status/Wert nach Umschalten des Kontrollkästchens durch den Endbenutzer
CREDIT_OK	ausgewählt	CREDIT_OK	nicht ausgewählt/NO_CREDIT
NO_CREDIT	nicht ausgewählt	PENDING	ausgewählt/CREDIT_OK
PENDING	nicht ausgewählt	PENDING	ausgewählt/CREDIT_OK
123ABC	nicht ausgewählt	123ABC	ausgewählt/CREDIT_OK


Kontrollkästchen erstellen

  Verwandte Themen

So erstellen Sie ein Kontrollkästchen:

1	Klicken Sie im Objektnavigator auf das Plussymbol [image] neben dem gewünschten Blockknoten.

Form Builder blendet den Knoten Datenblöcke ein und zeigt die zugehörigen Unterknoten an.

2	Klicken Sie auf den Knoten Objekte.

3	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

Unter dem Knoten Objekte wird ein neues Objekt mit einem Standardnamen eingefügt.

4	Doppelklicken Sie auf das Objektsymbol neben dem neu erstellten Objekt, um die Attributpalette anzuzeigen.

5	Unter dem Knoten Allgemein stellen Sie das Attribut Objekttyp auf Kontrollkästchen ein.

6	Unter dem Knoten Physikalisch geben Sie bei dem Attribut Leinwand den Namen der gewünschten Leinwand an.

Hinweis: Um ein Objekt zur Laufzeit anzuzeigen, müssen Sie es einer Leinwand zuweisen.

7	Erstellen Sie eine Beschriftung für das Kontrollkästchen, indem Sie den gewünschten Text in das Attributfeld Beschriftung unter dem Knoten Funktional eingeben.

Die Beschriftung des Kontrollkästchens wird zur Laufzeit rechts neben dem Kontrollkästchenelement angezeigt.

8	Geben Sie die Werte, die das Kontrollkästchen als "Ausgewählt" und "Nicht ausgewählt" anzeigen soll, in den Feldern Wert, wenn ausgewählt und Wert, wenn nicht ausgewählt an. Diese Attribute finden Sie im Knoten Funktional.

Wenn das Kontrollkästchen z.B. "Ausgewählt" oder eingeschaltet sein soll, wenn der gespeicherte Wert XYZ beträgt, geben Sie die Zeichenfolge XYZ in das Feld Wert, wenn ausgewählt ein.

Hinweis:  Die Werte, die Sie eingeben, dürfen nicht länger als die Anzahl von Zeichen sein, die für das Attribut Max. Länge angegeben wurden.

Tip:  Wenn ein Kontrollkästchen einen NULL-Wert als Ausgewählt oder Nicht ausgewählt anzeigen soll, lassen Sie das Attribut Wert, wenn ausgewählt oder Wert, wenn nicht ausgewählt leer. Der entsprechende Status von Ausgewählt oder Nicht ausgewählt muß in dem Attribut Kontrollkästchenzuordnung anderer Werte benutzt werden:

•	Wenn ein Null-Wert als ausgewählt angezeigt werden soll, stellen Sie Kontrollkästchenzuordnung anderer Werte auf Ausgewählt ein.

•	Wenn ein Null-Wert als nicht ausgewählt angezeigt werden soll, stellen Sie Kontrollkästchenzuordnung anderer Werte auf Nicht Ausgewählt ein. Sonst führt Andere Werte zu einer Fehlermeldung wergen einem ungültigen Wert.

9	Stellen Sie das Attribut Kontrollkästchenzuordnung anderer Werte im Knoten Funktional so ein, daß angegeben wird, wie das Kontrollkästchen andere Werte handhaben soll.

Das Attribut Kontrollkästchenzuordnung anderer Werte bestimmt, wie das Kontrollkästchen Werte handhabt, die nicht in den Feldern Wert, wenn ausgewählt und Wert, wenn nicht ausgewählt angegeben sind.

•	Wählen Sie Ausgewählt, wenn das Kontrollkästchen ausgewählt sein soll, wenn der Wert auf einen anderen Wert als die Werte eingestellt wird, die in die Felder Wert, wenn ausgewählt und Wert, wenn nicht ausgewählt eingegeben wurden.

•	Wählen Sie Nicht ausgewählt, wenn das Kontrollkästchen nicht ausgewählt sein soll, wenn es sich bei dem Wert um einen anderen Wert als die Werte handelt, die in die Felder Wert, wenn ausgewählt und Wert, wenn nicht ausgewählt eingegeben wurden.

•	Wählen Sie Nicht zulässig, wenn das Kontrollkästchen alle anderen Werte als die Werte als ungültig zurückweisen soll, die in die Felder Wert, wenn ausgewählt und Wert, wenn nicht ausgewählt eingegeben wurden. Wenn ein ungültiger Anderer Wert abgerufen oder dem Kontrollkästchen zugewiesen ist, wird der Datensatz ohne entsprechende Fehlermeldung zurückgewiesen.

Hinweis:  Das Attribut Kontrollkästchenzuordnung anderer Werte gilt nur für Kontrollkästchenwerte, die aus der Datenbank abgerufen oder zur Laufzeit programmgesteuert zugewiesen werden. Wenn Endbenutzer ein Kontrollkästchen ein- oder ausschalten, ist der Wert des Kontrollkästchens entweder der Wert, wenn ausgewählt oder der Wert, wenn nicht ausgewählt - niemals ein Anderer Wert.


Über die Ausgangswerte von Kontrollkästchen

  Verwandte Themen

Sie können einen Ausgangswert für ein Kontrollkästchen in das Attributfeld Ausgangswert eingeben. Der Ausgangswert gibt den Ausgangswert des Objekts an und bestimmt somit, ob das Kontrollkästchen anfänglich ausgewählt oder nicht ausgewählt ist.

Sie müssen einen gültigen Ausgangswert angeben, es sei denn

•	das Attribut Kontrollkästchenzuordnung anderer Werte ist auf Ausgewählt oder Nicht ausgewählt eingestellt, oder

•	der mit Ausgewählt oder Nicht ausgewählt verknüpfte Wert ist Null.

Hinweis:  Der Ausgangswert wird erst zugewiesen, wenn Form Builder einen Datensatz in dem Block erstellt. Ein Kontrollkästchen in einem Null-Datensatz, d.h. einem Datensatz, der noch nicht initialisiert wurde, wird als Nicht ausgewählt angezeigt.


Ausgangswert für Kontrollkästchen angeben

  Verwandte Themen

So geben Sie einen Ausgangswert für ein Kontrollkästchen an:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem Kontrollkästchen, dessen Ausgangswert angegeben werden soll. Dadurch wird die Attributpalette angezeigt.

2	Geben Sie für das Attribut Ausgangswert unter dem Knoten Daten den gewünschten Wert an.


Kontrollkästchen zur Laufzeit manipulieren

  Verwandte Themen

Form Builder enthält Trigger, mit denen Sie auf Schnittstellenereignisse reagieren können, die auftreten, wenn der Endbenutzer ein Kontrollkästchen manipuliert.

Kontrollkästchencode ausführen  Damit ein Kontrollkästchen einen Befehl ausführt oder anstößt, müssen Sie ihm einen When-Checkbox-Changed-Trigger zuordnen, der ausgelöst wird, wenn das Kontrollkästchen ausgewählt wird.

Wenn das Ereignis Checkbox Changed eintritt, d.h. wenn ein Endbenutzer das Kontrollkästchen auswählt, führt Form Builder den Code im When-Checkbox-Changed-Trigger aus.

Kontrollkästchenattribute programmgesteuert festlegen  Sie können Kontrollkästchenattribute programmgesteuert mit den folgenden vordefinierten Unterprogrammen einstellen und einlesen:

•	CONVERT_OTHER_VALUE

•	DISPLAY_ITEM

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


Über Anzeigeobjekte

  Verwandte Themen

Anzeigeobjekte entsprechen Textobjekten, nur werden in Anzeigeobjekten nur abgerufene oder zugewiesene Werte gespeichert und angezeigt. Anzeigeobjekte werden im allgemeinen als Grafik oder als bedingter Text benutzt.

Es wird empfohlen, wenn möglich, Anzeigeobjekte zu benutzen, da diese weniger Speicherplatz als Textobjekte belegen.

Verhalten zur Laufzeit  Endbenutzer können nicht zu Anzeigeobjekten navigieren oder die Werte von Anzeigeobjekten bearbeiten.

Hinweis:  Bei mehrzeiligen Anzeigeobjekten wird der Text nicht automatisch zwischen Zeichen oder Wörtern umbrochen. Mehrzeilige Werte werden nur bei den Zeilenschaltungszeichen umbrochen.


Anzeigeobjekte erstellen

  Verwandte Themen

So erstellen Sie ein Anzeigeobjekt:

1	Klicken Sie im Objektnavigator auf das Plussymbol [image] neben dem gewünschten Blockknoten.

Form Builder blendet den Knoten Datenblöcke ein und zeigt die zugehörigen Unterknoten an.

2	Klicken Sie auf den Knoten Objekte.

3	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

Unter dem Knoten Objekte wird ein neues Objekt mit einem Standardnamen eingefügt.

4	Doppelklicken Sie auf das Objektsymbol neben dem neu erstellten Objekt, um die Attributpalette anzuzeigen.

5	Unter dem Knoten Allgemein geben Sie für das Attribut Objekttyp Anzeigeobjekt an.

6	Unter dem Knoten Physikalisch geben Sie bei dem Attribut Leinwand den Namen der gewünschten Leinwand an.

Hinweis: Um ein Objekt zur Laufzeit anzuzeigen, müssen Sie es einer Leinwand zuweisen.


Über das Formatieren der Werte von Anzeigeobjekten mit Formatmasken

  Verwandte Themen

Sie können einzeilige Anzeigeobjekte mit Formatmasken formatieren. Wenn eine Formatmaske einem Anzeigeobjekt zugewiesen ist, wird jeder abgerufene oder dem Objekt zugewiesene Wert in dem mit der Maske angegebenen Format angezeigt.

Im folgenden Beispiel wird dargestellt, wie sich eine Formatmaske auf einen NUMBER-Wert auswirkt:

Formatmaske	Abgerufener Wert	Angezeigter Wert
$9,999,999.99	3246000	$3,246,000.00

Formatmasken und Datentypen  Eine Formatmaske kann für Anzeigeobjekte mit den folgenden Datentypen angewandt werden:

•	NUMBER

•	DATE und DATETIME

•	CHAR

Die Formatmaske muß mit dem Datentyp des Anzeigeobjekts kompatibel sein.


Formatmasken einem Anzeigeobjekt zuweisen

  Verwandte Themen

So weisen Sie eine Formatmaske einem Anzeigeobjekt zu:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem gewünschten Anzeigeobjekt.

2	Unter dem Knoten Daten geben Sie die Zeichen der Formatmaske direkt in das Attributfeld Formatmaske ein.

3	Prüfen Sie, ob der Datentyp des Anzeigeobjekts wie mit dem Attribut Datentyp (Attributpalette Knoten Daten) mit der Formatmaske kompatibel ist.

4	Prüfen Sie, ob das Attribut Maximale Länge des Anzeigeobjekts so eingestellt ist, daß das Anzeigeobjekt zusätzliche Zeichen speichern kann, die von der Formatmaske eingebettet werden.

Hinweis:  Die Einstellung von NLS-Parametern wirkt sich auf die Standardformate aus.


Formatmaskensymbole für NUMBER-Werte bei Anzeigeobjekten

 Beispiele 	     Verwandte Themen

In der folgenden Tabelle werden die Symbole dargestellt, die am häufigsten in numerischen Formatmasken verwendet werden.

Symbol	Beschreibung
9	Stellt ein numerisches Zeichen dar. Die Anzahl von 9 bestimmt, wie viele Ziffern in dem Textobjekt angezeigt werden können.
0	Zeigt führende Nullen an, sofern vorhanden.
$	Setzt ein Dollarzeichen vor eine Zahl.
B	Zeigt vorangestellte Nullen in Form von Leerstellen an.
MI	Zeigt "-" nach einem negativen Wert an.
PR	Zeigt negative Werte in <spitzen Klammern> an.
,  (Komma)	Zeigt an dieser Stelle nach Bedarf ein Komma an.
. (Dezimal-zeichen)	Zeigt an dieser Stelle ein Dezimalzeichen an.

Eingebettete Zeichen in NUMBER-Werten  Sie können eine Zeichenfolge in einen NUMBER-Wert einbetten, indem Sie sie in der Formatmaske in Anführungszeichen setzen. Eingebettete Zeichen werden im allgemeinen in Werten mit fester Länge benutzt, wie z.B. Standard-Teilenummern und Telefonnummern.

Die folgende Formatmaske bettet Bindestriche in numerische Werte ein:

Formatmaske	Angezeigter Wert
999"-"99"-"9999	566-23-5733

Die Position einer eingebetteten Zeichenfolge ist innerhalb des Anzeigeobjektes fest und ändert sich nicht, je nachdem, wie viele Ziffern in dem gespeicherten Wert vorhanden sind.


Beispiele für Formatmaskensymbole für NUMBER-Werte bei Anzeigeobjekten

Beispiel

In der folgenden Tabelle sehen Sie Beispiele für Formatmasken für NUMBER-Werte:

Formatmaske	Eingegebene Zahl	Ergebnis
999	223.4	223
$9,999.99	3445.34	$3,445.34
999"-"999"-"9999"	4083543957	408-354-3957
99.9	00027.48	27.5
099.9	00027.48	00027.5
B99.9	00027.48	27.5
99.9MI	-24	24.0-
99.99"%"	66.17	66.17%


Formatmaskensymbole für DATE-Werte bei Anzeigeobjekten

 Beispiele 	     Verwandte Themen

In der folgenden Tabelle werden die Symbole dargestellt, die am häufigsten in Datums- und Datums-/Zeitformatmasken verwendet werden.

Symbol	Beschreibung
9	Stellt ein numerisches Zeichen dar. Die Anzahl von 9 bestimmt die Anzahl von Ziffern, die in dem Textobjekt angezeigt werden können.
MM	Monat (01-12).
MON	Name des Monats, 3 Buchstaben umfassende Abkürzung
MONTH	Name des Monats mit Leerstellen auf eine Länge von 9 Zeichen aufgefüllt.
DD	Tag des Monats (1-31)
DY	Name des Tages, 3 Buchstaben umfassende Abkürzung
DAY	Name des Tages, mit Leerzeichen auf eine Länge von 9 Zeichen aufgefüllt
YYYY,YYY, YY, oder Y	Jahr mit 4, 3, 2 oder 1 Ziffern.
TH	Ordnungszahl (z.B. "DDTH" für "15TH").
SP	Ausgeschriebene Zahl (z.B. "DDSP" für "FIFTEEN").
SPTH oder THSP	Ausgeschriebene Ordnungszahl (z.B. "DDSPTH" für "FIFTEENTH")
FM	Präfix, das mit Symbolen wie MONTH und DAY benutzt wird, um das mit diesen Symbolen vorgenommene Auffüllen zu unterdrücken. Unterdrückt außerdem führende Nullen für Zahlensymbole, wie z.B. HH und MM.  FM ist ein Umschalter. Wenn FM zweimal in einem Datumsformatmodell angezeigt wird, wird das Auffüllen mit Leerzeichen und führenden Nullen für Elemente nach dem ersten FM unterdrückt und nach dem zweiten wieder aktiviert.

Eingebettete Zeichen in DATE- und DATETIME-Werten  Um eine Zeichenfolge in eine Datumsformatmaske einzubetten, setzen Sie sie in Anführungszeichen. Leerstellen und Satzzeichen (/ .  , : ' - ) können in eine Datumsformatmaske eingebettet werden, ohne daß sie in Anführungszeichen gesetzt werden müssen.

Zum Beispiel:

Formatmaske	Angezeigter Wert
"Heutiges Datum ist " fmDAY, fmMONTH DDTH	Heutiges Datum ist Tuesday, March 16TH


Formatmaskensymbole für DATE-Werte bei Anzeigeobjekten

Beispiel

In der folgenden Tabelle werden die Symbole dargestellt, die am häufigsten in DATE-Formatmasken verwendet werden.

Formatmaske	Ergebnis
MM/DD/YYYY	03/15/1995
MONTH 15 YYYY	MARCH 15 1995
fmMONTH 15 1995	MARCH 15 1995
Day, "the" DDTH "of" fmMonth	Wednesday, the 15TH of March
J	2449792


Formatmaskensymbole für CHAR-Werte bei Anzeigeobjekten

 Beispiele 	     Verwandte Themen

In der folgenden Tabelle werden die Symbole dargestellt, die am häufigsten in CHAR-Formatmasken verwendet werden.

Symbol	Beschreibung
FM	Füllmodus: Akzeptiert die Zeichenfolge wie eingegeben, keine rechtsbündige Ausrichtung. Läßt zu, daß die Eingabefolge des Endbenutzers kürzer ist als die Formatmaske.
X	Beliebiges alphabetisches, numerisches oder Sonderzeichen. Die Eingabefolge des Endbenutzers muß genau die von der Formatmaske angegebene Länge haben.
9	Nur numerische Zeichen. Die Eingabefolge des Endbenutzers muß genau die von der Formatmaske angegebene Länge haben.
A	Nur alphabetische Zeichen. Die Eingabefolge des Endbenutzers muß genau die von der Formatmaske angegebene Länge haben.


Beispiele für Formatmaskensymbole für CHAR-Werte

Beispiel

Formatmaske	Ergebnis
XXAA	Akzeptiert: --ab, abcd, 11ab; akzeptiert nicht: --11, ab11 oder ab--(XX muß benutzt werden, um Bindestriche und andere Sonderzeichen zu akzeptieren).
XXXX	Akzeptiert eine beliebige Kombination von alphabetischen, numerischen oder Sonderzeichen: --ab, abcd, 11ab, --11, ab11 oder ab--. Akzeptiert 1234 oder abcd; akzeptiert 123 oder abc nicht. (Um eine Eingabefolge zu akzeptieren, die kürzer ist als die Maske, verwenden Sie FMXXXX.)
FMXX99	Akzeptiert ab12, ab1, ab gefolgt von zwei Leerstellen; akzeptiert 12ab oder abcd nicht. (Um den Datentyp Alpha von Form Builder Version 3.0 zu erzeugen, verwenden Sie FMAAAAAA.)


Über Listenobjekte

  Verwandte Themen

Ein Listenobjekt besteht aus einer Liste mit Textelementen, die als Popup-Liste, T-Liste oder als Kombinationsfeld angezeigt werden kann.

In einem Listenobjekt wird eine feste Anzahl von Elementen angezeigt. Jedes Element in einer Liste besteht aus einer Textfolge mit maximal 30 Zeichen. Zur Laufzeit können Sie Listenelemente programmgesteuert auswerten, hinzufügen oder entfernen.

Verhalten zur Laufzeit

Popup-Liste	Das Listenobjekt in Form einer T-Liste wird als rechteckiges Feld angezeigt, in dem eine feste Anzahl von Werten steht. Wenn die T-Liste Werte enthält, die (wegen des anzeigbaren Bereichs des Objekts) nicht angezeigt werden können, wird eine vertikale Bildlaufleiste angezeigt, mit der der Benutzer die nicht sichtbaren Werte anzeigen und auswählen kann.
Kombinationsfeld	Das Listenobjekt in Form eines Kombinationsfeldes kombiniert die Funktionen in Popup-Listen und Textobjekten. In Kombinationsfeldern werden feste Werte angezeigt. Sie können Benutzereingaben akzeptieren
Popup-Liste	Listenobjekte in Form von Popup-Listen werden ursprünglich als ein einzelnes Feld (ähnlich wie ein Feld für ein Textobjekt) angezeigt. Wenn der Endbenutzer das Listensymbol auswählt, wird eine Liste mit verfügbaren Auswahlen angezeigt.

Hinweis: Vom Benutzer eingegebene Werte werden nicht automatisch zu permanenten Einträgen in der Liste.Um diese zu einem Bestandteil der Liste zu machen, verwenden Sie die vordefinierte Prozedur ADD_LIST_ELEMENT.

Das Listenobjekt Kombinationsfeld wird als leeres Feld mit einem Symbol auf der rechten Seite angezeigt. Der Benutzer kann Text direkt in das Kombinationsfeld eingeben oder auf das Kombinationsfeld klicken,  um eine Liste mit verfügbaren Werten anzuzeigen.


Über Werte von Listenobjekten

  Verwandte Themen

Wenn Sie ein Listenobjekt erstellen, müssen Sie mit jedem Element in der Liste einen Datenwert verknüpfen. Wenn ein Endbenutzer ein Element auswählt, ändert sich der Wert des Listenobjekts in den mit diesem Element verknüpften Wert. Wenn ein Wert aus der Datenbank abgerufen oder der Liste programmgesteuert zugeordnet wird, wird das Listenelement, dessen Wert dem abgerufenen oder zugewiesenen Wert entspricht, zum ausgewählten Element in der Liste.

Ein Listenobjekt kann auch einen abgerufenen oder zugewiesenen Wert speichern, bei dem es sich nicht um einen der Werte handelt, die mit einem spezifischen Element in der Liste verknüpft sind. Wenn Sie ein Listenobjekt definieren, müssen Sie angeben, wie diese anderen Werte gehandhabt werden sollen. Hierzu gibt es zwei Möglichkeiten:

•	Geben Sie an, daß das Listenobjekt Andere Werte als Nicht zulässig zurückweist.

•	Geben Sie an, welches Element in der Liste auszuwählen ist, wenn für den Wert des Listenobjekts Anderer Wert gilt.

Hinweis:  Da Listenobjekte von Kombinationsfeldern Endbenutzereingaben akzeptieren, müssen Sie keinen anderen Wert für Listenobjekte von Kombinationsfeldern angeben.

Listenobjekte und Nullwerte Sie können einem beliebigen Listenobjekt (programmgesteuert oder über eine Abfrage) einen Null-Wert zuweisen, unabhängig davon, ob es sich ein Kombinationsfeld, eine Popup-Liste oder eine T-Liste handelt. Dies gilt selbst dann, wenn das Listenobjekt obligatorisch ist, keine anderen Werte zuläßt und kein explizit angegebenes Element mit einem Null-Wert enthält.

In jedem Listenobjekt kann eine Null angezeigt werden, selbst wenn das Listenobjekt kein explizit angegebenes  Element mit einem Null-Wert enthält und keine anderen Werte zuläßt. Wenn ein Null-Wert abgerufen oder einem Listenobjekt zugewiesen wird, ist das Null-Element (leere Element) das gerade ausgewählte Element in der Liste. Das Erscheinungsbild eines Null-Listenobjekts zur Laufzeit hängt vom Anzeigestil ab:

•	Bei einer Popup-Liste wird ein implizites Null-Element temporär in die Liste eingefügt.

•	Bei einer T-Liste wird keines der Elemente hervorgehoben.

•	Bei einem Kombinationsfeld wird kein Text in dem Listenobjekt angezeigt.

Im Abfragemodus können Endbenutzer den Wert eines Listenobjekts auf Null einstellen, wenn der Wert des Listenobjekts nicht in den Abfragekriterien enthalten sein soll:

•	Bei einer Popup-Liste schließen Endbenutzer das Objekt aus, indem sie das Null-Element (leere Element) auswählen.

•	Bei einer T-Liste schließen Endbenutzer das Objekt aus, indem sie die Auswahl des gerade ausgewählten Elements aufheben.

•	Bei einem Kombinationsfeld schließen Endbenutzer das Objekt aus, indem sie das Element leer lassen.

Beachten Sie außerdem, daß der Wert eines Objektes Null ist, wenn der Block noch keine Datensätze enthält. Form Builder erstellt einen Datensatz, wenn zu dem Block navigiert wird.

Selbst wenn Sie einen Ausgangswert für das Listenobjekt definiert haben, indem Sie das Attribut Standard eingestellt haben, wird dieser Wert erst zugewiesen, wenn das Ereignis Datensatz erstellen für den Block eintritt. Sie können die Navigation programmgesteuert mit den vordefinierten Prozeduren wie GO_BLOCK und GO_ITEM erzwingen.

Wenn Sie das Attribut Obligatorisch einer Popup-Liste oder T-Liste einstellen, kann sich dies auf die Werte auswirken, die in der Liste angezeigt werden. Wenn ausgewählt, zeigt eine Instanz einer Popup-Liste einen zusätzlichen Null-Wert an, wenn der aktuelle Wert Null ist oder das effektive Attribut Obligatorisch False ist. Wenn der aktuelle Werte einer Instanz einer T-Liste ausgewählt wird, wird die Auswahl aufgehoben (wobei die T-Liste keine ausgewählten Werte mehr enthält), wenn das effektive Attribut Obligatorisch False ist. Wenn der effektive Wert des Attributs Obligatorisch jedoch True ist, bleibt die Auswahl des aktuellen Wertes der Instanz einer T-Liste wirkungslos. Der Wert bleibt ausgewählt.


Listenobjekte erstellen

  Verwandte Themen

So erstellen Sie ein Listenobjekt:

1	Klicken Sie im Objektnavigator auf das Plussymbol [image] neben dem gewünschten Blockknoten.

Form Builder blendet den Knoten Datenblöcke ein und zeigt die zugehörigen Unterknoten an.

2	Klicken Sie auf den Knoten Objekte.

3	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

Unter dem Knoten Objekte wird ein neues Objekt mit einem Standardnamen eingefügt.

4	Doppelklicken Sie auf das Objektsymbol neben dem neu erstellten Objekt, um die Attributpalette anzuzeigen.

5	Unter dem Knoten Allgemein geben Sie für das Attribut Objekttyp Listenobjekt an.

6	Unter dem Knoten Physikalisch geben Sie bei dem Attribut Leinwand den Namen der gewünschten Leinwand an.

Hinweis: Um ein Objekt zur Laufzeit anzuzeigen, müssen Sie es einer Leinwand zuweisen.

7	Geben Sie den Anzeigestil für die Liste an, indem Sie bei dem Attribut Listenstil (unter dem Knoten Funktional) Popup-Liste, T-Liste oder Kombinationsfeld angeben. Popup-Liste ist der Standardwert.

8	Doppelklicken Sie auf das Attribut Elemente in Liste (ebenfalls unter dem Knoten Funktional), um das Dialogfeld Listenobjekt-Elemente anzuzeigen. Danach geben Sie die Elemente genau so ein, wie sie zur Laufzeit in dem Listenobjekt angezeigt werden sollen.

Tip:  Um ein neues Element in der Liste einzufügen, drücken Sie [Nach-unten-Taste] oder [Element einfügen]. Um ein Element aus der Liste zu entfernen, drücken Sie [Element entfernen].

Hinweis:  Als Alternative zur Definition der Listenobjektwerte beim Entwurf können Sie Listenelemente auch individuell zur Laufzeit hinzufügen, indem Sie die vordefinierten Prozedur ADD_LIST_ELEMENT verwenden. Sie können die Liste auch aus einer Datensatzgruppe zur Laufzeit mit der vordefinierten Prozedur POPULATE_LIST auffüllen. Wenn Sie die Liste aus einer Datensatzgruppe auffüllen, muß die entsprechende Datensatzgruppe die relevanten Werte enthalten, bevor Sie POPULATE_LIST aufrufen. Eine statische Datensatzgruppe enthält schon die entsprechenden Werte. Sonst muß die Gruppe zur Laufzeit mit einer der Prozeduren für Datensatzgruppen aufgefüllt werden.

9	Verknüpfen Sie einen Wert mit jedem Element in der Liste, indem Sie den gewünschten Wert in das Feld Wert Listenobjekt eingeben, danach klicken Sie auf OK.

In dem Feld Wert Listenobjekt wird der Wert angezeigt, der gerade mit dem Element verknüpft ist, das in der Spalte Listenelemente hervorgehoben wird. Die Werte, die Sie jedem Element zuweisen, müssen mit dem Datentyp (CHAR, NUMBER oder DATE) des Listenobjekts kompatibel sein.

Tip:  Um einem Element einen Null-Wert zuzuweisen, lassen Sie das Feld Wert Listenobjekt leer.

Hinweis:  Der Wert für ein Element darf nicht länger sein als die Anzahl von Zeichen, die mit dem Attribut Maximale Länge des Listenobjekts angegeben wurde.

10	10.Sie müssen angeben, wie ein Listenobjekt einen abgerufenen oder zugewiesenen Wert handhaben soll, bei dem es sich nicht um einen der Werte handelt, die mit einem spezifischen Element verknüpft sind. Hierzu machen Sie die entsprechenden Angaben bei dem Attribut Zuordnung anderer Werte unter dem Knoten Funktional:

•	Lassen Sie das Attribut Zuordnung anderer Werte leer, um anzugeben, daß für dieses Objekt keine anderen Werte zulässig sind. Abgefragte Datensätze, die einen Wert enthalten, der mit keinem der Werte übereinstimmt, die mit einem Element in der Liste verknüpft sind, werden ohne entsprechende Meldung zurückgewiesen. Jeder Versuch, einen anderen Wert zuzuweisen, ist unzulässig.

•	Geben Sie einen Wert ein, dessen Auswertung einen der Werte ergibt, die mit einem spezifischen Element verknüpft sind, oder den Namen eines dieser Elemente.

Hinweis:  Das Attribut Zuordnung anderer Werte gilt nur für Listenelementwerte, die aus der Datenbank abgerufen oder programmgesteuert zur Laufzeit zugewiesen werden. Wenn Endbenutzer ein Element auswählen, entspricht der Wert des Listenobjekts immer dem Wert, der mit diesem Element verknüpft ist - niemals einem Anderen Wert.


Über Ausgangswerte von Listenobjekten

  Verwandte Themen

Sie müssen einen gültigen Ausgangswert angeben, es sei denn, a) das Listenobjekt akzeptiert Andere Werte oder b) der mit einem der Listenelemente verknüpfte Wert ist Null.

Hinweis:  Wenn Sie sich darauf verlassen, daß der Ausgangswert den Auswahlstatus der Liste initialisiert, denken Sie daran, daß Ausgangswerte erst zugewiesen werden, wenn Form Builder einen Datensatz in dem Block erstellt.


Ausgangswert für ein Listenobjekt angeben

  Verwandte Themen

So geben Sie einen Ausgangswert für ein Listenobjekt an:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem gewünschten Listenobjekt, um die Attributpalette anzuzeigen.

2	Geben Sie für das Attribut Ausgangswert unter dem Knoten Daten den gewünschten Wert an.


Listenobjekte zur Laufzeit manipulieren

  Verwandte Themen

Form Builder enthält Trigger, mit denen Sie auf Schnittstellenereignisse reagieren können, die eintreten, wenn der Endbenutzer ein Listenobjekt manipuliert.

•	When-List-Activated

•	When-List-Changed

Zur Laufzeit können Sie Elemente in einem Listenobjekt mit den folgenden vordefinierten Unterprogrammen programmgesteuert hinzufügen, entfernen, ändern oder auswählen:

•	ADD_LIST_ELEMENT

•	CONVERT_OTHER_VALUE

•	DELETE_LIST_ELEMENT

•	GET_LIST_ELEMENT_COUNT

•	GET_LIST_ELEMENT_LABEL

•	GET_LIST_ELEMENT_VALUE

•	POPULATE_LIST

•	RETRIEVE_LIST


Über das Hinzufügen von Listenelementen

  Verwandte Themen

Sie können Listenelemente hinzufügen, indem Sie die Elemente einzeln hinzufügen oder ein Listenobjekt mit Werten auffüllen, die in einer Datensatzgruppe enthalten sind.

Sie können Werte mit den folgenden vordefinierten Prozeduren zu einem Listenobjekt hinzufügen:

•	ADD_LIST_ELEMENT

•	POPULATE_LIST


Einzelne Listenelemente hinzufügen

  Verwandte Themen

Um ein einzelnes Element zu einem Listenobjekt hinzuzufügen, benutzen Sie die vordefinierte Prozedur ADD_LIST_ELEMENT.

Wenn Sie ADD_LIST_ELEMENT aufrufen, geben Sie an, welches Listenobjekt das neue Element erhält, indem Sie den Listennamen, den Listenindex, die Beschriftung und den hinzuzufügenden Wert angeben.

In dem folgenden Beispiel wird der Wert "1994" zu dem Listenobjekt namens calender hinzugefügt.

Add_List_Element('calendar',list_index,'1994','1994');


Mehrere Listenelemente hinzufügen

 Beispiele 	  Verwandte Themen

Um die Elemente in dem Listenobjekt vollständig zu ersetzen, verwenden Sie die vordefinierte Prozedur POPULATE_LIST. Dieses Unterprogramm entfernt den Inhalt des aktuellen Listenobjekts und füllt das Listenobjekt dann mit den Werten aus einer Datensatzgruppe auf.

Eine Datensatzgruppe ist eine interne Form Builder-Datenstruktur, die eine Spalten-/Zeilen-Gliederung wie eine Datenbanktabelle hat. Wenn Sie ein Listenobjekt mit Werten aus einer Datensatzgruppe auffüllen, hat dies den Vorteil, daß Datensatzgruppen (Abfrage- und Nicht-Abfragegruppen) dynamisch zur Laufzeit erstellt werden können.

Hinweis:  Um ein Listenobjekt aus einer Datensatzgruppe aufzufüllen, muß die Datensatzgruppe zur Laufzeit erstellt werden und muß zwei Spalten vom Typ CHAR aufweisen. Spalte eins muß die Listenbeschriftungswerte und Spalte zwei die Listenelementwerte enthalten.

Wenn Sie POPULATE_LIST aufrufen, geben Sie an, welches Listenobjekt die Werte der Datensatzgruppe empfängt, indem Sie die Listen-ID und den Namen der Datensatzgruppe angeben.


Beispiele für das Hinzufügen mehrerer Listenelemente

Im folgenden Beispiel wird eine Abfragedatensatzgruppe mit zwei Spalten erstellt und ein Listenobjekt dann mit den Werten aus der Datensatzgruppe aufgefüllt.

DECLARE
    group_id     RecordGroup;
    list_id      Item := Find_Item('list_item1');
    status       NUMBER;
BEGIN
/*
**  Create a two column query record group called
**  product_name.
*/
    group_id := Create_Group_From_Query('product_names','SELECT
       product.name, product.name FROM product');
    status := Populate_Group('product_names');
/*
**  Populate the list item with the values from the
**  product_name record group.
*/
    Populate_List(list_id,group_id);
END;


Listenelemente in einer Datensatzgruppe abrufen und speichern

 Beispiele 	  Verwandte Themen

Um den Inhalt einer Liste in eine Datensatzgruppe abzurufen und zu speichern (d.h. einen "Snapshot" des Inhalts einer Liste anzufertigen), benutzen Sie die vordefinierte Prozedur RETRIEVE_LIST. Wenn Sie den Inhalt eines Listenobjekts speichern, können Sie die Liste mit dem früheren Inhalt wiederherstellen.

Wenn Sie RETRIEVE_LIST aufrufen, geben Sie mit der Listen-ID und der Datensatzgruppen-ID an, welche Liste abgerufen werden soll.

Um den Inhalt einer Liste in eine Datensatzgruppe abzurufen, muß die Datensatzgruppe zwei Spalten vom Typ CHAR aufweisen. Spalte eins muß die Listenbeschriftungswerte und Spalte zwei die Listenelementwerte enthalten.


Beispiele für das Abrufen und Speichern von Listenelementen in einer Datensatzgruppe

Mit dem folgenden Beispiel wird der Inhalt des aktuellen Listenobjekts ('list_item1') in eine Datensatzgruppe (orders) abgerufen, wird eine Abfragedatensatzgruppe mit zwei Spalten (product_names) erstellt und wird das Listenobjekt dann mit den Werten aus der Datensatzgruppe product_names aufgefüllt.

DECLARE
/*
**  Create the two column non-query record group called
**  orders.  This record group will contain the list item
**  values.  Assign its id to the variable, group_id.
*/
    group1_id    RecordGroup;
    group2_id    RecordGroup
    col1_id      GroupColumn;
    col2_id      GroupColumn;
    it_id        Item := Find_Item('list_item1');
    status       NUMBER;

BEGIN
    group1_id := Create_Group('orders');
/*
**  Add two columns to the new group, using group1_id to
**  identify the group and then retrieve the list item values
**  into the record group.
*/
    col1_id := Add_Group_Column(group1_id,'col1',CHAR_COLUMN,50);
    col2_id := Add_Group_Column(group1_id,'col2',CHAR_COLUMN,50);

    Add_Group_Row(group1_id,1);
    Add_Group_Row(group1_id,2);
    Retrieve_List(it_id, 'orders');
/*
**  Create a two column query record group called product_names.
*/
    group2_id := Create_Group_From_Query('product_names','SELECT
        product.name,product.name FROM product');
    status := Populate_Group('product_names');
/*
**  Populate the list item with the values from the
**  product_names record group.
*/
    Populate_List(it_id,'product_names');
END;


Über das Löschen von Listenelementen

  Verwandte Themen

Sie können Listenelemente einzeln löschen oder die Elemente der ganzen Liste löschen.

Mit zwei vordefinierten Unterprogrammen können Sie Elemente aus einem Listenobjekt löschen:

•	CLEAR_LIST

•	DELETE_LIST_ELEMENT

Hinweis:  Löschen Sie ein Listenelement bzw. löschen Sie die Elemente aus einer Liste nicht, wenn für das Attribut Zuordnung anderer Werte des Listenobjekts Nein angegeben wurde und eine Abfrage geöffnet ist. Sonst könnte Form Builder möglicherweise keine Datensätze mehr anzeigen, die schon abgerufen wurden.

Angenommen, ein Listenobjekt enthält die Werte A, B und C, und das Attribut Zuordnung anderer Werte ist auf Nein eingestellt. Außerdem wird davon ausgegangen, daß diese Werte aus der Datenbank abgerufen wurden (eine Abfrage ist geöffnet). Wenn Sie an dieser Stelle ein Listenelement löschen, kommt es zu einem Fehler, weil Form Builder versucht, die vorher abgerufenen Werte (A, B und C) anzuzeigen, dies jedoch nicht kann, weil ein Element gelöscht wurde.

Bevor Sie ein Element löschen, prüfen Sie auf offene Abfragen, und benutzen Sie die vordefinierte Prozedur ABORT_QUERY, um eventuell offene Abfragen zu schließen.


Einzelne Listenelemente löschen

  Verwandte Themen

Um ein bestimmtes Element aus einem Listenobjekt zu löschen, benutzen Sie die vordefinierte Prozedur DELETE_LIST_ELEMENT.

Wenn Sie DELETE_LIST_ELEMENT aufrufen, geben Sie das zu löschende Element mit dem Listennamen bzw. der Listen-ID und dem Listenelementindex an.

Listenelement	Listenindex	Listenwert
1993	1	1993
1994	2	1994
1995	3	1995

Wenn Sie zum Beispiel:

Delete_List_Element('calendar',1);

angeben, wird der Wert '1993' aus dem Listenobjekt gelöscht.


Alle Listenelemente löschen

  Verwandte Themen

Um den Inhalt eines Listenobjekts zu löschen, benutzen Sie die vordefinierte Prozedur CLEAR_LIST. Wenn Sie CLEAR_LIST aufrufen, geben Sie die zu löschende Liste mit der Listen-ID oder dem Namen an.

Bei

Clear_List(list_id);


Über Optionsgruppen

  Verwandte Themen

Eine Optionsgruppe ist ein Oberflächensteuerelement, mit dem eine feste Anzahl von Optionen angezeigt wird, die sich gegenseitig ausschließen. Jede Option wird durch eine einzelne Optionsschaltfläche dargestellt.

Eine Optionsgruppe kann eine beliebige Anzahl von Optionsschaltflächen enthalten. Optionsschaltflächen können unabhängig voneinander skaliert, positioniert und formatiert werden.

Verhalten zur Laufzeit  Endbenutzer wählen eine andere Optionsschaltfläche aus, indem sie mit der Maus klicken oder zu der Schaltfläche navigieren und [Auswählen] drücken. Wenn eine Optionsschaltfläche ausgewählt wird, wird die Auswahl der vorher ausgewählten Optionsschaltfläche in derselben Optionsgruppe rückgängig gemacht. Zur Laufzeit kann immer nur eine Optionsschaltfläche in einer Optionsgruppe ausgewählt sein.


Über Optionsgruppenwerte

  Verwandte Themen

Wenn Sie eine Optionsgruppe erstellen, können Sie mit jeder Optionsschaltfläche in der Gruppe einen bestimmten Datenwert verknüpfen. Wenn ein Endbenutzer eine Optionsschaltfläche auswählt, ändert sich der Wert der Optionsgruppe in den Wert, den Sie mit der ausgewählten Schaltfläche verknüpft haben.

Betrachten Sie z.B. eine Optionsgruppe mit drei Optionsschaltflächen, mit denen Endbenutzer angeben können, welches von drei Kaufhäusern einen Auftrag ausführen soll. Die Beschriftungen der Optionsschaltflächen sind New York, Chicago und San Francisco.

Die mit jeder Optionsschaltfläche verknüpften Werte sind numerische Kaufhaus-IDs:

Beschriftung	Zugehöriger Wert
New York	100
Chicago	200
San Francisco	300

Wenn Sie die Optionsschaltfläche mit der Bezeichung New York auswählen, wird der Wert der Optionsgruppe auf 100 (die Kaufhaus-ID) eingestellt. Wenn der Endbenutzer den Auftrag festschreibt, wird der Wert 100 in die entsprechende Datenbankspalte eingefügt. Wenn ein Wert abgerufen oder der Optionsgruppe zugewiesen wird, wird die Optionsschaltfläche, deren Wert mit dem abgerufenen Wert übereinstimmt, zur ausgewählten Schaltfläche in der Gruppe.

Optionsgruppen und Andere Werte  Eine Optionsgruppe kann einen abgerufenen oder zugewiesenen Wert speichern, bei dem es sich nicht um einen der Werte handelt, die Sie mit einer bestimmten Optionsschaltfläche in der Gruppe verknüpft haben. Wenn Sie eine Optionsgruppe erstellen, müssen Sie angeben, wie diese derartige Andere Werte handhaben soll. Hierzu gibt es zwei Möglichkeiten:

•	Geben Sie an, daß die Zurückweisung von Andere Werte durch das Listenobjekt ungültig ist.

•	Geben Sie an, welches Element in der Liste auszuwählen ist, wenn für den Wert des Listenobjekts Anderer Wert gilt.

Im vorherigen Beispiel konnten Sie angeben, daß die Optionsschaltfläche mit der Beschriftung "New York" die gerade ausgewählte Schaltfläche ist, wenn ein Anderer Wert abgerufen oder der Optionsgruppe zugewiesen wird. In diesem Fall wäre der abgerufene Wert 149 ein Anderer Wert und die Optionsschaltfläche mit der Beschriftung "New York" würde zur momentan ausgewählten Schaltfläche.

Beachten Sie, daß, wenn ein Anderer Wert abgerufen oder einer Optionsgruppe zugewiesen wird, die angegebene Optionsschaltfläche zur momentan ausgewählten Schaltfläche wird, der Wert des Objekts bleibt jedoch der Andere Wert, bis ein neuer Wert abgerufen oder zugewiesen wird bzw. bis der Endbenutzer eine andere Schaltfläche auswählt.


Optionsgruppen erstellen

  Verwandte Themen

Wenn Sie eine Optionsgruppe erstellen, fügen Sie entweder eine neue Optionsgruppe in einen Block ein oder ändern ein bestehendes Objekt, indem Sie den Typ in Optionsgruppe ändern.

Nachdem Sie eine Optionsgruppe erstellt haben, können Sie Beschriftungen von Optionsschaltflächen erstellen, Werte von Optionsschaltflächen angeben, Anzeigeattribute festlegen usw.

So erstellen Sie eine Optionsgruppe mit Optionsschaltflächen:

1	Klicken Sie im Objektnavigator auf das Plussymbol [image] neben dem gewünschten Blockknoten.

Form Builder blendet den Knoten Datenblöcke ein und zeigt die zugehörigen Unterknoten an.

2	Klicken Sie auf den Knoten Objekte.

3	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

Unter dem Knoten Objekte wird ein neues Objekt mit einem Standardnamen eingefügt.

4	Doppelklicken Sie auf das Objektsymbol neben dem neu erstellten Objekt, um die Attributpalette anzuzeigen.

5	Unter dem Knoten Allgemein geben Sie Optionsgruppe bei dem Attribut Objekttyp an.

6	Unter dem Knoten Physikalisch geben Sie bei dem Attribut Leinwand den Namen der gewünschten Leinwand an.

Hinweis: Um ein Objekt zur Laufzeit anzuzeigen, müssen Sie es einer Leinwand zuweisen.

7	Klicken Sie im Objektnavigator auf das Plussymbol [image] neben der neu erstellten Optionsgruppe.

8	Klicken Sie auf den Knoten Optionsfelder.

9	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

Daraufhin wird eine neue Optionsschaltfläche mit einem Standardnamen unter dem Knoten Optionsfelder hinzugefügt.

10	10.Doppelklicken Sie auf das Objektsymbol neben der neu erstellten Optionsschaltfläche, um die Attributpalette anzuzeigen.

11	11.Erstellen Sie eine Beschriftung für die Optionsschaltfläche, indem Sie den gewünschten Text in das Feld Beschriftung unter dem Knoten Funktional eingeben.

12	12.Geben Sie einen Wert für die gerade ausgewählte Optionsschaltfläche in das Feld Optionsschaltflächenwert unter dem Knoten Funktional ein. Die Werte, die Sie jeder Optionsschaltfläche zuweisen, müssen mit dem Datentyp (CHAR, NUMBER oder DATE) der Optionsgruppe kompatibel sein.

Wenn ein Endbenutzer diese Optionsschaltfläche auswählt, stellt Form Builder den Wert des Optionsgruppenobjekts auf den Wert ein, der in das Feld Optionsschaltflächenwert eingegeben wurde. Gleichermaßen wird die aktuelle Optionsschaltfläche zur ausgewählten Schaltfläche in der Gruppe, wenn der in dem Feld Optionsschaltflächenwert angegebene Wert abgerufen oder dem Optionsgruppenobjekt zugewiesen wird.

Tip:  Um einer Optionsschaltfläche einen Null-Wert zuzuweisen, lassen Sie das Feld Optionsschaltflächenwert leer.

Hinweis:  Der Optionsschaltflächenwert darf nicht länger als die Anzahl von Zeichen sein, die mit dem Attribut Maximale Länge für die Optionsgruppe angegeben wurde.

13	13.Geben Sie an, wie die Optionsgruppe abgerufene oder zugewiesene Werte handhaben soll, bei denen es sich nicht um einen der Werte handelt, die mit einer spezifischen Optionsgruppe verbunden sind. Hierzu stellen Sie das Attribut Zuordnung anderer Werte für die Optionsgruppe unter dem Knoten Funktional wie folgt ein:

•	Lassen Sie das Attribut Zuordnung anderer Werte leer, um anzugeben, daß keine anderen Werte für dieses Objekt zulässig sind. Abgefragte Datensätze, die einen Wert enthalten, der nicht mit einem der Schaltflächenwerte übereinstimmt, werden ohne entsprechende Meldung zurückgewiesen. Jeder Versuch, einen Anderen Wert zuzuweisen, ist nicht zulässig.

•	Geben Sie einen Wert ein, dessen Auswertung den Namen einer der Optionsschaltflächen oder den Wert ergibt, der mit einer der Optionsschaltflächen verknüpft ist.

Hinweis:  Das Attribut Zuordnung anderer Werte gilt nur für Optionsgruppenwerte, die aus der Datenbank abgerufen oder zur Laufzeit programmgesteuert zugewiesen werden. Wenn Endbenutzer eine Optionsschaltfläche auswählen, ist der Wert der Optionsgruppe immer der Wert, der mit der ausgewählten Optionsschaltfläche verknüpft ist, und kann niemals ein Anderer Wert sein.

Tip:  Es wird empfohlen, den Endbenutzern visuell deutlich zu machen, welche Optionsschaltflächen Bestandteil derselben Optionsgruppe sind. Hierzu gruppieren Sie Optionsschaltflächen auf einer Leinwand und trennen, falls erforderlich, die Gruppe von anderen Objekten mit Grafikobjekten oder Text.


Über Ausgangswerte von Optionsgruppen

  Verwandte Themen

Sie müssen einen gültigen Ausgangswert angeben, es sei denn

•	für die Optionsgruppe sind andere Werte zulässig, oder

•	der mit einer der Optionsschaltflächen verknüpfte Wert in der Gruppe ist Null.

Hinweis:  Wenn der Ausgangswert den Auswahlstatus der Schaltfläche in der Optionsgruppe initialisieren muß, denken Sie daran, daß der Ausgangswert erst zugewiesen wird, wenn Form Builder einen Datensatz in dem Block erstellt. Eine Optionsgruppe in einem Null-Datensatz, d.h. einem Datensatz, der noch nicht initialisiert wurde, wird ohne ausgewählte Optionsschaltfläche angezeigt.


Ausgangswert für eine Optionsgruppe angeben

  Verwandte Themen

So geben Sie einen Ausgangswert für eine Optionsgruppe an:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben der gewünschten Optionsgruppe, um die Attributpalette anzuzeigen.

2	Geben Sie für das Attribut Ausgangswert unter dem Knoten Daten den gewünschten Wert an.


Optionsgruppen zur Laufzeit manipulieren

  Verwandte Themen

Form Builder verfügt über Trigger, mit denen Sie auf Oberflächenereignisse reagieren können, die auftreten, wenn der Endbenutzer eine Optionsgruppe manipuliert.

Optionsschaltflächencode ausführen  Damit eine Optionsschaltfläche einen Befehl ausführt oder anstößt, müssen Sie der Optionsschaltfläche einen When-Radio-Changed-Trigger zuordnen, der ausgelöst wird, wenn die Optionsschaltfläche ausgewählt wird.

Wenn das Optionsschaltflächen-Ereignis eintritt, d.h. wenn der Endbenutzer die Optionsschaltfläche auswählt, führt Form Builder den Code in dem When-Radio-Changed-Trigger aus.

Attribute von Optionsschaltflächen programmgesteuert einstellen  Sie können Attribute von Optionsschaltflächen programmgesteuert mit den folgenden vordefinierten Prozeduren einstellen und einlesen:

•	CONVERT_OTHER_VALUE

•	DISPLAY_ITEM

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY


Über Textobjekte

  Verwandte Themen

Ein Textobjekt ist ein Oberflächensteuerelement, mit dem Text angezeigt und bearbeitet werden kann. Der Text wird in einem Feld in einem ein- oder mehrzeiligen Format angezeigt.

Verhalten zur Laufzeit  Ein Textobjekt wird als leeres rechteckiges Kästchen oder Container angezeigt. Standardmäßig kann ein Editor aus jedem Textobjekt aufgerufen werden.


Textobjekte erstellen

  Verwandte Themen

So erstellen Sie ein Textobjekt:

1	Klicken Sie im Objektnavigator auf das Plussymbol [image] neben dem gewünschten Blockknoten.

Form Builder blendet den Knoten Datenblöcke ein und zeigt die zugehörigen Unterknoten an.

2	Klicken Sie auf den Knoten Objekte.

3	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

Unter dem Knoten Objekte wird ein neues Objekt mit einem Standardnamen eingefügt.

4	Doppelklicken Sie auf das Objektsymbol neben dem neu erstellten Objekt, um die Attributpalette anzuzeigen.

5	Unter dem Knoten Allgemein geben Sie für das Attribut Objekttyp Textobjekt an. (Dies ist die Standardeinstellung, wenn ein neues Objekt erstellt wird.)

6	Unter dem Knoten Physikalisch geben Sie bei dem Attribut Leinwand den Namen der gewünschten Leinwand an.

Hinweis: Um ein Objekt zur Laufzeit anzuzeigen, müssen Sie es einer Leinwand zuweisen.


Über Datentypen von Textobjekten

  Verwandte Themen

Form Builder unterstützt mehrere Datentypen. Wenn möglich, benutzen Sie die standardmäßigen Form Builder-Datentypen. Diese Datentypen basieren auf den von ORACLE verwendeten Datentypen und bieten bessere Leistung und Anwendungsportabilität.

Form Builder unterstützt die folgenden Standard-Datentypen:

•	CHAR

•	NUMBER

•	DATE

•	DATETIME

•	LONG

Die Datentypen von Form Builder V3 wurden nur aus Gründen der Abwärtskompatibilität aufgenommen. Sie können dieselben Formatierungseigenschaften erhalten, indem Sie die standardmäßigen Form Builder-Datentypen (oben) mit einer Formatmaske und/oder dem Attribut Ausrichtung verwenden. Die Form Builder V3-Datentypen sind:

•	ALPHA

•	EDATE

•	INT (Ganzzahl)

•	JDATE (Julianischer Kalender)

•	MONEY

•	RINT (Ganzzahl rechtsbündig)

•	RMONEY (Währung rechtsbündig)

•	RNUMBER (Zahl rechtsbündig)

•	TIME


Datentyp von Textobjekten ändern

  Verwandte Themen

So ändern Sie den Datentyp eines Textobjekts:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem gewünschten Textobjekt, um die Attributpalette anzuzeigen.

2	Geben Sie unter dem Knoten Daten den gewünschten Datentyp bei dem Attribut Datentyp an.

Der Standarddatentyp für Textobjekte ist Zeichen.


Über einzeilige und mehrzeilige Textobjekte

  Verwandte Themen

Form Builder unterstützt sowohl einzeilige als auch mehrzeilige Textobjekte.

Mit dem Attribut Mehrzeilig (unter dem Knoten Funktional) wird bestimmt, ob ein Textobjekt in einer einzelnen oder in mehreren Textzeilen angezeigt wird. Die Anzahl von Zeichen, die auf eine Zeile passen, wird von der Breite des Textobjekts und der Schriftart bestimmt, die dem Objekt zugewiesen ist. In einem mehrzeiligen Textobjekt werden mehrere Textzeilen gespeichert, indem der Text am Ende einer Zeile auf die nächste Zeile umbrochen wird.

Form Builder verarbeitet eine Zeilenschaltung in einem einzeiligen Textobjekt als ein NEXT_ITEM-Ereignis. Eine Zeilenschaltung in einem mehrzeiligen Textobjekt verschiebt den Cursor an den Anfang der nächsten Zeile.

Tip:  Einzeilige Textobjekte belegen weniger Speicherplatz als mehrzeilige Textobjekte. Benutzen Sie immer ein einzeiliges Textobjekt, es sei denn, die Anwendung erfordert ausdrücklich eine mehrzeilige Funktionalität.

Einzeilige und mehrzeilige Attribute  In der folgenden Tabelle werden die Attribute dargestellt, die für einzeilige oder mehrzeilige Textobjekte spezifisch sind:

Attribut	Einzeilig	Mehrzeilig
Bildlaufleiste	Nein	Ja
Umbruchstil	Nein	Ja
Sicherheit	Ja	Nein
Automatisches Überspringen	Ja	Nein
Formatmaske	Ja	Nein


Textobjekte zu mehrzeiligen Textobjekten machen

  Verwandte Themen

So machen Sie ein Textobjekt zu einem mehrzeiligen Textobjekt:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem gewünschten Textobjekt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Funktional geben Sie für das Attribut Mehrzeilig Ja an.

Tip:  Wenn Sie das Attribut Mehrzeilig auf Ja einstellen, erhält ein Textobjekt die Möglichkeit, mehrere Textzeilen zu speichern, das Objekt wird jedoch nicht automatisch groß genug zur Anzeige mehrerer Zeilen. Sie müssen die Attribute Breite, Höhe, Schriftgrad und Maximale Länge angeben, um zu gewährleisten, daß die gewünschte Anzahl von Zeilen und Zeichen angezeigt wird.

Hinweis:  Der Datentyp eines mehrzeiligen Textobjekts muß Zeichen, Alpha oder Lang sein.


Über den Umbruchstil bei mehrzeiligen Textobjekten

  Verwandte Themen

Sie können verschiedene Umbruchstile für mehrzeilige Textobjekte angeben.

Kein	Kein Textumbruch erfolgt. Text, der die Breite des Feldes überschreitet, wird nicht angezeigt.
Zeichen	Der Text wird nach dem letzten sichtbaren Zeichen umbrochen, und weitere Zeichen werden auf der nächsten Zeile angezeigt.
Wort	Der Text wird bei dem letzten sichtbaren vollständigen Wort umbrochen, und weitere Wörter/Zeichen werden auf der nächsten Zeile angezeigt.


Umbruchstil für mehrzeilige Textobjekte angeben

  Verwandte Themen

So geben Sie den Umbruchstil für mehrzeilige Textobjekte an:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem gewünschten Textobjekt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Funktional geben Sie für das Attribut Umbruchstil Kein, Zeichen oder Wort an.


Über vertikale Bildlaufleisten in mehrzeiligen Textobjekten

  Verwandte Themen

Sie können Bildlaufleisten zu mehrzeiligen Textobjekten hinzufügen. Mit Bildlaufleisten können Endbenutzer bei der Anzeige der Daten von Textobjekten einen Bildlauf nach oben und unten durchführen.

Form Builder zeichnet die Bildlaufleiste innerhalb der Umrandung des Textobjektes. Durch das Hinzufügen einer Bildlaufleiste kann sich also die Anzahl von Zeichen reduzieren, die in das Textobjekt paßt.


Vertikale Bildlaufleiste zu einem mehrzeiligen Bildobjekt hinzufügen

  Verwandte Themen

So fügen Sie eine Bildlaufleiste zu einem mehrzeiligen Textobjekt hinzu:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem gewünschten Textobjekt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Physikalisch geben Sie für das Attribut Vertikale Bildlaufleiste anzeigen Ja an.


Über die maximale Länge von Textobjekten

  Verwandte Themen

Sie können die maximale Anzahl von Zeichen angeben, die in einem Textobjekt oder Anzeigeobjekt gespeichert werden kann. Form Builder setzt die maximale Länge unabhängig von den Attriubten Höhe und Breite des Objekts durch.

In einem einzeiligen Textobjekt kann ein Bildlauf durchgeführt werden, wenn das Textobjekt mehr Zeichen speichern als anzeigen kann. Form Builder nimmt einen horizontalen Bildlauf zu dem Wert in dem Textobjekt vor, während der Benutzer Zeichen eingibt, so daß der Cursor weiterhin sichtbar bleibt.

Die Anzahl von Zeichen, die in einem Textobjekt angezeigt werden können, wird durch eine Kombination von Faktoren bestimmt, einschließlich Breite des Textobjekts, Schriftartattributen und Plattform zur Laufzeit. Möglicherweise müssen Sie etwas experimentieren, um die optimalen Einstellungen für die Attribute Maximale Länge und Größe festzulegen.


Maximale Länge für ein Textobjekt angeben

  Verwandte Themen

So geben Sie die maximale Länge für ein Textobjekt an:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem gewünschten Textobjekt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Daten geben Sie die Höchstzahl von zu speichernden Zeichen in das Feld Maximale Länge ein.

Hinweis:  Wenn es sich bei dem Objekt um ein Basistabellenobjekt handelt, darf das Attribut Maximale Länge nicht größer sein als die Breite der entsprechenden Datenbankspalte.


Über obligatorische Textobjektwerte

  Verwandte Themen

Sie können fordern, daß Endbenutzer einen Wert in ein Textobjekt eingeben, bevor sie aus dem Objekt navigieren.

Form Builder setzt das Attribut Obligatorisch wie folgt durch:

•	Endbenutzer können erst mit [Nächstes Objekt] aus dem Textobjekt navigieren, wenn das Textobjekt einen gültigen Wert enthält.

•	Endbenutzer können den Datensatz erst festschreiben, wenn das obligatorische Textobjekt einen gültigen Wert enthält.


Werte eines Textobjektes zu obligatorischen Werten machen

  Verwandte Themen

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem gewünschten Textobjekt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Daten geben Sie für das Attribut Obligatorisch Ja an.

Hinweis:  Wenn Sie einen Block über die Standard-Blockfunktion erstellen, stellt Form Builder das Attribut Obligatorisch automatisch für jedes Textobjekt auf Ja ein, das mit einer Spalte verbunden ist, die die NOT NULL-Spaltenintegritätsregel aufweist. Im SQL Language Reference Manual finden Sie weitere Informationen über Spaltenintegritätsregeln.


Über Werte mit fester Länge für Textobjekte

  Verwandte Themen

Sie können fordern, daß Endbenutzer eine feste Anzahl von Zeichen in ein Textobjekt eingeben, indem Sie das Attribut Feste Länge unter dem Knoten Daten einstellen. Mit dem Attribut Feste Länge kann die Gültigkeit von Werten gewährleistet werden, die immer dieselbe Anzahl von Zeichen haben, wie z.B. Telefonnummern, Produktnummern, Auftragsnummern usw.


Werte mit fester Länge für ein Textobjekt fordern

  Verwandte Themen

So fordern Sie einen Wert mit fester Länge an:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem gewünschten Textobjekt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Daten geben Sie bei dem Attribut Maximale Länge den gewünschten Wert ein.

3	Geben Sie für das Attribut Feste Länge (auch unter dem Knoten Daten) Ja an.

Wenn für Feste Länge Ja angegeben wurde, ist ein Textobjekt nur gültig, wenn es die Anzahl von Zeichen enthält, die mit dem Attribut Maximale Länge angegeben wurden.

Hinweis:  Form Builder akzeptiert Null-Werte in einem Textobjekt mit fester Länge, vorausgesetzt, für das Textobjekte wurde das Attribut Obligatorisch nicht eingeschaltet.


Über die Angabe eines gültigen Wertebereichs für ein Textobjekt

  Verwandte Themen

Sie können festlegen, daß ein Textobjekt nur Werte innerhalb eines bestimmten Bereichs akzeptiert. Dieser Bereich wird mit den Attributen Höchster zulässiger Wert und Niedrigster zulässiger Wert im Knoten Daten der Attributpalette definiert. Das Objekt akzeptiert alle Werte innerhalb des definierten Bereichs, einschließlich der angegebenen höchsten und niedrigsten Werte. Wenn für Höchster zulässiger Wert oder Niedrigster zulässiger Wert keine Angabe gemacht wird, gibt es keine Ober- oder Untergrenze für den Bereich. Wenn für keines der Attribute Angaben gemacht wurden, gibt es keine Grenzwerte.


Gültige Wertebereiche für ein Textobjekt angeben

  Verwandte Themen

So definieren Sie einen Bereich mit zulässigen Werten:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem gewünschten Textobjekt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Daten geben Sie den niedrigsten gültigen Wert in das Feld Niedrigster zulässiger Wert und den höchsten gültigen Wert in das Feld Höchster zulässiger Wert ein. Beide Attribute stehen in dem Knoten Daten.


Über die Groß- und Kleinschreibung bei Textobjekten

  Verwandte Themen

Form Builder kann einen vom Endbenutzer eingegebenen Wert mit dem Attribut Einschränkung Schreibweise in Groß- oder Kleinbuchstaben umwandeln. Das Attribut Einschränkung Schreibweise gilt nur für Werte, die vom Endbenutzer eingegeben werden. Abgerufene oder zugewiesene Werte werden nicht geändert.

Form Builder setzt das Attribut Einschränkung Schreibweise wie folgt durch:

Einschränkung Schreibweise	Ergebnis
Gemischt	Form Builder zeigt den Text so an, wie er eingegeben wird.
Groß	Form Builder konvertiert Kleinbuchstaben in Großbuchstaben,
Klein	Form Builder konvertiert Großbuchstaben in Kleinbuchstaben.


Textobjekte groß oder klein schreiben

  Verwandte Themen

So legen Sie fest, daß vom Benutzer eingegebener Text groß oder klein geschrieben wird:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem gewünschten Textobjekt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Funktional geben Sie für das Attribut Einschränkung Schreibweise Gemischt, Groß oder Klein an.


Über die Justierung

  Verwandte Themen

In einem Textobjekt angezeigte Daten können auf drei Arten justiert werden: linksbündig, zentriert oder rechtsbündig. Sie können dies im Attributfeld Justierung unter dem Knoten Funktional der Attributpalette angeben.

Hinweis:  Wenn Sie für ein Textobjekt mit Bildlauf eine rechtsbündige oder zentrierte Ausrichtung angeben, kann dies dazu führen, daß angezeigte Werte so ausgerichtet werden, daß sie für den Endbenutzer verborgen sind. Außerdem wird bei einigen Fensterverwaltungsprogrammen zentrierter oder rechtsbündig ausgerichteter Text möglicherweise nicht angezeigt.


Justierung angeben

  Verwandte Themen

So geben Sie die Justierung an:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem gewünschten Textobjekt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Funktional geben Sie für das Attribut Justierung Links, Rechts oder Zentriert an.


Über das Verbergen von Textobjektwerten

  Verwandte Themen

Sie können den Wert verbergen, der in einem einzeiligen Textobjekt gespeichert ist, indem Sie das Objekt als sicheres Objekt bezeichnen. So kann z.B. ein Kennwort-Textobjekt zu einem sicheren Objekt gemacht werden, damit die Eingabe des Endbenutzers nicht auf dem Bildschirm wiedergegeben wird.


Textobjektwerte verbergen

  Verwandte Themen

So verbergen Sie den in ein Textobjekt eingegebenen Wert:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem gewünschten Textobjekt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Funktional geben Sie für das Attribut Daten verbergen Ja an.


Über das automatische Überspringen

  Verwandte Themen

Mit der Funktion Automatisches Überspringen wird die Dateneingabe beschleunigt, da die Endbenutzer nicht mehr explizit von einem einzeiligen Textobjekt zu dem nächsten Objekt in der Navigationssequenz navigieren müssen.

Wenn das Attribut Automatisches Überspringen aktiviert ist, wird der Eingabefokus automatisch zum nächsten navigierbaren Objekt verschoben, wenn der Endbenutzer das letzte Zeichen in dem Wert des Textobjekts eingibt oder ändert.

Form Builder identifiziert das letzte Zeichen in einem Wert aufgrund des Attributs Maximale Länge des Objekts.


Automatisches Überspringen angeben

  Verwandte Themen

So geben Sie das Automatische Überspringen an:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem gewünschten Textobjekt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Funktional geben Sie für das Attribut Automatisches Überspringen Ja an.


Über das Beibehalten der Cursor-Position

  Verwandte Themen

Sie können die Position des Cursors innerhalb eines Textobjekts mit dem Attribut Cursor-Position beibehalten unter dem Knoten Funktional steuern.

Wenn für Cursor-Position beibehalten Ja angegeben wird, setzt Form Builder den Cursor genau an der Stelle in das Textobjekt, an der er stand, als das Textobjekt das letzte Mal den Eingabefokus hatte. (Wenn das Eingabeobjekt den Eingabefokus während der laufenden Sitzung nicht hatte, ist das Attribut Cursor-Position beibehalten wirkungslos.)


Cursor-Position in einem Textobjekt beibehalten

  Verwandte Themen

So behalten Sie die Cursor-Position in einem Textobjekt bei:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem gewünschten Textobjekt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Funktional geben Sie für das Attribut Cursor-Position beibehalten Ja an.


Über das Formatieren von Textobjektwerten mit Formatmasken

  Verwandte Themen

Sie können Zahlen und Datumsangaben in einzeiligen Textobjekten mit Formatmasken formatieren. Wenn eine Formatmaske einem Textobjekt zugewiesen ist, wird ein vom Endbenutzer eingegebener oder ein abgerufener bzw. dem Objekt zugewiesener Wert in dem von der Maske angegebenen Format angezeigt.

Im folgenden Beispiel wird dargestellt, wie sich eine Formatmaske auf einen NUMBER-Wert auswirkt:

Formatmaske	Abgerufener Wert	Angezeigter Wert
$9,999,999.99	3246000	$3,246,000.00

Mit einer Formatmaske können auch Sonderzeichen, wie z.B. Bindestriche und Währungssymbole, automatisch in Werte eingebettet werden, die vom Endbenutzer eingegeben werden.

Formatmasken und Datentypen  Eine Formatmaske kann für Textobjekte mit den folgenden Datentypen angewendet werden:

•	NUMBER

•	DATE

•	DATETIME

•	TIME

Die Formatmaske muß mit dem Datentyp des Textobjekts kompatibel sein. So kann die folgende Formatmaske z.B. nur mit einem Textobjekt vom Typ DATETIME benutzt werden, weil nur dieser Typ sowohl Datums- als auch Zeitinformationen umfaßt, die diese Formatmaske erfordert.

Formatmaske	Angezeigter Wert
DDfmMONTH YYYY HH:MI	12 JUNE 1994 12:32


Formatmasken einem Textobjekt zuweisen

  Verwandte Themen

So weisen Sie einem Textobjekt eine Formatmaske zu:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem gewünschten Textobjekt, um die Attributpalette anzuzeigen.

2	Geben Sie unter dem Knoten Daten die Zeichen der Formatmaske direkt in das Attributfeld Formatmaske ein.

Hinweis:

•	Der Datentyp des Objekts muß mit der Formatmaske kompatibel sein.

•	Das Attribut Maximale Länge für das Textobjekt muß so eingestellt sein, daß das Textobjekt zusätzliche Zeichen speichern kann, die von der Formatmaske eingebettet werden.

•	Die Einstellung von NLS-Parametern wirkt sich auf die Standardformate aus.


Formatmaskensymbole für NUMBER-Werte bei Textobjekten

 Beispiele 	  Verwandte Themen

In der folgenden Tabelle werden die Symbole dargestellt, die am häufigsten in numerischen Formatmasken verwendet werden.

Symbol	Beschreibung
9	Stellt ein numerisches Zeichen dar. Die Anzahl von 9 bestimmt, wie viele Ziffern in dem Textobjekt angezeigt werden können.
0	Zeigt führende Nullen an, sofern vorhanden.
$	Setzt ein Dollarzeichen vor eine Zahl.
B	Zeigt vorangestellte Nullen in Form von Leerstellen an.
MI	Zeigt "-" nach einem negativen Wert an.
PR	Zeigt negative Werte in <spitzen Klammern> an.
,  (Komma)	Zeigt an dieser Stelle nach Bedarf ein Komma an.
. (Dezimal-zeichen)	Zeigt an dieser Stelle ein Dezimalzeichen an.

Eingebettete Zeichen in NUMBER-Werten  Sie können eine Zeichenfolge in einen NUMBER-Wert einbetten, indem Sie sie in der Formatmaske in Anführungszeichen setzen. Eingebettete Zeichen werden im allgemeinen in Werten mit fester Länge benutzt, wie z.B. Standard-Teilenummern und Telefonnummern.

Die folgende Formatmaske bettet Bindestriche in numerische Werte ein:

Formatmaske	Angezeigter Wert
999"-"99"-"9999	566-23-5733

Die Position einer eingebetteten Zeichenfolge ist innerhalb des Textobjektes fest und ändert sich nicht, je nachdem, wie viele Ziffern in dem gespeicherten Wert vorhanden sind.


Beispiele für Formatmaskensymbole für NUMBER-Werte bei Textobjekten

Beispiel

In der folgenden Tabelle sehen Sie Beispiele für Formatmasken für NUMBER-Werte:

Formatmaske	Eingegebene Zahl	Ergebnis
999	223.4	223
$9,999.99	3445.34	$3,445.34
999"-"999"-"9999"	4083543957	408-354-3957
99.9	00027.48	27.5
099.9	00027.48	00027.5
B99.9	00027.48	27.5
99.9MI	-24	24.0-
99.99"%"	66.17	66.17%


Formatmaskensymbole für DATE- und DATETIME-Werte bei Textobjekten

 Beispiele 	  Verwandte Themen

In der folgenden Tabelle werden die Symbole dargestellt, die am häufigsten in Datums-/Zeit-Formatmasken benutzt werden.

Symbol	Beschreibung
9	Stellt ein numerisches Zeichen dar. Die Anzahl von 9 bestimmt die Anzahl von Ziffern, die in dem Textobjekt angezeigt werden können.
MM	Monat (01-12).
MON	Name des Monats, 3 Buchstaben umfassende Abkürzung
MONTH	Name des Monats mit Leerstellen auf eine Länge von 9 Zeichen aufgefüllt.
DD	Tag des Monats (1-31)
DY	Name des Tages, 3 Buchstaben umfassende Abkürzung
DAY	Name des Tages, mit Leerzeichen auf eine Länge von 9 Zeichen aufgefüllt
YYYY,YYY, YY,  oder Y	Jahr mit 4, 3, 2 oder 1 Ziffern.
HH oder HH12	Stunde des Tages (1-12)
HH24	Stunde des Tages (0-23)
MI	Minute (0-59)
SS	Sekunde (0-59)
AM oder A.M. oder PM oder P.M.	Meridian-Indikator
TH	Ordnungszahl (z.B. "DDTH" für "15TH").
SP	Ausgeschriebene Zahl (z.B. "DDSP" für "FIFTEEN").
SPTH oder THSP	Ausgeschriebene Ordnungszahl (z.B. "DDSPTH" für "FIFTEENTH")
FM	Präfix, das mit Symbolen wie MONTH und DAY benutzt wird, um das mit diesen Symbolen vorgenommene Auffüllen zu unterdrücken. Unterdrückt außerdem führende Nullen für Zahlensymbole, wie z.B. HH und MM.  FM ist ein Umschalter. Wenn FM zweimal in einem Datumsformatmodell angezeigt wird, wird das Auffüllen mit Leerzeichen und führenden Nullen für Elemente nach dem ersten FM unterdrückt und nach dem zweiten wieder aktiviert.

Eingebettete Zeichen in DATE-Werten  Um eine Zeichenfolge in eine Datums-/Zeit-Formatmaske einzubetten, setzen Sie sie in doppelte Anführungszeichen. (Hinweis: Sie können doppelte Anführungszeichen selbst nicht als Zeichen in einer Maske einbetten. Anders ausgedrückt, wenn eine Folge wie DD"MM angezeigt werden soll, indem die Maske als DD"""MM codiert wird, kommt es zu unerwarteten Ergebnissen.)

Leerzeichen und Satzzeichen (/ .  , : ' - ) können in einer Datums-/Zeit-Formatmaske eingebettet werden, ohne daß sie in doppelte Anführungszeichen gesetzt werden müssen.

Beispiele:

Formatmaske	Angezeigter Wert
"Heutiges Datum ist " fmDAY, fmMONTH DDTH	Heutiges Datum ist Tuesday, March 16TH


Beispiele für Formatmaskensymbole für DATE- und DATETIME-Werte bei Textobjekten

Beispiel

Die folgende Tabelle enthält Beispiele für Formatmasken für DATE- und DATETIME-Werte:

Formatmaske	Datentyp	Ergebnis
MM/DD/YYYY	DATE	03/15/1995
MONTH 15 YYYY	DATE	MARCH 15 1995
fmMONTH 15 1995	DATE	MARCH 15 1995
Day, "the" DDTH "of" fmMonth	DATE	Wednesday, the 15TH of March
J	DATE	2449792
HH:MI PM	TIME	10:30 PM
HH24:MI	TIME	20:30
MM-DD-YY  HH:MI AM	DATETIME	03-15-95  06:30 AM
fmMM-DD-YY fmHH:MI AM	DATETIME	3-15-95  06:30 AM
fmMonth YY	DATETIME	March 95


Über Formatmasken für Datumsangaben

  Verwandte Themen

Form Builder benutzt eine Formatmaske, um Konvertierungsvorgänge bei Datumsangaben unter verschiedenen Umständen durchzuführen:

•	Wenn ein Datum in eine Zeichenfolge oder eine Zeichenfolge in ein Datum konvertiert werden muß

•	Wenn ein vom Benutzer eingegebenes Datum zur Anzeige in einer Fehlermeldung konvertiert werden muß

Es gibt verschiedene Formatmasken für verschiedene Vorgänge zur Konvertierung von Datumsangaben. Eine Formatmaske, die Sie selbst (mit dem Attribut Format_Mask) erstellen, ist einem bestimmten Objekt zugeordnet. Derartige Masken sind nur vorhanden, wenn Sie diese speziell erstellen. Die anderen von Form Builder benutzten Datumsformatmasken sind allgemeine Masken und werden für alle Datumsobjekte in einer bestimmten Situation benutzt. Diese Universalmasken sind stets vorhanden; Sie können die Einstellungen jedoch steuern.

Die verschiedenen Konvertierungsvorgänge und die Formatmaske, die Form Builder für jeden der Vorgänge benutzt, werden in den beiden folgenden Tabellen dargestellt (Datum-zu-Zeichenfolge und Zeichenfolge-zu-Datum). Die Masken werden im Anschluß an die Tabellen erläutert.

Die Einstellungen all dieser Datumsformatmasken können gesteuert werden. Einige Einstellungen werden beim Entwurf über Attribute festgelegt. Andere können über die Laufzeit-Umgebungsvariablen des Betriebssystems eingestellt werden.

Im allgemeinen wird folgendes empfohlen:

•	Vermeiden Sie, Formatmasken für einzelne Objekte zu erstellen, es sei denn, dies ist unbedingt erforderlich. Form Builder verwendet eine der Universalmasken für Objekte, denen keine eigene Maske zugeordnet ist. Die Universalmasken sind im allgemeinen ausreichend. Durch das Festcodieren individueller Masken wird die Portabilität und Internationalisierung schwierig.

•	Stellen Sie allgemeine Masken aktiv ein und koordinieren Sie deren Werte. Vermeiden Sie Standardwerte, es sei denn, Sie möchten eine Konsistenz mit dem Release 4.5-Verhalten erreichen. (Die Einstellung von Maskenwerten wird im einzelnen unter jeder Maske unten erläutert.)

Vorgänge bei der Konvertierung Datum-zu-Zeichenfolge	Benutzte Formatmaske
Formatierungsvorgänge:
Anzeige eines Wertes in einem Objekt, das eine Formatmaske hat	Formatmaske dieses Objekts
Anzeige eines Wertes in einem Objekt, das keine Formatmaske hat	Ausgabe
Anzeige eines Wertes in einer Datums-Wertelisten-Spalte	Ausgabe
Interne Forms-Vorgänge:
Einlesen von :SYSTEM.CURRENT_DATETIME	Vordefinierte Prozedur
Einlesen von :SYSTEM.EFFECTIVE_DATE	Vordefinierte Prozedur
Festlegen eines CHAR-Rückgabeobjekts aus einer Datums-Wertelisten-Spalte	Vordefinierte Prozedur (siehe Hinweis)
Einstellen des Ausgangswertes eines CHAR-Objekts von $$DATE$$, $$DATETIME$$, $$DBDATE$$ oder $$DBDATETIME$$	Vordefinierte Prozedur (siehe Hinweis)
GET_ITEM_PROPERTY (Objekt, DATABASE_VALUE)	Vordefinierte Prozedur (siehe Hinweis)
GET_ITEM_PROPERTY (Objekt, ITEM_DEFAULT_VALUE)	Vordefinierte Prozedur (siehe Hinweis)
GET_ITEM_PROPERTY (Objekt, RANGE_HIGH/LOW)	Vordefinierte Prozedur (siehe Hinweis)
GET_LIST_ELEMENT_VALUE (Objekt, Wert)	Vordefinierte Prozedur
GET_PARAMETER_ATTR (Liste, Schlüssel, Paramtyp, Wert) für einen beim Entwurf definierten Datumsparameter	Vordefinierte Prozedur
NAME_IN (Variable)	Vordefinierte Prozedur
PL/SQL:
TO_CHAR (Wert, Formatmaske) in PL/SQL	Diese Formatmaske
TO_CHAR (Wert) in PL/SQL	PLSQL
Implizite Konvertierung in PL/SQL	PLSQL
Datenbank-SQL (umfaßt Datenbank-SQL in PL/SQL eingebettet):
TO_CHAR (Wert, Formatmaske) in Datenbank-SQL	Diese Formatmaske
TO_CHAR (Wert) in Datenbank-SQL	Datenbank
Implizite Konvertierung in Datenbank-SQL	Datenbank
Speichern eines von Datenbank-SQL zurückgegebenen Datumswertes in einer Forms CHAR-Variablen	Datenbank
Konvertierung einer Forms-Datumsvariablen, wenn diese in eine CHAR-Spalte eingefügt bzw. mit einer CHAR-Spalte verglichen werden muß	Datenbank
PL/SQL-Debugging:
Anzeige des Wertes eines Objekts oder eines Parameters im Debugger	Vordefinierte Prozedur
Anzeige des Wertes einer lokalen PL/SQL-Variablen im Debugger	PLSQL
Hinweis:

Wenn Sie das Attribut Runtime_Compatibility_Mode für die Form auf 4.5 einstellen, benutzt dieser Konvertierungsvorgang statt dessen die Ausgabe-Formatmaske.

Vorgang bei Konvertierung Zeichenfolge-zu-Datum	Benutzte Formatmaske
Formatierungsvorgänge:
Extrahieren eines Wertes aus einem Objekt, das eine Formatmaske hat	Formatmaske dieses Objekts
Extrahieren eines Wertes aus einem Objekt, das keine Formatmaske hat	Eingabe
Interne Forms-Vorgänge:
Festlegen von :SYSTEM.EFFECTIVE_DATE	Vordefinierte Prozedur
Festlegen eines DATE/DATETIME-Rückgabeobjekts aus einer CHAR-Wertelisten-Spalte	Vordefinierte Prozedur (siehe Hinweis)
Festlegen des Ausgangswertes eines DATE/DATETIME-Objekts aus einer CHAR-Variablen (mit der Doppelpunkt-Schreibweise)	Vordefinierte Prozedur (siehe Hinweis)
ADD_LIST_ELEMENT (Objekt, Index, Beschriftung, Wert)	Vordefinierte Prozedur
SET_PARAMETER_ATTR (Liste, Schlüssel, Paramtyp, Wert) für einen beim Entwurf definierten Datumsparameter	Vordefinierte Prozedur
COPY (Wert, Variable)	Vordefinierte Prozedur
DEFAULT_VALUE (Wert, Variable)	Vordefinierte Prozedur
PL/SQL:
TO_DATE (Wert, Formatmaske)	Diese Formatmaske
TO_DATE (Wert) in PL/SQL	PLSQL
Implizite Konvertierung in PL/SQL	PLSQL
Datenbank-SQL (umfaßt Datenbank-SQL in PL/SQL eingebettet):
TO_DATE (Wert, Formatmaske) in Datenbank-SQL	Diese Formatmaske
TO_DATE (Wert) in Datenbank-SQL	Datenbank
Implizite Konvertierung in Datenbank-SQL	Datenbank
Speichern eines von Datenbank-SQL zurückgegebenen CHAR-Wertes in einer Forms-DATE-Variablen	Datenbank
Konvertierung einer Forms-CHAR-Variablen, wenn diese in eine Datumsspalte eingefügt oder mit einer Datumsspalte verglichen werden muß	Datenbank
PL/SQL-Debugging:
Einstellen des Wertes eines Objekts oder eines Parameters im Debugger	Vordefinierte Prozedur
Einstellen des Wertes einer lokalen PL/SQL-Variablen im Debugger	PLSQL
Hinweis:

Wenn Sie das Attribut Runtime_Compatibility_Mode der Form auf 4.5 einstellen, benutzt dieser Formatierungsvorgang statt dessen die Eingabe-Formatmaske.

Typen von Datumsformatmasken:

Form Builder benutzt die folgenden Datumsformatmasken:

1	Vom Benutzer erstellte Datumsformatmasken für individuelle Objekte

2	PL/SQL-Datumsformatmaske

3	Vordefinierte Datumsformatmaske

4	Datenbank-Datumsformatmaske

5	Eingabe-Datumsformatmaske

6	Ausgabe-Datumsformatmaske

7	Fehler-Datumsformatmaske

1.  Datumsformatmaske für individuelle Objekte

Sie erstellen diese Masken über das Attribut Format_Mask. Wie oben angegeben, vermeiden Sie es, diese individuellen Masken zu erstellen, wenn Universalmasken ausreichen.

2.  PL/SQL-Datumsformatmaske

Diese Maske wird in dem Attribut PLSQL_Date_Format festgelegt. Es wird UNBEDINGT EMPFOHLEN, daß Sie dieses Attribut für neue Anwendungen auf eine Maske einstellen, die vollständige Jahrhundert- und Zeitinformationen enthält. Außerdem wird empfohlen, daß Sie dieselbe Einstellung für die vordefinierte Datumsformatmaske verwenden. (Siehe nachfolgendes Beispiel.)

3.  Vordefinierte Datumsformatmaske

Diese Maske wird in dem Attribut Vordefiniertes Datumsformat festgelegt. Es wird UNBEDINGT EMPFOHLEN, daß Sie dieses Attribut bei neuen Anwendungen auf eine Maske einstellen, die vollständige Jahrhundert- und Zeitinformationen enthält. Außerdem wird empfohlen, daß Sie dieselbe Einstellung für die PL/SQL-Datumsformatmaske verwenden. (Siehe folgendes Beispiel.)

4.  Datenbank-Datumsformatmaske

Jede Datenbanksitzung mit einer Forms-Anwendung verfügt über eine einzige Datenbank-Datumsformatmaske. Diese Maske wird vom Datenbankserver benutzt, um eine Zeichenfolge während der Auswertung einer Abfrage in einen Datumswert zu konvertieren oder umgekehrt.

Ein Standardwert für diese Maske wird mit dem Initialisierungsparameter NLS_DATE_FORMAT (bzw. NLS_LANG oder NLS_TERRITORY) von Oracle Server festgelegt. Dieser Wert kann in allen neuen Datenbanksitzungen für einen bestimmten Client außer Kraft gesetzt werden, indem die Umgebungsvariablen NLS_LANG und NLS_DATE_FORMAT des Client entsprechend eingestellt werden.

Innerhalb einer Forms-Anwendung kann der Maskenwert außerdem von Sitzung zu Sitzung durch Ausgabe von ALTER SESSION außer Kraft gesetzt werden. Dieser Wert kann die Logik einer Anwendung vereinfachen, wenn er auf dieselbe Formatmaske wie die Attribute PLSQL_Date_Format und Builtin_Date_Format der Anwendung eingestellt wird. (Siehe nachfolgendes Beispiel.)

Wenn Sie einen OPEN_FORM-Vorgang ausführen, während die Option SESSION angegeben ist, hat die geöffnete Form eine neue Datenbanksitzung. Deshalb könnten Sie auch die Sitzung ändern.

Beispiel für das Erstellen von PL/SQL-, vordefinierten und Datenbank-Masken

Um diese Masken zu erstellen und zu koordinieren, könnte der PRE-FORM-Trigger in der Ausgangsform der Anwendung folgendes enthalten:

   SET_APPLICATION_PROPERTY(PLSQL_DATE_FORMAT,     'YYYY/MM/DD HH24:MI:SS');

   SET_APPLICATION_PROPERTY(BUILTIN_DATE_FORMAT,   'YYYY/MM/DD HH24:MI:SS');

   FORMS_DDL('ALTER SESSION SET NLS_DATE_FORMAT = ''YYYY/MM/DD HH24:MI:SS''');

5.  Eingabe-Datumsformatmaske

Die Eingabe-Datumsformatmaske (die in Wirklichkeit aus einer Reihe von Masken besteht) wird benutzt, um einen Wert aus einem Objekt zu extrahieren, das keine Formatmaske enthält. Das heißt, mit der Maske wird eine vom Benutzer eingegebene Zeichenfolge in einen eigenen Datumswert konvertiert.

Der Systemadministrator oder Endbenutzer kann die Umgebungsvariablen FORMS60_USER_DATE_FORMAT und FORMS60_USER_DATETIME_FORMAT einstellen, um die Formatmasken anzugeben, mit denen Werte aus Objekten vom Typ DATE bzw. DATETIME extrahiert werden. In jedem Fall können mehrere Formatmasken angegeben werden, durch senkrechte Striche voneinander getrennt. Wenn eine vom Benutzer eingegebene Zeichenfolge konvertiert wird, werden die Formatmasken in der angegebenen Reihenfolge benutzt, bis die Konvertierung erfolgreich abgeschlossen ist oder die Formatmasken erschöpft sind.

Diese Laufzeit-Umgebungsvariablen könnten z.B. folgendermaßen eingestellt werden:

   FORMS60_USER_DATE_FORMAT       FXFMDD-MM-RRRR

   FORMS60_USER_DATETIME_FORMAT   FXFMDD-MM-RRRR HH24:MI:SS|FXFMDD-MM-RRRR HH24:MI

Dadurch würde der Endbenutzer gezwungen, Werte in DATE-Objekte (ohne Formatmaske) in dem Format einzugeben, das mit 31-6-97 dargestellt wird. (Mit RRRR können Jahresangaben zwischen 1950 und 2049 eingegeben werden, ohne daß das Jahrhundert angegeben werden muß.) Bei DATETIME-Objekten könnte der Endbenutzer jedoch Werte in dem Format 31-6-97 13:45:30 oder in dem Format 31-6-97 13:45 eingeben (das als 31-6-97 13:45:00 interpretiert würde).

Wenn eine dieser beiden Laufzeit-Umgebungsvariablen nicht definiert ist, erzeugt Form Builder diese Standardformatmasken wie unten erläutert.

6.  Ausgabe-Datumsformatmaske

Mit der Ausgabe-Datumsformatmaske wird ein Wert in einem Objekt angezeigt, das keine Formatmaske enthält, oder in einer Wertelistenspalte. Es sind zwei derartige Masken vorhanden, eine für DATE-Objekte und Wertelistenspalten und eine für DATETIME-Objekte. (Es gibt keine DATETIME-Wertelisten-Spalten.) Der Systemadministrator oder der Endbenutzer kann die Umgebungsvariablen FORMS60_OUTPUT_DATE_FORMAT und FORMS60_OUTPUT_DATETIME_FORMAT einstellen, um diese Formatmasken explizit anzugeben.

Wenn FORMS60_OUTPUT_DATE_FORMAT nicht definiert ist, FORMS60_USER_DATE_FORMAT hingegen definiert ist, wird die Ausgabe-Datumsformatmaske für DATE-Objekte von FORMS60_USER_DATE_FORMAT abgeleitet, indem die erste Formatmaske (der Wert bis zum ersten senkrechten Strich) benutzt wird und jedes Vorkommen von FX und FM abgeschnitten wird.

Wenn z.B. FORMS60_OUTPUT_DATE_FORMAT nicht definiert ist, FORMS60_USER_DATE_FORMAT hingegen mit FXFMDD-MM-RRRR|FXFM-MON-RRRR definiert ist, ist die Ausgabe-Datumsformatmaske für DATE-Objekte DD-MM-RRRR.

Wenn weder FORMS60_OUTPUT_DATE_FORMAT noch FORMS60_USER_DATE_FORMAT definiert ist, erzeugt Form Builder Standard-Formatmasken, wie unten beschrieben.

Für DATETIME-Objekte gibt es ähnliche Regeln.

7.  Fehler-Datumsformatmaske

Außerdem gibt es eine Fehler-Datumsformatmaske, die Form Builder beim Erzeugen bestimmter Fehlermeldungen benutzt, die ausgegeben werden, wenn ein Endbenutzer einen ungültigen Wert in ein Datumsobjekt eingibt. (Es gibt zwei derartige Masken - eine für DATE-Objekte und eine für DATETIME-Objekte.)

Zum Beispiel:

   FRM-50012: Datum muß in einem Format wie <Fehler-Datumsformat> eingegeben werden.

   FRM-50025: Datum/Zeit muß in einem Format wie <Fehler-Datumzeit-Format> eingegeben werden.

Der Systemadministrator oder Endbenutzer kann die Umgebungsvariablen FORMS60_ERROR_DATE_FORMAT und FORMS60_ERROR_DATETIME_FORMAT einstellen, um diese Formatmasken explizit anzugeben.

Wenn FORMS60_ERROR_DATE_FORMAT nicht definiert ist, FORMS60_USER_DATE_FORMAT hingegen definiert ist, wird die Fehler-Datumsformatmaske für DATE-Objekte einfach als der gesamte Wert FORMS60_USER_DATE_FORMAT, einschließlich senkrechten Strichen angenommen.

Wenn weder FORMS60_ERROR_DATE_FORMAT noch FORMS60_USER_DATE_FORMAT definiert ist, erzeugt Form Builder Standard-Formatmasken, wie unten beschrieben.

Für DATETIME-Objekte gibt es ähnliche Regeln.

Standardwerte für Eingabe-, Ausgabe- und Fehlermasken

Wenn die Laufzeit-Umgebungsvariablen FORMS60_USER_DATE_FORMAT und FORMS60_USER_DATETIME_FORMAT beide nicht eingestellt sind, geben die obigen Regeln nicht alle Eingabe-, Ausgabe- und Fehler-Formatmasken für DATE und DATETIME-Objekte an. Es wird empfohlen, daß diese Umgebungsvariablen beide eingestellt werden. Dadurch wird vermieden, daß komplexe Regeln ins Spiel kommen.

Im allgemeinen weist Form Builder Standardwerte zu, die eine Kompatibilität mit Release 4.5 und früher gewährleisten. Das Verhalten in diesen Releases kann in einigen Fällen etwas variieren, in diesen Fällen wird jedoch das Verhalten in früheren Releases als fehlerhaft betrachtet.

Die folgenden Regeln unterscheiden zwischen DATE2- und DATE4-Objekten (weitere Einzelheiten finden Sie unter Attribut Builtin_Date_Format, mit der zusätzlichen Maßgabe, daß eine Wertelistenspalte, deren Datentyp DATE ist, als DATE2-Objekt betrachtet wird. Beachten Sie, daß es keine DATETIME-Wertelisten-Spalten gibt und daß Wertelistenspalten nicht direkt an vordefinierten Prozeduren teilhaben.

Form Builder beginnt mit der Formatmaske, die von der aktuellen NLS-Umgebung abgeleitet wird. Dies kann explizit angegeben werden, indem die Umgebungsvariable NLS_DATE_FORMAT eingestellt wird. Sonst berechnet NLS eine Standardformatmaske basierend auf der aktuellen Sprache. Diese NLS-Formatmaske wird als "<YY_mask>" bezeichnet.

Als nächstes berechnet Form Builder eine zweite Formatmaske (mit der Bezeichnung "<YYYY_mask>") wie folgt aus <YY_mask> : Wenn <YY_mask> "YY", jedoch nicht "YYYY" enthält, wird <YYYY_mask> auf <YY_mask> eingestellt, wobei jedoch "YY" durch "YYYY" ersetzt wird. Gleichermaßen werden "yy", "RR" oder "rr" durch "yyyy", "RRRR" oder "rrrr" in <YYYY_mask> ersetzt. Sonst wird <YYYY_mask> auf <YY_mask> eingestellt.

Unter Berücksichtigung dessen werden die restlichen nicht angegebenen Eingabe-Formatmasken für DATE2-, DATE4- und DATETIME-Objekte zu:

   DATE2:    FXFM<YY_mask>

   DATE4:    FXFM<YYYY_mask>

   DATETIME: FXFM<YYYY_mask> HH24:MI:SS

             FXFM<YYYY_mask> HH24:MI

Das führende FXFM wird weggelassen, wenn die Formatmaske schon FX oder FM enthält.

Als nächstes werden die Vorkommen von FX und FM von  <YY_mask> und <YYYY_mask> entfernt.

Unter Berücksichtigung dessen werden die verbleibenden nicht angegebenen Ausgabe-Formatmasken zu:

   DATE2:    <YY_mask>

   DATE4:    <YYYY_mask>

   DATETIME: <YYYY_mask> HH24:MI:SS

Schließlich wird für die verbleibenden nicht angegebenen Fehler-Formatmasken das erste Vorkommen (gegebenenfalls) von RR, rr, RRRR oder rrrr in <YY_mask> und <YYYY_mask> durch die entsprechende Anzahl von Y oder y ersetzt.

Unter Berücksichtigung dessen werden die verbleibenden nicht angegebenen Fehler-Formatmasken zu:

   DATE2:    <YY_mask>

   DATE4:    <YYYY_mask>

   DATETIME: <YYYY_mask> HH24:MI[:SS]


Über die Zuweisung von Wertelisten an ein Textobjekt

  Verwandte Themen

Sie können einem Textobjekt mit dem Attribut Werteliste unter dem Knoten Werteliste eine Werteliste zuweisen. Nachdem einem Textobjekt eine Werteliste zugewiesen wurde, können Endbenutzer die Werteliste anzeigen, indem sie [Auflisten] drücken, wenn der Eingabefokus in dem Textobjekt steht.

Wertelisten sind wiederverwendbare Objekte und müssen separat in der Attributpalette definiert werden.


Textobjekten eine Werteliste zuweisen

  Verwandte Themen

So weisen Sie einem Textobjekt eine Werteliste zu:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem Textobjekt, dem Sie die Werteliste zuordnen möchten. Dadurch wird die Attributpalette angezeigt.

2	Unter dem Knoten Werteliste wählen Sie die gewünschte Werteliste aus der Popup-Liste des Attributs Werteliste aus.


Textobjekte zur Laufzeit manipulieren

  Verwandte Themen

Form Builder enthält Trigger, mit denen Sie auf Oberflächenereignisse reagieren können, die eintreten, wenn der Endbenutzer ein Textobjekt manipuliert.

Textobjektcode ausführen  Damit ein Textobjekt einen Befehl ausführen oder auslösen kann, müssen Sie dem Textobjekt einen When-New-Item-Instance-Trigger zuordnen, der ausgelöst wird, wenn der Endbenutzer zu dem Textobjekt navigiert.

Wenn das New-Item-Ereignis eintritt, führt Form Builder den Code im When-New-Item-Instance-Trigger aus.

Attribute von Textobjekten programmgesteuert festlegen  Sie können die Attribute von Textobjekten mit den folgenden vordefinierten Prozeduren programmgesteuert einstellen und einlesen:

•	CONVERT_OTHER_VALUE

•	DISPLAY_ITEM

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


Über JavaBeans
Über das Hinzufügen von JavaBeans

  Verwandte Themen

Sie können die Funktion Ihrer WebForms-Anwendung erweitern, indem Sie JavaBeans hinzufügen.

JavaBeans sind Programmeinheiten, die in Java geschrieben werden und der JavaBean-Spezifikation entsprechen. JavaBeans können in Ihre Anwendung integriert werden, um spezielle Funktionen durchzuführen, die die Möglichkeiten Ihrer Formen ergänzen.

Weitere Informationen über den Wert und die Attribute von JavaBeans finden Sie in der Einführung in Plugin-Java-Komponenten.

Container für Beans bereitstellen

Um das JavaBean richtig in Ihre Anwendung zu integrieren, müssen Sie einen Container dafür bereitstellen. Dieser Container (manchmal auch als Wrapper bezeichnet) muß eine WebForms-definierte Schnittstelle implementierten, die sogenannte IView-Schnittstelle.

Falls das JavaBean während der Laufzeit mit der Form kommuniziert, muß Ihr Container auch die VBean-Klasse erweitern. (In der VBean-Klasse ist die IView-Schnittstelle implementiert.) Mit der Erweiterung der VBean-Klasse kann Ihr Container den CustomListener nutzen und benutzerdefinierte Ereignisse verschicken.

Im Konstruktor des Containers instantiieren Sie das JavaBean. In Ihrem Container können verschiedene Ereignis-Listener implementiert sein, und Sie können den Container als Listener für verschiedene vom JavaBean gehandhabte Ereignisse registrieren. Sie können auch Attribute registrieren und die Attribute in dem Handler festlegen, der an die Methode init()- übergeben wird. Diese Attribute können mit der Form gemeinsam genutzt werden.


JavaBeans hinzufügen
JavaBeans hinzufügen: Übersicht

  Verwandte Themen  [image]  Beispiel

Befolgen Sie die nachstehenden allgemeinen Schritte, um Ihrer WebForms-Anwendung ein JavaBean hinzuzufügen. Für die Form und für die Java-Komponente ist eine spezielle Codierung erforderlich.

In Ihrer Form:

1	Erstellen Sie beim Entwurf Ihrer Form einen Bean-Bereich als Objekt (Attribut Objekttyp). Der Benutzer sieht das JavaBean in diesem Objekt auf der Benutzeroberfläche.

2	Legen Sie in diesem Bean-Bereich-Objekt das Attribut Implementierungsklasse fest, um die Java-Container-/Wrapper-Klasse zu benennen, die Sie für Ihr JavaBean erstellen. (Siehe die nachfolgenden Java-Schritte.)  Dieser Name muß vollständig qualifiziert sein (d.h., oracle.forms.-----). Dieser Name stellt die Hauptverbindung zwischen Ihrer Form und Ihrem JavaBean her.

3	Muß mit dem JavaBean kommuniziert werden, während es läuft, codieren Sie vordefinierte Prozedur Set_Custom_Property und den When-Custom-Item-Event-Trigger in Ihrer Form, um Informationen zu senden und zu empfangen.

In Ihrer Java-Komponente:

1	Schreiben Sie eine Container-/Wrapper-Klasse für Ihr JavaBean. (Diese allgemeine Aufgabe können Sie mit dem JDeveloper durchführen.) Genauer:
a)  Lassen Sie VBean von Ihrer Container-Klasse erweitern. Eine VBean-Klassendatei ist im Lieferumfang des WebForms-Produktpakets enthalten. VBean implementiert die IView-Schnittstelle und erweitert LWContainer.
b)  Implementieren Sie Ihre Ereignis-Listener.
c)  Registrieren Sie Ihre benutzerdefinierten Attribute. Auf diese Attribute kann dann in der Form mit denselben Namen zugegriffen werden.
d) Implementieren Sie Handler, um alle Ereignisse zu handhaben, die von der Form empfangen werden.
e)  Legen Sie die Attribute im Handler fest, der an die Methode init() übergeben wird.
f)  Richten Sie gegebenenfalls das Verschicken von benutzerdefinierten Ereignissen ein, die mit der Form kommunizieren werden.

2	Kompilieren Sie die in Schritt 1 geschriebene Container-/Wrapper-Klasse. Der Compiler sollte sich auf demselben ClassPath befinden wie die WebForms Java-Komponenten und auf das Java-Verzeichnis oder auf die WebForms JAR-Datei verweisen.

3	Speichern Sie das JavaBean und seine Klasse, so daß der WebServer diese zur Laufzeit finden kann. In der Regel ist es effizienter, diese auf dem Server anstatt auf dem Benutzer-Client zu speichern. Das WebForms-Applet-Codebasisverzeichnis wird zuerst durchsucht, gefolgt vom ClassPath des Servers.


Mit JavaBeans kommunizieren

  Verwandte Themen  [image]  Beispiel

Kommunikationsmechanismen

Zur Laufzeit erfolgt die Kommunikation zwischen der Form und dem Container des JavaBean über die folgenden Elemente:

•	Ein Java-CustomListener und CustomEvents

•	Die Systemvariablen System.Custom_Item_Event und System.Custom_Item_Event_Parameters

•	Die in der Form enthaltene vordefinierte Prozedur Set_Custom_Property

•	Der When-Custom-Item-Event-Trigger in der Form

CustomListener und CustomEvents

Die Form beinhaltet eine CustomListener-Schnittstelle und eine damit verknüpfte CustomEvent-Klasse. Während der Initiierung zur Laufzeit registriert der Handler der Form einen CustomListener mit dem JavaBean-Container/Wrapper. Anschließend kommuniziert der JavaBean-Container/Wrapper mit der Form, indem er über diesen CustomListener benutzerdefinierte Ereignisse an sie sendet. Dies entspricht dem standardmäßigen AWT-Ereignismechanismus. (Ihr Container/Wrapper muß eine Erweiterung von VBean darstellen, die den CustomListener und CustomEvents liefert.)

public interface CustomListener extends EventListener {

    public void customActionPerformed(CustomEvent event);

}

public class CustomEvent extends java.util.EventObject {

    public CustomEvent(Object source, ID name);

    public string getName();

}

Attribute registrieren und festlegen

Damit Elemente im Container/Wrapper in der Form bekannt sind, müssen sie registriert werden. Sie registrieren Ihre Ereignisse, Attribute und Methoden in Ihrem Container durch Aufruf von ID.registerProperty.

Wenn Ereignisse, Attribute und Methoden im Container registriert wurden, können Sie an diesen Namen in der Form erkannt werden und kann auf sie zugegriffen werden.

Nachfolgend finden Sie ein Beispiel für eine Ereignisregistrierung:

     private static final ID MOUSEPRESSED = ID.registerProperty(„MousePressed“);

Der When-Custom-Item-Event-Trigger

Dieser Trigger wird in der Form während der Laufzeit zum Empfangen von Steuerbefehlen und Informationen vom JavaBean-Container verwendet. Forms registriert einen CustomListener mit jedem Bean-Container, den es registriert. Wenn der Container während der Laufzeit ein benutzerdefiniertes Ereignis verschickt, wird der Listener automatisch aktiviert, und er löst den verknüpften When_Custom_Item_Event-Trigger in der Form aus. Das CustomEvent enthält den Ereignisnamen in seiner PropertyID.

Wenn der When-Custom-Item-Event-Trigger in der Form aktiviert wird, kann er auf den Namen des Ereignisses von der Systemvariablen System.Custom_Item_Event zugreifen. Der Trigger kann auch auf Attribute zugreifen, die seit der letzten Ausführung des Triggers festgelegt wurden. Das System sammelt diese in der Systemvariablen System.Custom_Item_Event_Parameters. Es löscht diese Variable, wenn der Trigger beendet wird.

Gehen Sie beispielsweise von folgendem Ereigniscode im Container/Wrapper aus:

     public void mousePressed(MouseEvent event)

     {

        Integer xobj = new Integer(event.getX());

        Integer yobj = new Integer(event.getY());

        try

        {

            mHandler.setProperty(X_POS, xobj);

            mHandler.setProperty(Y_POS, yobj);

        }

        CustomEvent ce = new CustomEvent(mHandler, MOUSEPRESSED);

        dispatchCustomEvent(ce);

     }

Dieses Ereignis mousePressed könnte in der Form in einem When-Custom-Item-Event-Trigger wie folgt gehandhabt werden:

BeanValListHdl := get_parameter_list(:SYSTEM.Custom_Item_Event_Parameters);	EventName      := :SYSTEM.Custom_Item_Event;

:event_name    := EventName;

if (EventName = 'MousePressed') then

       .

       .

Auf benutzerdefinierte JavaBean-Attribute kann in der Form nur aus diesem Trigger zugegriffen werden. Der Client sendet keine benutzerdefinierten Attribute an den Server, bis das benutzerdefinierte Ereignis verschickt wurde. Diese Attribute können jedoch vom Client aufgerufen werden, wenn die Methode getProperty des Bean-Containers diese unterstützt.

Die vordefinierte Prozedur Set_Custom_Property

Sie können registrierte Attribute des JavaBean aus einem Forms-Trigger festlegen, indem Sie die vordefinierte Prozedur Set_Custom_Property aufrufen. Durch den Aufruf dieser vordefinierten Prozeduren wird setProperty() im entsprechenden JavaBean-Container aufgerufen. Die vordefinierte Prozedur übergibt einen Werteparameter vom Typ String, Integer oder Boolean. (Ist der in der vordefinierten Prozedur übergebene Name nicht im JavaBean-Container registriert, wird die vordefinierte Prozedur erfolglos beendet.)


Über das Hinzufügen benutzerdefinierter Benutzeroberflächenelemente

  Verwandte Themen

Anstatt die im Lieferumfang von WebForms enthaltenen Komponenten in der Benutzeroberfläche Ihrer Anwendung zu verwenden, können Sie Ihre eigenen benutzerdefinierten Komponenten benutzen. So könnten Sie beispielsweise eine ovalförmige Schaltfläche anstelle der standardmäßigen rechteckigen Schaltflächen von Forms verwenden.

Die folgenden Benutzeroberflächenelemente (d.h., Steuerelementtypen) können ersetzt werden:

•	Kontrollkästchen

•	Listenobjekt (eine Kombination aus Kombinationsfeld, T-Liste und Popup-Liste)

•	Schaltfläche (Standard und Symbolform)

•	Optionsgruppe

•	Textobjekt (eine Kombination aus mehrzeiligem Textbereich und Textfeld)

Die standardmäßigen Benutzeroberflächenkomponenten implementieren die IView-Schnittstelle von WebForm. Mit der Erstellung Ihrer eigenen Klasse für Ihre benutzerdefinierte Benutzeroberflächenkomponente, die diese Schnittstelle implementiert, kann Ihre benutzerdefinierte Komponente anstelle der Standardkomponente verwendet werden und in Ihre Forms-Anwendung integriert werden.


Benutzerdefinierte Benutzeroberflächenelemente hinzufügen

  Verwandte Themen   [image]  Beispiele

Es gibt verschiedene Möglichkeiten, die Benutzeroberfläche mit Java anzupassen:

•	Erweitern einer standardmäßigen im Lieferumfang von WebForms enthaltenen Klasse

•	Erweitern einer Nicht-WebForms-Klasse

•	Erstellen einer Containerklasse

•	Erstellen eines neuen Oberflächenelementtyps

Jeder Anpassungstyp umfaßt andere Schritte. Diese sind nachfolgend erläutert:

So erweitern Sie eine vorhandene Forms-Klasse:

1	Erstellen Sie Ihre eigene Implementierung, indem Sie eine der im Lieferumfang von Forms enthaltenen bestehenden Benutzeroberflächenklassen erweitern. Hiermit entsteht Ihre eigene neue Klasse. (Die im Lieferumfang von Forms enthaltenen Klassen sind nachfolgend aufgeführt.)

2	Setzen Sie gegebenenfalls die Methoden setProperty() und/oder getProperty() zur Handhabung von Attributen außer Kraft.

3	Speichern Sie Ihre Klasse in der Forms-Codebasis.

4	Identifizieren Sie Ihre Klasse im  Attribut Implementierungsklasse des Benutzeroberflächenelements in Ihrer Form.

So erweitern Sie eine Nicht-WebForms-Klasse

1	Erstellen Sie eine neue Klasse, indem Sie eine andere Klasse erweitern, lassen Sie jedoch die IView-Schnittstelle implementieren. (Die zu erweiternde Klasse kann eine Klasse aus JFL oder eine Klasse eines anderen Herstellers sein.)

2	Nehmen Sie die Methoden getProperty und setProperty auf. Diese müssen die Attribute handhaben, die Forms normalerweise für diese Benutzeroberflächenelement-Klasse angibt.

3	Speichern Sie die Klasse in der Forms-Codebasis.

4	Identifizieren Sie die Klasse im Attribut Implementierungsklasse des Benutzeroberflächenelements in Ihrer Form.

So erstellen Sie eine Containerklasse:

1	Erstellen Sie eine Containerklasse, die die IView-Schnittstelle implementiert.

2	Erstellen Sie Ihr neues Benutzeroberflächenelement in diesem Container.

3	Schreiben Sie eigene Methoden getProperty und setProperty, um die Attribute zu handhaben, so daß die entsprechenden Methoden für die Komponente aufgerufen werden.

4	Vergewissern Sie sich, daß der Benutzeroberflächenkomponente Listener hinzugefügt werden, um Benutzeraktionen an der Oberflächenkomponente zu überwachen.

5	Identifizieren Sie die Klasse im Attribut Implementierungsklasse des Benutzeroberflächenelements in Ihrer Form.

So erstellen Sie einen neuen Oberflächenelementtyp:

1	Erstellen Sie Ihre eigene Klasse für den neuen Elementtyp.

2	Implementieren Sie die IView-Schnittstelle in der neuen Klasse.

3	Implementieren Sie alle von der Klasse benötigten Methoden.

4	Identifizieren Sie die Klasse im Attribut Implementierungsklasse des Benutzeroberflächenelements in Ihrer Form.

Im Lieferumfang von Forms enthaltene Klassen für Benutzeroberflächenelemente

Nachfolgend sind die im Lieferumfang von Forms enthaltenen Klassendefinitionen für Benutzeroberflächenelemente aufgeführt:

•	VButton

•	VCheckbox

•	VComboBox

•	Vimage

•	VPopList

•	VRadioButton

•	VTextArea

•	VTextField

•	VTList

Oracle Look-and-Feel

Um das durch die Gestaltung der Oberflächenkomponente definierte Oracle Look-and-Feel zu erhalten (z.B. abgerundete Schaltflächen), fügen Sie <param name = "LookAndFeel" value = "Oracle"> und <param name = "LookAndFeel" value = "ColorScheme"> zur HTML-Datei hinzu.


Benutzerdefinierte Benutzeroberflächenelemente hinzufügen: Beispiele

Beispiel 1: Vorhandene Forms-Klassen erweitern

import oracle.forms.ui.VButton;

import oracle.ewt.button.PushButton;

public class      SingleButton

       extends    VButton

{

    public SingleButton()

    {

        super();

        setLeftmost(true);

        setRightmost(true);

    }

}

Beispiel 2:  Neue Klassen durch Erweitern einer anderen Klasse erstellen

package oracle.forms.jfcplug;

import com.sun.java.swing.*;

import com.sun.java.swing.border.*;

import com.sun.java.swing.event.*;

import java.awt.*;

import java.awt.event.*;

import java.util.EventListener;

import oracle.forms.handler.IHandler;

import oracle.forms.properties.ID;

import oracle.forms.ui.IView;

public class       VJCheckBox

       extends     JCheckBox

       implements  IView

{

    /* Instance counter used to generate default names */

    private static int   sInstanceCounter;

    /* Helper class to handle the IView interface */

    private IHandler     mHandler;

    private int          mInstance;

    /**

    ** Constructs a new JCheckBox.

    */

    public VJCheckBox()

    {

        super();

        mInstance = sInstanceCounter++;

    }

    /**

    ** Implementation of IView interface

    **

    ** @param handler - message handler associated with this view.

    ** @see IView

    */

    public void init(IHandler handler)

    {

        mHandler = handler;

    }

    /**

    ** Implementation of IView interface

    **

    ** @see IView

    */

    public void destroy()

    {

    }

    /**

    ** Implementation of IView interface

    **

    ** @param id - property id

    ** @return the value of the property id

    ** @see IView

    */

    public Object getProperty(ID id)

    {

        switch  ( id.toID() )

        {

           case ID.INDEX_BOUNDS:

               return getBounds();

           case ID.INDEX_ENABLED:

               return isEnabled() ? Boolean.TRUE : Boolean.FALSE;

           case ID.INDEX_LANGUAGE_DIRECTION:

               return mDirection;

           case ID.INDEX_LOCATION:

               return getLocation();

           case ID.INDEX_SIZE:

               return getSize();

           case ID.INDEX_VISIBLE:

               return isVisible() ? Boolean.TRUE : Boolean.FALSE;

           case ID.INDEX_UI_PARENT:

               return getParent();

            case ID.INDEX_LABEL:

                return getText();

            case ID.INDEX_VALUE:

                return isSelected() ? Boolean.TRUE : Boolean.FALSE;

            default:

                return null;

        }

    }

    /**

    ** Implementation of IView interface

    **

    ** @param id    - property to be set.

    ** @param value - value of the property id.

    ** @return      - true(if the property could be set), false otherwise.

    ** @see IView

    */

    public boolean setProperty(ID id, Object value)

    {

        switch  ( id.toID() )

        {

            case ID.INDEX_BACKGROUND:

               Color bgColor = (Color) value;

               setBackground(bgColor);

               return true;

            case ID.INDEX_ENABLED:

               setEnabled(toBoolean(value));

               return true;

            case ID.INDEX_FOCUS:

               // Only settable to true:-)

               if ( value == Boolean.TRUE )

               {

                   cp.requestFocus();

               }

               return true;

            case ID.INDEX_FONT:

               setFont((Font) value);

               return true;

            case ID.INDEX_FOREGROUND:

               Color fgColor = (Color) value;

               setForeground(fgColor);

               return true;

            case ID.INDEX_LANGUAGE_DIRECTION:

               // Adjust the alignment to conform to the new lang direction

               // setDirection((LanguageDirection)value);

               return true;

            case ID.INDEX_LOCATION:

               setLocation((Point) value);

               return true;

            case ID.INDEX_SIZE:

               Point pt = (Point) value;

               setSize(pt.x, pt.y);

               return true;

            case ID.INDEX_VISIBLE:

               setVisible(((Boolean)value).booleanValue());

               return true;

            case ID.INDEX_LABEL:

                setText((String)value);

                return true;

            case ID.INDEX_VALUE:

                setSelected(((Boolean)value).booleanValue());

                return true;

            default:

                return false;

        }

    }

    /**

    ** Implementation of IView interface

    **

    ** @param type     - Class type of the listener.

    ** @param listener - Listener object.

    ** @see IView

    */

    public void addListener(Class type, EventListener listener)

    {

        if ( type == FocusListener.class )

        {

            addFocusListener((FocusListener) listener);

        }

        else if ( type == KeyListener.class )

        {

            addKeyListener((KeyListener) listener);

        }

        else if ( type == MouseListener.class )

        {

            addMouseListener((MouseListener) listener);

        }

        else if ( type == MouseMotionListener.class )

        {

            addMouseMotionListener((MouseMotionListener) listener);

        }

        else if ( type == ItemListener.class )

        {

            addItemListener((ItemListener) listener);

        }

    }

    /**

    ** Implementation of IView interface

    **

    ** @param type     - Class type of the listener.

    ** @param listener - Listener object.

    ** @see IView

    */

    public void removeListener(Class type, EventListener listener)

    {

        if ( type == FocusListener.class )

        {

            removeFocusListener((FocusListener) listener);

        }

        else if ( type == KeyListener.class )

        {

            removeKeyListener((KeyListener) listener);

        }

        else if ( type == MouseListener.class )

        {

            removeMouseListener((MouseListener) listener);

        }

        else if ( type == MouseMotionListener.class )

        {

            removeMouseMotionListener((MouseMotionListener) listener);

        }

        else if ( type == ItemListener.class )

        {

            removeItemListener((ItemListener) listener);

            return;

        }

    }

    /**

    ** Implementation of IView interface

    **

    ** @param child - Object to be added( or inserted in Lists, Choice)

    ** @param index - The position of insertion. For add's, this is -1.

    ** @see IView

    */

    public void add(Object child, int index)

    {

        // Not supported

    }

    /**

    ** Implementation of IView interface

    **

    ** @child -  Element to be deleted from the list.

    ** @see IView

    */

    public void remove(Object child)

    {

        // Not supported

    }

    /**

    ** Implementation of IView interface

    */

    public void removeAll()

    {

        // Not supported

    }

    /**

    ** Implement getDefaultName() to return a default name of

    ** the form <ClassName># where # is the instance number

    ** of the CheckBox

    */

    protected String getDefaultName()

    {

        return getClass().getName() + mInstance;

    }

}


Die IView-Schnittstelle

  Verwandte Themen

Um ein JavaBean oder eine benutzerdefinierte Version eines Benutzeroberflächenelements zu erstellen, das mit Ihrer WebForms-Anwendung läuft, müssen Sie eine View-Klasse bereitstellen, das heißt, eine Java-Klasse, die die IView-Schnittstelle implementiert und die die für diese View spezifischen Attribute und Listener unterstützt.

Die mitgelieferte VBean-Klasse erweitert die IView-Schnittstelle. Wenn Sie also einen JavaBean-Container erstellen, der eine Erweiterung von VBean darstellt, erhalten Sie automatisch die IView-Schnittstelle.

Eine Klasse, in die IView implementiert ist, muß über einen Konstruktor verfügen, der keine Argumente erfordert.

Inhalt der IView-Schnittstelle:

public interface IView

{

   public void init (IHandler handler);

   public void destroy ();

   public Object getProperty(ID id);

   public boolean setProperty (ID id, Object value);

   public void addListener (Class type, EventListener listener);

   public void removeListener (Class type, EventListener listener);

   public void paint (Graphics g);

   public void repaint (Rectangle r);

   public void add (Object child, int index);

   public void remove (Object child);

   public void removeAll ();

   public boolean contains (int x, int y);

}

Funktionelle Details der IView-Schnittstelle:

public void init (IHandler-Handler)

Der Handler ruft diese Methode unmittelbar auf, nachdem das WebForms-Applet das Objekt erzeugt. Die Methode übergibt dem View-Objekt eine Referenz auf dessen Handler und gibt ihm eine Möglichkeit, die Initialisierung durchzuführen.

public void destroy ( )

Das WebForms-Applet ruft diese Methode auf, um das Objekt zu eliminieren. Die Methode gibt Systemressourcen frei, die das Objekt hält.

public Object getProperty (ID id)

Diese Methode gibt den Wert des angeforderten Attributs zurück (identifiziert durch ID). Das View-Objekt muß die Attribute unterstützen, die dem Typ entsprechen (siehe unten). Wenn dieses Objekt das angegebene Attribut nicht unterstützt, gibt die Methode ein Nullobjekt zurück.

public boolean setProperty (ID id, Object value)

Diese Methode bestimmt den Wert des angeforderten Attributs (identifiziert durch ID). Das View-Objekt muß die Attribute unterstützen, die dem Typ entsprechen (siehe Attribute und Listener). Wenn dieses Objekt das angegebene Attribut nicht unterstützt, gibt die Methode FALSE zurück. Ansonsten wird TRUE zurückgegeben.

public void addListener (Class-Typ, EventListener-Listener)

Diese Methode fügt einen Listener des angegebenen Namens und Typs zum View-Objekt hinzu. Das View-Objekt muß die dem Typ entsprechenden Listener unterstützten (siehe Attribute und Listener).

public void removeListener (Class-Typ, EventListener-Listener)

Diese Methode entfernt den angegebenen Listener aus dem View-Objekt.

public void paint (Graphics g)

Der Handler ruft diese Methode auf, um das View-Objekt grafisch darzustellen, wobei das angegebene AWT Graphics-Objekt benutzt wird.

public void repaint (Rectangle r)

Diese Methode macht das angegebene Rechteck ungültig und zeichnet es neu. Wenn das Rechteck null ist, macht die Methode das ganze Objekt ungültig und zeichnet es neu.

public void add (Object child, int index)

Diese Methode fügt das angegebene untergeordnete Objekt diesem Objekt hinzu. Es wird an der vom Index angegebenen Position hinzugefügt. Um das untergeordnete Objekt am Ende des Index hinzuzufügen, geben Sie einen Index von -1 an.

public void remove(Object child)

Diese Methode entfernt das angegebene untergeordnete Objekt aus diesem Objekt.

public void removeAll ()

Diese Methode entfernt alle untergeordneten Objekte des Objekts.

public boolean contains (int x, int y)

Diese Methode gibt den Wert TRUE zurück, wenn sich der angegebene Punkt (x, y) im Auswahlbereich der Komponente befindet. Andernfalls gibt Sie FALSE zurück.


Für Klassen von Benutzeroberflächenkomponenten erforderliche Attribute und Listener

  Verwandte Themen

Alle Benutzeroberflächenkomponenten benutzen die FView-Schnittstelle, allerdings haben unterschiedliche Typen von Oberflächenelementen unterschiedliche Gruppen von Attributen und stellen Listener für unterschiedliche Ereignisse bereit. In diesem Abschnitt werden die verschiedenen Typen von Oberflächenelementen und die Attribute und Listener aufgeführt, die jeweils unterstützt werden müssen.

Oberflächenkomponenten und Listener werden vererbt. Für alle hier aufgeführten Oberflächenelemente werden in einem Inherited Requirements-Objekt die Anforderungen für das Oberflächenelement aufgeführt, das in der Vererbungshierarchie darüber steht. Für das Kombinationsfeldelement sind beispielsweise Popup-Listen-Attribute und Listener als Inherited Requirements aufgeführt. Kombinationsfelder müssen daher auch die vererbten Anforderungen von Popup-Listen enthalten (das heißt, die gängigen Attribute (Common Properties) und Listener). Zur Erinnerung, alle Komponenten benötigen die gängigen Attribute (Common Properties) und Listener.

Die aufgeführten Attribute beinhalten den Namen, den Typ und die Anforderungen der einzelnen Oberflächenelemente. Jedes Attribut muß in den Methoden getProperty() und/oder setProperty() der IView-Schnittstelle gehandhabt werden, entsprechend den Anforderungen des Attributs. Die abrufbare Anforderung entspricht getProperty(), und die einstellbare Anforderung entspricht setProperty().

Beispiele: Das Attribut BACKGROUND (in den gängigen Attributen) ist sowohl abrufbar als auch einstellbar. BACKGROUND sollte somit in den Methoden getProperty() und setProperty() gehandhabt werden. Das Attribut UI_PARENT (in den gängigen Attributen) ist nur abrufbar. UI_PARENT sollte also ausschließlich in der Methode getProperty() gehandhabt werden.

Sofern nicht anders angegeben, sind Listener Bestandteil des Abstract Windowing Toolkit (AWT) von Javasoft. Dokumentation ist bei Javasoft erhältlich. Die Namen benutzen die standardmäßige Java-Terminologie.

Zur Darstellung von Textschaltflächen und Symbolschaltflächen wird dieselbe Klasse verwendet.

Gängige Attribute und Listener

Erforderliche Attribute und Listener für alle Oberflächenelemente:

Attribute	Typ	Anforderungen
BACKGROUND	Farbe	Abrufbar, einstellbar
BGPATTERN	Bild	Abrufbar, einstellbar
BOUNDS	Rechteck	Abrufbar, einstellbar
ENABLED	Boolesch	Abrufbar, einstellbar
FOCUS	Boolesch	Abrufbar, einstellbar
FONT	Schrift	Abrufbar, einstellbar
FOREGROUND	Farbe	Abrufbar, einstellbar
LANGUAGE_DIRECTION	Sprachrichtung (statische Instanzen sind LEFT_TO_RIGHT, RIGHT_TO_LEFT, oder DEFAULT)	Abrufbar, einstellbar
LOCATION	Punkt	Abrufbar, einstellbar
MNEMONIC	Zeichen	Abrufbar, einstellbar
SIZE	Punkt	Abrufbar, einstellbar
UI_PARENT	Container	Abrufbar
VISIBLE	Boolesch	Abrufbar, einstellbar
Listener
FocusListener
KeyListener
MouseListener
MouseMotionListener
Vererbte Anforderungen
Keine
Attribute und Listener für Bean-Bereiche

Erforderliche Attribute und Listener:

Attribute	Typ	Anforderungen
BORDER_BEVEL	Randdarstellung (statische Instanzen sind PLAIN, RAISED, LOWERED oder NONE)	Abrufbar, einstellbar
Listener
CustomListener
Vererbte Anforderungen
Alle gängigen Attribute und Listener aufnehmen
Schaltflächen

Erforderliche Attribute und Listener:

Attribute	Typ	Anforderungen
IMAGE	Bild	Abrufbar, einstellbar
IS_DEFAULT	Boolesch	Abrufbar, einstellbar
LABEL	Zeichenfolge
Listener
ActionListener
Vererbte Anforderungen
Alle gängigen Attribute und Listener aufnehmen
Kontrollkästchen

Erforderliche Attribute und Listener:

Attribute	Typ	Anforderungen
LABEL	Zeichenfolge	Abrufbar, einstellbar
VALUE	Boolesch	Abrufbar, einstellbar
Listener
ItemListener
Vererbte Anforderungen
Alle gängigen Attribute und Listener aufnehmen
Kombinationsfelder

Erforderliche Attribute und Listener:

Attribute	Typ	Anforderungen
CASE_FOLD	Beschränkung Groß - Klein	Abrufbar, einstellbar
MAX_LENGTH	Ganzzahl	Abrufbar, einstellbar
SELECT	Ganzzahl	Einstellbar
USERTEXT	Zeichenfolge	Abrufbar
Listener
SelectionListener
TextListener
Vererbte Anforderungen
Alle Attribute und Listener von Popup-Listen aufnehmen
Bilder

Erforderliche Attribute und Listener:

Attribute	Typ	Anforderungen
BORDER_BEVEL	Randdarstellung (statische Instanzen sind PLAIN, RAISED, LOWERED oder NONE)	Abrufbar, einstellbar
CANVAS_ORIGIN	Punkt	Abrufbar, einstellbar
SCALE	Ganzzahl	Abrufbar, einstellbar
SCROLL_POSITION	Punkt	Abrufbar
SCROLL_STYLE	Richtlinie zum Rollen von Bildern (statische Instanzen sind PLAIN, RAISED, LOWERED oder NONE)	Abrufbar, einstellbar
VALUE	Bild	Abrufbar, einstellbar
VIEWPORT_SIZE	Maße	Abrufbar
Listener
(keine neuen Listener)
Vererbte Anforderungen
Alle gängigen Attribute und Listener aufnehmen
Popup-Listen

Erforderliche Attribute und Listener:

Attribute	Typ	Anforderungen
COUNT	Ganzzahl	Abrufbar
SELECT	Ganzzahl	Einstellbar
SELECTEDINDEX	Ganzzahl	Abrufbar
Listener
DropDownListener
ItemListener
Vererbte Anforderungen
Alle gängigen Attribute und Listener aufnehmen
Optionsschaltflächen

Erforderliche Attribute und Listener:

Attribute	Typ	Anforderungen
GROUPLEADER	Boolesch	Abrufbar, einstellbar
LABEL	Zeichenfolge	Abrufbar, einstellbar
LOCALSTATE	Boolesch	Abrufbar
RADIOGROUP	Iview	Abrufbar
VALUE	Boolesch	Abrufbar, einstellbar
Listener
ItemListener
Vererbte Anforderungen
Alle gängigen Attribute und Listener aufnehmen
Attribute und Listener für mehrzeilige und standardmäßige TEdits (Textkomponente)

Erforderliche Attribute und Listener:

Attribute	Typ	Anforderungen
ALIGNMENT	Ausrichtung (statische Instanzen sind START, RIGHT, LEFT, CENTER oder END)	Abrufbar, einstellbar
BORDER_BEVEL	Randdarstellung (statische Instanzen sind PLAIN, RAISED, LOWERED oder NONE)	Abrufbar, einstellbar
CAN_TAKE_FOCUS	Boolesch	Abrufbar, einstellbar
CASE_FOLD	Beschränkung Groß - Klein (statische Instanzen sind UPPERCASE, LOWERCASE oder NONE)	Abrufbar, einstellbar
CURSOR_POSITION	Ganzzahl	Abrufbar, einstellbar
EDITABLE	Boolesch	Abrufbar, einstellbar
MAX_LENGTH	Ganzzahl	Abrufbar, einstellbar
SELECTION	Punkt	Abrufbar, einstellbar
VALUE	Zeichenfolge	Abrufbar, einstellbar
Listener
TextListener
Vererbte Anforderungen
Alle gängigen Attribute und Listener aufnehmen
Attribute und Listener für mehrzeilige TEdits (Textbereich)

Erforderliche Attribute und Listener:

Attribute	Typ	Anforderungen
VSBARPOLICY	Boolesch	Abrufbar, einstellbar
WRAP_STYLE	Umbruchstil (statische Instanzen sind CHARACTER, WORD oder NONE)	Abrufbar, einstellbar
Listener
(keine neuen Listener)
Vererbte Anforderungen
Alle Attribute und Listener von Textkomponenten aufnehmen
Einzeilige TEdits (Textfeld)

Erforderliche Attribute und Listener:

Attribute	Typ	Anforderungen
SECURE	Boolesch	Abrufbar, einstellbar
Listener
(keine neuen Listener)
Vererbte Anforderungen

Alle Attribute und Listener von Textkomponenten aufnehmen

T-Listen

Erforderliche Attribute und Listener:

Attribute	Typ	Anforderungen
COUNT	Ganzzahl	Abrufbar
DESELECT	Ganzzahl	Einstellbar
MAKEVISIBLE	Ganzzahl	Einstellbar
SELECT	Ganzzahl	Einstellbar
SELECTEDINDEX	Ganzzahl	Abrufbar
Listener
ActionListener
ItemListener
Vererbte Anforderungen
Alle gängigen Attribute und Listener aufnehmen


JavaBeans und benutzerdefinierte Steuerelemente aufnehmen: Beispiel

  Verwandte Themen

Im nachfolgenden Beispiel ist dargestellt, wie ein JavaBean in einer Forms-Anwendung integriert werden kann. Dieses betreffende JavaBean (mit der Bezeichnung sunw.demo.juggler.Juggler) ist eine animierte Grafik, deren Animationsgeschwindigkeit vom Benutzer mit einer Reihe von Steuerelementen in der Anzeige eingestellt werden kann.

In der Form

In der Form erstellen Sie einen Bean-Bereich und lassen dann von seinem Attribut Implementierungsklasse die Implementierungsklasse identifizieren, die der definierende Container oder Wrapper für das JavaBean ist. In diesem Beispiel wird der Bean-Bereich mit JUGGLER_BEAN bezeichnet, und der vollständige Implementierungsklassenname lautet oracle.forms.pjc.demo.JugglerWrapper.

Die Form enthält darüber hinaus verschiedene Steuerungselemente für den Benutzer: eine Schaltfläche für Statisch/Neustart, Schaltflächen zum Angeben von schneller und langsamer für die Animationsgeschwindigkeit sowie ein Schieberegler für die Geschwindigkeitssteuerung. (Dieser Schieberegler wird von einem eigenständigen JavaBean und JavaBean-Wrapper implementiert.)

Durch die Verwendung von PL/SQL-basierten Triggern und vordefinierten Prozeduren in der Form werden in diesem Beispiel die in den Wrapper-Klassen definierten Argumente festgelegt. Mit der Registrierung der Ereignisse, Methoden und Attribute des eigentlichen JavaBean als Attribute der Wrapper-Klasse kann das JavaBean programmgesteuert einfach durch Festlegen des entsprechenden Attributs im Wrapper gesteuert werden. In der Form wird auf die Attribute des JavaBean mit der vordefinierten Prozedur SET_CUSTOM_PROPERTY zugegriffen. JavaBean-Ereignisse werden mit dem When-Custom-Item-Event-Trigger erfaßt.

Die Objekte und zugeordneten Trigger können in der Objektnavigator-Ansicht der Form eingesehen werden:

Der Container/Wrapper für das Juggler-JavaBean

Zur Erinnerung, damit ein JavaBean während der Laufzeit mit einer Form kommunizieren kann, muß die Klassendefinition des Wrapper eine Erweiterung der VBean-Klasse darstellen. Die VBean-Klassendefinition wird als Bestandteil des WebForms-Produktpakets geliefert. (VBean stellt auch eine Erweiterung von IView dar.)

package oracle.forms.pjc.demo;

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

import java.beans.*;

import oracle.forms.properties.ID;

import oracle.forms.handler.IHandler;

import oracle.forms.ui.CustomEvent;

import oracle.forms.ui.VBean;

public class      JugglerWrapper

       extends    VBean

       implements MouseListener

{

    private Component    mComp;

    private IHandler     mHandler;

// Java Bean EVENTS registered as properties of 'wrapper' implementation class

   private static final ID MOUSEPRESSED = ID.registerProperty("MousePressed");

   private static final ID MOUSEENTERED = ID.registerProperty("MouseEntered");

   private static final ID MOUSEEXITED  = ID.registerProperty("MouseExited");

// Java Bean PROPERTIES registered as properties of 'wrapper' implementation

// class

   private static final ID X_POS      = ID.registerProperty("MouseX");

   private static final ID Y_POS      = ID.registerProperty("MouseY");

   private static final ID ARATE      = ID.registerProperty("AnimationRate");

// Java Bean METHODS registered as properties of 'wrapper' implementation class

   private static final ID STOP       = ID.registerProperty("StopJuggling");

   private static final ID START      = ID.registerProperty("StartJuggling");

   private static final ID SETRATE    = ID.registerProperty("SetAnimationRate");

   private static final ID GETRATE    = ID.registerProperty("GetAnimationRate");

    public JugglerWrapper()

    {

        super();

        try

        {

            ClassLoader cl = getClass().getClassLoader();

            Object obj = Beans.instantiate(cl, "sunw.demo.juggler.Juggler");

            mComp = (Component) obj;

            mComp.setVisible(true);

            mComp.setEnabled(true);

            add("Center", mComp);

            if ( mComp instanceof Applet )

            {

                Applet apl = (Applet) Beans.getInstanceOf(mComp, Applet.class);

                apl.start();

            }

        }

        catch ( Exception e )

        {

        }

    }

    public void init(IHandler    handler)

    {

        super.init(handler);

        mHandler = handler;

        mComp.addMouseListener(this);

    }

    public void destroy()

    {

        if ( mComp instanceof Applet )

        {

            Applet apl = (Applet) Beans.getInstanceOf(mComp, Applet.class);

            apl.destroy();

            apl.stop();

        }

    }

    public boolean setProperty(ID pid, Object value)

    {

    if ( pid == STOP )

        {

            if ( ((Integer)value).intValue() == 1)

            {

              ((sunw.demo.juggler.Juggler)mComp).stopJuggling();

            }

            return true;

        }

        else if ( pid == START )

        {

            if ( ((Integer)value).intValue() == 1)

            {

              ((sunw.demo.juggler.Juggler)mComp).startJuggling();

            }

            return true;

        }

        else if ( pid == SETRATE )

        {

            ((sunw.demo.juggler.Juggler)mComp).setAnimationRate(

                                                 ((Integer)value).intValue());

             return true;

        }

    return super.setProperty(pid, value);

    }

    public void mouseClicked(MouseEvent event)

    {

    }

    public void mouseEntered(MouseEvent event)

    {

        CustomEvent ce = new CustomEvent(mHandler, MOUSEENTERED);

        dispatchCustomEvent(ce);

    }

    public void mouseExited(MouseEvent event)

    {

        CustomEvent ce = new CustomEvent(mHandler, MOUSEEXITED);

        dispatchCustomEvent(ce);

    }

    public void mousePressed(MouseEvent event)

    {

        Integer xobj = new Integer(event.getX());

        Integer yobj = new Integer(event.getY());

        try

        {

            mHandler.setProperty(Y_POS, yobj);

            mHandler.setProperty(X_POS, xobj);

        }

        catch (Exception e)

        {

        }

        CustomEvent ce = new CustomEvent(mHandler, MOUSEPRESSED);

        dispatchCustomEvent(ce);

    }

    public void mouseReleased(MouseEvent event)

    {

    }

}

Informationen vom JavaBean über den When-Custom-Item-Event-Trigger empfangen

In diesem Beispiel ist in der Form ein When-Custom-Item-Event-Trigger mit dem Bean-Bereich für das Juggler-Bean verknüpft. Wenn der Container/Wrapper dieses JavaBeans ein benutzerdefiniertes Ereignis verschickt, wird dieser Trigger ausgeführt. Der Trigger ruft die PL/SQL-Prozedur Juggler_event_trap auf (nachfolgend dargestellt):

Beachten Sie, daß die Prozedur in der Form in den Feldern System.Custom_Item_Event und System.Custom_Item_Event_Parameters nach dem Ereignisnamen und den Werten sucht, die im Container/Wrapper festgelegt wurden.

Beachten Sie auch, daß der Ereignisname und die X- und Y-Koordinatenwerte der Maus, der beziehungsweise die übergeben werden, registrierte Attribute im Container/Wrapper sind.

PROCEDURE Juggler_event_trap IS

  BeanHdl        Item;

BeanValListHdl ParamList;

paramType      Number;

EventName      VarChar2(20);

CurrentValue   number(4);

XPos           Number(4);

YPos           Number(4);

Begin

BeanValListHdl := get_parameter_list(:SYSTEM.Custom_Item_Event_Parameters);	EventName      := :SYSTEM.Custom_Item_Event;

:event_name    := EventName;

if (EventName = 'MousePressed') then

   get_parameter_attr(BeanValListHdl,'MouseX',ParamType, CurrentValue);

   XPos := CurrentValue;

   get_parameter_attr(BeanValListHdl,'MouseY',ParamType, CurrentValue);

   YPos := CurrentValue;

   MsgBox('If you click at '||to_Char(XPos)||'/'||to_Char(YPos)||' again I may drop these beans');

  end if;

End;

JavaBean-Schieberegler

In diesem Beispiel enthält die Benutzeroberfläche der Form auch Steuerungselemente, mit denen der Benutzer die Animationsgeschwindigkeit des Juggler-JavaBeans einstellen kann.

Eines dieser Steuerelemente ist ein Bean-Bereich mit dem Namen EWT_SLIDER. Das vollständige Attribut Implementierungsklasse lautet oracle.forms.pjc.demo.EwtSliderWrapper. Hierbei handelt es sich um den nachstehend aufgeführten Container/Wrapper:

/**

** Simple JavaBean Wrapper. It allows the EWT Slider control component to be

** embedded within the form. The slider allows the end user to control the juggler bean's animation speed.

*/

package oracle.forms.pjc.demo;

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

import java.beans.*;

import oracle.ewt.slider.Slider;

import oracle.ewt.meter.BoundedRangeModelImpl;

import oracle.forms.properties.ID;

import oracle.forms.handler.IHandler;

import oracle.forms.ui.CustomEvent;

import oracle.forms.ui.VBean;

public class      EwtSliderWrapper

       extends    VBean

       implements PropertyChangeListener

{

    private Component             mComponent;

    private IHandler              mHandler;

    private BoundedRangeModelImpl mSliderRange;

    // Java Bean EVENTS registered as properties of 'wrapper' implementation class

    private static final ID VALUECHANGED = ID.registerProperty("ValueChanged");

    // Java Bean PROPERTIES registered as properties of 'wrapper' implementation

    // class

    private static final ID VALUE           = ID.registerProperty("Value");

    private static final ID MAXVALUE        = ID.registerProperty("MaxValue");

    private static final ID MINVALUE        = ID.registerProperty("MinValue");

    // Java Bean METHODS registered as properties of 'wrapper' implementation class

    private static final ID SETVALUE        = ID.registerProperty("SetValue");

    private static final ID GETVALUE        = ID.registerProperty("GetValue");

    private static final ID GETMAXVALUE     = ID.registerProperty("GetMaximum");

    private static final ID GETMINVALUE     = ID.registerProperty("GetMinimum");

    public void init(IHandler    handler)

    {

        super.init(handler);

        mHandler    = handler;

        mSliderRange = new BoundedRangeModelImpl(0,300,125);

        mComponent  = new Slider(mSliderRange);

        mSliderRange.addPropertyChangeListener(this);

        mComponent.setEnabled(true);

        add("Center", mComponent);

    }

    public boolean setProperty(ID pid, Object value)

    {

        return super.setProperty(pid, value);

    }

   public void propertyChange(PropertyChangeEvent event)

    {

         String PropName = event.getPropertyName();

         if (PropName.equals("value"))

         {

           Integer SliderValue = new Integer(mSliderRange.getValue());

           try

           {

           mHandler.setProperty(VALUE, SliderValue);

           }

           catch (Exception e)

           {

           }

           CustomEvent ce = new CustomEvent(mHandler, VALUECHANGED);

           dispatchCustomEvent(ce);

         }

    }

}

In der Form ist ein When-Custom-Item-Event-Trigger mit dem Bean-Bereich-Objekt EWT_Slider verknüpft. Wenn der Benutzer den Schieberegler auf der Anzeige verschiebt, erfährt der voranstehende JavaBean-Container dies durch seinen PropertyChangeListener. Der Container verschickt ein benutzerdefiniertes Ereignis, wodurch der Trigger in der Form ausgelöst wird. Der Trigger führt die folgende PL/SQL-Prozedur mit der Bezeichnung Slider_Event_Trap aus.

Nachdem diese Prozedur die geänderten Werte aus System.Custom_Item_Event_Parameters übernommen hat, verwendet sie die vordefinierte Prozedur Set_Custom_Property, um diese geänderten Werte an das Juggler-JavaBean zu übergeben.

PROCEDURE Slider_Event_Trap IS

  BeanHdl          Item;

BeanValListHdl   ParamList;

paramType        Number;

EventName        VarChar2(20);

CurrentValue     Number(4);

NewAnimationRate Number(4);

Begin

-- Update data items and Display fields with current radius information

BeanValListHdl := get_parameter_list(:SYSTEM.Custom_Item_Event_Parameters);

EventName      := :SYSTEM.Custom_Item_Event;

:event_name    := EventName;

if (EventName = 'ValueChanged') then

   get_parameter_attr(BeanValListHdl,'Value',ParamType, CurrentValue);

   NewAnimationRate := (300 - CurrentValue);

   :Animation_Rate  := NewAnimationRate;

     set_custom_property('Juggler_Bean', ALL_ROWS, 'SetAnimationRate', NewAnimationRate);

elsif (EventName = 'mouseReleased') then

   get_parameter_attr(BeanValListHdl,'Value',ParamType, CurrentValue);

     set_custom_property('Juggler_Bean', ALL_ROWS, 'SetAnimationRate', CurrentValue);

  end if;

End;

Sonstige Java-Schaltflächen in der Form

Die Form beinhaltet auch verschiedene benutzerdefinierte Benutzeroberflächenkomponenten. Diese werden durch die Erweiterung der vorhandenen VButton-Klasse von Forms erstellt wie folgt:

/**

** Here, the 'Oracle Look & Feel' buttons are enhanced by subclassing the

** standard EWT PushButton Class and calling one of the available methods.

**

** Use of both setLeftmost() & setRightmost() function causes the Left & Right

** edges of the button to be rounded (allows for the creation of a stand-alone

** rounded style button)

*/

import oracle.forms.ui.VButton;

import oracle.ewt.button.PushButton;

public class      SingleButton

       extends    VButton

{

    public SingleButton()

    {

        super();

        setLeftmost(true);

        setRightmost(true);

    }

}

/**

** Here, the 'Oracle Look & Feel' buttons are enhanced by subclassing the

** standard EWT PushButton Class and calling one of the available methods.

**

** Use of the setLeftmost() function causes the left edge of the button to be

** rounded (for use at the left end of a group of buttons)

*/

import oracle.forms.ui.VButton;

import oracle.ewt.button.PushButton;

public class       LeftButton

       extends     VButton

{

    public LeftButton()

    {

        super();

        setLeftmost(true);

    }

}

(The RightButton definition, which is similar to the above LeftButton, is not shown here.)

Sonstige Java-bezogene Trigger in der Form

Die Form enthält auch verschiedene When-Button-Pressed-Trigger. Der folgende When-Button-Pressed-Trigger ist beispielsweise mit der Start-Stop-Steuerobjektschaltfläche in der Form verknüpft. Mit dieser Schaltfläche wird die folgende Prozedur ausgeführt, die die animierte Aktivität der Juggler-Anzeige statisch schaltet oder neu startet.

Beachten Sie, daß die Attribute StartJuggling und StopJuggling, auf die in den vordefinierten Prozeduren Set_Custom_Property verwiesen wird, auch registrierte Attribute im Container/Wrapper für das Juggler-JavaBean sind.

PROCEDURE Start_Stop_Juggling IS

BtnHdl    Item;

BtnLabel  VarChar2(10);

BeanHdl   Item;

BEGIN

BtnHdl := find_item('START_STOP_BTN');

if NOT id_null(BtnHdl) then

   BtnLabel := get_item_property(BtnHdl, LABEL);

   BeanHdl  := find_item('JUGGLER_BEAN');

   if NOT id_Null(BeanHdl) then

      if BtnLabel = 'Start Me!' then

         set_custom_property(BeanHdl, ALL_ROWS, 'StartJuggling', 1);

         set_item_property       (BtnHdl, LABEL,           'Stop Me!');

        elsif BtnLabel = 'Stop Me!' then

         set_custom_property(BeanHdl, ALL_ROWS, 'StopJuggling', 1);

         set_item_property       (BtnHdl,  LABEL,         'Start Me!');

        end if;

     end if;

  end if;

END;


Fokus- und Schlüsselereignisse für Anzeigeobjekt-Komponenten
Fokus- und Schlüsselereignisse für Bean-Bereich-Komponenten

Für Bean-Bereich-Komponenten in einem Forms-Applet, muß der Entwickler Funktionalität hinzufügen, so daß Fokus und Navigation der Bean-Bereich-Komponenten mit dem Fokus und der Navigation anderer Forms-Komponenten konsistent sind. Der Bean-Bereich (Bean-Wrapper-Klasse) muß die Schnittstellen FocusListener und KeyListener implementieren, und alle Komponenten in einem Bean-Bereich müssen auch den Bean-Bereich als FocusListener und KeyListener registrieren. Abschließend muß der Entwickler Methoden implementieren, die registrierte Attribute (von der VBean-Klasse) und das Ereignisobjekt übergeben, um mit anderen Forms-Komponenten konsistenten Fokus und konsistente Navigation zu erzielen.

Fokus-Ereignisse

Dem Server wird eine Eingabefokusänderung in einem Bean-Bereich nicht automatisch mitgeteilt. Damit der Server weiß, daß eine Komponente in einem Bean-Bereich den Fokus innehat, muß der Entwickler das registrierte Attribut FOCUS_EVENT verwenden, die in VBean definiert ist. Bei der Verwendung von FOCUS_EVENT können Bean-Bereich-Komponenten einen Mausfokus erhalten, der mit den übrigen Komponenten in einem Forms-Applet konsistent ist. Hierdurch kann der Benutzer kontextsensitive Hilfe für den Bean-Bereich aufrufen.

Registriertes Attribut FOCUS_EVENT verwenden

Nachfolgend sind die Ausgangsanforderungen für die Verwendung von FocusListener und des registrierten Attributs FOCUS_EVENT aufgeführt:

•	Ein Bean-Bereich (Bean-Wrapper-Klasse) implementiert die FocusListener-Schnittstelle.

•	Alle Komponenten in der Bean-Wrapper-Klasse registrieren den Bean-Wrapper als FocusListener.

Wenn eine Komponente in einem Bean-Bereich den Fokus erhält, rufen Sie die Methode mHandler.setProperty() mit dem registrierten Attribut FOCUS_EVENT auf, und FocusEvent von JDK verfügt über dessen Argumente. FOCUS_EVENT ist ein in VBean definiertes registriertes Attribut. Die Methode mHandler.setProperty() teilt dem Server mit, daß der Bean-Bereich den Fokus hat. Der Server verfolgt den Fokus nicht bis zur Ebene der Einzelkomponenten von Bean-Bereichen.

Beispiel für einen Fokus-Ereigniscode

In diesem Abschnitt wird die Verwendung der FocusListener-Schnittstelle und des registrierten Attributs FOCUS_EVENT mit Hilfe von Code-Sequenzen erläutert. Der vollständige Beispiel-Klassencode ist am Ende dieses Abschnitts aufgeführt.

So verwenden Sie die FocusListener-Schnittstelle:

Implementieren Sie FocusListener. Beachten Sie, daß die Klasse auch eine Erweiterung von VBean darstellen muß. Diese Beispielklasse wird mit BeanWrapper bezeichnet.

public class BeanWrapper

       extends VBean

       implements FocusListener, KeyListener

{

    // the Handler object passed to the view by Forms

    private IHandler mHandler;

Erstellen Sie die Komponenten. Dieser Beispiel-Bean-Bereich enthält vier Schaltflächen für vier Benutzerauswahlen.

    PushButton beanButton1 = new PushButton("BeanButton1");

    PushButton beanButton2 = new PushButton("BeanButton2");

    PushButton beanButton3 = new PushButton("BeanButton3");

    PushButton beanButton4 = new PushButton("BeanButton4");

Initialisieren Sie die Klasse, indem Sie FocusListener für jede einzelne Komponente registrieren. Beachten Sie, daß der addFocusListener für den Bean-Bereich und jede einzelne Schaltfläche festgelegt ist.

    // initialise the class

    public void init(IHandler handler)

    {

        super.init(handler);

        mHandler = handler;

        add(beanButton1,BorderLayout.NORTH);

        add(beanButton2,BorderLayout.EAST);

        add(beanButton3,BorderLayout.WEST);

        add(beanButton3,BorderLayout.SOUTH);

        addFocusListener(this);

        beanButton1.addFocusListener(this);

        beanButton2.addFocusListener(this);

        beanButton3.addFocusListener(this);

        beanButton4.addFocusListener(this);

    }

Die Methode focusGained() wird aufgerufen, wenn der Bean-Bereich oder eines seiner untergeordneten Elemente (Komponenten) den Fokus erhält. FocusEvent, das Standard-JDK-Ereignisobjekt, wird an die Methode focusGained() übergeben. Nachfolgend finden Sie ein repräsentatives Beispiel für die Methode focusGained()..

Die Methode beanButton1.requestFocus() weist den Fokus der ersten Komponente im Bean-Bereich zu, wenn der Bean-Bereich (Wrapper) den Fokus erhält. Rufen Sie die Methode mHandler.setProperty() mit dem registrierten Attribut FOCUS_EVENT und dem Ereignisobjekt (e) auf, um dem Server mitzuteilen, daß der Bean-Bereich den Fokus hat.

    public void focusGained(FocusEvent e)

    {

        if (e.getComponent() == this)

        {

            beanButton1.requestFocus();

        }

        try

        {

            mHandler.setProperty(FOCUS_EVENT, e);

        }

        catch ( Exception ex )

        {

        }

    }

    public void focusLost(FocusEvent e)

    {

    }

Schlüsselereignisse

Tastenanschläge von Form-Objekten und Bean-Bereich-Objekten in einem Forms-Applet sollten konsistente Ergebnisse erzeugen. Standardmäßig wird mit Strg+K der Bildschirm Tastenbelegung zur Laufzeit für das Form-Objekt aufgerufen, das den Fokus hat. Mit der Tabulatortaste wird der Eingabefokus vom aktuellen zum nächsten Form-Objekt verschoben. Mit Umschalt+BildAb wird der Eingabefokus zum ersten Form-Objekt im nächsten Block verschoben. Standardmäßig werden diese Ergebnisse mit Tastenanschlägen bei Bean-Bereich-Objekten jedoch nicht erzeugt.

Um einen konsistenten Eingabefokus und eine konsistente Tastennavigation in einem Forms-Applet aufrechtzuerhalten, das einen Bean-Bereich enthält, senden Sie die meisten Tastenanschläge mit dem KeyListener, dem registrierten Attribut KEY_EVENT und der Methode mHandler.setProperty(KEY_EVENT, e) von einem Bean-Bereich an den Server. Der Server führt dann die entsprechende Aktion aus. Mit Strg+K zeigt der Server beispielsweise den Bildschirm Tastenbelegung zur Laufzeit für den Bean-Bereich an, das über den Fokus verfügt, und mit Umschalt+BildAb verschiebt der Server den Fokus zum ersten Formelement im nächsten Block.

In der Tastennavigation einiger Bean-Bereiche ist es jedoch wichtig, bestimmte Tastenanschläge nicht an den Server zu senden (einige Kombinationen mit der Tabulatortaste beziehungsweise mit Umschalt+Tabulator). Dies ist von der Position der Komponente im Bean-Bereich abhängig. Die allgemeine Regel lautet, daß alle Tastenanschläge aus dem Bean-Bereich an den Server gesendet werden, mit denen der Fokus vom Bean-Bereich verschoben werden soll. Senden Sie für Tastenanschläge, mit denen der Fokus zwischen Komponenten in einem Bean-Bereich verschoben wird (z.B. Tabulatortaste und Umschalt+Tabulator), keine Tastenanschläge an den Server.

Mit dem Senden von Tastenanschlägen bestehend aus Kombinationen mit der Tabulatortaste und Umschalt+Tabulator von einer Bean-Bereich-Komponente an den Server wird der Fokus vom Bean-Bereich entsprechend zum nächsten oder vorherigen Element verschoben. Unter Berücksichtigung dieser Tatsache gibt es Situationen, in denen Tastenanschläge bestehend aus Kombinationen mit der Tabulatortaste und Umschalt+Tabulator an den Server gesendet werden sollen: Senden Sie für die erste Komponente in einem Bean-Bereich Kombinationen mit Umschalt+Tabulator an den Server und für die letzte Komponente in einem Bean-Bereich Kombinationen mit der Tabulatortaste.

Der Entwickler muß programmieren, welche Tastenanschläge für Komponenten in einem Bean-Bereich an den Server gesendet werden und welche nicht.

Beispiel

Hintergrund;

Eine Form enthält verschiedene Elemente. Ein Bean-Bereich ist eines dieser Elemente. Er befindet sich zwischen anderen Elementen. Der Bean-Bereich enthält 4 Schaltflächen.

Zielsetzung:

Es sollte dem Benutzer möglich sein, standardmäßige Formaktionen, wie zum Beispiel COMMIT und NEXT BLOCK, mit Tastenanschlägen aus dem Bean-Bereich aufzurufen. Der Benutzer soll mit der Tabulatortaste den Fokus zur nächsten Schaltfläche im Bean-Bereich und mit Umschalt+Tabulator den Fokus zur vorherigen Schaltfläche im Bean-Bereich verschieben können. Wenn der Benutzer an der letzten Schaltfläche im Bean-Bereich die Tabulatortaste drückt, soll der Fokus zum nächsten Formelement verschoben werden. Wenn der Benutzer Umschalt+Tabulator an der ersten Schaltfläche im Bean-Bereich drückt, soll der Fokus zum vorherigen Formelement verschoben werden.

Standardverhalten:

Ohne die Implementierung von KeyListener, des registrierten Attributs KEY_EVENT und des Aufrufs der Methode mHandler.setProperty(KEY_EVENT, e) für die Bean-Bereich-Komponenten, werden keine Tastenanschläge an den Server gesendet. Mit der Tabulatortaste und Umschalt+Tabulator wird der Eingabefokus zwischen Bean-Bereich-Komponenten verschoben. Der Server empfängt keine Tastenanschläge, wenn Tasten gedrückt werden, um den Fokus vom Bean-Bereich zu verschieben (zum Beispiel Umschalt+BildAb), so daß das Formelement, das offensichtlich über den neuen Fokus verfügt, den Fokus am Server tatsächlich nicht hat. Wird Strg+K für den Bildschirm Tastenbelegung zur Laufzeit gedrückt, wird der Bildschirm Tastenbelegung zur Laufzeit für das Element angezeigt, das der Server als Element mit Fokus identifiziert. Dies kann ein anderes Element sein als das Element, das vermeintlich den Fokus innehat. Mit dem Tastenanschlag für die Textnavigation, zum Beispiel der Tabulatortaste, wird möglicherweise ein anderes Ergebnis erzielt als erwartet, da die Navigation an dem Formelement startet, das der Server als das Element identifiziert, das den Fokus innehat. Wenn Tastenanschläge nicht an den Server gesendet werden, ist zwischen Server und Client keine Abstimmung bezüglich des aktuellen Elements mehr möglich.

Lösung:

Implementieren Sie KeyListener, verwenden Sie das Attribut KEY_EVENT, und rufen Sie die Methode mHandler.setProperty(KEY_EVENT, e) auf, um die meisten Tastenanschläge an den Server zu senden. Legen Sie für jede Schaltfläche fest, ob Tastenanschläge bestehend aus Kombinationen mit der Tabulatortaste oder mit Umschalt+Tabulator an den Server gesendet werden sollen, um den Fokus zu verschieben, wie in der Zielsetzung angegeben, oder nicht.

Schaltfläche 1:

Wenn der Benutzer die Tabulatortaste am letzen Formelement vor dem Bean-Bereich drückt, erhält Schaltfläche 1 im Bean-Bereich den Fokus. Wenn der Benutzer die Tabulatortaste an Schaltfläche 1 drückt, erhält Schaltfläche 2 den Fokus. Der Tabulator-Tastenanschlag sollte nicht an den Server gesendet werden, da der Server hierdurch den Fokus vom Bean-Bereich zum nächsten Formelement nach dem Bean-Bereich verschiebt.

Wenn der Benutzer Umschalt+Tabulator an der Schaltfläche 1 drückt, muß das Formelement vor dem Bean-Bereich den Fokus erhalten. Die Tastenanschläge bestehend aus Kombinationen mit Umschalt+Tabulator müssen an den Server gesendet werden, da der Server durch das Senden von Tastenanschlägen bestehend aus Kombinationen mit Umschalt+Tabulator den Fokus zum vorherigen Formelement verschiebt. Werden die Tastenanschläge bestehend aus Kombinationen mit Umschalt+Tabulator nicht an den Server gesendet, ist zwischen Server und Client keine Abstimmung bezüglich des aktuellen Elements mehr möglich.

Schaltflächen 2 und 3:

Wenn der Benutzer an Schaltfläche 2 die Tabulatortaste drückt, erhält Schaltfläche 3 den Fokus, und auch hier darf der Tastenanschlag nicht an den Server gesendet werden. (Dies trifft auch auf das Drücken der Tabulatortaste an Schaltfläche 3 zu.) Wenn der Benutzer Umschalt+Tabulator an den Schaltflächen 2, 3 oder 4 drückt, erhält die vorherige Schaltfläche im Bean-Bereich den Fokus. Diese Tastenanschläge sollten nicht an den Server gesendet werden. Jedesmal, wenn der Fokus von einer Bean-Bereich-Komponente an eine andere übergeben wird, sollten Tastenanschläge bestehend aus Kombinationen mit der Tabulatortaste oder Umschalt+Tabulator nicht an den Server gesendet werden.

Schaltfläche 4:

Wenn der Benutzer an Schaltfläche 4, der letzen Schaltfläche im Bean-Bereich, die Tabulatortaste drückt, muß der Tastenanschlag an den Server gesendet werden, da der Server durch das Senden von Tastenanschlägen den Fokus vom Bean-Bereichzum nächsten Formelement verschiebt. Wenn der Benutzer Umschalt+Tabulator an Schaltfläche 4 im Bean-Bereich drückt, erhält Schaltfläche 3 den Fokus. Da der Fokus den Bean-Bereich nicht verläßt, dürfen die Tastenanschläge bestehend aus Kombinationen mit Umschalt+Tabulator nicht an den Server gesendet werden.

Zusammenfassung

Wenn sich der Fokus an einem Element im Bean-Bereich befindet und der Benutzer Tastenanschläge verwendet, mit denen der Fokus aus dem Bean-Bereich verschoben wird, so senden Sie diese Tastenanschläge an den Server. Wenn sich der Fokus an einem Element im Bean-Bereich befindet und der Benutzer Tastenanschläge verwendet, mit denen der Fokus zu einem anderen Element innerhalb des Bean-Bereichs verschoben wird, so senden Sie diese Tastenanschläge nicht an den Server.

Welche Tastenanschläge nicht an den Server gesendet werden, ist von der Position des Elements im Bean-Bereich abhängig.

•	Senden Sie für die erste Komponente in einem Bean-Bereich alle Tastenanschläge, ausgenommen Kombinationen mit der Tabulatortaste, an den Server.

•	Senden Sie für die letzte Komponente in einem Bean-Bereich alle Tastenanschläge, ausgenommen Kombinationen mit Umschalt+Tabulator, an den Server.

•	Senden Sie für alle anderen Komponenten (ausgenommen die erste und die letzte) in einem Bean-Bereich alle Tastenanschläge, ausgenommen Kombinationen mit der Tabulatortaste und mit Umschalt+Tabulator, an den Server.

Registriertes Attribut KEY_EVENT verwenden

Um die erforderlichen Tastenanschläge für Bean-Bereich-Komponenten in einem Forms-Applet an den Server zu senden, muß der Entwickler zunächst die KeyListener-Schnittstelle implementieren:

Nachfolgend sind die Ausgangsanforderungen für die Verwendung von KeyListener aufgeführt:

•	Ein Bean-Bereich (Bean-Wrapper-Klasse) implementiert die KeyListener-Schnittstelle.

•	Alle Komponenten in der Bean-Wrapper-Klasse registrieren den Bean-Wrapper als KeyListener.

Senden Sie für alle Komponenten, die KeyListener für den Bean-Bereich registriert haben, alle Tastenanschläge, ausgenommen bestimmte Instanzen von Kombinationen mit der Tabulatortaste und/oder Umschalt+Tabulator, an den Server, abhängig davon, ob mit den Tastenanschlägen der Fokus aus dem Bean-Bereich verschoben wird. Filtern Sie Tastenanschläge mit der Methode keyPressed() der KeyListener-Schnittstelle. Für Tastenanschläge, die an den Server gesendet werden müssen, muß der Entwickler die Methode mHandler.setProperty() mit dem registrierten Attribut KEY_EVENT (definiert in Bean) und KeyEvent von JDK als Argumente aufrufen.

Beispiel für einen Schlüsselereigniscode

In diesem Abschnitt wird die Verwendung der KeyListener-Schnittstelle mit Hilfe von Code-Sequenzen erläutert. In diesem Beispiel sind auf die Informationen zu FocusListener enthalten. Der vollständige Beispiel-Klassencode ist am Ende dieses Abschnitts aufgeführt.

So verwenden Sie die KeyListener-Schnittstelle:

Implementieren Sie KeyListener. Beachten Sie, daß die Klasse auch eine Erweiterung von VBean darstellen muß. Diese Beispielklasse wird als BeanWrapper bezeichnet.

public class BeanWrapper

       extends VBean

       implements FocusListener, KeyListener

{

    // the Handler object passed to our view by Forms

    private IHandler mHandler;

Erstellen Sie die Komponenten. Dieser Beispiel-Bean-Bereich enthält vier Schaltflächen.

    PushButton beanButton1 = new PushButton("BeanButton1");

    PushButton beanButton2 = new PushButton("BeanButton2");

    PushButton beanButton3 = new PushButton("BeanButton3");

    PushButton beanButton4 = new PushButton("BeanButton4");

Initialisieren Sie die Klasse, indem Sie KeyListener für jede einzelne Komponente implementieren. Beachten Sie, daß addKeyListener für jede einzelne Schaltfläche aufgerufen wird.

    // initialise the class

    public void init(IHandler handler)

    {

        super.init(handler);

        mHandler = handler;

        add(beanButton1,BorderLayout.NORTH);

        add(beanButton2,BorderLayout.EAST);

        add(beanButton3,BorderLayout.WEST);

        add(beanButton3,BorderLayout.SOUTH);

        addFocusListener(this);

        beanButton1.addFocusListener(this);

        beanButton2.addFocusListener(this);

        beanButton3.addFocusListener(this);

        beanButton4.addFocusListener(this);

        beanButton1.addKeyListener(this);

        beanButton2.addKeyListener(this);

        beanButton3.addKeyListener(this);

        beanButton4.addKeyListener(this);

    }

Die Methode keyPressed() wird aufgerufen, wenn eine Komponente im Bean-Bereich über den Fokus verfügt und der Benutzer eine beliebige Taste drückt. KeyEvent, das standardmäßige Tastenereignisobjekt von JDK, wird an die Methode keyPressed() übergeben.

Nachfolgend finden Sie ein repräsentatives Beispiel für die Methode keyPressed(), die mit verschiedenen Komponenten in einem Bean-Bereich verwendet wird.

Die folgenden Bedingungen beinhalten alle Schaltflächen im Bean-Bereich. Senden Sie für die erste Komponente des Bean-Bereichs alle Tastenanschläge, mit Ausnahme der Tabulatortaste, an den Server. Senden Sie jedoch keine Tastenanschläge bestehend aus Kombinationen mit Umschalt+Tabulator an den Server, um den Fokus zurück aus dem Bean-Bereich zu verschieben, und senden Sie alle anderen Tastenanschläge, mit denen Standard-Formaktionen aufgerufen werden, wie zum Beispiel Anzeigen des Bildschirms Tastenbelegung zur Laufzeit (Strg+K) und NEXT BLOCK (Umschalt+BildAb).

Die erste Bedingung beschreibt das Ereignis für die erste Komponente im Bean-Bereich, beanButton1. Die Methode e.getSource() testet, ob beanButton1 gedrückt wird. Die Methode e.getKeyCode() testet, ob es sich bei einem Tastenanschlag um die Tabulatortaste (KeyEvent.VK_TAB) handelt. Wenn die gedrückte Tastenkombination die Tabulatortaste nicht beinhaltet, rufen Sie in der else-Anweisung die Methode mHandler.setProperty() mit dem registrierten Attribut KEY_EVENT und dem Ereignisobjekt (e) auf, um die Tastenanschläge an den Server zu senden.

Wird Umschalt+Tabulator gedrückt, rufen Sie die Methode mHandler.setProperty() mit dem registrierten Attribut KEY_EVENT und dem Ereignisobjekt (e) auf, um die Tastenanschläge an den Server zu senden.

    public void keyPressed(KeyEvent e)

    {

        if ( e.getSource() == beanButton1 )

        {

            /*

            ** For the first component in the bean area, send all

            ** keystrokes except Tab to the server. Also, send

            ** Shift+Tab to the server.

            */

            if ( (e.getKeyCode() == KeyEvent.VK_TAB) )

            {

                if (e.isShiftDown() )

                {

                    try

                    {

                        mHandler.setProperty(KEY_EVENT, e);

                    }

                    catch ( Exception ex )

                    {

                    }

                }

            }

            else

            {

                try

                {

                    mHandler.setProperty(KEY_EVENT, e);

                }

                catch ( Exception ex )

                {

                }

            }

        }

Diese Bedingung beschreibt das Ereignis für die letzte Komponente im Bean-Bereich (beanButton4). Die Methode e.getSource() testet, ob beanButton4 gedrückt wird. Die Methode e.getKeyCode() testet, ob es sich bei einem Tastenanschlag um keine Kombination mit Umschalt+Tabulator handelt. Wenn die gedrückte Tastenkombination Umschalt+Tabulator nicht beinhaltet, rufen Sie die Methode mHandler.setProperty() mit dem registrierten Attribut KEY_EVENT und dem Ereignisobjekt (e) auf, um die Tastenanschläge an den Server zu senden.

        else if ( e.getSource() == beanButton4 )

        {

            /*

            ** For the last component in the bean area, send all

            ** keystrokes except Shift+Tab to the server.

            */

            if ( !((e.getKeyCode() == KeyEvent.VK_TAB) && (e.isShiftDown())) )

            {

                try

                {

                    mHandler.setProperty(KEY_EVENT, e);

                }

                catch ( Exception ex )

                {

                }

            }

        }

Senden Sie für die übrigen Komponenten im Bean-Bereich, die weder die erste noch die letzte Komponente sind, alle Tastenanschläge mit Ausnahme von Kombinationen mit der Tabulatortaste oder Umschalt+Tabulator an den Server. Der nachstehende Beispielcode bezieht sich auf die nächsten Komponenten im Bean-Bereich, beanButton2 und beanButton3.

Die Methode e.getSource() testet, ob beanButton2 oder beanButton3 gedrückt wird. Die Methode e.getKeyCode() testet, ob es sich bei einem Tastenanschlag um die Tabulatortaste (KeyEvent.VK_TAB) handelt. Wenn die gedrückte Tastenkombination die Tabulatortaste nicht beinhaltet, rufen Sie die Methode mHandler.setProperty() mit dem registrierten Attribut KEY_EVENT und dem Ereignisobjekt (e) auf, um die Tastenanschläge an den Server zu senden.

        else if ( (e.getSource() == beanButton2) ||

                  (e.getSource() == beanButton3) )

        {

            /*

            ** For all the remaining components in the bean area,

            ** send all keystrokes except Tab and Shift+Tab

            ** to the server.

            */

            if ( !(e.getKeyCode() == KeyEvent.VK_TAB) )

            {

                try

                {

                    mHandler.setProperty(KEY_EVENT, e);

                }

                catch ( Exception ex )

                {

                }

            }

        }

}

Schlüsselereignisse für eine Komponente in einem Bean-Bereich

Wenn Ihr Bean-Bereich nur eine Komponente enthält (zum Beispiel beanButton1), senden Sie alle Tastenanschläge an der Komponente an den Server. Sie müssen den KeyListener implementieren und die Methode keyPressed() verwenden. Sie können die Methode mHandler.setProperty() jedoch sofort ausführen.

Im nachfolgenden Beispiel ist der Code für die Methode keyPressed() für eine Schaltfläche beanbutton1 in einem Bean-Bereich dargestellt.

public void keyPressed(KeyEvent e)

{

    try

    {

        mHandler.setProperty(KEY_EVENT, e);

    }

    catch ( Exception ex )

    {

    }

}

Vollständiges Codebeispiel für Fokus- und Schlüsselereignisse

package oracle.forms.demos;

import oracle.forms.properties.ID;

import oracle.forms.handler.IHandler;

import oracle.forms.ui.CustomEvent;

import oracle.forms.properties.ID;

import oracle.forms.handler.IHandler;

import oracle.forms.ui.VBean;

import oracle.ewt.button.PushButton;

import java.awt.Component;

import java.awt.event.FocusEvent;

import java.awt.event.FocusListener;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import java.awt.BorderLayout;

public class BeanWrapper

       extends VBean

       implements FocusListener, KeyListener

{

    // the Handler object passed to the view by Forms

    private IHandler mHandler;

    PushButton beanButton1 = new PushButton("BeanButton1");

    PushButton beanButton2 = new PushButton("BeanButton2");

    PushButton beanButton3 = new PushButton("BeanButton3");

    PushButton beanButton4 = new PushButton("BeanButton4");

    public BeanWrapper()

    {

        super();

    }

    // initialise the class

    public void init(IHandler handler)

    {

        super.init(handler);

        mHandler = handler;

        add(beanButton1,BorderLayout.NORTH);

        add(beanButton2,BorderLayout.EAST);

        add(beanButton3,BorderLayout.WEST);

        add(beanButton3,BorderLayout.SOUTH);

        addFocusListener(this);

        beanButton1.addFocusListener(this);

        beanButton2.addFocusListener(this);

        beanButton3.addFocusListener(this);

        beanButton4.addFocusListener(this);

        beanButton1.addKeyListener(this);

        beanButton2.addKeyListener(this);

        beanButton3.addKeyListener(this);

        beanButton4.addKeyListener(this);

    }

    public void focusGained(FocusEvent e)

    {

        if (e.getComponent() == this)

        {

            beanButton1.requestFocus();

        }

        try

        {

            mHandler.setProperty(FOCUS_EVENT, e);

        }

        catch ( Exception ex )

        {

        }

    }

    public void focusLost(FocusEvent e)

    {

    }

    /*

    ** If a particular key sequence causes the navigation to stay inside

    ** the bean area i.e. one the components of the bean area loses

    ** focus and the other component of bean area gains focus, then

    ** we do not want to send the keystrokes to the server. Otherwise,

    ** we do want to send the keystrokes to the server.

    **

    ** A key sequence is sent to the server by invoking

    ** mHandler.setProperty(KEY_EVENT, e).

    **

    ** For example, if the focus is on the first component(beanButton1) of

    ** the bean area, and if the user presses Tab, then the focus will be

    ** transferred to the second component(beanButton2) of the bean area.

    ** Since beanButton2 is inside the bean area, we do not want to send the

    ** keystrokes to the server. If instead of Tab the user presses

    ** Shift+Tab, then the focus needs to transferred to the previous form

    ** item, which is outside the bean area. In this case, we need to send

    ** the keystrokes to the server so that the server can determine the

    ** previous form item to which the focus should be transferred.

    **

    ** Similarly, if the focus is on  the last component(beanButton4) of the

    ** bean area, and if the user presses Tab, then the focus needs to be

    ** transferred to the next form item, which is outside the bean area.

    ** In this case, we do want to send the keystrokes to the server so

    ** that it can determine the next form item to which the focus should be

    ** transferred. If instead of Tab the user presses Shift+Tab, then

    ** the focus needs to be transferred to the previous component

    ** (beanButton3) in the bean area. Since beanButton3 is inside the bean

    ** area, we do not need to send the keystrokes to the server.

    **

    ** For other components in the bean area, such as beanButton2 and

    ** beanButton3, we do not want to send Tab and Shift+Tab to the form

    ** server. This is because both of them cause focus to be transferred

    ** to a bean area component. Anything else should be sent to the

    ** server.

    */

    public void keyPressed(KeyEvent e)

    {

        if ( e.getSource() == beanButton1 )

        {

            /*

            ** For the first component in the bean area, send all

            ** keystrokes except Tab to the server. Also, send

            ** Shift+Tab to the server.

            */

            if ( (e.getKeyCode() == KeyEvent.VK_TAB) )

            {

                if (e.isShiftDown() )

                {

                    try

                    {

                        mHandler.setProperty(KEY_EVENT, e);

                    }

                    catch ( Exception ex )

                    {

                    }

                }

            }

            else

            {

                try

                {

                    mHandler.setProperty(KEY_EVENT, e);

                }

                catch ( Exception ex )

                {

                }

            }

        }

        else if ( e.getSource() == beanButton4 )

        {

            /*

            ** For the last component in the bean area, send all

            ** keystrokes except Shift+Tab to the server.

            */

            if ( !((e.getKeyCode() == KeyEvent.VK_TAB) && (e.isShiftDown())) )

            {

                try

                {

                    mHandler.setProperty(KEY_EVENT, e);

                }

                catch ( Exception ex )

                {

                }

            }

        }

        else if ( (e.getSource() == beanButton2) ||

                  (e.getSource() == beanButton3) )

        {

            /*

            ** For all the remaining components in the bean area,

            ** send all keystrokes except Tab and Shift+Tab

            ** to the server.

            */

            if ( !(e.getKeyCode() == KeyEvent.VK_TAB) )

            {

                try

                {

                    mHandler.setProperty(KEY_EVENT, e);

                }

                catch ( Exception ex )

                {

                }

            }

        }

    }

    public void keyTyped(KeyEvent e)

    {

    }

    public void keyReleased(KeyEvent e)

    {

    }

    public boolean setProperty(ID pid, Object value)

    {

        return super.setProperty(pid,value);

    }

    public String toString()

    {

        return ("BeanArea Wrapper");

    }

}


Mit Bibliotheken arbeiten


Über Bibliotheken

Eine Bibliothek ist eine Sammlung aus Unterprogrammen, einschließlich benutzerdefinierten Prozeduren, Funktionen und Paketen.

Mit Bibliotheken können clientseitige Programmblöcke bequem gespeichert und von mehreren Anwendungen gleichzeitig benutzt werden.

Nachdem Sie eine Bibliothek erstellt haben, können Sie sie einem beliebigen anderen Form-, Menü- oder Bibliotheksmodul zuordnen. Danach können Sie Programmblöcke der Bibliothek aus Triggern, Menübefehlen und benutzerdefinierten Routinen aufrufen, die Sie in den Modulen schreiben, denen Sie die Bibliothek zugeordnet haben.

Dieselbe Bibliothek kann mehreren Forms und Menüs zugeordnet werden. Umgekehrt kann einer einzelnen Form oder einem einzelnen Menü mehr als eine Bibliothek zugeordnet sein.

Bibliotheken können auch anderen Bibliotheken zugeordnet sein. Wenn eine Bibliothek einer anderen Bibliothek zugeordnet ist, können Programmblöcke in der ersten Bibliothek Programmblöcke in der zugeordneten Bibliothek referenzieren.

Bibliotheken unterstützen das dynamische Laden - d.h. die Programmblöcke einer Bibliothek werden bei Bedarf in eine Anwendung geladen. Dadurch können die Speicheranforderungen einer Anwendung zur Laufzeit wesentlich reduziert werden.


Über Globale Bibliotheken

Globale Bibliotheken können formübergreifend benutzt werden. Eine einzelne Kopie der PL/SQL-Bibliothek ist im Speicher gespeichert und kann von allen Forms abgerufen werden. Globale Bibliotheken sparen Speicherplatz, verbessern die Leistung und bieten eine Möglichkeit zur einfachen formsübergreifenden Übergabe von Array-Strukturen.


Über Bibliotheksdateiformate

.PLL     Die .PLL-Bibliotheksdatei enthält sowohl den Bibliotheks-Quellcode als auch den kompilierten, plattformspezifischen p-Code (ausführbaren Code). Die .PLL-Datei wird erstellt oder aktualisiert, wenn Sie Ihr Bibliotheksmodul speichern. Wenn Sie das Bibliotheksmodul speichern, werden die Änderungen in jedem Modul berücksichtigt, dem die Bibliothek zugeordnet ist.

.PLX     Die .PLX-Bibliotheksdatei ist eine plattformspezifische ausführbare Datei, die keinen Quellcode enthält.

Wenn Ihre Anwendung zur Benutzung bereit ist, werden Sie wahrscheinlich eine Version Ihrer Bibliothek generieren, die nur den kompilierten p-Code ohne den Quellcode enthält. Sie können eine .PLX-Datei aus dem Form Builder oder auf der Befehlszeile generieren.

Hinweis:  Wenn Sie eine Bibliothek einem Modul im Form Builder zuordnen, ordnen Sie die .PLL-Version der Bibliothek zu. Zur Laufzeit sucht Form Builder nach einer .PLX-Datei mit diesem Namen in den Standard-Suchpfaden. Wenn keine .PLX-Datei vorhanden ist, sucht Form Builder nach der .PLL-Datei mit diesem Namen.

.PLD     Die .PLD-Datei ist eine Datei im Textformat und kann für die Versionskontrolle der Bibliotheksdateien benutzt werden.


Bibliotheken erstellen

So erstellen Sie eine Bibliothek:

1	Erstellen Sie im Objektnavigator ein Bibliotheksmodul.

Um eine Bibliothek zu erstellen, wählen Sie Datei [image] Neu [image] Bibliothek.

Oder

Wählen Sie den Knoten Bibliotheken aus, und wählen Sie dann Navigator [image] Erstellen.

Hinweis:  Sie können den Namen eines Bibliotheksmoduls nicht ändern, indem Sie ihn im Objektnavigator bearbeiten, wie Sie dies bei Forms und Menüs können. Statt dessen wird der Bibliotheksname automatisch aktualisiert, wenn Sie die Bibliothek speichern.

2	Um einen Programmblock zu erstellen, blenden Sie den gewünschten Bibliotheksknoten ein, wählen den Knoten Programmblöcke und wählen Navigator [image] Erstellen.

Daraufhin wird das Dialogfeld Neuer Programmblock angezeigt.

3	Geben Sie den Namen des Programmblocks und den Typ an (Prozedur, Funktion, Paketspezifikation oder Paketrumpf). Wählen Sie OK.

Daraufhin wird der PL/SQL-Editor angezeigt.

4	Im PL/SQL-Editor definieren Sie den Programmblock. Danach wählen Sie Kompilieren, um die Änderungen zu kompilieren und anzuwenden. Wählen Sie Schließen, um den Editor zu schließen.

Hinweis:  Weil Form Builder keine unkompilierten Programmblöcke zur Laufzeit ausführen kann, müssen Sie die Programmblöcke der Bibliothek beim Entwurf kompilieren.

Wählen Sie Programm [image] Kompilieren, um unkompilierte Bibliotheksprogrammblöcke zu kompilieren, oder wählen Sie Programm [image] Kompilieren Alles, um alle Bibliotheksprogrammblöcke zu kompilieren.

5	Wählen Sie Datei [image] Speichern, um das Bibliotheksmodul in einer Datei oder der Datenbank zu speichern.


Bibliotheken einem Modul zuordnen

So ordnen Sie eine Bibliothek einem Modul zu:

1	Öffnen Sie das gewünschte Form-, Menü- oder Bibliotheksmodul im Objektnavigator.

Um ein Modul zu öffnen, wählen Sie Datei [image] Öffnen, und geben Sie dann den zu öffnenden Modultyp an.

Hinweis:  Wenn Sie eine Bibliothek einem Modul im Form Builder zuordnen, ordnen Sie die .PLL-Version der Bibliothek zu. Zur Laufzeit sucht Form Builder nach einer .PLX-Datei mit diesem Namen in den Standard-Suchpfaden. Wenn keine .PLX-Datei vorhanden ist, benutzt Form Builder die .PLL-Datei mit diesem Namen.

2	Blenden Sie das Modul ein, und wählen Sie dann den Knoten Zugeordnete Bibliotheken. Wählen Sie Navigator [image] Erstellen, um eine Bibliothek zuzuordnen.

3	Geben Sie den Namen der zuzuordnenden Bibliothek an.

Tip:  Beim Zuordnen von Bibliotheken sollten Sie keinen Bibliothekspfad angeben. Pfadnamen für Bibliothekszuordnungen werden intern gespeichert und sind deshalb nicht portierbar. Geben Sie statt dessen den Namen der Bibliothek an, und verlassen Sie sich auf den Standard-Suchpfad von Form Builder, damit die Bibliothek zur Laufzeit gefunden wird.

Wenn Form Builder zur Laufzeit nach zugeordneten Bibliotheken sucht, sucht es zuerst im aktuellen Ordner und dann in den Ordnern, die in den PATH-Umgebungsvariablen (FORMSxx_PATH und ORACLE_PATH) aufgeführt werden.

Hinweis:  Wenn Sie einen Bibliothekspfad angeben, fordert Form Builder Sie auf, den angegebenen Pfad zu bestätigen.

Wenn Sie den Pfad zur Laufzeit bestätigen, sucht Form Builder ausschließlich in dem angegebenen Pfad nach der Bibliothek. Form Builder durchsucht nicht den angegebenen Pfad und danach auch noch den Standardpfad.

Wenn Sie keine Bestätigung vornehmen, entfernt Form Builder den Pfad und speichert den Bibliotheksnamen. Zur Laufzeit sucht Form Builder im Standard-Suchpfad nach der Bibliothek.

4	Speichern Sie das aktive Form- oder Menümodul, um die Bibliothekszuordnung in der Moduldefinition aufzunehmen.

Hinweis:  Zugeordnete Bibliotheken sind schreibgeschützt. Sie können keine zugeordnete Bibliothek bearbeiten; Sie können nur die Programmblöcke innerhalb der Bibliothek referenzieren. Um ein Bibliotheksmodul zu bearbeiten, öffnen Sie es im Objektnavigator, und bearbeiten Sie die Programmblöcke im PL/SQL-Editor.


Bibliotheken bearbeiten

Sie können keine Bibliotheksprogrammblöcke aus dem Knoten Zugeordnete Bibliotheken im Objektnavigator bearbeiten oder anzeigen. Um Bibliotheksprogrammblöcke zu bearbeiten oder anzuzeigen, müssen Sie das Bibliotheksmodul selbst öffnen.

Wenn Sie eine Bibliothek bearbeiten, werden die Änderungen in den Modulen, denen die Bibliothek zugeordnet ist, erst berücksichtigt, wenn Sie die Änderungen speichern.

So ändern Sie eine Bibliothek, die schon einem Modul zugeordnet ist:

1	Öffnen Sie das Bibliotheksmodul im Objektnavigator, und fügen Sie dann Programmblöcke nach Bedarf hinzu bzw. bearbeiten oder entfernen Sie Programmblöcke aus der Bibliothek.

2	Speichern Sie das Bibliotheksmodul.

Die Änderungen werden in jedem Modul berücksichtigt, dem die Bibliothek zugeordnet ist.


Bibliotheksprogrammblöcke aufrufen

Nachdem Sie eine Bibliothek erstellt und dem gewünschten Modul zugeordnet haben, können Sie Bibliotheksprogrammblöcke aus diesem Modul mit derselben Syntax aufrufen, die Sie benutzen, wenn die Programmblöcke lokal definiert sind. Um z.B. eine Prozedur namens color_current_record in einer zugeordneten Bibliothek aufzurufen, schreiben Sie einfach den Namen der Prozedur in den Form-Trigger:

color_current_record;

Um den Inhalt eines Bibliothekspaketes zu referenzieren, benutzen Sie die standardmäßige Punkt-Schreibweise von PL/SQL, wie hier dargestellt:

package_name.object

Wenn Form Builder auf einen Aufruf eines Programmblocks stößt, sucht es zuerst im aktuellen Modul nach dem Programmblock und danach in den zugeordneten Bibliotheken.

Wenn Sie demselben Modul mehr als eine Bibliothek zuordnen, können Sie die standardmäßige Bibliotheks-Suchfolge angeben, indem Sie die Bibliothekszuordnungen im Objektnavigator sequentiell anordnen.


Form-Bindevariablen in Bibliotheksprogrammblöcken aufrufen

Weil Bibliotheksmodule unabhängig von Forms und Menüs kompiliert werden, befinden sich Form-Bindevariablen (die Werte von Formobjekten, Systemvariablen und globalen Variablen sowie von Parametern) immer außerhalb des Geltungsbereichs von Bibliotheksprogrammblöcken. Somit können Sie Form-Bindevariablen nicht direkt in einem Bibliotheksprogrammblock referenzieren. So kann z.B. eine benutzerdefinierte Prozedur oder Funktion in einer Bibliothek die folgenden Objekte nicht referenzieren:

•	:block_name.item_name

•	:GLOBAL.variable_name

•	:SYSTEM.variable_name

•	:PARAMETER.my_param

Statt dessen benutzen Sie die Unterprogrammfunktion NAME_IN, um die Werte von Bindevariablen indirekt zu referenzieren:

•	Name_In('block_name.item_name')

•	Name_In('GLOBAL.variable_name')

•	Name_In('SYSTEM.variable_name')

Benutzen Sie die COPY-Prozedur des Unterprogramms, um die Werte von Bindevariablen indirekt einzustellen:

•	Copy('28876', 'block_name.item_name');

•	Copy('standard', 'GLOBAL.variable_name');

•	Copy('FALSE', 'System.Supress_Working');

Wenn COPY benutzt wird, um den Wert eines Formobjekts in einer Bibliotheksroutine einzustellen, wird dieses Objekt als GEÄNDERT markiert. Dieses Verhalten kann sich auf die nachfolgende Validierung und Commit-Verarbeitung auswirken.

Wenn möglich, sollten Sie Bibliotheksprogrammblöcke schreiben, die für die Übergabe von Daten zwischen dem Form- oder Menümodul und der Bibliothek IN- und IN OUT-Parameter verwenden. Sie können auch Funktionsrückgabewerte für diesen Zweck benutzen. Wenn Sie eine Bibliotheksprozedur aufrufen, die Parameter verwendet, können Sie Bindevariablenreferenzen als aktuelle Parameter übergeben, wie hier dargestellt:

my_library_procedure(:form_block.form_item,:System.Cursor_Block);


Über Wertelisten

  Verwandte Themen

Eine Werteliste ist ein Popup-Fenster mit Bildlaufleiste, das dem Endbenutzer eine ein- oder mehrspaltige Auswahlliste anzeigt.

Wertelisten bieten die folgende Funktionalität:

•	Wertelisten können auf Anforderung des Endbenutzers angezeigt werden (sofern eine Werteliste verfügbar ist), wenn der Endbenutzer zu einem Textobjekt mit einer zugehörigen Werteliste navigiert. Sie können auch programmgesteuert unabhängig von einem bestimmten Textobjekt angezeigt werden.

•	Mit den automatischen Reduzierungs- und Suchfunktionen von Wertelisten können Endbenutzer bestimmte Werte suchen.

•	Werte in Wertelisten, die vom Endbenutzer ausgewählt werden, können je nach den angegebenen Rückgabeobjekten Formobjekten zugewiesen werden.

•	Beim Entwurf kann eine Werteliste einem oder mehreren Textobjekten in der Form zugeordnet werden.

•	Werte von Wertelisten werden aus Datensatzgruppen abgeleitet.

Zur Laufzeit zeigt Form Builder <LISTE> in der Statuszeile an, wenn eine Werteliste verfügbar ist. Nachdem eine Werteliste aufgerufen wurde, entweder programmgesteuert oder durch Anforderung eines Endbenutzers, wird sie in einem modalen Fenster angezeigt, in dem der Benutzer einen einzelnen Wert auswählen kann.

Eine Werteliste wird solange angezeigt, bis der Benutzer sie durch Auswahl eines Wertes oder durch Auswahl von Abbrechen schließt.

Endbenutzer können nicht in anderen Fenstern arbeiten, während eine Werteliste angezeigt wird. Endbenutzer können Wertelisten verschieben und skalieren, wenn das Fensterverwaltungsprogramm zur Laufzeit dies unterstützt.

Automatische Reduzierungs- und Suchfunktionen  Endbenutzer können die automatischen Reduzierungs- und Suchfunktionen der Werteliste benutzen, um einen Wert in einer Liste zu suchen.

Um die automatische Reduzierung zu verwenden, geben die Benutzer den gewünschten Eintrag direkt in den Listenausschnitt des Fensters mit der Werteliste ein. Mit der Eingabe jedes Zeichens reduziert Form Builder die Liste auf nur die Werte, die der eingegebenen Zeichenfolge entsprechen. Wenn Sie die [Rücktaste] drücken, wird die reduzierte Auswahlliste wieder voll eingeblendet. Bei der automatischen Reduzierung wird die vom Endbenutzer eingegebene Zeichenfolge mit den Werten in der ersten Spalte in der Werteliste verglichen.

Wenn die anzuzeigende Werteliste eine lange Liste mit möglichen Werten enthält, werden in dem Wertelistenfenster nur die angezeigten Spaltenttitel (und keine Werte) dargestellt. Sobald der Benutzer eine Reduzierungsfolge in das Feld Suchen eingibt und eine Abfrage mit dieser Reduzierungsfolge durchgeführt wird, werden die Ergebniswerte aus der Werteliste unter den Spaltentiteln angezeigt. Die Werteliste nimmt dann wieder das normale Erscheinungsbild und das normale Verhalten an, und der Endbenutzer kann einen Wert aus der Liste auswählen oder die Liste weiter reduzieren, indem er die Reduzierungsfolge erweitert.

Mit der Suchfunktion können Endbenutzer eine Übereinstimmung mit einer bestimmten Textfolge suchen und können bei der Suche Stellvertreterzeichen verwenden. Um die Suchfunktion zu benutzen, geht der Endbenutzer in das Feld Suchen der Werteliste und gibt die Suchfolge ein. Danach wählt er die Schaltfläche Suchen, um den Suchvorgang auszuführen. Form Builder kürzt die Liste auf die Auswahlen, bei denen die Werte in der ersten Spalte den Suchkriterien des Endbenutzers entsprechen. Wenn der Endbenutzer ein "%" vor die Suchfolge setzt, führt Form Builder eine Suche in allen Spalten der Werteliste durch.

Endbenutzer können mit der TABULATORTASTE zwischen dem Listenausschnitt der Werteliste und dem Suchen-Feld wechseln.

Hinweis:  Die Wertelisten auf der Oberfläche von Form Builder haben dieselbe automatische Reduzierungs- und Suchfunktionalität wie die Wertelisten, die Sie für Ihre eigenen Anwendungen erstellen.


Über Werte und Datensatzgruppen in Wertelisten

Werte in Wertelisten werden aus einer internen Datenstruktur abgeleitet, die als Datensatzgruppe bezeichnet wird. Wenn Sie eine Werteliste definieren, verknüpfen Sie sie mit einer benannten Datensatzgruppe.

Eine Datensatzgruppe besteht aus einem Spalten-/Zeilengerüst, das mit einer Datenbanktabelle verglichen werden kann. Die Werteliste ist das Schnittstellenobjekt, mit dem Endbenutzer Datensätze anzeigen, auswählen und durchblättern können, die aktuell in der zugrundeliegenden Datensatzgruppe gespeichert sind.

Eine Datensatzgruppe kann eine unbeschränkte Anzahl von Spalten vom Typ CHAR, LONG, NUMBER oder DATE haben, vorausgesetzt, die Gesamtanzahl von Spalten überschreitet 64 K nicht.

Wenn Sie eine Werteliste erstellen, geben Sie an, welche Spalten in der zugrundeliegenden Datensatzgruppe in dem Fenster mit der Werteliste angezeigt werden sollen. Spalten von Datensatzgruppen werden immer in dem Wertelisten-Fenster in der Reihenfolge angezeigt, in der sie in der Datensatzgruppe stehen.

Da Wertelisten und Datensatzgruppen separate Objekte sind, können Sie mehrere Wertelisten basierend auf derselben Datensatzgruppe erstellen. So könnten Sie z.B. zwei Wertelisten erstellen, die auf derselben 4spaltigen Datensatzgruppe basieren, wobei jede dieser Wertelisten unterschiedliche Spalten aus dieser Datensatzgruppe anzeigen könnte.

Werte von Datensatzgruppen  Die tatsächlichen Werte in einer Datensatzgruppe stammen aus einer von zwei Quellen:

•	Ausführung einer SELECT-Anweisung, die Sie beim Entwurf mit der Datensatzgruppe verknüpft haben (Abfrage-Datensatzgruppe)

•	Array mit statischen Werten, die Sie beim Entwurf mit der Datensatzgruppe verknüpft haben (statische Datensatzgruppe)

Hinweis:  Wenn eine Werteliste auf einer Abfrage-Datensatzgruppe basiert (einer Datensatzgruppe, die über eine zugeordnete SELECT-Anweisung verfügt), führt Form Builder die Abfrage standardmäßig jedesmal aus, wenn die Werteliste angezeigt wird, und ruft alle Datensätze ab, die den Abfragekriterien der Datensatzgruppe entsprechen. Durch diese Funktionalität wird gewährleistet, daß die Werteliste immer die aktuellen Datenbankwerte anzeigt.


Über Rückgabeobjekte von Wertelisten

  Verwandte Themen

Beim Erstellen einer Werteliste geben Sie an, welche Spalten aus der zugrundeliegenden Datensatzgruppe in der Werteliste aufgenommen werden sollen. Sie können ein Rückgabeobjekt für jede Spalte angeben, die Sie in der Werteliste aufnehmen. Wenn der Endbenutzer eine Auswahl aus der Werteliste trifft, weist Form Builder die Werte aus den Spalten in dem ausgewählten Datensatz den entsprechenden Rückgabeobjekten zu.

Mit dieser Funktion können Endbenutzer ein Textobjekt auffüllen, indem sie Werte aus einer Werteliste auswählen. Typischerweise navigieren Endbenutzer zu dem nächsten Objekt und drücken [Werteliste], um eine Liste mit Einträgen aufzurufen, die für dieses Objekt gültig sind. Wenn der Endbenutzer einen Wert auswählt, gibt Form Builder diesen Wert automatisch in das Textobjekt zurück. Durch die Benutzung einer Werteliste wird Eingabeaufwand bei der Dateneingabe gespart und wird gewährleistet, daß der eingegebene Wert für dieses Objekt gültig ist.

Mit dieser Funktion können auch Formobjekte mit Werten aus verborgenen Spalten aufgefüllt werden. Eine verborgene Spalte ist eine beliebige Spalte, die in der Struktur der Werteliste enthalten war, deren Werte jedoch nicht in dem Wertelisten-Fenster angezeigt werden. (Bedenken Sie, daß Sie bei der Definition der Werteliste angeben, welche Spalten aus der zugrundeliegenden Datensatzgruppe in der Werteliste enthalten sind.)

Betrachten Sie eine Werteliste mit Kundenname enthält. Die Werteliste basiert auf einer Abfrage-Datensatzgruppe, die Spalten aus der Tabelle Kunde enthält, einschießlich Name, ID, Telefon und Kontakt. Für jede Spalte in der Werteliste ist ein Rückgabeobjekt vorhanden.

Der Endbenutzer kann die Werteliste aufrufen, indem er [Werteliste] aus dem Textobjekt cust_block.name drückt. Wenn der Endbenutzer einen Kundennamen aus der Werteliste auswählt, gibt Form Builder alle Informationen über diesen Kunden in den entsprechenden Rückgabeobjekten zurück.


Wertelisten erstellen

  Nächster Schritt	    Verwandte Themen

So erstellen Sie eine Werteliste mit dem Wertelisten-Assistenten:

1	Klicken Sie auf den Knoten Wertelisten im Objektnavigator.

2	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

3	Wählen Sie im Dialogfeld Neue Werteliste die Option Wertelisten-Assistent verwenden.

Hinweis: Mit dem Wertelisten-Assistenten können Sie eine Werteliste basierend auf einer bestehenden Abfragedatensatzgruppe, einer neuen Abfragedatensatzgruppe (die Sie mit dem Assistenten erstellen) oder einer bestehenden statischen Datensatzgruppe erstellen. Wenn Sie eine Werteliste basierend auf einer neuen statischen Datensatzgruppe erstellen müssen, erstellen Sie zuerst die neue statische Datensatzgruppe. Danach erstellen Sie die Werteliste mit dem Wertelisten-Assistenten.

So erstellen Sie eine Werteliste manuell:

1	Klicken Sie auf den Knoten Wertelisten im Objektnavigator.

2	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

3	Im Dialogfeld Neue Werteliste wählen Sie Neue Datensatzgruppe basierend auf folgender Abfrage.

Daraufhin wird eine neue Werteliste mit einem allgemeinen Namen erstellt und im Objektnavigator angezeigt.

4	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben der neuen Werteliste, um die Attributpalette anzuzeigen.

5	Mit der Attributpalette stellen Sie die gewünschten Attribute für die neue Werteliste ein.


SELECT-Abfrageanweisung für eine bestehende Werteliste ändern

  Verwandte Themen

So ändern Sie eine SELECT-Abfrageanweisung für eine bestehende Werteliste:

1	Wählen Sie die Werteliste im Objektnavigator aus.

2	Wählen Sie Werkzeuge [image] Wertelisten-Assistent.

3	Klicken Sie auf das Register Datensatzgruppe am Anfang des Assistenten.

oder

1	Im Knoten Datensatzgruppen des Objektnavigators doppelklicken Sie auf das Objektsymbol neben der Datensatzgruppe, auf der die Werteliste basieren soll, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Funktional ändern Sie das Attribut Datensatzgruppenabfrage entsprechend.

Hinweis: Alle anderen Wertelisten, die auf dieser Datensatzgruppe basieren, sind möglicherweise von der Änderung der Datensatzgruppenabfrage betroffen. Mit dem Wertelisten-Assistenten können Sie automatisch eine neue Datensatzgruppe basierend auf der geänderten Abfrage erstellen und die Werteliste auf dieser neuen Datensatzgruppe basieren.


Mit einer Werteliste verknüpfte Spalten anzeigen

  Verwandte Themen

So zeigen Sie die mit einer Werteliste verknüpften Spalten an:

1	Wählen Sie die Werteliste im Objektnavigator aus.

2	Wählen Sie Werkzeuge [image] Wertelisten-Assistent.

3	Klicken Sie auf das Register Spaltenanzeige am Anfang des Assistenten.

oder

1	Im Knoten Wertelisten im Objektnavigator doppelklicken Sie auf das Objektsymbol neben der gewünschten Werteliste, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Funktional doppelklicken Sie auf Attribute Spaltenzuordnung.

Daraufhin wird das Dialogfeld Werteliste Spaltenzuordnung angezeigt, und Form Builder zeigt die Namen der Wertelistenspalten in der Liste Spaltennamen der Werteliste an.


Spalten aus einer Werteliste löschen

  Verwandte Themen

So löschen Sie eine Spalte aus einer Werteliste:

1	Wählen Sie die Werteliste im Objektnavigator aus.

2	Wählen Sie Werkzeuge [image] Wertelisten-Assistent.

3	Klicken Sie auf das Register Spalten am Anfang des Assistenten.

4	Die unter Wertelistenspalten aufgeführten Spalten entsprechen den momentan in der Werteliste aufgenommenen Spalten. Um eine einzelne Spalte zu entfernen, wählen Sie die Spalte aus und klicken auf [image]. Um alle Spalten zu entfernen, klicken Sie auf [image].

oder

1	Im Knoten Wertelisten im Objektnavigator doppelklicken Sie auf das Objektsymbol neben der gewünschten Werteliste, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Funktional doppelklicken Sie auf Attribute Spaltenzuordnung. Daraufhin wird das Dialogfeld Werteliste Spaltenzuordnung angezeigt.

3	Wählen Sie die zu löschende Spalte in der Liste Spaltenname, und drücken Sie [Element löschen].


Spalten zu einer Werteliste hinzufügen

  Verwandte Themen

So fügen Sie eine Spalte zu einer Werteliste hinzu:

1	Wählen Sie die Werteliste im Objektnavigator aus.

2	Wählen Sie Werkzeuge [image] Wertelisten-Assistent.

3	Klicken Sie auf das Register Spalten am Anfang des Assistenten.

4	Die unter Datensatzgruppenspalten aufgeführten Spalaten entsprechen den Spalten, die momentan nicht in der Werteliste enthalten sind. Um eine einzelne Spalte hinzuzufügen, wählen Sie die gewünschte Spalte aus und klicken auf [image]. Um alle Spalten hinzuzufügen, klicken Sie auf [image].

oder

1	Im Knoten Wertelisten im Objektnavigator doppelklicken Sie auf das Objektsymbol neben der gewünschten Werteliste, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Funktional doppelklicken Sie auf Attribute Spaltenzuordnung. Daraufhin wird das Dialogfeld Werteliste Spaltenzuordnung angezeigt.

3	Geben Sie den Namen der Datensatzgruppenspalte in die Liste Spaltennamen ein, die zu der Werteliste hinzufgefügt werden soll.

4	Stellen Sie das Attribut Anzeigebreite auf die Breite in den entsprechenden Einheiten ein (Punkt, Pixel, Zentimenter, Zoll oder Zeichen wie mit dem Formattribut Koordinatensystem angegeben), die Form Builder für die Spalte in dem Wertelistenfenster reservieren soll.

Hinweis: Für das Attribut Anzeigebreite wird standardmäßig die Breite benutzt, die für die Spalte in der Datensatzgruppe angegeben wurde.. Wenn die Datensatzgruppe eine Abfragedatensatzgruppe ist, entspricht die Standardbreite der Breite der entsprechenden Datenbankspalte beim Erstellen der Datensatzgruppe.

Tip:  Um zusätzlichen Platz zwischen den Spalten im Wertelisten-Fenster einzufügen, geben Sie für Anzeigebreite einen größeren Wert als die Standardbreite für die Spalte an. Als Ausnahme zu dieser Regel muß beachtet werden, daß die Breite zwischen einer NUMBER-Spalte und einer Nicht-NUMBER-Spalte nicht erhöht werden kann, indem die Anzeigebreite für die NUMBER-Spalte erhöht wird, da Zahlen in Wertelisten rechtsbündig ausgerichtet sind.

Angenommen, Ihre Werteliste enthält 3 Spalten: Spalte 1 und 3 sind vom Typ CHAR und Spalte 2 vom Typ NUMBER. Um die Breite zwischen jeder Spalte zu erhöhen, vergrößern Sie die Anzeigebreite für Spalte 1 und 3.


Spalten in einer Werteliste verbergen

  Verwandte Themen

So verbergen Sie eine Spalte in einer Werteliste:

1	Wählen Sie die Werteliste im Objektnavigator aus.

2	Wählen Sie Werkzeuge [image] Wertelisten-Assistent.

3	Klicken Sie auf das Register Spaltenanzeige am Anfang des Assistenten.

4	Alle Spalten in der Werteliste werden in der Tabelle aufgeführt. Bei Spalten, die verborgen werden sollen, ändern Sie den Breitenwert in der Tabelle in null.

oder

1	Im Knoten Wertelisten im Objektnavigator doppelklicken Sie auf das Objektsymbol neben der gewünschten Werteliste, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Funktional doppelklicken Sie auf Attribute Spaltenzuordnung. Daraufhin wird das Dialogfeld Werteliste Spaltenzuordnung angezeigt.

3	Wählen Sie die gewünschte Spalte, und legen Sie dann das Attribut Anzeigebreite auf null fest. (Beachten Sie, daß verborgene Spalten, genau wie angezeigte Spalten, weiterhin Rückgabeobjekten zugewiesen werden können.)


Spaltentitel in einer Werteliste erstellen

  Verwandte Themen

So erstellen Sie einen Spaltentitel:

1	Wählen Sie die Werteliste im Objektnavigator aus.

2	Wählen Sie Werkzeuge [image] Wertelisten-Assistent.

3	Klicken Sie auf das Register Spaltenanzeige am Anfang des Assistenten.

4	Alle Spalten in der Werteliste werden in der Tabelle aufgeführt. Ändern Sie den Wert Titel für die Spalten in den gewünschten Spaltentitel.

oder

1	Im Knoten Wertelisten im Objektnavigator doppelklicken Sie auf das Objektsymbol neben der gewünschten Werteliste, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Funktional doppelklicken Sie auf Attribute Spaltenzuordnung. Daraufhin wird das Dialogfeld Werteliste Spaltenzuordnung angezeigt.

3	Wählen Sie die gewünschte Spalte in der Liste Spaltennamen aus, und geben Sie dann den gewünschten Titel in das Attributfeld Spaltentitel ein.

Tip:  Beim Erstellen von Titeln beachten Sie die Anzeigebreite der Spalte. Form Builder schneidet einen Titel ab, der nicht in die für die Werte in dieser Spalte reservierte Anzeigebreite paßt. (Denken Sie daran, daß sich durch Ändern des Schriftgrads für den Text in der Werteliste die Anzahl von Zeichen ändern kann, die in eine bestimmte Anzeigebreite passen.)


Über die Angabe von Rückgabeobjekten für Wertelisten

  Verwandte Themen

Sie können ein Rückgabeobjekt für jede Spalte in der Werteliste angeben. Wenn ein Endbenutzer eine Auswahl aus der Werteliste trifft, weist Form Builder den ausgewählten Wert dem entsprechenden Rückgabeobjekt zu.

Bei dem Rückgabeobjekt kann es sich um ein beliebiges Objekt in der aktuellen Form, eine globale Variable oder einen Formparameter handeln. Geben Sie den Namen des Rückgabeobjekts mit der entsprechenden Syntax ein:

Objekt:	customer.name
Globale Variable	GLOBAL.my_global
Formparameter:	PARAMETER.my_parameter
Setzen Sie keinen Doppelpunkt vor den Objektnamen.

Hinweis:  Der Datentyp des Rückgabeobjekts muß mit dem Datentyp des zurückgegebenen Wertes kompatibel sein.

Denken Sie daran, daß Sie ein Rückgabeobjekt für eine verborgene Spalte (eine Spalte, bei der die Anzeigebreite auf null eingestellt ist) angeben können.

Die Rückgabeobjekte können mit Spaltenattributen oder in der SELECT-Anweisung der Datensatzgruppenabfrage einer Werteliste basieren auf einer Abfragedatensatzgruppe angegeben werden.


Rückgabeobjekte von Wertelisten mit Spaltenattributen angeben

  Verwandte Themen

So geben Sie ein Rückgabeobjekt von Wertelisten an:

1	Wählen Sie die Werteliste im Objektnavigator aus.

2	Wählen Sie Werkzeuge [image] Wertelisten-Assistent.

3	Klicken Sie auf das Register Spaltenanzeige am Anfang des Assistenten.

4	Alle Spalten in der Werteliste werden in der Tabelle aufgeführt. Ändern Sie den Rückgabewert für die Spalten in den Namen des gewünschten Rückgabeobjekts. Mit der Schaltfläche Rückgabeobjekt suchen können Sie das richtige Rückgabeobjekt für die Spalte suchen.

oder

1	Im Knoten Wertelisten im Objektnavigator doppelklicken Sie auf das Objektsymbol neben der gewünschten Werteliste, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Funktional doppelklicken Sie auf Attribute Spaltenzuordnung. Daraufhin wird das Dialogfeld Werteliste Spaltenzuordnung angezeigt.

3	Wählen Sie die gewünschte Spalte aus der Liste Spaltennamen.

4	Im Feld Rückgabeobjekt geben Sie einen Namen (Objekt, globale Variable oder Parameter) ein.

Tip:  Wenn keine Spalte zurückgegeben werden soll, lassen Sie das Attribut Rückgabeobjekt leer.


Rückgabeobjekte von Wertelisten in der SELECT-Anweisung angeben

  Verwandte Themen

So geben Sie ein Rückgabeobjekt in der SELECT-Anweisung an:

Wenn Sie eine Werteliste basierend auf einer Abfrage-Datensatzgruppe erstellen, können Sie Rückgabeobjekte in der SELECT-Anweisung angeben.

Im Dialogfeld Neue Werteliste fügen Sie die entsprechende INTO-Klausel in die SELECT-Anweisung ein, und klicken Sie dann auf OK.

Angenommen, alle Informationen über einen Kunden sollen in die entsprechenden Formobjekte zurückgegeben werden, sobald ein Endbenutzer einen Namen aus der Kunden-Werteliste wählt. Hierzu könnten Sie beim Erstellen der Datensatzgruppe im Dialogfeld Neue Werteliste folgende SELECT-Anweisung schreiben:

SELECT id, name, contact, phone
INTO :cust.id, :cust.name :cust.contact, :cust.phone
FROM CUSTOMER;

Wenn Sie die Schaltfläche OK wählen, um die Datensatzgruppe zu erstellen, analysiert Form Builder die SELECT-Anweisung und fügt die Namen der Rückgabeobjekte automatisch in das Feld Rückgabeobjekt ein.

Die Reihenfolge der Rückgabeobjekte, die in der INTO-Klausel referenziert werden, muß der Reihenfolge der Datenbankspalten entsprechen, die in der SELECT-Klausel referenziert werden.

Hinweis:  Die INTO-Klausel stellt die Beziehung zwischen der Werteliste und den Rückgabeobjekten her, wirkt sich jedoch nicht auf die Definition der Ergebnis-Datensatzgruppe aus. Wenn Sie die neue Datensatzgruppe in der Attributpalette anzeigen, sehen Sie nur die SELECT-Anweisung ohne die INTO-Klausel. Es ist die Werteliste selbst, die mit den Rückgabeobjekten verknüpft ist, und nicht das Datensatzgruppenobjekt.


Über das Validieren von Textobjekten mit Werten aus Wertelisten

  Verwandte Themen

Wenn Sie eine Werteliste einem Textobjekt zuordnen, können Sie das optionale Attribut Aus Liste validieren setzen, damit Form Builder den Wert des Textobjekts anhand der Werte in der Werteliste validiert.

Wenn für Aus Liste validieren Ja angegeben wurde, vergleicht Form Builder den aktuellen Wert des Textobjekts mit den Werten in der ersten Spalte, die in der Werteliste angezeigt wird, sobald es zu einem Validierungsereignis kommt:

•	Wenn der Wert in dem Textobjekt einem der Werte in der ersten Spalte der Werteliste entspricht, ist die Validierung erfolgreich, die Werteliste wird nicht angezeigt, und die Verarbeitung wird normal fortgeführt.

•	Wenn der Wert in dem Textobjekt keinem der Werte in der ersten Spalte der Werteliste entspricht, zeigt Form Builder die Werteliste an und benutzt den Wert des Textobjekts als Suchkriterium, um die Liste automatisch zu reduzieren.

Wenn der Endbenutzer z.B. die ersten drei Ziffern eines 6 Ziffern umfassenden Produktcodes eingibt und dann versucht, zum nächsten Objekt zu navigieren, zeigt Form Builder die Werteliste an und reduziert die Liste automatisch so, daß alle Codes angezeigt werden, bei denen die ersten drei Ziffern identisch sind.

•	Wenn der Endbenutzer einen Wert aus der Werteliste auswählt, schließt Form Builder die Werteliste und weist die ausgewählten Werte den entsprechenden Rückgabeobjekten zu.

Wenn Sie eine Werteliste zur Validierung benutzen, markiert Form Builder ein Textobjekt immer als Gültig, wenn der Endbenutzer eine Auswahl aus der Werteliste trifft. Somit müssen Sie gewährleisten, daß a) das Textobjekt, dem die Werteliste zugeordnet ist, als Rückgabeobjekt für die erste in der Werteliste angezeigte Spalte definiert ist, und b) die Werte in der Werteliste tatsächlich gültig sind.

Hinweis:  Obwohl das Objekt intern als gültig markiert ist, wird der When-Validate-Item-Trigger dennoch ausgelöst, wenn vorhanden.

Beachten Sie außerdem, daß die erste in der Werteliste angezeigte Spalte möglicherweise nicht die erste Spalte in der zugrundeliegenden Datensatzgruppe der Werteliste ist, da möglicherweise einige Datensatzgruppenspalten nicht in der Struktur der Werteliste aufgenommen sind, oder verborgene Spalten sein können.


Werte aus Wertelisten zur Validierung von Textobjekten benutzen

  Verwandte Themen

So verwenden Sie Werte aus Wertelisten zur Validierung von Textobjekten:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem gewünschten Textobjekt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Wertelisten stellen Sie das Attribut Aus Liste validieren auf Ja ein.


Über das Zuordnen von Wertelisten an Textobjekte

  Verwandte Themen

Sie können eine Werteliste einem oder mehreren Textobjekten in einer Form zuordnen. Wenn der Endbenutzer oder die Anwendung zu einem Textobjekt navigiert, dem eine Werteliste zugeordnet ist, zeigt Form Builder die Anzeige für die Werteliste in der Statuszeile an, um anzugeben, daß eine Werteliste verfügbar ist. Endbenutzer können die Werteliste aufrufen, indem sie [Werteliste] drücken.

Wenn Sie das Attribut Automatisch anzeigen für die Werteliste auf Ja einstellen, zeigt Form Builder die Werteliste automatisch an, wenn der Endbenutzer zu dem Textobjekt navigiert.


Wertelisten einem Textobjekt beim Entwurf zuordnen

  Nächster Schritt	    Verwandte Themen

So ordnen Sie eine bestehende Werteliste einem Textobjekt zu:

1	Wählen Sie die Werteliste im Objektnavigator aus.

2	Wählen Sie Werkzeuge [image] Wertelisten-Assistent.

3	Klicken Sie auf das Register Objekte am Anfang des Assistenten.

4	Die unter Rückgabeobjekte aufgeführten Objekte entsprechen den Objekten, an die die Werteliste einen Wert zurückgibt, wenn der Benutzer sie auswählt. Um die Werteliste einem dieser Objekte zuzuordnen, wählen Sie das Objekt und klicken auf [image]. Um die Werteliste all diesen objekte zuzuordnen, klicken Sie auf [image].

oder

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem gewünschten Textobjekt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Wertelisten stellen Sie das Attribut Werteliste ein, indem Sie den Namen der Werteliste eingeben, die dem Textobjekt zugeordnet werden soll.

3	Stellen Sie die Anzeigekoordinaten der Werteliste ein, indem Sie die Attribute Liste X-Position und Liste Y-Position festlegen.

Tip:  Belassen Sie die Koordinaten auf 0,0 (Standard), wenn Form Builder die Standard-Anzeigeposition der Werteliste benutzen soll. Ändern Sie die Attribute Liste X-/Y-Position auf andere Werte als 0,0, wenn die Standard-Anzeigeposition der Werteliste außer Kraft gesetzt werden soll.


Wertelisten programmgesteuert zur Laufzeit zuordnen

  Verwandte Themen

Sie können eine Werteliste einem Textobjekt programmgesteuert mit der vordefinierten Prozedur SET_ITEM_PROPERTY zuordnen. Mit dem folgenden Beispiel wird die Werteliste namens lov2 dem Textobjekt namens emp.empno zugeordnet:

Set_Item_Property('emp.empno',LOV_NAME,'lov2');

Um nun festzustellen, welche Werteliste einem Textobjekt zugeordnet ist, rufen Sie GET_ITEM_PROPERTY auf:

IF Get_Item_Property('emp.empno',LIST) = 'lov1' THEN
   Set_Item_Property('emp.empno',LIST,'lov2');
END IF;

Wenn Sie wissen möchten, ob einem Textobjekt im Augenblick eine Werteliste zugeordnet ist, können Sie GET_ITEM_PROPERTY mit der Konstanten LIST aufrufen:

IF Get_Item_Property('emp.empno',LIST) = 'TRUE' THEN...


Wertelisten programmgesteuert anzeigen

Es gibt zwei vordefinierte Prozeduren, mit denen Sie eine Werteliste anzeigen können:

•	LIST_VALUES

•	SHOW_LOV

LIST_VALUES zur Anzeige einer Werteliste benutzen  Mit der Prozedur LIST_VALUES wird eine Werteliste angezeigt, wenn die folgenden Laufzeitbedingungen erfüllt sind:

•	Bei dem aktuellen Objekt in der Form handelt es sich um ein Textobjekt.

•	Dem Textobjekt ist eine Werteliste zugeordnet.

Die Prozedur LIST_VALUES wird häufig aus einem When-New-Item-Instance-Trigger aufgerufen, um eine Werteliste anzuzeigen, wenn der Endbenutzer oder die Anwendung zu einem Textobjekt navigiert, dem eine Werteliste zugeordnet ist.

Die Prozedur LIST_VALUES kann auch aus einem Key-LISTVAL-Trigger aufgerufen werden. Dieser Trigger wird ausgelöst, wenn ein Endbenutzer [Werteliste] drückt. Wenn LIST_VALUES aus einem Key-LISTVAL-Trigger aufgerufen wird, können Sie die standardmäßige Formverarbeitung für die Taste [Werteliste] verbessern.

Denken Sie daran, daß Form Builder standardmäßig eine Werteliste anzeigt, wenn der Endbenutzer [Werteliste] in einem Textobjekt drückt, dem eine Werteliste zugeordnet ist. Sie können diese Standardfunktionalität duplizieren, indem Sie einen Key-LISTVAL-Trigger schreiben, der die Prozedur LIST_VALUES aufruft:

Key-LISTVAL-Trigger:

List_Values;

So wie er hier geschrieben ist, ist dieser Trigger nur von geringem Wert, da er nur die Form Builder Standard-Funktionalität dupliziert. Mit einem Key-LISTVAL-Trigger können Sie jedoch nachfolgende PL/SQL-Anweisungen hinzufügen, die nach Anzeige der Werteliste ausgeführt werden, jedoch bevor Form Builder wieder zu der normalen Ereignisfolge zurückkehrt.

Im folgenden Beispiel wird eine IF-Anweisung zum vorherigen Trigger hinzugefügt:

Key-LISTVAL-Trigger:

List_Values;
IF :customer.id IS NULL THEN
   Go_Item ('customer.id');
END IF;

Wenn in diesem Beispiel ein Endbenutzer das Textobjekt eingibt und [Werteliste] drückt, zeigt Form Builder die zugeordnete Werteliste an, in diesem Fall eine Liste mit Kundennamen. Nachdem der Endbenutzer einen Kunden aus der Liste ausgewählt hat, navigiert der Trigger zu einem anderen Objekt, wenn der Wert eines der Rückgabeobjekte (customer.id) gleich NULL ist.

Denken Sie daran, daß Endbenutzer eine Werteliste verwerfen können, ohne eine Auswahl zu treffen. PL/SQL-Anweisungen, die im Anschluß an die Prozedur LIST_VALUES ausgeführt werden, sollten entsprechend geschrieben werden.

Werteliste mit SHOW_LOV anzeigen  Mit der Funktion SHOW_LOV wird eine angegebene Werteliste bei den angegebenen Anzeigekoordinaten angezeigt. Im Gegensatz zu LIST_VALUES muß bei SHOW_LOV die Werteliste keinem Textobjekt zugeordnet sein. So können Sie z.B. SHOW_LOV benutzen, damit Endbenutzer eine Werteliste aufrufen können, indem Sie auf eine Schaltfläche klicken oder einen Menüpunkt auswählen.

Die Funktion SHOW_LOV ist eine BOOLESCHE Funktion, die TRUE zurückgibt, wenn der Endbenutzer eine Auswahl aus der Werteliste trifft, und FALSE, wenn der Endbenutzer die Werteliste abbricht, ohne eine Auswahl zu treffen.

Die einfachste Möglichkeit, die Funktion SHOW_LOV aufzurufen, besteht darin, den Rückgabewert von SHOW_LOV einer Pseudovariablen zuzuweisen, wie im folgenden When-Button-Pressed-Trigger dargestellt.

When-Button-Pressed-Trigger:

DECLARE
   dummy	 BOOLEAN;
BEGIN
   dummy := Show_LOV('my_lov',15,10);
END;

Die Anzeigekoordinaten, die in der Argumentliste von SHOW_LOV angegeben werden (15 und 10) setzen die Standardkoordinaten der Werteliste außer Kraft.

Wenn Sie eine Maßnahme ergreifen möchten, je nachdem, ob der Endbenutzer eine Auswahl getroffen oder die Werteliste abgebrochen hat, könnten Sie den Trigger wie folgt strukturieren:

When-Button-Pressed-Trigger:

IF Show_LOV('my_lov',15,10) THEN
/* the end user made a selection and Form Builder returned
** the selected column values to the corresponding
** return items so do something here
*/
Message('Good Choice!');
ELSE
/* The end user canceled the LOV without making a selection
** so do something else instead
*/
Message('Please enter a value.');
END IF;

In diesem Beispiel wird die Funktion SHOW_LOV als Testbedingung für ein IF-THEN-ELSE-Konstrukt benutzt. Wenn der Endbenutzer eine Auswahl aus der Liste trifft, ist die Bedingung TRUE, und Form Builder führt die erste Gruppe mit bedingten Anweisungen aus.

Wenn der Endbenutzer die Werteliste abbricht, ohne eine Auswahl zu treffen, ist die Bedingung FALSE, und Form Builder führt die zweite Gruppe mit bedingten Anweisungen aus.


Wertelisten wiederbenutzen

Sie können dieselbe Werteliste an mehr als einer Stelle in einer Anwendung anzeigen. Diese Technik ist besonders für Anwendungen von Vorteil, bei denen Endbenutzer in mehr als einem Kontext auf dieselben Informationen zugreifen können. Möglicherweise sollen Endbenutzer einen Kundennamen aus einer Werteliste auswählen können, wenn sie einen neuen Auftrag eingeben, und auch, wenn sie einen monatlichen Rechnungsauszug generieren.

Um eine Werteliste an mehr als einer Stelle in einer Anwendung zu benutzen, könnten Sie die Spaltenwerte aus dem ausgewählten Datensatz verschiedenen Rückgabeobjekten zuweisen, je nach Anwendungskontext.

Hierzu benutzen Sie globale Variablen oder Formparameter als Rückgabeobjekte in Verbindung mit der vordefinierten Prozedur SHOW_LOV.

So könnten Sie z.B. eine Werteliste basierend auf einer 4spaltigen Datensatzgruppe definieren, die Werte in 4 globale Variablen zurückgibt, die die Namen GLOBAL.one bis GLOBAL.four haben.

Wenn Sie den Trigger zur Anzeige der Werteliste schreiben, weisen Sie auch die Werte der Rückgabeobjekte in Form von globalen Variablen den Formobjekten für den aktuellen Anwendungskontext zu:

Trigger-Text:

IF Show_LOV('generic_lov') THEN
/* The end user made a selection and Form Builder assigned
** the selected values to the global variable return items.
** Now assign those values to the appropriate form items:
*/
   :block_A.item1 := :GLOBAL.one;
   :block_A.item2 := :GLOBAL.two;
   :block_A.item3 := :GLOBAL.three;
   :block_A.item4 := :GLOBAL.four;
END IF;


Attribute von Wertelisten zur Laufzeit festlegen

Sie können die folgenden vordefinierten Prozeduren verwenden, um Attribute von Wertelisten zur Laufzeit abzurufen und festzulegen:

•	GET_LOV_PROPERTY

•	SET_LOV_PROPERTY

Mit der Prozedur SET_LOV_PROPERTY können die folgenden Attribute von Wertelisten gesetzt werden:

•	GROUP_NAME

•	Größe

•	X-Position, Y-Position

Durch Festlegen des Attributs GROUP_NAME können Sie die zugrundeliegende Datensatzgruppe einer Werteliste durch eine andere Datensatzgruppe erstellen. Im folgenden Beispiel wird eine Datensatzgruppe namens new_group mit der Werteliste namens my_lov verknüpft, indem das Attribut GROUP_NAME eingestellt wird:

Set_LOV_Property('my_lov',GROUP_NAME,'new_group');

Die neue Datensatzgruppe bleibt während der Dauer der Sitzung mit der Werteliste verknüpft, bzw. bis sie durch einen weiteren Aufruf von SET_LOV_PROPERTY ersetzt wird.

Wenn Sie die Datensatzgruppe einer Werteliste durch eine andere Datensatzgruppe ersetzen, muß die neue Datensatzgruppe:

•	in der Form vorhanden sein, wenn SET_LOV_PROPERTY aufgerufen wird.

•	Spaltennamen und Spaltentypen aufweisen, die den Spaltennamen und Spaltentypen in der ersetzten Datensatzgruppe entsprechen.


Werteliste mit einer REF-Spalte benutzen

In dem folgenden Beispiel wird die Benutzung einer Werteliste mit einer Oracle8 REF-Spalte dargestellt. Diese Technik kann für REF-Verweise benutzt werden, bis die vollständige Unterstützung der PL/SQL-Codierung verfügbar ist.

Aus einer Objekttabelle mit der Bezeichnung O_EMP erstellen Sie einen Block mit der Bezeichnung O_EMP, der folgende Objekte enthält:

  MGR

  DEPTREF

  EMPNO

  ENAME

  JOB

  SAL

  COMM

  MGR_ENAME

  DEPTREF_DNAME

Erstellen Sie eine Datensatzgruppe mit der Bezeichnung RG mit der folgenden Abfrage. (Beachten Sie, daß o das Alias für die Tabelle o_emp in diesem Beispiel ist.)

  select o.ename from o_emp o

Erstellen Sie eine Datensatzgruppe mit der Bezeichnung MGRS mit der folgenden Abfrage.

  select ref(o) refemp, o.ename from o_emp o

Erstellen Sie eine Werteliste, ebenfalls mit der Bezeichnung MGRS, basierend auf der Datensatzgruppe MGRS.  Diese Werteliste wird dem Objekt MGR_ENAME zugeordnet.

Erstellen Sie einen WHEN-VALIDATE-ITEM-Trigger, der dem Objekt MGR_ENAME zugeordnet ist. Der Trigger enthält den folgenden Code:

  DECLARE

     mgrref   VARCHAR2(128);
     mgrrec   NUMBER;

  BEGIN

     mgrrec := POPULATE_GROUP('mgrs');
     mgrrec := GET_GROUP_RECORD_NUMBER('mgrs.ename', :o_emp.mgr_ename);

     IF mgrrec <> 0 THEN

          mgrref := GET_GROUP_CHAR_CELL('mgrs.refemp', mgrrec);
          COPY(mgrref, 'o_emp.mgr');

     ELSE

          MESSAGE('Manager name not found');
          RAISE FORM_TRIGGER_FAILURE;

     END IF;

  END;

Der obige Code ermittelt den REF-Wert und setzt ihn in eine lokale Variable varchar2. Danach wird er in der Objekt kopiert. Der obige Code ist gleichbedeutend mit der PL/SQL-Anweisung:

:o_emp.mgr := get_group_char_cell('mgrs.refemp', mgrref);.


Wertelisten-Assistent: Willkommenseite

  Nächster Schritt	  Verwandte Themen

Über den Wertelisten-Assistenten

Mit dem Wertelisten-Assistenten können Sie eine Werteliste erstellen und ändern. Eine Werteliste ist ein Auswahlfenster, in dem eine ein- oder mehrspaltige Auswahlliste für den Benutzer angezeigt wird. Mit dem Wertelisten-Assistenten können Sie eine Werteliste basierend auf einer bestehenden Datensatzgruppe oder einer neuen Datensatzgruppe erstellen, die mit einer SQL-Abfrage aufgefüllt wird.

Der Wertelisten-Assistent ist reentrant

Der Wertelisten-Assistent kann im reentranten Modus ausgeführt werden. Im reentranten Modus können Sie eine bestehende Werteliste mit dem Wertelisten-Assistenten ändern, selbst wenn die Werteliste ursprünglich nicht mit dem Wertelisten-Assistenten erstellt wurde.

Um den Wertelisten-Assistenten im reentranten Modus aufzurufen, wählen Sie eine bestehende Werteliste im Objektnavigator und wählen dann Werkzeuge [image] Wertelisten-Assistent. Im reentranten Modus können Sie mit Registern am oberen Rand des Fensters durch die einzelnen Seiten des Assistenten navigieren.

Im Wertelisten-Assistenten navigieren

Der Wertelisten-Assistent enthält sechs Schaltflächen, mit denen Sie durch die einzelnen Seiten navigieren können:

•	Abbrechen  Bricht die von Ihnen vorgenommenen Änderungen ab und beendet den Assistenten.

•	Hilfe  Zeigt einen Online-Hilfetext für die aktuelle Registerseite des Assistenten an.

•	Zurück  Navigiert zu der vorherigen Registerseite in dem Assistenten.

•	Weiter  Navigiert zu der nächsten Registerseite in dem Assistenten.

•	Anwenden  Wendet die vorgenommenen Änderungen an, ohne den Assistenten zu beenden (nur reentranter Modus).

•	Fertig  Speichert die von Ihnen vorgenommenen Änderungen und beendet den Assistenten.

Im reentranten Wertelisten-Assistenten können Sie auch mit den Registern am oberen Rand des Assistenten navigieren. Mit den Pfeiltasten rechts neben den Registern können Sie Register anzeigen, die über den Rand des Assistenten hinaus nicht sichtbar sind.

Hinweis:  Wenn Sie auf Weiter oder Zurück klicken, bevor Sie alle erforderlichen Informationen für ein bestimmtes Register in dem Assistenten eingegeben haben, hindert der Assistent Sie daran, diese Registerseite zu verlassen. Wenn Sie beim Klicken auf Anwenden oder Fertig nicht alle erforderlichen Informationen in den Assistenten eingegeben haben, führt der Assistent Sie automatisch zu der Registerseite, auf der Daten fehlen oder falsche Daten stehen.

Diese Seite das nächste Mal anzeigen

Die Willkommenseite des Wertelisten-Assistenten wird automatisch angezeigt, wenn Sie den Wertelisten-Assistenten das erste Mal aufrufen. Wenn diese Seite bei späteren Aufrufen des Assistenten nicht wieder angezeigt werden soll, heben Sie die Auswahl des Kontrollkästchens Diese Seite das nächste Mal anzeigen auf. Diese Einstellung kann auch im Dialogfeld Voreinstellungen geändert werden.


Wertelisten-Assistent: Wertelistenquelle
Wertelisten-Assistent: Register Wertelistenquelle

  Nächster Schritt 	   Verwandte Themen	  Über den Wertelisten-Assistenten

So geben Sie die Quelle für die neue Werteliste an:

1	Wenn die neue Werteliste auf einer neuen Datensatzgruppe basieren soll, wählen Sie die Optionsschaltfläche Neue Datensatzgruppe basierend auf einer Abfrage. (Sie geben die Abfrage für diese neue Datensatzgruppe auf einer der folgenden Registerseiten des Assistenten an.)

Hinweis: Der Wertelisten-Assistent unterstützt das Erstellen von Wertelisten basierend auf neuen statischen Datensatzgruppen nicht. Sie können Ihre Werteliste jedoch auf einer bestehenden statischen Datensatzgruppe aufbauen. Siehe unten.

2	Wenn der neue Wertelisten-Assistent auf einer bestehenden Datensatzgruppe basieren soll, wählen Sie die Optionsschaltfläche Bestehende Datensatzgruppe. Wählen Sie die gewünschte Datensatzgruppe in der Dropdown-Liste. In dieser Liste werden die Namen aller verfügbaren Abfrage- und statischen Datensatzgruppen in der Form angezeigt.


Wertelisten-Assistent: Register Datensatzgruppe

  Verwandte Themen	  Über den Wertelisten-Assistenten

Dieses Register wird nur angezeigt, wenn der Wertelisten-Assistent im reentranten Modus benutzt wird, um eine bestehende Werteliste basierend auf einer Abfrage-Datensatzgruppe zu ändern.

Wenn Sie mit dem reentranten Wertelisten-Assistenten die Abfrage-Datensatzgruppe ändern, auf der die Werteliste basiert, können Sie die bestehende Datensatzgruppe ändern oder statt dessen eine neue Datensatzgruppe basierend auf der geänderten Abfrage erstellen. Wenn Sie sich dafür entscheiden, die bestehende Datensatzgruppe zu ändern, beachten Sie, daß andere Wertelisten, die auf derselben Datensatzgruppe basieren, von der Änderung betroffen sein können.


Wertelisten-Assistent: Register SQL-Abfrage

  Nächster Schritt	  Verwandte Themen	  Über den Wertelisten-Assistenten

Mit diesem Register geben Sie die SQL-Abfrage an, mit der die Datensatzgruppe erzeugt wird, auf der die Werteliste basiert. Dieses Register wird nur angezeigt, wenn eine neue Werteliste erstellt wird.

Wenn Sie eine bestehende Datensatzgruppe im Register Wertelistenquelle ausgewählt haben oder wenn Sie den Assistenten im reentranten Modus benutzen, enthält das Textfeld auf dieser Seite schon die SQL-Abfrage, auf der die ausgewählte Datensatzgruppe basiert.

So geben Sie die SQL-Abfrage an bzw. ändern sie:

1	Um die Abfrage direkt einzugeben, geben Sie den entsprechenden SQL-Code direkt in das Textfeld in der Mitte der Seite ein.

2	Wenn Sie die Abfrage mit Forms Developer Query Builder generieren möchten, klicken Sie auf die Schaltfläche SQL-Abfrage generieren.

3	Um eine SQL-Abfrage aus einer Datei zu importieren, klicken Sie auf die Schaltfläche SQL-Abfrage importieren.

So prüfen Sie die Syntax der SQL-Abfrage in dem Textfeld:

Klicken Sie auf die Schaltfläche Syntax prüfen. (Wenn Sie noch nicht bei der Datenbank angemeldet sind, wird dadurch das Dialogfeld Anmelden aufgerufen. Sie müssen bei der Datenbank angemeldet sein, bevor die Abfragesyntax überprüft werden kann.)

So melden Sie sich bei der Datenbank an:

Klicken Sie auf die Schaltfläche Anmelden.

Hinweis:  Wenn Sie im Register Wertelistenquelle festlegen, daß die Werteliste auf einer bestehenden statischen Datensatzgruppe basieren soll, wird dieses Register nicht angezeigt, und Sie gelangen automatisch zu dem Register Spaltenattribute.


Wertelisten-Assistent: Register Spaltenauswahl

  Nächster Schritt	  Verwandte Themen	  Über den Wertelisten-Assistenten

Die Spalten in einer Werteliste entsprechen einer Teilmenge oder der ganzen Gruppe an Spalten in der Datensatzgruppe, auf der die Werteliste basiert. Mit diesem Register wählen Sie die Spalten, die in der Werteliste aufgenommen werden sollen.

So wählen Sie Spalten zur Aufnahme in der Werteliste:

1	So fügen Sie eine einzelne Spalte zu der Werteliste hinzu:

•	Wählen Sie die Spalte in der Liste Datensatzgruppenspalten.

•	Klicken Sie auf die Schaltfläche [image].

2	So nehmen Sie alle Spalten in der Werteliste auf:

•	Klicken Sie auf die Schaltfläche [image].

3	So entfernen Sie eine individuelle Spalte aus der Werteliste:

•	Wählen Sie die Spalte in der Liste Wertelistenspalten.

•	Klicken Sie auf die Schaltfläche [image].

4	So entfernen Sie alle Spalten aus der Werteliste:

•	Klicken Sie auf die Schaltfläche [image].


Wertelisten-Assistent: Register Spaltenanzeige

  Nächster Schritt  	  Verwandte Themen	  Über den Wertelisten-Assistenten

Mit diesem Register geben Sie die Anzeigeattribute für die Spalten an, die Sie in der Werteliste aufgenommen haben.

In der Tabelle werden die Namen der Wertelistenspalten und deren Attribute aufgeführt:

•	Titel  Der Titel der Wertelistenspalte. Der Standard-Spaltentitel entspricht dem Namen der Datensatzgruppenspalte.

•	Breite  Die Breite der Spaltenanzeige der Werteliste. Die Standardbreite des Spaltenwertes hängt von dem Datentyp und der Breite der entsprechenden Datensatzgruppenspalte ab. Sie können eine Spaltenbreite von 0 angeben, um festzulegen, daß die Spalte zwar in der Werteliste aufgenommen, aber nicht angezeigt werden soll.

•	Rückgabewert  Ein Parameter- oder globaler Variablenname, dem der Spaltenwert zugewiesen werden soll. Der Standardwert ist NULL. Dies ist ein optionales Objekt.

Mit der Schaltfläche Rückgabeobjekt durchsuchen wird eine Liste aller Objekte und Parameter in einer Form angezeigt. Vor den Objekten steht der Blockname (block_name.item_name), und vor den Parametern steht der Wort-Parameter (parameter.parameter_name). Wählen Sie einen Eintrag in dieser Liste, und klicken Sie dann auf OK, um den Eintrag in das Feld Rückgabewert der ausgewählten Spalte zu kopieren.

So ändern Sie ein Spaltenattribut:

1	Wählen Sie das entsprechende Feld in der Tabelle aus.

2	Geben Sie den gewünschten Wert ein.

Hinweis:  Die Wertelisten-Spaltennamen können nicht bearbeitet werden, da sie aus der Datensatzgruppe stammen, auf der die Werteliste basiert.

Mit dem Kontrollkästchen Größe von Spalten automatisch bestimmen wird angegeben, ob die Breite der Wertelistenspalten automatisch bestimmt werden soll. (Wenn die Spaltenbreite auf 0 eingestellt ist, wird die Spalte immer verborgen, unabhängig von der Einstellung von Größe von Spalten automatisch bestimmen.) Mit diesem Kontrollkästchen wird das Wertelisten-Attribut Automatische Spaltenbreite eingestellt.

•	Wenn Größe von Spalten automatisch bestimmen ausgewählt ist, bestimmt Form Builder die Spaltenbreite zur Laufzeit, indem der größere der beiden folgenden Werte benutzt wird:

•	Die für die Spalte angegebene Spaltenbreite

•	Die Spaltenbreite, die erforderlich ist, um den Spaltentitel vollständig anzuzeigen.

•	Wenn Größe von Spalten automatisch bestimmen nicht ausgewählt ist, wird die angegebene Spaltenbreite benutzt, selbst wenn der Spaltentitel teilweise verborgen ist.


Wertelisten-Assistent: Register Wertelistenanzeige

  Nächster Schritt	  Verwandte Themen	  Über den Wertelisten-Assistenten

Mit diesem Register bestimmen Sie Erscheinungsbild, Größe und Position des Wertelisten-Dialogfeldes, das zur Laufzeit angezeigt wird.

•	Wertelistentitel  Titel des Wertelisten-Dialogfeldes

•	Breite  Breite des Wertelisten-Dialogfeldes

•	Höhe  Höhe des Wertelisten-Dialogfeldes

Form Builder kann Ihre Werteliste zur Laufzeit automatisch in die Nähe des Feldes setzen, aus dem sie aufgerufen wurde. Alternativ können Sie manuell eine Position angeben, an die die Werteliste beim Aufruf gesetzt wird. Wenn Sie diese Option auswählen, müssen Sie Koordinaten angeben:

•	Oben  Distanz zwischen dem oberen Rand des Wertelisten-Fensters und dem Anfang des Anzeigebereichs

•	Links  Distanz zwischen dem linken Rand des Wertelisten-Fensters und dem linken Rand des Anzeigebereichs


Wertelisten-Assistent: Register Erweitert

  Nächster Schritt 	  Verwandte Themen	  Über den Wertelisten-Assistenten

In diesem Register legen Sie die folgenden erweiterten Attribute fest. (Wenn Sie mit der Benutzung dieser Attribute nicht vertraut sind, wird empfohlen, daß Sie die angezeigten Standardwerte akzeptieren.)

•	Datensatzgruppe Abrufgröße  Gibt die Größe der abzurufenden Datensatzgruppe an. Mit einer größeren Abrufgröße wird die Anzahl von Abrufvorgängen reduziert, die für das Abrufen der Datensatzgruppe erforderlich sind. Wenn die Werteliste auf einer statischen Datensatzgruppe basiert, ist dieses Feld deaktiviert.

•	Vor Anzeige filtern  Wenn dieses Kontrollkästchen ausgewählt ist, werden keine Datensätze angezeigt, wenn die Werteliste das erste Mal zur Laufzeit aufgerufen wird. Der Benutzer kann einen Wert in das Feld Suchen eingeben und auf die Schaltfläche Suchen klicken. In diesem Fall werden nur die Datensätze angezeigt, die den eingegebenen Kriterien entsprechen. Wenn dieses Kontrollkästchen nicht ausgewählt ist, werden alle Datensätze in der Werteliste angezeigt, wenn diese aufgerufen wird.

•	Werteliste automatisch abgleichen  Wenn dieses Kontrollkästchen ausgewählt ist, werden die in der Werteliste angezeigten Datensätze jedesmal abgefragt, wenn die Werteliste aufgerufen wird. Wenn es nicht ausgewählt ist, werden die Datensätze, die beim anfänglichen Aufrufen der Werteliste abgerufen werden, im Cache gespeichert und bei späteren Aufrufen erneut benutzt.


Wertelisten-Assistent: Register Elemente

  Nächster Schritt	  Verwandte Themen	  Über den Wertelisten-Assistenten

Benutzen Sie dieses Register, um Ihre Werteliste einigen oder allen Rückgabeelementen zuzuordnen, die Sie im Register Spaltenanzeige des Wertelisten-Assistenten angegeben haben.

Wenn der Benutzer oder die Anwendung zu einem Textobjekt navigiert, dem eine Werteliste zugeordnet ist, zeigt Form Builder die Anzeige für die Werteliste in der Statuszeile an, um anzugeben, daß eine Werteliste verfügbar ist. Benutzer können die Werteliste aufrufen, indem sie [Werteliste] drücken.

Wenn Sie Rückgabeobjekte im Register Spaltenanzeige angegeben haben, werden diese in der Spalte Rückgabeelemente aufgeführt. Elemente, denen die Werteliste zugewiesen ist, werden in der Spalte Zugewiesene Elemente aufgeführt.

So ordnen Sie die Werteliste einem Element zu:

1	So ordnen Sie die Werteliste einem einzigen Element zu:

•	Wählen Sie das Element in der Liste Rückgabeelemente.

•	Klicken Sie auf die Schaltfläche [image].

2	So ordnen Sie die Werteliste allen Elementen zu:

•	Klicken Sie auf die Schaltfläche [image].

3	So heben Sie die Zuordnung der Werteliste zu einem einzelnen Element auf:

•	Wählen Sie die Spalte in der Liste Rückgabeelemente.

•	Klicken Sie auf die Schaltfläche [image].

4	So heben Sie die Zuordnung der Werteliste zu allen Elementen auf:

•	Klicken Sie auf die Schaltfläche [image].


Wertelisten-Assistent: Register Fertig

  Verwandte Themen	  Über den Wertelisten-Assistenten

Wie geht es weiter?

Wenn Sie auf Fertig klicken, wird der Wertelisten-Assistent geschlossen und die neue Werteliste (und gegebenenfalls die zugehörige Datensatzgruppe) erstellt.

Sie können das Erscheinungsbild und Verhalten der Werteliste weiter anpassen, indem Sie die Attribute in der Attributpalette ändern. Wählen Sie die Werteliste im Objektnavigator, und wählen Sie Werkzeuge [image] Attributpalette. Sie können die Werteliste auch im Wertelisten-Assistenten ändern, indem Sie die Werteliste im Objektnavigator auswählen und Werkzeuge [image] Wertelisten-Assistent wählen.


Layout-Assistent: Register Willkommen
Über den Layout-Assistenten

  Nächster Schritt	  Verwandte Themen

Über den Layout-Assistenten

Mit dem Layout-Assistenten können Sie das Layout der Objekte eines Datenblocks direkt und einfach gestalten. Der Assistent zeigt die Objekte in einem Rahmen auf einer Leinwand an und gestaltet sie in einem von verschiedenen Layoutstilen.

Benutzen Sie den Layout-Assistenten, um folgende Aufgaben auszuführen:

•	Auswahl oder Erstellen einer Leinwand (Layout-Oberfläche), auf die ein Rahmen und Objekte des Datenblocks gesetzt werden

•	Auswahl von Datenblockobjekten zur Anzeige in dem Layout sowie Auswahl der Datentypen der Objekte

•	Festlegen von Objekt-Prompts, Breite und Höhe

•	Auswahl eines Layoutstils und Titels für den Rahmen mit dem Layout

•	Angabe der Anzahl von Datensätzen in dem Rahmen und des Abstands zwischen diesen Datensätzen

•	Anzeige einer Bildlaufleiste

Der Layout-Assistent ist reentrant

Eine leistungsfähige Funktion des Layout-Assistenten besteht darin, daß er im reentranten Modus eingesetzt werden kann. Dies bedeutet, daß Sie den Layout-Assistenten benutzen können, um das Layout eines bestehenden Rahmens zu ändern - selbst wenn der Rahmen ursprünglich nicht mit dem Layout-Assistenten erstellt wurde.

Um den Layout-Assistenten im reentranten Modus aufzurufen, wählen Sie einen bestehenden Rahmen im Objektnavigator (unter dem Knoten Leinwände) oder im Layouteditor und wählen dann Werkzeuge [image] Layout-Assistent.

Im Layout-Assistenten navigieren

Der Layout-Assistent enthält sechs Schaltflächen, mit denen Sie durch die einzelnen Register navigieren können:

•	Abbrechen bricht (gegebenenfalls) alle vorgenommenen Änderungen ab und beendet den Assistenten.

•	Hilfe zeigt einen Online-Hilfetext für das aktuelle Register des Assistenten an.

•	Zurück navigiert zur vorherigen Seite in dem Assistenten.

•	Weiter navigiert zur nächsten Seite in dem Assistenten.

•	Anwenden wendet die vorgenommenen Änderungen an, ohne den Assistenten zu beenden (nur reentranter Assistent).

•	Fertig speichert die Änderungen, die Sie (gegebenenfalls) mit dem Assistenten vorgenommen haben, und beendet den Assistenten.

Hinweis:  Wenn Sie auf Weiter oder Zurück klicken, bevor Sie alle erforderlichen Informationen für ein bestimmtes Register des Assistenten eingegeben haben, hindert der Assistent Sie daran, zu dem nächsten (oder vorherigen) Register zu navigieren. Wenn Sie nicht alle erforderlichen Informationen in den Assistenten eingegeben haben und auf Anwenden oder Fertig klicken, führt der Assistent Sie automatisch zu dem Register, in dem Sie die Eingabe der erforderlichen Daten abschließen können.


Layout-Assistent: Register Leinwand

  Nächster Schritt 	  Über den Assistenten

So wählen Sie eine Leinwand aus:

1	Wählen Sie im Register Leinwand einen Leinwandnamen aus der Popup-Liste Leinwand aus.

Sie können eine bestehende Leinwand auswählen oder eine neue Leinwand erstellen.

2	Wenn Sie (Neue Leinwand) auswählen, wählen Sie einen Leinwandtyp aus der Popup-Liste Typ.

Weitere Informationen über die verfügbaren Auswahlen finden Sie unter Über Leinwandtypen.

Wenn Sie Register aus der Popup-Liste Typ auswählen, müssen Sie auch ein Register in der Popup-Liste Register angeben.

Hinweis:  Im reentranten Layout-Assistenten ist das Register Leinwand nicht verfügbar. Um einen Rahmen in eine andere Leinwand zu verschieben, schneiden Sie den Rahmen mit dem Layouteditor aus und fügen ihn in der neuen Leinwand ein.


Layout-Assistent: Register Datenblock

  Nächster Schritt	  Über den Assistenten

So zeigen Sie Datenblockobjekte in dem Rahmen an:

1	Wählen Sie im Register Datenblock einen Block aus der Popup-Liste Datenblock.

Hinweis:  Wenn Sie den Layout-Assistenten direkt aus dem Datenblock-Assistenten aufgerufen haben, ist die Popup-Liste Datenblock deaktiviert.

2	Wählen Sie das bzw. die Datenblockobjekte aus der Liste Verfügbare Objekte aus, die in dem Rahmen angezeigt werden sollen.

3	Um Objekte zu dem Layout des Rahmens hinzuzufügen, wählen Sie die Objekte und gehen folgendermaßen vor:

•	Klicken Sie auf [image], um das bzw. die ausgewählten Objekte aus der Liste Verfügbare Objekte in die Liste Angezeigte Objekte zu verschieben (um alle verfügbaren Objekte zu verschieben, klicken Sie auf [image]).

oder

•	Ziehen Sie die Objekte im Drag-and-Drop-Verfahren aus der Liste Verfügbare Objekte in die Liste Angezeigte Objekte.

•	Wenn Sie ein Objekt aus der Liste Verfügbare Objekte in die Liste Angezeigte Objekte verschieben, setzt der Assistent das Objekt in die Leinwand des Rahmens und stellt das entsprechende Attribut Angezeigt auf Ja ein.

4	Um ein oder mehrere Objekte aus der Liste Angezeigte Objekte (und somit aus dem Rahmen) zu verschieben, wählen Sie die Objekte und gehen dann folgendermaßen vor:

•	Klicken Sie auf [image]  oder  [image].

oder

•	Ziehen Sie das bzw. die Objekte im Drag-and-Drop-Verfahren aus der Liste Angezeigte Objekte in die Liste Verfügbare Objekte.

Wenn Sie ein Objekt aus der Liste Angezeigte Objekte in die Liste Verfügbare Objekte verschieben, entfernt der Assistent das Objekt aus der Leinwand des Rahmens und stellt das zugehörige Attribut Angezeigt auf Nein ein.

5	Geben Sie für jedes Objekt, das Sie in die Liste Angezeigte Objekte verschieben, einen Datentyp mit der Popup-Liste Objekttyp an.

Hinweis:  Wenn es sich bei dem Objekt um eine Optionsgruppe handelt, wählen Sie das Objekt in der Liste Angezeigte Objekte. Danach ändern Sie den Fokus des Assistenten (von der Optionsgruppe selbst zu den Optionsschaltflächen, aus denen die Gruppe besteht) mit der Popup-Liste Anzeige. Auf diese Weise können Sie die Optionsschaltflächen neu anordnen oder Prompts, Breite oder Höhe einer Optionsschaltfläche (im Register Objekte) einstellen.


Layout-Assistent: Register Objekte

  Nächster Schritt	  Über den Assistenten

So legen Sie Prompt, Breite und Höhe eines Objekts fest:

•	Geben Sie im Register Objekte Prompt-Text, Breite und Höhe für jedes Objekt an, das im Layout des Rahmens angezeigt wird.

Ein Prompt ist eine Beschriftung, die einem Objekt physikalisch zugeordnet ist. Wenn Sie das Layout von Datenblockobjekten im Layouteditor aktualisieren, wird durch das Verschieben eines Objekts auch der zugehörige Prompt verschoben.

Hinweis:  Die Einheiten für die Objektbreite und -höhe werden am Anfang des Registers Objekte angezeigt. Um die Maßeinheit für Objekte zu ändern, stellen Sie das Attribut Koordinatensystem (auf Formebene) ein.


Layout-Assistent: Register Stil

  Nächster Schritt	  Über den Assistenten

So wählen Sie einen Layoutstil für den Rahmen aus:

•	Klicken Sie im Register Stil auf eine Optionsschaltfläche, um zwischen einem Form-Layout und einem tabellarischen Layout zu wählen.

Der Form-Layoutstil eignet sich für Blöcke mit einzelnen Datensätzen, während der tabellarische Layoutstil besser für einen Datenblock geeignet ist, in dem mehrere Datensätze angezeigt werden.

Hinweis:  Der Layout-Assistent unterstützt die meisten Formatauswahlen. Wenn Sie ein ungewöhnliches Layout erstellen möchten (z.B. ein tabellarisches Layout in Querformat), können Sie dies außerhalb des Assistenten festlegen, indem Sie die entsprechenden Attribute manuell einstellen.


Layout-Assistent: Register Zeilen

  Nächster Schritt	  Über den Assistenten

So legen Sie den Rahmentitel und die Datensatzattribute fest:

1	Geben Sie im Register Zeilen den Titel, der am Anfang des Rahmens angezeigt werden soll, in das Feld Titel ein.

2	Geben Sie im Feld Angezeigte Datensätze die Anzahl von Datensätzen ein, die in dem Rahmen angezeigt werden sollen (der Standardwert beträgt 1).

Wenn der Layoutstil des Rahmens:

•	Form ist - dies ist im allgemeinen der Fall, wenn es sich bei dem Datenblock um einen Master-Block handelt -, stellen Sie die Anzahl von angezeigten Datensätzen auf 1 ein.

•	Tabellarisch ist - dies ist im allgemeinen der Fall, wenn es sich bei dem Datenblock um einen Detail-Block handelt -, stellen Sie die Anzahl von angezeigten Datensätzen so ein, daß die gewünschte Anzahl von Detail-Datensätzen angezeigt wird.

3	Geben Sie in das Feld Abstand zwischen Datensätzen den physikalischen Abstand (gemessen in den Maßeinheiten des Koordinatensystems der Form) ein, mit dem die in dem Rahmen angezeigten Datensätze getrennt werden sollen.

4	Um (sowohl während der Entwicklung als auch zur Laufzeit) eine Bildlaufleiste neben dem Rahmen anzuzeigen, wählen Sie das Kontrollkästchen Bildlaufleiste anzeigen aus. Bildlaufleisten werden im allgemeinen für Blöcke mit mehreren Datensätzen benutzt.


Layout-Assistent: Register Fertig

  Über den Assistenten

Wie geht es weiter?

Nachdem Sie das Layout der Objekte des Datenblocks in einem Rahmen abgeschlossen haben, können Sie den Layout-Assistenten beenden und weiter mit der Anwendung arbeiten. Wenn Sie auf Fertig klicken, schließt der Assistent den Layout-Assistenten und zeigt automatisch das Layout Ihres Rahmens im Layouteditor an, einem der Entwicklungswerkzeuge von Form Builder.

Hinweis:  Um Erscheinungsbild und Funktionalität der Rahmen in Ihrer Form weiter anzupassen, können Sie verschiedene rahmenbezogene Attribute in der Attributpalette festlegen. Wählen Sie den Rahmen im Objektnavigator (unter dem Knoten Leinwände), und wählen Sie Werkzeuge [image] Attributpalette.


Über Menüs

  Verwandte Themen

Menüs bestehen aus Listen mit Menüpunkten, mit denen Endbenutzer bestimmte Funktionen oder Vorgänge auswählen. Jeder Menüpunkt in einem Menü stellt einen Befehl oder ein Untermenü dar.

Form Builder unterstützt drei grundlegende Menütypen:

•	Formmenüs

•	Menüsymbolleisten

•	Popup-Menüs

Form-Menüs  Ein Form-Menü umfaßt typischerweise Standardbefehle auf Formebene für die Navigation, das Bearbeiten und die Zusammenarbeit mit der Datenbank. Jede Form wird mit einem der folgenden Formmenüs ausgeführt:

•	Standardwert

•	Benutzerdefiniert

•	Keine

Menüsymbolleisten  Wenn Sie ein bestimmtes benutzerdefiniertes Formmenü-Modul für Ihre Form erstellen, können Sie aus diesem Formmenü auch eine Menüsymbolleiste ableiten. In einer Menüsymbolleiste werden ausgewählte Menüpunkte (aus dem aktuellen Formmenü) als Symbole in einer horizontalen oder vertikalen Leiste angezeigt.

Popup-Menüs  Zusätzlich zu einem Formmenü kann jede Form eine beliebige Anzahl von Popup-Menüs enthalten. Popup-Menüs sind kontextbezogene Menüs, die einzelnen Leinwänden und Objekten innerhalb einer Form zugeordnet sind.


Über den Menüentwurf

  Verwandte Themen

Einfachheit und Benutzerfreundlichkeit sind wichtige Attribute jedes Menüsystems. Beim Entwurf von Menüs ist Ihr Hauptziel, Endbenutzern einen schnellen und intuitiven Zugriff zu häufig benutzten Funktionen und Befehlen zu geben. Hier einige grundlegende Richtlinien für den Aufbau effizienter Menüs:

•	Gruppieren Sie ähnliche Befehle in einem Menü.

•	Beschränken Sie die Anzahl von Menüpunkten in einem Menü auf maximal 10.

•	Erstellen Sie Untermenüs, um ähnliche Menüpunkte weiter zu kategorisieren.

Menüeditor  Form Builder verfügt über ein sehr leistungsfähiges Entwicklungswerkzeug für das Erstellen und Änden von Menüs - den Menüeditor. Während Sie mit dem Objektnavigator und der Attributpalette Menüs hierarchisch erstellen können, benutzen Sie den Menüeditor, wenn Sie die physikalische Struktur eines Menüs beim Entwurf sehen möchten. Mit dem Menüeditor können Sie Menüpunkte schnell und einfach erstellen und anordnen.


Über das Standard-Formmenü

  Verwandte Themen

Das Standard-Formmenü ist eine interne Komponente von Form Builder und kein separates Menümodul (d.h. keine Datei, die bearbeitet werden kann). Form Builder ordnet das Standard-Formmenü automatisch jeder neu erstellten Form zu, es sei denn, Sie machen ausdrücklich andere Angaben. Sie müssen nur dann explizit ein Standardmenü einer Form zuordnen, wenn das Attribut Menümodul der Form vorher geändert wurde.

Das Standard-Formmenü enthält die Standardbefehle, die den Funktionstasten von Forms Runtime entsprechen:

Aktion	Bearbeiten	Abfrage	Block	Datensatz	Feld	Help
Speichern*	Ausschneiden*	Eingeben*	Vorheriger*	Vorheriger*	Vorheriges	Hilfe*
Alles löschen	Kopieren*	Ausführen*	Nächster*	Nächster*	Nächstes	Tasten
Drucken*	Einfügen*	Abbrechen*	Löschen	Bildlauf nach oben	Löschen	Fehler anzeigen
Druckerein- richtung*	Bearbeiten	Letztes Kriterium		Bildlauf nach unten	Duplizieren	Debug
Beenden*	Liste anzeigen	Treffer zählen		Einfügen*
		Nächste Gruppe abrufen		Entfernen*
				Sperren*
				Duplizieren
				Löschen
Über die Standardmenüleiste des Formmenüs

Standard-Menüsymbolleiste  Wenn Sie das Standard-Formmenü einer Form zuordnen, ordnet Form Builder die Standard-Menüsymbolleiste der Form automatisch zu. Die Menüsymbolleiste besteht aus Schaltflächen in Form von Symbolen in einer Symbolleiste (am oberen Rand der Form direkt unter dem Pulldown-Formmenü), bei denen es sich um "Abkürzungstasten" für viele Standard-Form-Menüpunkte handelt. (Menüpunkte aus dem Standard-Formmenü, die in der Standard-Menüsymbolleiste angezeigt werden, sind in der Tabelle oben mit einem Stern (*) markiert.)


Standard-Formmenü zuordnen

So ordnen Sie das Standard-Formmenü einem Formmodul zu:

1	Doppelklicken Sie auf das Formmodul im Objektnavigator.

2	Setzen Sie in der Attributpalette unter dem Knoten Funktional das Attribut Menümodul auf STANDARD.

Hinweis:  Wenn Sie eine Form ohne ein Formmenü ausführen möchten, lassen Sie das Attributfeld Menümodul leer.


Über benutzerdefinierte Formmenü-Module

  Verwandte Themen

Wenn Sie ein benutzerdefiniertes Formmenü-Modul für Ihre Anwendung erstellen möchten (anstatt das Standard-Formmenü zu benutzen), haben Sie zwei Möglichkeiten:

•	Ändern Sie das Menümodul menudef.mmb.

•	Erstellen Sie ein ganz neues Formmenü-Modul.

Wenn Sie ein beliebiges benutzerdefiniertes Formmenü für Ihre Form erstellen, können Sie auch eine Menüsymbolleiste aus diesem Formmenü ableiten. In der Menüleiste werden ausgewählte Menüpunkte (aus dem aktuellen Formmenü) in Form von Symbolen in einer horizontalen oder vertikalen Leiste angezeigt.


Über das Menümodul menudef.mmb

  Verwandte Themen

Form Builder wird mit einem vordefinierten Menümodul (menudef.mmb) geliefert, das genau dieselben Menüpunkte wie das Standard-Formmenü enthält. Da es sich bei dem Menümodul menudef.mmb um eine Dateikopie des Standard-Formmenüs handelt, können Sie es beliebig ändern. Sie brauchen sich keine Gedanken darum zu machen, das Standard-Formmenü selbst endgültig zu ändern. Da es sich um eine interne Komponente und nicht um eine Datei handelt, ist das Standard-Formmenü immer im Originalstatus verfügbar.

Wenn Sie das Menümodul menudef.mmb ändern, beachten Sie, daß die Menüpunkte mit der vordefinierten Prozedur DO_KEY implementiert werden (die Tasten-Trigger ausführen und dem Endbenutzer somit die Ausführung von Befehlen aus dem Menü oder über die Tastatur ermöglichen). Um eine konsistente Funktionalität aufrechtzuerhalten, müssen Sie die vordefinierten Prozeduren DO_KEY benutzen, wenn Sie Befehle für Menüpunkte zu dem Modul menudef.mmb hinzufügen.


Menümodul menudef.mmb ändern

  Verwandte Themen

So ändern Sie das Menümodul menudef.mmb:

1	Klicken Sie auf den Knoten Menüs im Objektnavigator.

2	Klicken Sie auf die Schaltfläche Öffnen in der Symbolleiste.

3	Wählen Sie menudef.mmb im Dialogfeld aus, und klicken Sie auf OK.

Hinweis:  Das Menümodul menudef.mmb ist im Ordner /demos/dfltmenu gespeichert, wie in der Datei ORACLE.INI angegeben, oder in der WIN32-Registrierung.

4	Mit dem Objektnavigator oder dem Menüeditor fügen Sie neue Menüpunkte zu der Datei menudef.mmb hinzu (bzw. ändern bestehende Menüpunkte dieser Datei).

5	Speichern, kompilieren und ordnen Sie das geänderte Menümodul dem Formmodul zu.

Denken Sie daran, daß Sie das Menümodul umbenennen, nachdem Sie es geändert haben, damit Sie zwischen der Original- und der geänderten Version unterscheiden können.


Über das Erstellen eines ganz neuen Formmenü-Moduls

  Verwandte Themen

Wenn das Standardmenü Ihren Anforderungen nicht genügt, und Sie nicht mit dem Menümodul menudef.mmb beginnen und dieses ändern möchten, können Sie Ihr eigenes Menümodul ganz neu erstellen. Mit dem Objektnavigator, dem Menüeditor und der Attributpalette können Sie alle Menüpunkte erstellen, die für ein Formmenü erforderlich sind.

Beim Erstellen eines ganz neuen Formmenüs werden die folgenden Schritte ausgeführt:

•	Erstellen Sie ein neues Menümodul im Objektnavigator.

•	Mit dem Objektnavigator oder Menüeditor erstellen Sie Menüpunkte (ein Hauptmenü, individuelle Menüs und Untermenüs sowie Menüpunkte).

•	Weisen Sie Menüpunkten Befehle zu.

•	Speichern und kompilieren Sie das Menümodul.

•	Ordnen Sie das Menümodul einem Formmodul zu.


Benutzerdefinierte Formmenü-Module speichern und kompilieren

So speichern und kompilieren Sie ein benutzerdefiniertes Formmenü-Modul:

1	Wählen Sie das Menümodul im Objektnavigator aus.

2	Wählen Sie Datei [image] Speichern oder Datei [image] Speichern unter, um das Menümodul zu speichern.

Hinweis:  Sie können .MMB-Menümodule im Dateisystem oder in der Datenbank speichern.

Warnung:  Wenn Sie eine geänderte Version des Menümoduls menudef.mmb speichern, möchten Sie es möglicherweise unter einem anderen Dateinamen speichern. Auf diese Weise können Sie zu einem späteren Zeitpunkt zusätzliche Formmenü-Module (basierend auf dem Originalmodul menudef.mmb) erstellen.

3	Wählen Sie Datei [image] Verwaltung [image] Datei kompilieren, um das Menümodul zu kompilieren.

Form Builder erstellt eine Laufzeit-Menüdatei mit der Dateinamenerweiterung .MMX. (Ausführbare Menüdateien werden im Dateisystem und nicht in der Datenbank gespeichert.)


Benutzerdefinierte Formmenü-Module zuordnen

  Verwandte Themen

So ordnen Sie ein benutzerdefiniertes Formmenü-Modul einem Formmodul zu:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol für das Formmodul.

2	Unter dem Knoten Funktional in der Attributpalette stellen Sie das Attribut Menümodul auf den Dateinamen der Laufzeit-Menüdatei ein (die Dateinamenerweiterung .MMX ist optional).

Hinweis:  Sie müssen das Menümodul vorher gespeichert und kompiliert haben, um es Ihrem Formmodul zuordnen zu können.

3	Stellen Sie das Attribut Menüquelle auf Ja (Standard) ein.

4	Wählen Sie Datei [image] Verwaltung [image] Datei kompilieren, um das Formmodul zu kompilieren.

Nachdem Sie ein Menümodul einem Formmodul zugeordnet haben, lädt Form Builder die .MMX-Menüdatei automatisch, wenn die Form ausgeführt wird.


Über den Einsatz von benutzerdefinierten Formmenü-Modulen

Benutzerdefinierte Formmenü-Module sind separate Formmodule. Wenn Sie ein Formmodul mit einer geänderten Version von menudef.mmb oder einem Formmodul einsetzen, das von Anfang an neu erstellt wurde, müssen Sie zwei ausführbare Dateien angeben:

•	.FMX  (ausführbare Formmodul-Datei)

•	.MMX  (ausführbare Formmenü-Moduldatei)

Je nach Anwendung müssen Sie unter Umständen verschiedene ausführbare Form- und Menümodul-Dateien angeben. Mehrere Forms können dasselbe Menü benutzen, oder jede Form kann ein anderes Menü aufrufen.

Hinweis:  Zur Laufzeit darf für eine Anwendung nur ein Formmenü-Modul gleichzeitig aktiv sein.


Über Menüsymbolleisten

  Verwandte Themen

Wenn Sie ein benutzerdefiniertes Formmenü erstellen, können Sie angeben, daß einige Menüpunkte in einer Menüsymbolleiste (einer Symbolleiste mit Schaltflächen in Form von Symbolen, die einzelne Menüpunkte aus dem Formmenü darstellen) angezeigt werden, die auch als SmartBar bezeichnet wird.

Wenn Sie ein benutzerdefiniertes Formmenü benutzen, müssen Sie ausdrücklich einzelne Menüpunkte einer Menüsymbolleiste zuweisen. Außerdem müssen Sie Symbole zur Darstellung der zugehörigen Schaltflächen in der Menüsymbolleiste angeben. Wenn Sie das Standard-Formmenü benutzen, ordnet Form Builder der Form automatisch eine standardmäßige Menüsymbolleiste zu.

Sie können einer horizontalen oder vertikalen Menüsymbolleiste Menüpunkte zuweisen. Form Builder setzt eine horizontale Menüsymbolleiste an den oberen Rand einer Form (direkt unter das Pulldown-Formmenü), während eine vertikale Menüsymbolleiste am äußersten linken Rand einer Form angezeigt wird (links neben einer eventuellen Symbolleisten-Leinwand).


Menüsymbolleisten erstellen

  Verwandte Themen

So erstellen Sie eine Menüsymbolleiste:

1	Wählen Sie im Objektnavigator den Menüpunkt, der in eine Menüsymbolleiste gesetzt werden soll.

2	Wählen Sie Werkzeuge [image] Attributpalette.

3	In der Attributpalette legen Sie unter dem Knoten Funktional das Objektattribut Sichtbar in horizontaler Menüsymbolleiste oder Sichtbar in vertikaler Menüsymbolleiste (oder beide) auf Ja fest.

Hinweis:  Sie können einen Menüpunkt sowohl in die horizontale als auch die vertikale Menüsymbolleiste setzen.

4	Im Attributfeld Symbol-Dateiname geben Sie den vollen Pfad und Dateinamen (ohne Dateinamenerweiterung) für das Symbol ein, mit dem die Schaltfläche für den Menüpunkt in der Symbolleiste dargestellt wird.


Über Popup-Menüs

  Verwandte Themen

Popup-Menüs sind kontextbezogene Menüs, die den Objekten und Leinwänden einer Form zugeordnet sind, und mit denen Endbenutzer schnell auf gebräuchliche Funktionen und Befehle zugreifen können. Popup-Menüs sind Objekte der obersten Ebene im Objektnavigator (genau wie Warnfenster, Blöcke, Leinwände usw.) und gehören zu einem Formmodul (im Gegensatz zu Formmenüs, die zu einem separaten Menümodul gehören).

Die Menüpunkte in einem Popup-Menü müssen dem Kontext der zugehörigen Objekte in dem Menü entsprechen. So würden Sie z.B. keine Menüpunkte für das Editieren von Text in dem Popup-Menü für ein 2stelliges numerisches Objekt aufnehmen. (Sie können derartige Menüpunkte in dem Popup-Menü jedoch für ein mehrzeiliges Textobjekt aufnehmen.)

Popup-Menüs zuordnen  Die Beziehung zwischen einem Popup-Menü und Objekten/Leinwänden (denen es zugeordnet ist) ist identisch mit der Beziehung zwischen Forms und Formmenüs:

•	Sie können ein einzelnes Popup-Menü einer oder mehreren Leinwänden oder Objekten zuordnen.

•	Jede Leinwand bzw. jedes Objekt kann nur ein einziges Popup-Menü unterstützen.

Verhalten zur Laufzeit  Endbenutzer zeigen ein Popup-Menü an, indem sie den Fokus zu einem Objekt oder der Leinwand setzen und das Menü entsprechend dem Standard für die Laufzeit-Plattform aufrufen. (Endbenutzer von Microsoft Windows und Motif klicken mit der rechten Maustaste, während Macintosh-Benutzer z.B. eine Tastenfolge verwenden.) Die obere linke Ecke des Menüs wird bei dem Fokalpunkt angezeigt, damit die Benutzer den richtigen Menüpunkt schnell und einfach finden und auswählen können.


Popup-Menüs erstellen

  Verwandte Themen

So erstellen Sie ein Popup-Menü:

1	Im Objektnavigator klicken Sie auf den Knoten Popup-Menüs. Danach klicken Sie auf die Schaltfläche Erstellen in der Symbolleiste.

Form Builder erstellt ein Popup-Menü und gibt diesem einen Standardnamen, wie z.B. MENÜ1.

2	Erstellen Sie im Objektnavigator oder Menüeditor ein Popup-Hauptmenü, (gegebenenfalls) Untermenüs und Menüpunkte.

3	Weisen Sie den Menüpunkten Befehle zu.

4	Ordnen Sie das Popup-Menü Objekten und Leinwänden zu.


Popup-Menüs einem Objekt oder einer Leinwand zuordnen

  Verwandte Themen

So ordnen Sie ein Popup-Menü einem Objekt oder einer Leinwand zu:

1	Klicken Sie im Objektnavigator unter dem Knoten Blöcke oder Leinwände auf das Objektsymbol eines Objekts und/oder einer Leinwand.

Hinweis:  Sie können jeder Leinwandart und jedem Objekttyp ein Popup-Menü zuordnen, mit Ausnahme von Kontrollkästchen, Optionsschaltflächen, Symbolen und OLE-Objekten.

2	Wählen Sie Werkzeuge [image] Attributpalette.

3	Wählen Sie in der Attributpalette unter dem Knoten Funktional ein Popup-Menü aus der Popup-Liste Popup-Menü aus.

Hinweis:  Um dasselbe Popup-Menü gleichzeitig mehreren Objekten und Leinwänden zuzuordnen, wählen Sie die Objekte und Leinwände, bevor Sie die Attributpalette anzeigen.


Über Menüpunkte

  Verwandte Themen

Unabhängig davon, ob Sie benutzerdefinierte Formmenüs oder Popup-Menüs erstellen, müssen Sie mit dem Erstellen und Bearbeiten von Menüpunkten vertraut sein - den Bausteinen der Form Builder-Menüs.

Es gibt drei Arten von Menüpunkten:

•	Module

•	Menüs

•	Items

Jedes Menümodul enthält ein oder mehrere Menüs (einschließlich einem Hauptmenü, individuellen Menüs und Untermenüs). Jedes Menü enthält ein oder mehrere Menüpunkte (einschließlich zugehörigen Befehlen).

Wie bei Formobjekten gilt bei Menüpunkten folgendes:

•	Für sie gilt eine Besitzstruktur. So besitzen Menümodule z.B. Menüs, während Menüs Menüpunkte besitzen.

•	Sie verfügen über Attribute, mit denen Sie die Laufzeit-Funktionalität definieren können. Um Menü- oder Objektattribute anzuzeigen, wählen Sie ein Menü oder Objekt im Objektnavigator oder Menüeditor, und zeigen Sie die Attributpalette an.

•	Sie können unabhängig verschoben, kopiert oder gelöscht werden. Wenn Sie ein Menü verschieben, kopieren oder löschen, müssen Sie auch die zugehörigen Untermenüs und Menüpunkte verschieben, kopieren oder löschen.


Über Objektnamen und Beschriftungen

  Verwandte Themen

Wenn Sie mit Menüpunkten arbeiten, sollten Sie mit drei zusammengehörigen Attributen vertraut sein:

•	Name (Menüattribut). Ein interner Name, mit dem das Menü im Code referenziert wird.

•	Name (Objektattribut). Ein interner Name, mit dem der Menüpunkt im Code referenziert wird.

•	Beschriftung (Objektattribut). Eine externe Beschriftung für den Menüpunkt, der nur in der grafischen Benutzeroberfläche benutzt wird.

Standardnamen und -beschriftungen

Wenn Sie ein neues Menü (einschließlich dem Hauptmenü, individuellen Menüs und Untermenüs) oder einen neuen Menüpunkt erstellen, erzeugt Form Builder Standardwerte für:

•	Menüname (wie z.B. MENÜ17). Form Builder zeigt Menünamen im Objektnavigator und der Attributpalette an (Attribut Name).

•	Objektname (wie z.B. OBJEKT8). Form Builder zeigt Namen von Menüpunkten im Objektnavigator und der Attributpalette (Attribut Name) an.

•	Objektbeschriftung (wie z.B. <Neues_Objekt>). Form Builder zeigt Beschriftungen von Menüpunkten im Menüeditor und der Attributpalette an (Attribut Beschriftung).

Sie können die Standardnamen und -beschriftungen in Ihrem PL/SQL-Code und der grafischen Benutzeroberfläche verwenden, Sie können sie jedoch auch entsprechend Ihren Anforderungen ändern.

Mit dem Objektnavigator oder der Attributpalette ändern Sie Menü- und Objekt-Namen. Mit der Attributpalette oder dem Menüeditor ändern Sie Objekt-Beschriftungen.


Namen von Menüpunkten ändern

  Verwandte Themen

So ändern Sie den Namen eines Menüs oder Objekts:

1	Klicken Sie im Objektnavigator auf das Objektsymbol für ein Menü oder ein Objekt, um dieses auszuwählen.

2	Gehen Sie folgendermaßen vor:

•	Klicken Sie auf den Namen, um in den Bearbeitungsmodus zu gehen. Der Name wird invers angezeigt, und der Cursor nimmt die Form eines Textcursors an. Geben Sie den neuen Namen ein, und drücken Sie die [Eingabetaste].

•	Doppelklicken Sie auf das Symbol des Objekts, um die Attributpalette anzuzeigen. Unter dem Knoten Allgemein ändern Sie das Attribut Name für den Menüpunkt.

Form Builder berücksichtigt die Namensänderung sowohl im Objektnavigator als auch in der Attributpalette.

Hinweis:  Wenn Form Builder die Fehlermeldung

  FRM_15500: Gültiger und eindeutiger Objektnamen muß eingegeben werden.

anzeigt, haben Sie möglicherweise die Benennungsregeln von PL/SQL verletzt, unter Umständen durch Aufnahme eines eingebetteten Leerzeichens oder eines ungültigen Satzzeichens.


Beschriftungen von Menüpunkten ändern

  Verwandte Themen

So ändern Sie die Beschriftung eines Menüpunkts:

1	Klicken Sie im Objektnavigator auf den Menüpunkt.

2	Wählen Sie Werkzeuge [image] Attributpalette.

3	In der Attributpalette legen Sie unter dem Knoten Funktional das Attribut Beschriftung fest.

Form Builder berücksichtigt die geänderte Beschriftung sowohl in der Attributpalette als auch im Menüeditor.

Hinweis:  Beschriftungen können mehr als ein Wort und beliebige Satzzeichen enthalten. So sind z.B. "Tasten anzeigen" und "Optionen..." gültige Objektbeschriftungen.


Menüpunkte im Code referenzieren

 Beispiele

Um einen Menüpunkt im PL/SQL-Code zu referenzieren, verwenden Sie die Syntax menu_name.item_name. Mit dieser Syntax können Sie:

•	Befehle Menüpunkten zuordnen.

•	Menüpunkte in Form von Kontrollkästchen oder Optionsschaltflächen initialisieren.

•	Startcode für das Menü ändern.

•	Menüpunkte dynamisch aktivieren/deaktivieren.

Hauptmemüpunkte  Objekte im Hauptmenü gehören nur zum Hauptmenü - und nicht zu den zugehörigen individuellen Menüs. Im Standard-Formmenü ist z.B. ABFRAGE ein Objekt im Hauptmenü, jedoch kein Objekt im ABFRAGE-MENÜ (das Menü, das zum Hauptmenü gehört). Die Objekte im ABFRAGE-MENÜ sind Eingeben, Ausführen, Letztes Kriterium, Abbrechen, Treffer zählen und Nächste Gruppe abrufen.

Um das Objekt ABFRAGE des Hauptmenüs im Code zu referenzieren, verwenden Sie folgende Syntax:

   main_menu.query  (und nicht query_menu.query)


Beispiele für das Referenzieren von Menüpunkten im Code

/* Dynamically disable the ENTER item on the QUERY menu */

SET_MENU_ITEM_PROPERTY(query.enter, enabled, property_false);


Bestehende Menümodule öffnen

So öffnen Sie ein bestehendes Menümodul:

1	Wählen Sie Datei [image] Öffnen.

Daraufhin zeigt Form Builder das Dialogfeld Öffnen an.

2	Suchen und wählen Sie das vorhandene Menümodul aus, das geöffnet werden soll.

Hinweis:  Sie können außerdem den Namen des Menümoduls auf der Befehlszeile angeben, wenn Sie Form Builder starten:

f50desm std_menu.mmb

Form Builder öffnet das Menümodul und zeigt es im Objektnavigator an.


Neue Menümodule erstellen

  Verwandte Themen

So erstellen Sie ein ganz neues Menümodul:

1	Wählen Sie den Knoten Menüs im Objektnavigator, und klicken Sie auf die Schaltfläche Erstellen in der Symbolleiste.

Form Builder erstellt das neue Menümodul im Objektnavigator mit einem Standardnamen, wie z.B. MODUL1.

2	Ersetzen Sie den Standardnamen durch einen aussagefähigeren Namen.


Über Menüs und Menüpunkte

  Verwandte Themen

Nachdem ein Menümodul im Objektnavigator aktiv ist, können Sie Menüs und Menüpunkte erstellen, einschließlich:

•	einem Hauptmenü (dem Menü auf oberster Ebene, das standardmäßig als horizontale Leiste angezeigt wird)

•	individuellen Menüs und Untermenüs (Menüs auf niedrigerer Ebene, die standardmäßig in Form von vertikalen Listen mit Menüpunkten angezeigt werden)

•	Menüpunkten

Sie können Menüs und Menüpunkte sowohl im Objektnavigator als auch im Menüeditor erstellen. Wenn Sie lieber im

•	grafischen Format arbeiten, benutzen Sie den Menüeditor. (Möglicherweise sollten Sie den Menüeditor ohnehin benutzen, da Sie im Menüeditor die Verbindungen zwischen den Menüs und den Menüpunkten visuell sehen.)

•	hierarchischen Gliederungsformat arbeiten, benutzen Sie den Objektnavigator.


Menüs und Menüpunkte erstellen

  Verwandte Themen

So erstellen Sie Menüs und Menüpunkte im Objektnavigator:

Im aktuellen Menümodul wählen Sie entweder den Knoten Menüs oder Objekte, und klicken Sie auf die Schaltfläche Erstellen in der Symbolleiste.

Form Builder erstellt das Menü oder Objekt und gibt ihm einen Standardnamen, wie z.B. MENÜ5 oder OBJEKT20.


Über Befehle für Menüpunkte

  Verwandte Themen

Für jeden Formmenüpunkt und jeden Popup-Menüpunkt, den Sie erstellen, müssen Sie die Attribute Menüpunkttyp und Befehlstyp festlegen. Diese Attribute auf Menüpunktebene bestimmen das Aussehen und die Funktionalität jedes Menüpunkts.

Die folgenden Menüpunkttypen sind verfügbar:

•	Normal

•	Ausgewählt

•	Option

•	Trennlinie

•	Magisch

Der gebräuchlichste Menüpunkttyp ist Normal. Die anderen Menütypen werden benutzt, um das Erscheinungsbild und die Funktionalität eines Menüs individuell zu ändern.

Nachdem Sie einen gültigen Menüpunkttyp ausgewählt haben, müssen Sie einen gültigen Befehlstyp und (gelegentlich) den Befehlstext für das Objekt angeben.

Gültige Befehlstypen sind:

•	Null (obligatorisch, wenn es sich bei dem Menüpunkt um eine Trennlinie handelt)

•	Menü (obligatorisch, wenn der Menüpunkt ein Untermenü aufruft)

•	PL/SQL (Standard; obligatorisch, wenn der Menüpunkt PL/SQL-Befehle ausführt)

•	Plus

•	Form

•	Makro

Hinweis:  In dieser Version von Form Builder sind die Befehlstypen Plus, Form und Makro nur aus Gründen der Abwärtskompatibilität verfügbar. Die Befehlstypen Plus, Form und Macro werden im nächsten größeren Release von Form Builder nicht mehr unterstützt.


Befehle Menüpunkten zuweisen

 Beispiele_   [image]  Verwandte Themen

So weisen Sie einen Befehl einem Menüpunkt zu:

1	Wählen Sie den Menüpunkt im Objektnavigator oder Menüeditor.

2	Wählen Sie Werkzeuge [image] Attributpalette.

3	Bestimmen Sie in der Attributpalette unter dem Knoten Funktional die Attribute Menüpunkttyp und Befehlstyp.

4	Doppelklicken Sie auf das Attributfeld Befehlstext.

5	Geben Sie im PL/SQL-Editor den Code zur Definition des Befehls für den Menüpunkt ein.

6	Klicken Sie auf Kompilieren und danach auf Schließen.


Beispiele für die Zuweisung von Befehlen an Menüpunkte

/* Create a menu item that displays a message to the
** end user:
**
** Create a menu item (on any menu) and give it a name of
** DISP_MSG and a label "Display Message". In the Property
** Palette, verify that the item's Menu Item Type property
** is set to Plain, and its Command Type property is set to
** PL/SQL. Double-click the Command Text property field to
** display the PL/SQL Editor. Enter the following:*/

   MESSAGE('To infinity and beyond!');


Über besondere Menüpunkte

 Einschränkungen  [image]  Verwandte Themen

Benutzen Sie besondere Menüpunkte, um das Erscheinungsbild und die Funktionalität eines Menüs individuell zu gestalten. Neben Menüpunkten vom Typ Normal (Standard) unterstützt Form Builder vier zusätzliche Typen von Menüpunkten:

•	Ausgewählt

•	Option

•	Trennlinie

•	Magisch


Über Einschränkungen bei besonderen Menüpunkten

•	Die Verfügbarkeit und das Erscheinungsbild jedes besonderen Menüpunkts ist plattformspezifisch. Wenn bei einer bestimmten Plattform Kontrollkästchen z.B. in Form von Diamantzeichen angezeigt werden, können diese nicht als Quadrate angezeigt werden.

•	Verwenden Sie keine Kontroll- oder Options-Objekte im Hauptmenü (Menüleiste) oder den Popup-Menüs.

•	Verwenden Sie keine Trennlinien-Objekte im Hauptmenü.

•	Stellen Sie die Attribute Schnelltaste, Symbol oder Hinweis nicht für einen magischen Menüpunkt ein.

•	Sie können jeden magischen Menüpunkt nur einmal in einem Menümodul verwenden. So können Sie z.B. den magischen Menüpunkt Kopieren nicht in zwei verschiedenen Menüs im selben Modul definieren.


Über Kontroll- und Option-Menüpunkte

  Verwandte Themen

Ein Kontroll-Menüpunkt wird als visueller Indikator angezeigt, z.B. als Kästchen, das ausgewählt (eingeschaltet) oder nicht ausgewählt (ausgeschaltet) ist, um den aktuellen Status anzugeben. Wenn Sie zur Laufzeit einen Kontroll-Menüpunkt auswählen, wird in den entgegengesetzten Status umgeschaltet.

Ein Option-Menüpunkt wird als visueller Indikator angezeigt, wie z.B. ein Kreis, der ausgefüllt (eingeschaltet) oder nicht ausgefüllt (ausgeschaltet) angezeigt wird, um den aktuellen Status anzugeben. Wenn Sie einen nicht ausgewählten Option-Menüpunkt in der Gruppe auswählen, wird die Auswahl des gerade ausgewählten Menüpunkts aufgehoben. Ein Option-Menüpunkt muß zu einer Menü-Optionsgruppe von zwei oder mehr bzusammengehörigen Objekten gehören, von denen eines - und nur eines - eingeschaltet sein muß. Menüpunkte derselben Gruppe müssen fortlaufend in demselben Menü angezeigt werden.


Über Befehle für Kontroll- und Option-Menüpunkte

Befehle sind für Kontroll- und Option-Menüpunkte optional.

Wenn Sie einem Kontroll- oder Option-Menüpunkt einen Befehl zuweisen möchten, verwenden Sie dasselbe Verfahren wie bei der Zuweisung von Befehlen an einen Menüpunkt vom Typ Normal. Form Builder führt die Befehle aus, wenn der Wert oder Status des Objekts geändert wird:

•	Kontroll-Menüpunkt: Wenn ein Endbenutzer den Menüpunkt in den entgegengesetzten Status umschaltet (Ein in Aus bzw. Aus in Ein)

•	Option-Menüpunkt: Wenn ein Endbenutzer den Wert der Optionsgruppe ändert (d.h. eine andere Optionsschaltfläche auswählt)

Um einen Kontroll- oder Option-Menüpunkt zu erstellen, der keinen Befehl ausführt, müssen Sie das Objektattribut Befehlstyp auf Null setzen. Benutzen Sie einen Null-Befehlstyp (und leeren Befehlstext) für einen Kontroll- oder Option-Menüpunkt, mit dem Endbenutzer eine Betriebsart definieren oder einen Kontext für Vorgänge in der Anwendung einstellen können. Eine Gruppe mit Option-Menüpunkten könnte Endbenutzern z.B. die Angabe der Detailebene ermöglichen, die diese bei der Abfrage von Daten in einem Block sehen möchten.


Über den Status von Kontroll- und Option-Menüpunkten

 Beispiele

Wenn ein Menü beim Starten der Form geladen wird, ist der Standardstatus der Kontroll- und Option-Menüpunkte wie folgt:

Menüpunkttyp	Standardstatus
Kontroll	Nicht ausgewählt (Aus)
Option (erste in der Gruppe)	Ausgewählt (Ein)
Option (alle anderen in der Gruppe)	Nicht ausgewählt (Aus)

Mit den vordefinierten Prozeduren GET_MENU_ITEM_PROPERTY und SET_MENU_ITEM_PROPERTY können Sie den aktuellen Status von Kontroll- und Options-Menüpunkten ableiten und ändern.

Wenn Sie eine dieser vordefinierten Prozeduren benutzen, müssen Sie als ersten Parameter den Namen des Menüpunkts angeben. Verwenden Sie hierzu die folgende Syntax:

   menu_name.item_name


Beispiele für den Status von Kontroll- und Option-Menüpunkten

 /* Set the state of a Show Details check menu item to On: */

   SET_MENU_ITEM_PROPERTY('query.show_dtls',
                          checked,
                          property_on);


Über Trennlinien-Menüpunkte

Ein Trennlinien-Menüpunkt wird in Form einer horizontalen Linie (oder in Form eines anderen plattformspezifischen visuellen Elements) angezeigt und wird besonders benutzt, um zusammengehörige Menüpunkte in demselben Menü visuell zu gruppieren. So könnten Sie z.B. eine Trennlinie benutzen, um die Option-Menüpunkte einer Optionsgruppe von den anderen Menüpunkten zu isolieren. Sie müssen das Attribut Befehlstyp für das Trennlinienobjekt auf Null einstellen. Endbenutzer können einen Trennlinien-Menüpunkt nicht auswählen.


Über magische Menüpunkte

  Verwandte Themen

Mit magischen Menüpunkten können Menüpunkte für Standardfunktionen in den meisten GUI-Anwendungen schnell erstellt werden. Form Builder verfügt über die folgenden magischen Menüpunkttypen:

•	Info

•	Kopieren

•	Löschen

•	Ausschneiden

•	Einfügen

•	Help

•	Beenden

•	Rückgängig

•	Window

Hinweis: Die magischen Menüpunkte Info, Hilfe und Fenster werden bei Popup-Menüs nicht unterstützt


Über Standard-Erscheinungsbild und -Funktionalität von magischen Menüpunkten

Das Erscheinungsbild (Stil und Position) eines magischen Menüpunkts entspricht dem Standard der grafischen Oberfläche der Laufzeit-Plattform. Gegebenenfalls können magischen Menüpunkten Standard-Schnelltasten zugewiesen werden.

Einige magische Menüpunkte umfassen die Standardfunktionalität. So wird z.B. der Menüpunkt Ausschneiden - der im allgemeinen in einem Menü Bearbeiten steht - automatisch aktiviert oder deaktiviert, je nachdem, ob Text- oder Bildelemente ausgewählt wurden. Wenn Sie den Befehl Ausschneiden aufrufen, wird das ausgewählte Element gelöscht und in die Zwischenablage kopiert. Wenn Sie einen magischen Menüpunkt Ausschneiden erstellen, stellt Form Builder automatisch eine Schnelltaste und eine Befehlsanweisung bereit.

In der folgenden Tabelle werden die gültigen Befehlstypen für jeden Typ von magischem Menüpunkt beschrieben und angegeben, ob der Menüpunkt eine Standardfunktionalität aufweist oder ob Sie einen eigenen Befehl definieren müssen.

Magischer Menüpunkt	Befehlstyp	Standardwert	Standard-Funktionalität
Info, Rückgängig	Jeder, mit Ausnahme von Menü	Nein	Sie müssen einen Befehl zuweisen, um die gewünschte Funktion auszuführen.
Löschen, Kopieren, Ausschneiden, Einfügen	Null	Ja	Diese Menüpunkte führen die Standardvorgänge entsprechend den Namen aus.
Help	Menü	Nein	Sie müssen das Untermenü definieren, das von dem Hilfe-Menüpunkt aufgerufen werden soll, und müssen den Menüpunkten in diesem Untermenü Befehle zuweisen.
Beenden	Null	Ja	Der Menüpunkt Beenden fordert den Endbenutzer auf, gegebenenfalls Änderungen zu speichern, und beendet die Form.
Fenster	Null oder Menü	Ja	Der Menüpunkt Fenster ruft ein Standarduntermenü auf, in dem alle geöffneten Fenster aufgeführt werden. Endbenutzer können ein Fenster aktivieren, indem sie es aus dem Untermenü auswählen.Wenn Sie ein eigenes Untermenü definieren, das von dem Menüpunkt Fenster aufgerufen werden soll, kombiniert Form Builder die Menüpunkte mit der Liste mit geöffneten Fenstern und erstellt ein einzelnes Untermenü. Die Reihenfolge der Menüpunkte in dem kombinierten Untermenü ist nicht definiert.

Hinweis:  Wenn Sie das Attribut Menüpunkttyp eines bestehenden magischen Menüpunkts in Normal ändern, bleibt das entsprechende Attribut Magischer Menüpunkt bestehen, wird jedoch nicht mehr angewendet. Auch wenn dies nicht erforderlich ist, sollten Sie das Attribut Magischer Menüpunkt aus Konsistenzgründen auf Kein einstellen.


Besondere Menüpunkte erstellen

  Verwandte Themen

So erstellen Sie einen besonderen Menüpunkt:

1	Fügen Sie einen neuen Menüpunkt zu einem Menü hinzu.

2	Wählen Sie Werkzeuge [image] Attributpalette.

3	Ändern Sie in der Attributpalette unter dem Knoten Funktional das Attribut Menüpunkttyp von Normal (Standard) in Kontroll, Option, Trennline oder Magisch.

Wenn erstellen:

•	Menüpunkt im Objektnavigator, und geben Sie den richtigen Namen in das Attributfeld Menüpunkt Optionsgruppe ein. (Die Namen von Optionsgruppen sind intern und werden zur Laufzeit nicht angezeigt.)

•	Wenn Sie einen magischen Menüpunkt erstellen, wählen Sie außerdem den Objekttyp aus der Popup-Liste für das Attribut Magisches Objekt.

4	Stellen Sie das Attribut Befehlstyp für den Menüpunkt ein.

5	Gegebenenfalls geben Sie den Befehlstext für den Menüpunkt ein.


Symbole in Menüpunkten anzeigen

So zeigen Sie ein Symbol in einem Menüpunkt an:

1	Wählen Sie den gewünschten Menüpunkt im Objektnavigator oder Menüeditor aus.

2	Wählen Sie Werkzeuge [image] Attributpalette.

3	In der Attributpalette geben Sie unter dem Knoten Funktional den Namen der Resource-Datei für das Symbol in das Attributfeld Symbol-Dateiname ein.

Wenn Form Builder die Symboldatei findet, zeigt es das Symbol anstelle der Beschriftung des Menüpunkts im Menüeditor an. Sonst wird die Symbolreferenz ignoriert, und Form Builder zeigt statt dessen die Beschriftung des Menüpunkts an.

Hinweis:  Sie können Symbole als Menüpunkte in Pulldown-Menüs anzeigen, jedoch nur, wenn die zur Laufzeit benutzte Plattform diese Funktion unterstützt. Für weitere Informationen wird auf die Form Builder-Dokumentation für Ihr Betriebssystem verwiesen.


Menüzugriffstasten definieren

Mit Menüzugriffstasten können Endbenutzer Tastenkombinationen zur Auswahl von Menüpunkten benutzen (ohne die Maus zu verwenden). Bei Anwendungen mit Tastenkombinationen kann sowohl eine menügesteuerte Oberfläche genutzt als auch die Effizienz von Tastaturbefehlen eingesetzt werden.

Eine Menüzugriffstaste wird durch ein Sonderzeichen in der Beschriftung eines Menüpunkts angegeben. So könnte z.B. der Buchstabe S die Zugriffstaste für den Menüpunkt Speichern darstellen und wird somit zur Laufzeit unterstrichen angezeigt. Um den Befehl Speichern aufzurufen, könnte ein Endbenutzer entweder die Maus benutzen oder eine Tastenkombination drücken, wie z.B. Alt-S. (Verschiedene grafische Oberflächen benutzen verschiedene Befehlstasten zur Aktivierung von Tastenkombinationen. Im Zeichenmodus drücken Endbenutzer [Menü], um auf das Menü zuzugreifen, und drücken dann die entsprechenden Tastenkombinationen, um die Menüpunkte aufzurufen.

Standard-Menüzugriffstaste  Standardmäßig ist die Zugriffstaste für einen Menüpunkt der erste Großbuchstabe in der Beschriftung des Menüpunkts. Wenn keine Großbuchstaben vorhanden sind, ist das erste Zeichen die Menüzugriffstaste. So ist z.B. der Buchstabe "a" die Standard-Menüzugriffstaste für die folgenden Menüpunkte:

   Abbrechen     Form ausführen

Benutzerdefinierte Menüzugriffstasten  Sie können die Standard-Menüzugriffstasten außer Kraft setzen - und ausdrücklich eine eigene Zugriffstaste erstellen -, indem Sie ein Et-Zeichen (&) links neben das gewünschte Zeichen in der Beschriftung des Menüpunkts setzen:

   &Abbrechen      Sp&eichern

Das Et-Zeichen wird zur Laufzeit nicht angezeigt. Das als Menüzugriffstaste ausgewählte Zeichen kann entweder groß oder klein geschrieben werden:

   Abbrechen      Speichern

Hinweis:  Um ein literales "&" in die Beschriftung eines Menüpunkts einzufügen, geben Sie zwei aufeinanderfolgende Et-Zeichen (&&) ein.


Schnelltasten Menüpunkten zuweisen

  Verwandte Themen

Eine Schnelltaste ist eine Funktionstaste oder eine Tastenfolge, die Endbenutzer drücken können, um den mit dem Menüpunkt verknüpften Befehl auszuführen. Form Builder verfügt über fünf logische Schnelltasten - [Schnelltaste1] bis [Schnelltaste5] -, die Sie Menüpunkten in jeder Form zuweisen können.

So weisen Sie einem Menüpunkt eine Schnelltaste zu:

1	Wählen Sie den Menüpunkt im Objektnavigator oder Menüeditor.

2	Wählen Sie Werkzeuge [image] Attributpalette.

3	Geben Sie in der Attributpalette unter dem Knoten Funktional den Namen der logischen Schnelltaste, die Sie dem Menüpunkt zuweisen möchten, in das Attributfeld Schnelltaste ein. So geben Sie z.B. Schnelltaste1 ein.

4	In Oracle Terminal verknüpfen Sie die logische Schnelltaste mit einer Taste der physikalischen Einheit oder Tastenkombination, wie z.B. Strg-P.


Über Pulldown-Formmenüs

  Verwandte Themen

Ein standardmäßiges Pulldown-Menü besteht aus drei Ebenen:

Grad	Anzeige	Funktion
Haupt	Horizontal	Menüpunkte zeigen individuelle Menüs an. Menüpunkte in einem Hauptmenü sind Titel - sie führen keine Befehle aus.
Individuell	Vertikal	Menüpunkte führen entweder Befehle aus oder rufen Untermenüs auf.
Untermenü	Vertikal, rechts neben dem Menüpunkt	Menüpunkte bieten zusätzliche Auswahlen bezüglich eines Menüpunkts in einem individuellen Menü.

Hinweis:  Sie können zwar mehrere Ebenen mit verschachtelten Untermenüs erstellen, dies wird jedoch nicht empfohlen, da diese Methode einen schnellen Zugriff auf Menüpunkte in Untermenüs verhindert. Um die Nutzbarkeit zu optimieren, sollten Sie Untermenüs auf eine Ebene begrenzen. Außerdem empfehlen Experten im Hinblick auf die Benutzerfreundlichkeit, die Anzahl von Menüpunkten in einem Menü auf neun zu begrenzen.


Formmenüs als Pulldown-Menü ausführen

So führen Sie ein Formmenü als Pulldown-Menü aus:

1	Wählen Sie das Formmodul im Objektnavigator aus.

2	Wählen Sie Werkzeuge [image] Attributpalette.

3	Setzen Sie in der Attributpalette unter dem Knoten Funktional das Attribut Menüstil auf Pulldown.


Über abtrennbare Menüs

Ein abtrennbares Menü ist ein Menü, das Endbenutzer von der Menüleiste wegziehen und an eine andere Stelle auf dem Bildschirm setzen können. Sie können die Abtrenn-Funktionalität für jedes Menü aktivieren, vorausgesetzt, das Fensterverwaltungsprogramm unterstützt diese Funktion.

So erstellen Sie ein abtrennbares Menü:

1	Wählen Sie das gewünschte Menü im Objektnavigator oder Menüeditor aus.

2	Wählen Sie Werkzeuge [image] Attributpalette.

3	Setzen Sie in der Attributpalette unter dem Knoten Funktional das Attribut Abtrennmenü auf Ja.


Menüattribute programmgesteuert einlesen und einstellen

Form Builder verfügt über vordefinierte Prozeduren, mit denen Sie Menüpunkte suchen und Menüattribute programmgesteuert einlesen und einstellen können.

•	FIND_MENU_ITEM

•	GET_MENU_ITEM_PROPERTY

•	SET_MENU_ITEM_PROPERTY


Menüs programmgesteuert anzeigen und verbergen

  Verwandte Themen

Bei einer Anwendung mit mehreren Forms können mehrere Formmodule dasselbe Menü gemeinsam benutzen oder können jeweils ein anderes Menü aufrufen, wenn die Form zur aktiven Form in der Sitzung wird. Wenn Form A die vordefinierte Prozedur CALL_FORM ausführt, um Form B aufzurufen, geben die Argumente der Prozedur CALL_FORM an, ob Form B das Menü von Form A übernehmen oder ein eigenes Menü anzeigen soll.

Zur Laufzeit kann für eine Anwendung jedoch immer nur ein Formmenü-Modul gleichzeitig aktiv sein. Um den verschiedenen Formmenü-Modulen gerecht zu werden, verfügt Form Builder über die folgenden vordefinierten Prozeduren, mit denen Sie das aktive Menü in einer Form Builder-Anwendung anzeigen, verbergen und ersetzen können.

HIDE_MENU	Verbirgt das aktuelle Menü.
REDISPLAY_MENU	Zeigt das aktuelle Menü wieder an.
REPLACE_MENU	Ersetzt das aktuelle Menü durch ein anderes Menü oder durch gar kein Menü.
SHOW_MENU	Zeigt das aktuelle Menü an.


Über PL/SQL-Code in Menümodulen

  Verwandte Themen

Um Menüs zur Laufzeit programmgesteuert zu kontrollieren und zu bearbeiten, können Sie PL/SQL in folgenden Fällen benutzen:

•	Befehle von Menüpunkten

•	Benutzerdefinierte Unterprogramme

•	Startcode


Über die Benutzung von PL/SQL-Code in Befehlen für Menüpunkte

  Verwandte Themen

Was die Struktur betrifft, sind PL/SQL-Befehle für Menüpunkte Form-Triggern vergleichbar. Zusätzlich zu Standard-Anwendungsfunktionen wie z.B. Navigation, Validierung und Zusammenarbeit mit der Datenbank können Sie PL/SQL-Befehle für Menüpunkte für folgende Zwecke benutzen.

•	Aufrufen einer Form (in derselben Sitzung) mit den vordefinierten Prozeduren OPEN_FORM, CALL_FORM oder NEW_FORM.

•	Ausführen von Betriebssystembefehlen mit der vordefinierten Prozedur HOST. Mit Parameteren für die Host-Routine wird der auszuführende Betriebssystembefehl angegeben, wird angegeben, ob Form Builder die aktuelle Form vom Bildschirm entfernt oder nicht, und ob Form Builder auf eine Aufforderung vom Endbenutzer wartet oder nicht, bevor zur aktuellen Form zurückgegangen wird, oder ob Form Builder nach Ausführung des Befehls automatisch zur aktuellen Form zurückgeht.

•	Aufrufen anderer Oracle-Werkzeuge (wie z.B. Form Builder Forms Runtime, Report Builder (in Reports Developer enthalten) oder Graphics Builder) mit der vordefinierten Prozedur RUN_PRODUCT, die eine Integration zwischen Form Builder und anderen Oracle-Werkzeugen bietet, indem Sie Parameter und Datenwerte an das aufgerufene Werkzeug übergeben können.

•	Aufruf der vordefinierten Prozedur DO_KEY, die den Tasten-Trigger ausführt, der der angegebenen vordefinierten Prozedur entspricht. Wenn kein derartiger Trigger vorhanden ist, wird die angegebene Routine ausgeführt. Dieses Verhalten entspricht einer Situation, in der der Endbenutzer die entsprechende Funktionstaste drückt.

•	Benutzung der vordefinierten Prozedur EXECUTE_TRIGGER, mit der Sie die Werte von Formobjekten direkt referenzieren können. Da eine direkte Referenz aus dem Menüpunkt selbst nicht zulässig ist, schreiben Sie eine benutzerdefinierte Routine oder einen anonymen Block, der eine direkte Referenz verwendet, setzen Sie diese in einen benutzerdefinierten Trigger, und führen Sie dann EXECUTE_TRIGGER aus, um diesen Trigger aufzurufen.


Formobjekte in PL/SQL-Befehlen für Menüpunkte referenzieren

Formmenüs sind wiederverwendbare Module, die Sie separat von Formen kompilieren. Um also Formobjekte in PL/SQL-Befehlen für Menüpunkte referenzieren zu können, müssen Sie den Code anders schreiben, als wenn Sie dasselbe Objekt in einem Trigger oder einer benutzerdefinierten Routine innerhalb einer Form referenzieren. Hier gelten die folgenden Einschränkungen:

•	Sie können den Wert eines Form Builder-Objekts nicht direkt referenzieren. Verwenden Sie statt dessen die vordefinierte Prozedur NAME_IN, um den aktuellen Wert des Objekts zu bestimmen.

  IF :emp.title = 'MANAGER'            -- incorrect

  IF NAME_IN('emp.title') = 'MANAGER'  -- correct

Hinweis:  Der von der Funktion NAME_IN zurückgegebene Wert ist eine Zeichenfolge. Sie können jedoch auch NAME_IN benutzen, um Zahlen und Datumsangaben als Zeichenfolgen zurückzugeben, und diese Zeichenfolgen dann in die entsprechenden Datentypen konvertieren.

•	Sie können keine direkte Zuweisung verwenden, um den Wert eines Form Builder-Objekts einzustellen; verwenden Sie statt dessen die vordefinierte Prozedur COPY.

  :product.name := 'PUMP';        -- incorrect

  COPY('PUMP', 'product.name');   -- correct


Benutzerdefinierte Unterprogramme schreiben

  Verwandte Themen

Mit dem PL/SQL-Editor können Sie benutzerdefinierte Unterprogramme (Routinen) in einem Menümodul erstellen, genau wie in einem Formmodul. Ein benutzerdefiniertes Unterprogramm kann aus jedem Menüpunkt (mit dem Befehlstyp PL/SQL) aufgerufen werden, vorausgesetzt, daß der Menüpunkt und das Unterprogramm zum selben Menümodul gehören.


Über den Menü-Startcode

  Verwandte Themen

Form Builder führt den Menü-Startcode aus, wenn ein Menü beim Starten der Form in den Speicher geladen wird, oder als Folge eines Aufrufs der vordefinierten Prozeduren CALL_FORM, NEW_FORM oder REPLACE_MENU. Der Startcode ist optional und kann zur Ausführung der folgenden Aufgaben benutzt werden:

•	Initialisieren von Substitionsparametern und globalen Variablen

•	Programmgesteuertes Einstellen des ursprünglichen Anzeigestatus von Menüpunkten: z.B., um einen Menüpunkt zu aktivieren oder zu deaktivieren

•	Programmgesteuertes Einstellen des ursprünglichen Auswahlstatus von Kontroll- und Option-Menüpunkten


Menü-Startcode schreiben

So schreiben Sie einen Startcode für ein Menü:

1	Wählen Sie das gewünschte Menümodul im Objektnavigator aus.

2	Wählen Sie Werkzeuge [image] Attributpalette.

3	Doppelklicken Sie in der Attributpalette unter dem Knoten Funktional auf das Attributfeld Startcode.

4	Geben Sie im PL/SQL-Editor den PL/SQL-Code ein, den Form Builder beim Starten des Menüs ausführen soll.

5	Klicken Sie auf Kompilieren und danach auf Schließen.

Hinweis:  Der Startcode kann anonyme Blöcke und Aufrufe von vordefinierten Prozeduren enthalten. Wie bei der Einschränkung für das Schreiben von PL/SQL-Code für Befehle für Menüpunkte können Sie jedoch Werte von Formobjekten im Startcode nicht direkt referenzieren.


Über Substitutionsparameter

  Verwandte Themen

Substitutionsparameter sind Variablen aus zwei Buchstaben (wie z.B. RN oder PQ), die Sie in Befehlsanweisungen für Menüpunkte referenzieren können. Form Builder verfügt über sechs vordefinierte Substitutionsparameter. Sie können jedoch auch eigene Substitutionsparameter definieren.

Sie können den Wert eines Substitutionsparameters programmgesteuert einstellen oder können fordern, daß Endbenutzer zur Laufzeit interaktiv einen Wert eingeben. Wenn ein Endbenutzer einen Menüpunkt mit einem Befehl auswählt, der einen Substitutionsparameter enthält, zeigt Form Builder das Dialogfeld Parameterwerte eingeben an und fordert den Endbenutzer zur Eingabe eines Wertes auf. Danach führt Form Builder den Menübefehl mit dem vom Endbenutzer angegebenen Wert aus.


Vordefinierte Substitutionsparameter

Der Wert eines vordefinierten Substitutionsparameters ist vordefiniert und wird immer von Form Builder zur Laufzeit initialisiert. So ist z.B. der Wert des vordefinierten Parameters UN der Benutzername des aktuellen Endbenutzers. Somit wird Form Builder den Endbenutzer niemals zur Eingabe des Wertes für UN auffordern.

Parameter	Beschreibung
UN	Aktueller Benutzername
PW	Aktuelles Kennwort
AD	Ordner, in dem die Laufzeitdatei des aktuellen Menüs gespeichert ist (wie von den Menümodul-Attributen Menüdateiname und Menüordner angegeben)
SO	Aktueller Menüpunkt (Ausgewählte Option)
TT	Terminaltyp, der für die Anmeldung benutzt wurde
LN	Aktuelle Sprache, wie mit der Umgebungsvariablen NLS_LANG angegeben


Substitutionsparameter erstellen

So definieren Sie einen benutzerdefinierten Substitutionsparameter:

1	Wählen Sie im Objektnavigator unter Menümodule Parameter aus, und klicken Sie auf das Symbol Erstellen in der Symbolleiste.

Form Builder erstellt einen neuen Parameter.

2	Ändern Sie den Namen des neuen Parameters.

Parameternamen müssen aus zwei Buchstaben bestehen.

3	Wählen Sie Werkzeuge [image] Attributpalette.

4	In der Attributpalette stellen Sie die Attribute für den Parameter ein.


Attribute von Substitutionsparametern

Stellen Sie die folgenden Attribute zur Definition der Substitutionsparameter ein:

Attribut	Beschreibung
Einschränkung Schreibweise	Konvertiert den vom Benutzer angegebenen Wert in die angegebene Schreibweise (Kein, Groß oder Klein).
Standardwert	Der Standardwert für den Parameter. Wird in dem Feld für den Parameterwert angezeigt, wenn das Prompt-Dialogfeld angezeigt wird.
Feste Länge	Gibt an, daß der vom Endbenutzer eingegebene Wert die maximale Anzahl von Zeichen haben muß, die von dem Attribut Größe festgelegt wird.
Hinweis	Instruktiver oder beschreibender Text, der in der Meldungszeile angezeigt wird, wenn das Prompt-Dialogfeld angezeigt wird.
Name	Der Parametername (muß zwei Zeichen umfassen).
Parametermenüs	(Gilt nur für Gesamtbildschirmmenüs.) Die Namen der Menüs, mit denen der Parameter verknüpft werden soll.
Prompt	Textfolge, die das Parameterwert-Feld im Dialogfeld Parameterwerte eingeben definiert (z.B. Berichtname oder Kunden-ID).
Obligatorisch	Gibt an, ob der Endbenutzer einen Wert für den Parameter angeben muß. Wenn Nein für Obligatorisch angegeben wird, können Endbenutzer den Parameterwert Null belassen.
Sicherheit	Bestimmt, ob der vom Endbenutzer angegebene Wert während der Eingabe auf dem Bildschirm angezeigt wird. Stellen Sie Sicherheit auf Ja ein, um das Kennwort bei der Eingabe zu verbergen.
Größe	Gibt die maximale Anzahl von Zeichen für den Parameterwert an.


Substitutionsparameter in Code referenzieren

 Beispiele

Je nachdem, wo Sie einen Substitutionsparameter referenzieren, müssen Sie das entsprechende Präfix links neben dem Parameter zuordnen. Um einen Substitutionsparameter in

•	Befehlsanweisungen für Menüpunkte zu verwenden, benutzen Sie ein Et-Zeichen (&RN).

•	PL/SQL-Routinen zu benutzen, verwenden Sie einen Doppelpunkt (:SS).

Sie können die Werte von Menü-Substitutionsparametern in Triggern und benutzerdefinierten Routinen referenzieren, die in der aktuellen Form definiert sind, vorausgesetzt, die Parameter sind im aktuellen Menümodul definiert.

Form Builder zeigt das Dialogfeld Parameterwerte eingeben nicht automatisch an, wenn Sie einen Substitutionsparameter in einem Befehl für Menüpunkte vom Typ PL/SQL referenzieren. Statt dessen müssen Sie das Dialogfeld explizit aufrufen, indem Sie die vordefinierte Prozedur QUERY_PARAMETER aufrufen.

Hinweis:  Wenn Sie die vordefinierte Prozedur QUERY_PARAMETER aufrufen, müssen Sie die Parameterreferenz in einfache Anführungszeichen setzen. Außerdem können Sie eine beliebige Anzahl von Parameterwerten in einem einzigen Aufruf von QUERY_PARAMETER abrufen.

Sie können die folgenden vordefinierten Prozeduren benutzen, um Werte von Substitutionsparametern programmgesteuert anzuzeigen und anzufordern:

•	APPLICATION_PARAMETER

•	QUERY_PARAMETER

•	MENU_PARAMETER (nur Gesamtbildschirmmenüs)


Beispiele für das Referenzieren von Substitutionsparametern in Code

 /* Beispiel 1: Der folgende Menüunktbefehl
** ruft auf substitution
** parameters: */

   SQLPLUS &UN/&PW @&CF

/* The UN and PW parameters are Form Builder built-ins.
** The CF parameter represents the  SQL*Plus command file
** to be run. When the end user selects this menu item, the
** Enter Parameter Values dialog appears, allowing the end
** user to enter the name of the command file. */

/* Example 2: The following procedure first invokes the
** Enter Parameter Values dialog to allow the end user to
** provide the name of a report to be run by Oracle Report
** Builder. It then references the substitution parameter
** as an argument to the RUN_PRODUCT procedure: */

  QUERY_PARAMETER('&RN');
  RUN_PRODUCT(REPORTS,:RN,SYNCHRONOUS,RUNTIME,
              FILESYSTEM,pl_id,NULL);


Über Menüsicherheit

  Verwandte Themen

Benutzen Sie die rollenorientierte Menüsicherheit, um den Zugriff auf Menüs und Objekte in Ihren Menümodulen zu steuern. Wenn Sie Menüs auf diese Weise individuell gestalten, erhalten Sie einen Teil der Funktionalität für jede Kategorie von Endbenutzer, die Ihre Anwendung verwendet, so daß Sie nicht mehr mehrere Anwendungen erstellen müssen, die duplizierte Funktionen ausführen. Während z.B. zwei Abteilungen in einer Firma beide dieselbe Anwendung benutzen, haben die Mitarbeiter in Abteilung A Zugriff auf Teile der Anwendung, die den Mitarbeitern von Abteilung B nicht zugänglich sind.

Insbesondere können Sie Endbenutzern eine Zugriffsberechtigung für

•	alle Menüpunkte in einem Modul

•	nur bestimmte Menüpunkte erteilen.

Mit Sicherheitsfunktionen werden Anwendungen auch benutzerfreundlicher. Mit Form Builder können Sie die Anwendungsschnittstelle vereinfachen, indem Sie festlegen, ob Menüpunkte verborgen oder deaktiviert werden, die für den aktuellen Endbenutzer nicht verfügbar sind.


Über das Implementieren der Menüsicherheit

Um die Menüsicherheit zu implementieren, führen Sie die folgenden grundlegenden Schritte aus:

•	Erstellen Sie Datenbankrollen und weisen Sie diesen Benutzernamen zu - entweder über Form Builder oder direkt in der Datenbank.

•	Weisen Sie dem Menümodul mit dem Attribut Modulrollen Rollen zu. (Bevor Sie die Zugriffsberechtigung zu einer Rolle einzelnen Menüpunkten erteilen können, müssen Sie die Rolle dem Menümodul zuweisen.)

•	Erteilen Sie den einzelnen Menüpunkten die Zugriffsberechtigung zu Rollen (mit dem Attribut Rollen Menüpunkt).

•	Stellen Sie das Menümodulattribut Sicherheit verwenden auf Ja ein.

•	Kompilieren Sie das Menümodul.

•	Kompilieren Sie das Formmodul.

Hinweis:  Die Anischt FRM50_ENABLED_ROLES muß in der Datenbank vorhanden sein, damit die Menüsicherheit einwandfrei funktioniert. FRM50_ENABLED_ROLES wird automatisch als Bestandteil der Form Builder 5.0 Tabellenskripts erstellt, die bei der Installation ausgeführt werden, wenn Sie die Option Datenbanktabellen erstellen wählen. Wenn Sie diese Option nicht ausgewählt haben, müssen Sie oder der Datenbankadministrator sich als SYSTEM anmelden und das SQL-Skript FRM50SEC.SQL ausführen (das im Form Builder SQL-Ordner gespeichert ist).


Über das Menümodulattribut Sicherheit verwenden

So stellen Sie das Attribut Sicherheit verwenden ein:

1	Wählen Sie das Menümodul im Menüeditor oder Objektnavigator.

2	Wählen Sie Werkzeuge [image] Attributpalette.

3	Stellen Sie in der Attributpalette unter dem Knoten Menüsicherheit das Attribut Sicherheit verwenden ein:

Ja	Form Builder erzwingt die Sicherheit.
Nein	Form Builder ignoriert die Sicherheit.
4	Wählen Sie Datei [image] Verwaltung [image] Datei kompilieren, um das Menümodul zu kompilieren.

Mit dem Menümodulattribut Sicherheit verwenden wird angegeben, ob Form Builder die Menüsicherheit zur Laufzeit erzwingen soll. Form Builder erzwingt die Menüsicherheit zur Laufzeit nur, wenn das Attribut Sicherheit verwenden beim Kompilieren des Menümoduls (um die Datei .MMX zu erstellen) auf Ja eingestellt war. Wenn Sie das Menümodul kompilieren, während für das Attribut Sicherheit verwenden Nein angegeben wurde, haben alle Endbenutzer Zugang zu allen Menüpunkten.

Tip:  Um die rollengestützte Menüsicherheit beim Testen einer Anwendung zu umgehen, stellen Sie das Attribut Sicherheit verwenden auf Nein ein, und kompilieren Sie das Menümodul. Wenn das Testen abgeschlossen ist, setzen Sie das Attribut Sicherheit verwenden wieder auf Ja, und kompilieren Sie das Menümodul erneut.


Über Datenbankrollen

  Verwandte Themen

Form Builder erzwingt die Menüsicherheit auf der Basis von Datenbankrollen-Listen von Benutzern, die aufgrund ihrer Verantwortung ähnliche Anforderungen für den Zugriff auf Informationen haben. So könnten Sie z.B. Rollen mit den Bezeichnungen Manager und Assistenten erstellen.

Sie erstellen Rollen einmal und benutzen diese dann, um

•	Zugriffsberechtigungen auf Datenbankebene zu erteilen, einschließlich Tabellenberechtigungen (wie z.B. das Einfügen von Daten in Tabellen).

•	Systemberechtigungen zu erteilen (wie z.B. die Anmeldung bei der Datenbank).

•	Anwendungssicherheit zu gewährleisten (indem Sie den Zugriff auf bestimmte Menüpunkte beschränken).

Nachdem Sie eine Rolle erstellt haben, können Sie diese Rolle individuellen Menüpunkten zuweisen. Wenn Sie den Zugriff auf Menüpunkte auf bestimmte Rollen beschränken, können nur Endbenutzer, denen diese Rolle erteilt wurde, den Menüpunkt zur Laufzeit auswählen.

Die Menüsicherheit aufgrund von Datenbankrollen ist von einem bestimmten Menümodul unabhängig. Anders ausgedrückt, nachdem eine Rolle definiert wurde, können Entwickler den Zugriff zu dieser Rolle jedem beliebigen Menümodul oder Menüpunkt erteilen.

Hinweis:  Um die Funktionen der Menüsicherheit zu erzwingen, muß die Anwendung zur Laufzeit bei der Datenbank angemeldet sein, da Form Builder die Datenbank beim Hochfahren abfragt, um die Rollen zu bestimmen, zu denen der aktuelle Endbenutzer gehört.


Über das Erstellen und Erteilen von Datenbankrollen

  Verwandte Themen

Wenn Sie die Anwendungssicherheit planen, definieren Sie die Rollen so, daß alle Objekt- und Systemberechtigungen zur Ausführung einer bestimmten Task einer einzelnen Rolle erteilt werden. Dadurch wird die Anwendungspflege vereinfacht, da beim Hinzufügen eines neuen Endbenutzers nur eine Rolle erteilt werden muß und nicht alle einzelnen Berechtigungen.

Bevor Sie die Sicherheit Menüpunkten (auf einer Punkt-für-Punkt-Basis) erteilen, müssen Sie zuerst die Teilmenge von Rollen wählen, die dem Menümodul erteilt werden sollen. So kann z.B. der DBA 50 Rollen den Zugriff zu einer bestimmten Datenbank erteilen. Für eine bestimmte Anwendung, die diese Datenbank benutzt, möchten Sie möglicherweise nur 10 dieser Rollen die Zugriffsberechtigung erteilen.

Durch das Erteilen eines Rollenzugriffs für ein Menümodul wird dieser Rollenzugriff keinen Menüpunkten erteilt. Nachdem Sie dem Menümodul einen Rollenzugriff erteilt haben, wird dieses dagegen in der Attributliste Menüpunktrollen für alle Menüpunkte in dem Modul angezeigt.

Nachdem Sie einem Menümodul einen Rollenzugriff erteilt haben, können Sie den Rollenzugriff einzelnen Menüpunkten in dem Modul erteilen.

Sie können Rollen auf zwei verschiedene Arten erstellen und erteilen:

•	Direkt in der Datenbank (geben Sie GRANT-Anweisungen aus)

•	Im Dialogfeld Rollenliste von Form Builder (Form Builder gibt die Datenbankbefehle für Sie aus.)

Unabhängig davon, ob Sie die Sicherheit direkt im Server oder über Form Builder implementieren, die zugrundeliegenden SQL-Befehle sind dieselben. Benutzen Sie

•	CREATE ROLE, um eine Rolle zu erstellen.

•	GRANT, um Berechtigungen für die Rolle zu erteilen und um dann einem bestimmten Benutzer eine ganze "Sammlung" von Berechtigungen zu geben.

•	ALTER USER...DEFAULT ROLE, um festzulegen, welche Rollen bei der Anmeldung für einen bestimmten Benutzer standardmäßig aktiviert sind. Der DBA definiert Standardrollen für Endbenutzer, so daß die zugehörigen Berechtigungen automatisch aktiviert werden, wenn diese sich anmelden.

Die Menüsicherheit bei Form Builder basiert auf den Rollen, die einem Endbenutzer erteilt wurden, unabhängig davon, ob die Rolle im Augenblick aktiviert ist (über SET ROLE). Da Tabellenberechtigungen jedoch davon abhängen, daß die Rolle aktiviert ist, müssen Sie den erforderlichen Befehl DBMS_SESSION.SET ROLE() in Ihrer Anwendung aufnehmen (es sei denn, Sie aktivieren Rollen standardmäßig).

Tip:  Wenn ein Endbenutzer versucht, einen Block aufgrund einer Tabelle abzufragen und die Fehlermeldung ORACLE-Fehler ... kann nicht ausgeführt werden erhält, hat der Endbenutzer höchstwahrscheinlich keine Zugriffsberechtigung zu der Datenbanktabelle, da die entsprechende Rolle nicht gesetzt ist. In diesem Fall müssen Sie

•	die entsprechenden Rollen als Standardrollen für diesen Endbenutzer aktivieren

oder

•	die Rollen in Ihrer Anwendung ausdrücklich mit dem Befehl DBMS_SESSION.SET ROLE() setzen.


Datenbankrollen erstellen

So erstellen Sie eine Datenbankrolle:

1	Wählen Sie Datei [image] Verwaltung [image] Datenbankrollen, um das Dialogfeld Rollenliste aufzurufen.

Wenn der Menüpunkt Datenbankrollen deaktiviert ist, haben Sie keine Berechtigung zur Rollenverwaltung.  Bitten Sie einen Entwickler mit DBA-Berechtigung, Ihnen die Berechtigungen CREATE ROLE, DROP ROLE und GRANT ROLE zu erteilen.

2	Klicken Sie auf Neu, um das Dialogfeld Rolle aufzurufen.

3	Geben Sie einen Namen in das Feld Rollenname ein.

4	Fügen Sie Benutzer zu der Rolle hinzu, indem Sie deren Benutzernamen in die Spalte Benutzername eingeben.

5	Stellen Sie die Berechtigungen Debug, BS-Befehl und Hintergrundmenü für die Rolle ein:

Debug	Stellen Sie diese Berechtigung auf True ein, damit Endbenutzer im Debug-Modus arbeiten können, indem sie [Debug-Modus] drücken.
BS-Befehl	Stellen Sie diese Berechtigung auf True ein, damit Endbenutzer auf Betriebssystemebene gehen und Befehle eingeben können, indem sie [Eingabe 1 BS-Befehl] oder [Eingabe > 1 BS-Befehl] drücken.
Hintergrundmenü	Stellen Sie diese Berechtigung auf True ein, damit Endbenutzer das Hintergrundmenü-Fenster mit [HG zeigen] anzeigen können.

Wenn einem Endbenutzer eine Rolle mit den obigen Berechtigungen erteilt wurde, zeigt Form Builder zur Laufzeit die entsprechende Anzeige in der Statusleiste an.

6.	Klicken Sie auf OK, um die Rollendefinition zu akzeptieren und zu der Rollenliste zurückzugehen.

7.	Um eine weitere Rolle zu definieren, wiederholen Sie die Schritte 2 - 6.  Sobald Sie fertig sind, klicken Sie auf Speichern, um die Rollendefinitionen in der Datenbank zu speichern.


Bestehende Datenbankrollen ändern

So ändern Sie eine bestehende Datenbankrolle (z.B. um neue Benutzer hinzuzufügen):

1	Wählen Sie Datei [image] Verwaltung [image] Datenbankrollen, um das Dialogfeld Rollenliste aufzurufen.

Wenn der Menüpunkt Datenbankrollen deaktiviert ist, haben Sie keine Berechtigung zur Rollenverwaltung.  Bitten Sie einen Entwickler mit DBA-Berechtigung, Ihnen die Berechtigungen CREATE ROLE, DROP ROLE und GRANT ROLE zu erteilen.

2	Wählen Sie die zu ändernde Rolle aus, und klicken Sie auf Bearbeiten.

Daraufhin wird das Dialogfeld Rolle angezeigt, in dem Sie die Rolle wie gewünscht ändern können.

3	Um:

•	einen Benutzer zu einer Rolle hinzuzufügen, navigieren Sie zu der Spalte Benutzername und drücken [Element erstellen]  (im allgemeinen Strg-Einfg zugeordnet).

•	einen Benutzer aus einer Rolle zu löschen, wählen Sie den Namen des Benutzers und drücken [Element löschen]  (im allgemeinen Strg-Entf zugeordnet).

4	Klicken Sie auf OK.

Form Builder geht wieder in das Dialogfeld Rollenliste zurück.

5	Klicken Sie auf Speichern.


Bestehende Datenbankrollen löschen

So löschen Sie eine bestehende Datenbankrolle:

1	Wählen Sie Datei [image] Verwaltung [image] Datenbankrollen, um das Dialogfeld Rollenliste aufzurufen.

Wenn der Menüpunkt Datenbankrollen deaktiviert ist, haben Sie keine Berechtigung zur Rollenverwaltung.  Bitten Sie einen Entwickler mit DBA-Berechtigung, Ihnen die Berechtigungen CREATE ROLE, DROP ROLE und GRANT ROLE zu erteilen.

2	Wählen Sie die zu löschende Rolle aus.

3	Klicken Sie auf Entfernen.

Form Builder fordert Sie mit einer Meldung auf, den Löschenvorgang zu bestätigen.

4	Klicken Sie auf Löschen.

5	Klicken Sie auf Speichern.


Menümodulen den Zugriff zu Datenbankrollen erteilen

So erteilen Sie einem Menümodul den Zugriff zu Rollen:

1	Wählen Sie das Menümodul im Objektnavigator aus.

2	Wählen Sie Werkzeuge [image] Attributpalette.

3	Doppelklicken Sie in der Attributpalette unter dem Knoten Menüsicherheit auf das Attributfeld Menürollen, um das Dialogfeld Menümodulrollen anzuzeigen.

4	Geben Sie die Namen der Rollen ein, für die Sie dem Menümodul die Zugriffsberechtigung erteilen möchten.

5	Klicken Sie auf OK.


Menüpunkten den Zugriff zu Datenbankrollen erteilen

So erteilen Sie Menüpunkten den Zugriff zu Datenbankrollen:

1	Wählen Sie den Menüpunkt im Objektnavigator aus.

2	Wählen Sie Werkzeuge [image] Attributpalette.

3	Doppelklicken Sie in der Attributpalette unter dem Knoten Menüsicherheit auf das Attributfeld Objektrollen, um das Dialogfeld Menüpunktrollen anzuzeigen.

Form Builder zeigt die Namen von Rollen mit Zugriffsberechtigung zu dem Modul in der Liste Rollen an. Rollen mit Zugriffsberechtigung zu dem gerade ausgewählten Menüpunkt werden hervorgehoben; Rollen ohne Zugriffsberechtigung werden normal angezeigt.

Hinweis:  Wenn die Liste leer ist, wurde keinen Rollen die Zugriffsberechtigung zu dem Menümodul erteilt. Sie müssen den Rollenzugriff dem Modul erteilen, bevor Sie die Zugriffsberechtigung an Menüpunkte erteilen können.

4	Um dem aktuellen Menüpunkt einen Rollenzugriff zu erteilen, benutzen Sie die Maus, um Rollen in der Liste auszuwählen bzw. die Auswahl aufzuheben (wenn Sie die Auswahl einer Rolle aufheben, wird die Zugriffsberechtigung eines Menüpunkts widerrufen).

•	Klicken Sie, um auszuwählen bzw. die Auswahl aufzuheben (der Mausklick ist wie ein Umschalter).

•	Klicken Sie bei gedrückter Umschalttaste, um mehr als eine fortlaufende Rolle auszuwählen.

•	Klicken Sie bei gedrückter Strg-Taste, um die Auswahl einer vorher ausgewählten Rolle aufzuheben, unabhängig von anderen Rollen in der Liste.

5	Stellen Sie das Attribut Anzeige ohne Berechtigung ein, um anzugeben, wie Form Builder den Menüpunkt für Endbenutzer anzeigen soll, die keine Zugriffsberechtigung zu diesem Menüpunkt haben:

Ja	Der Menüpunkt wird angezeigt, allerdings deaktiviert. Bei den meisten Plattformen werden deaktivierte Menüpunkte grau angezeigt, um anzugeben, daß der Menüpunkt nicht verfügbar ist.
Nein	Der Menüpunkt wird vollständig verborgen.

Tip:  Um den Rollenzugriff gleichzeitig mehreren Menüpunkten zu erteilen, wählen Sie mehrere Menüpunkte, indem Sie mit gedrückter Umschalt- bzw. Strg-Taste im Objektnavigator klicken und dann das Attribut Menüpunktrollen einmal für alle ausgewählten Menüpunkte festlegen.


Über die Bearbeitung von Datenbankrollen zur Laufzeit

  Verwandte Themen

Wenn Sie Datenbankrollen benutzen, um die Berechtigungen zu Datenbankobjekten und die Menüsicherheit bei Form Builder-Anwendungen zu verwalten, möchten Sie die Datenbankrollen möglicherweise zur Laufzeit überprüfen und einstellen. So können Sie z.B. die Data-Dictionary-Ansicht SESSION_ROLES überprüfen, um festzustellen, welche Rollen oder Berechtigungen für den aktuellen Benutzer aktiviert sind.

Außerdem können Sie die folgenden zusätzlichen Ansichten abfragen, um dynamisch zur Laufzeit Informationen über Datenbankrollen zu überprüfen:

•	ROLE_ROLE_PRIVS

•	ROLE_SYS_PRIVS

•	ROLE_TAB_PRIVS

•	USER_ROLE_PRIVS

Für maximale Sicherheit könnte die Rolle ein Kennwort erfordern. In diesem Fall könnte eine Form Builder-Anwendung die Rolle beim Starten SETZEN, indem ein innerhalb der Form verschlüsseltes Kennwort angegeben wird, so daß automatisch Zugriff zu allen Datenbankobjekten erteilt wird, die zur Ausführung dieser Form erforderlich sind.


Datenbankrollen zur Laufzeit einstellen und prüfen

 Beispiele

So stellen Sie eine Datenbankrolle ein:

   DBMS_SESSION.SET_ROLE('payroll');

So stellen Sie eine Rolle mit einem Kennwort ein:

   DBMS_SESSION.SET_ROLE('payroll IDENTIFIED BY   PASSWORD xyz001');

(Aus Sicherheitsgründen könnte das Kennwort als Variable angegeben werden.)

Wenn der Benutzer die Rolle nicht als Standardrolle definiert hat (wodurch die entsprechenden Berechtigungen automatisch bei der Anmeldung aktiviert würden), hätte der Benutzer nur ein einziges Mal die Zugriffsberechtigung zu dem Datenbankobjekt, nämlich während der Ausführung der Form. Dies ist das bevorzugte Verhalten. Da die Menüsicherheit auf Rollen basiert, die erteilt wurden, und nicht nur auf den Rollen, die augenblicklich aktiviert (oder gesetzt) sind, muß Ihre Anwendung die Rollen nach Bedarf programmgesteuert aktivieren.

Hinweis:  Für Informationen über Datenbankbefehle wird auf die Oracle7 oder Oracle8  Server-Dokumentation verwiesen.

So prüfen und stellen Sie Datenbankrollen dynamisch zur Laufzeit ein:

Die vordefinierte Prozedur DBMS_SESSION umfaßt eine Prozedur (SET_ROLE) und eine entsprechende Funktion (IS_ROLE_SET), um das Ergebnis der Prozedur zu testen.


Beispiele für das Einstellen und Prüfen von Datenbankrollen zur Laufzeit

 /* Use the DBMS_SESSION package (including the SET_ROLE
** procedure and corresponding function IS_ROLE_SET) to set
** and check roles from a Form Builder application.
** SET_THE_ROLE: Attempts to set the role passed as a
** parameter. If the role requires a password, then pass
** the string 'ROLENAME IDENTIFIED BY PASSWORD' rather than
** simply passing 'ROLENAME' as the argument.
** Returns:     TRUE    if successful at setting the role
**              FALSE   otherwise.*/

FUNCTION SET_THE_ROLE(fp_rname VARCHAR2)
RETURN BOOLEAN IS

   /* ORA-1979: Missing or invalid password... */

   wrong_password exception;
   pragma exception_init(wrong_password, -1979);

   /* ORA-1919: Role does not exist */

   role_does_not_exist exception;
   pragma exception_init(role_does_not_exist, -1919);

BEGIN

   /* Call the Stored Procedure to perform the SET ROLE  */

   DBMS_SESSION.SET_ROLE(fp_rname);
   RETURN(TRUE);

EXCEPTION

   /* Handle the two probable errors */

   WHEN role_does_not_exist
      OR wrong_password THEN
      RETURN(FALSE);

END;

/* Using this procedure, you could implement a simple
** PRE-FORM trigger: */

   IF NOT(DBMS_SESSION.IS_ROLE_SET('payroll') OR
     SET_THE_ROLE('payroll')) THEN
        MESSAGE('You are not authorized to run Payroll.');
        PAUSE;
        RAISE FORM_TRIGGER_FAILURE;
        END IF;
   END IF;


Über Mausereignisse, Trigger und Systemvariablen

  Verwandte Themen

Es gibt verschiedene Mausereignisse, die zur Laufzeit auftreten können. Wenn ein Operator z.B. mit der Maus auf ein Objekt klickt, kann das angeklickte Objekt signalisieren, ob es einen einfachen oder doppelten Mausklick empfangen hat.

Sie können einen Befehl ausführen oder eine Aktion einleiten, wenn eines der folgenden Mausereignisse eintritt:

•	Der Operator drückt die Maustaste.

•	Der Operator drückt die Maustaste und läßt sie wieder los.

•	Der Operator klickt mit der Maus.

•	Der Operator doppelklickt mit der Maus.

•	Der Operator setzt die Maus in eine Leinwand oder ein Objekt.

•	Der Operator verschiebt die Maus aus einer Leinwand oder einem Objekt.

•	Der Operator verschiebt die Maus.


Mausereignis-Trigger erstellen

  Verwandte Themen

Wenn Sie einen Mausereignis-Trigger erstellen, um auf ein Mausereignis zu reagieren, können Sie immer dann eine Aktion einleiten, wenn das entsprechende Mausereignis eintritt:

Maus-Trigger	Beschreibung
When-Mouse-Down	Löst eine Aktion aus, wenn der Operator die Maustaste innerhalb eines Objektes oder einer Leinwand drückt.
When-Mouse-Up	Löst eine Aktion aus, wenn der Operator die Maustaste innerhalb eines Objektes oder einer Leinwand drückt und wieder losläßt.
When-Mouse-Click	Löst eine Aktion aus, wenn der Operator in einem Objekt oder einer Leinwand mit der Maus klickt. Der Vorgang "Mit der Maus klicken" besteht darin, die Maustaste zu drücken und wieder loszulassen.
When-Mouse-DoubleClick	Löst eine Aktion aus, wenn der Operator in einem Objekt oder einer Leinwand mit der Maus doppelklickt. Der Vorgang "Mit der Maus doppelklicken" besteht darin, die Maustaste zu drücken, die Maustaste loszulassen, mit der Maus zu klicken, die Maustaste zu drücken und wieder loszulassen.
When-Mouse-Enter	Löst eine Aktion aus, wenn der Operator die Maus in ein Objekt oder eine Leinwand bewegt.
When-Mouse-Leave	Löst eine Aktion aus, wenn der Operator die Maus aus einem Objekt oder einer Leinwand herausnimmt.
When-Mouse-Move	Löst eine Aktion aus, wenn der Operator die Maus innerhalb eines Objekts oder einer Leinwand bewegt.


Mausereignis-Systemvariablen benutzen

  Verwandte Themen

Wenn eines der Mausereignisse eintritt, initialisiert Form Builder die entsprechende Mausereignis-Systemvariable (siehe unten) und führt den entsprechenden Maus-Trigger aus.

Hinweis:  Maus-Systemvariablen werden unmittelbar, bevor ein Maus-Trigger ausgelöst wird, gesetzt. Um zu gewährleisten, daß die Maus-Systemvariablen aktualisiert werden, sollten Sie die Maus-Systemvariablen nur innerhalb von Maus-Triggern benutzen.

Mausereignis-Systemvariable	Wert
SYSTEM.MOUSE_BUTTON_PRESSED	Die Nummer der Taste, 1, 2 oder 3 (linke, mittlere oder rechte Taste), die gedrückt wurde.
SYSTEM.MOUSE_BUTTON_SHIFT_STATE	Die Umschalt-Zusatztaste, die während des Mausklicks gedrückt wird.
SYSTEM.MOUSE_ITEM	Der Name des Objekts, in dem die Maus gerade steht.
SYSTEM.MOUSE_CANVAS	Der Name der Leinwand, in der die Maus gerade steht.
SYSTEM.MOUSE_X_POS	Die aktuelle X-Koordinate der Maus auf der Leinwand entsprechend dem Koordinatensystem, es sei denn, sie wird in einem When-Mouse-Enter-Trigger benutzt.  Bei der Benutzung eines When-Mouse-Enter-Triggers stellt SYSTEM.MOUSE_X_POS die X-Koordinate relativ zu dem eingegebenen Objekt und nicht die Objektposition auf der Leinwand dar.
SYSTEM.MOUSE_Y_POS	Die aktuelle Y-Koordinate der Maus auf der Leinwand entsprechend dem Koordinatensystem, es sei denn, sie wird innerhalb eines When-Mouse-Enter-Triggers benutzt.  Bei der Benutzung eines When-Mouse-Enter-Triggers stellt SYSTEM.MOUSE_Y_POS die Y-Koordinate relativ zu dem eingegebenen Objekt und nicht die Objektposition auf der Leinwand dar.
SYSTEM.MOUSE_RECORD	Datensatznummer des Datensatzes, in dem die Maus steht.
SYSTEM.MOUSE_RECORD_OFFSET	Versatz vom ersten sichtbaren Datensatz, in dem die Maus steht.

Hinweis:  Form Builder führt intern keine Mausnavigation durch, um die Maus-Trigger auszulösen. Deshalb kann eine Bewegung der Maus, der Eintritt bzw. das Verlassen eines Objekts durch die Maus bei dem nicht-aktuellen Objekt ausgelöst werden oder bei einem Objekt, das keinen Datensatz enthält (z.B. der fünfte Datensatz in einem Block mit mehreren Datensätzen, der sich im Abfragemodus befindet).


Aktionen aufgrund der gedrückten Maustaste ausführen

 Beispiele   [image]  Verwandte Themen

Sie können eine Aktion aufgrund der Taste auslösen, die der Endbenutzer drückt, d.h. 1, 2 oder 3.

Sie können auch eine Aktion basierend auf einem einfachen Mausklick, einem doppelten Mausklick, einem einfachen Mausklick mit Umschalttaste und anderen Kombinationen auslösen.

Gedrückte Tastennummer  Um eine Aktion aufgrund der gedrückten Maustaste auszulösen, benutzen Sie einen When-Mouse-Click-Trigger in Verbindung mit der Systemvariablen SYSTEM.MOUSE_BUTTON_PRESSED.

Einfacher oder doppelter Mausklick  Um eine Aktion auszuführen, wenn der Operator die Maus klickt oder doppelklickt, benutzen Sie einen When-Mouse-Click- oder When-Mouse-DoubleClick-Trigger.


Beispiele für die Ausführung von Aktionen aufgrund der gedrückten Maustaste

In dem folgenden Beispiel wird dargestellt, wie Sie feststellen, welche Maustaste gedrückt wurde, wenn der Operator mit der Maus klickt.

/* **  Trigger:  When-Mouse-Click */

 DECLARE

   the_button_pressed  VARCHAR(1);

   BEGIN

     the_button_pressed := :System.Mouse_Button_Pressed;

   IF the_button_pressed = '1' THEN

     Show_Window('options_window');

   END IF;

 END;


Aktionen aufgrund der Mausposition ausführen

 Beispiele   [image]  Verwandte Themen

Sie können eine Aktion aufgrund der aktuellen Position der Maus auslösen, unabhängig davon, ob die Maus in einem Objekt, einem Datensatz, dem Koordinatenbereich oder einer Leinwand steht.

Maus in Objekt  Um festzustellen, in welchem Objekt die Maus steht, benutzen Sie einen When-Mouse-Move-Trigger in Verbindung mit der Systemvariablen SYSTEM.MOUSE_ITEM.

Mauskoordinaten  Um eine Aktion aufgrund der aktuellen X- und Y-Mauskoordinaten auszulösen, benutzen Sie einen When-Mouse-Move-Trigger in Verbindung mit den Systemvariablen SYSTEM.MOUSE_X_POS und SYSTEM.MOUSE_Y_POS.

Maus in Datensatz  Um eine Aktion aufgrund der Nummer des Datensatzes auszuführen, in dem die Maus steht, benutzen Sie einen When-Mouse-Move- oder When-Mouse-Click-Trigger in Verbindung mit der Systemvariablen SYSTEM.MOUSE_RECORD.


Beispiele für die Ausführung von Aktionen aufgrund der Mausposition

/* **  Trigger:  When-Mouse-Move */

 DECLARE

    mouse_location   varchar(50);

 BEGIN

    mouse_location := :System.Mouse_Item;

 END;

Im folgenden Beispiel werden die Systemvariablen SYSTEM.MOUSE_X_POS und SYSTEM.MOUSE_Y_POS innerhalb eines When-Mouse-Click-Triggers benutzt, um die Position von Objekten dynamisch zu ändern.

DECLARE

    item_to_move       VARCHAR(50);

    the_button_pressed VARCHAR(50);

    target_x_position  VARCHAR(3);

    target_y_position  VARCHAR(3);

 BEGIN

 /* **  Get the name of the item that was clicked. */

    item_to_move := :System.Mouse_Item;

    the_button_pressed := :System.Mouse_Button_Pressed;

 /* **  If the mouse was clicked on an area of a canvas that is

    **  not directly on top of another item, move the item to

    **  the new mouse location. */

    IF item_to_move IS NOT NULL AND the_button_pressed = '2' THEN

      target_x_position := :System.Mouse_X_Pos);

      target_y_position := :System.Mouse_Y_Pos);

      Set_Item_Property(item_to_move,position,target_x_position,target_y_position);

      target_x_position := NULL;

      target_y_position := NULL;

      item_to_move := NULL;

    END IF;

 END;

Im folgenden Beispiel wird die Systemvariable SYSTEM.MOUSE_CANVAS innerhalb eines When-Mouse_Move-Triggers benutzt, um festzustellen, in welcher Leinwand die Maus steht.

DECLARE

    canvas_name  VARCHAR(50);

 BEGIN

    canvas_name := :System.Mouse_Canvas;

 END;

Um festzustellen, in welchem Fenster die Maus steht, fügen Sie die folgende Zeile zu dem obigen Beispiel hinzu:

window_name := :Get_View_Property(canvas_name,window_name);


Was ist eine Anwendung mit mehreren Forms?

Mit einer Anwendung mit mehreren Forms kann mehr als ein Formmodul während einer einzelnen Sitzung von Forms Runtime geöffnet werden. Jede Sitzung von Forms Runtime beginnt auf dieselbe Weise - mit dem Laden eines einzelnen Formmoduls in den Speicher. Sobald das erste Formmodul mit der Ausführung beginnt, kann es programmgesteuert eine beliebige Anzahl von zusätzlichen Formmodulen aufrufen, die wiederum andere Forms aufrufen können. Eine derartige modulare Anwendungsentwicklung kann sowohl beim Entwurf als auch während der Ausführung Vorteile bieten.

Wenn ein Formmodul ein anderes Formmodul programmgesteuert aufruft, sucht Form Builder nach dem neuen Modul in dem entsprechenden Ordner und lädt es in den Speicher. Wenn Sie eine Anwendung mit mehreren Forms Endbenutzern zugänglich machen, müssen alle .FMX-, .MMX- und .PLL-Dateien (Form-, Menü- und Bibliotheksdateien), die während der Sitzung aufgerufen werden, in dem Arbeitsverzeichnis oder dem Suchpfad gespeichert sein, der für Ihr System definiert ist.


Andere Form programmgesteuert aufrufen

  Verwandte Themen

Um ein anderes Formmodul programmgesteuert aufzurufen, kann eine Form drei vordefinierte Form Builder-Prozeduren ausführen:

•	OPEN_FORM  (öffnet eine separate, unabhängige Form)

•	NEW_FORM  (ersetzt die aktuelle Form durch eine andere Form)

•	CALL FORM  (ruft eine modale Form auf)

Wenn eine Form OPEN_FORM ausführt, um eine andere Form aufzurufen, wird die erste Form weiter angezeigt, und Endbenutzer können nach Bedarf zwischen den Forms navigieren. Eine geöffnete Form kann dieselbe Datenbanksitzung wie die Form benutzen, aus der sie aufgerufen wurde, kann jedoch auch eine separate eigene Sitzung erstellen. Bei den meisten GUI-Anwendungen wird OPEN_FORM zur Implementierung der Funktionalität mit mehreren Forms bevorzugt.

Wenn eine Form NEW_FORM ausführt, um eine andere Form aufzurufen, beendet Form Builder die erste Form und gibt deren Speicherplatz frei. Danach wird die neue Form geladen (d.h. die zweite Form ersetzt die erste Form vollständig). Wenn in der ersten Form Änderungen ausstehen, fordert Form Builder den Endbenutzer auf, diese zu speichern, bevor die neue Form geladen wird.

Wenn eine Form CALL_FORM ausführt, um eine andere Form aufzurufen, ist die aufgerufene Form modal in bezug auf die aufrufende Form. Fenster, die zu der aufrufenden Form gehören, können erst benutzt werden, wenn die aufgerufene Form beendet wird und die Kontrolle an die aufrufende Form zurückgeht.

Mit OPEN_FORM und CALL_FORM kann die aufgerufene Form weiter angezeigt bleiben. Mit dieser Technik können Sie Forms so eng integrieren, daß Endbenutzer sich gar nicht bewußt sind, daß sie separate Forms aufrufen.

Form Builder behält (über eine Form abgerufene) Sperren sowohl über OPEN_FORM- (in derselben Sitzung), als auch über CALL_FORM- und NEW_FORM-Prozeduraufrufe bei. Somit hat eine aufgerufene Form automatisch dieselben Sperren wie die aufrufende Form.

CALL_FORM ist eine uneingeschränkte Prozedur, während OPEN_FORM und NEW_FORM eingeschränkte Prozeduren sind. Somit ist CALL_FORM im Abfragemodus gültig, während dies bei OPEN_FORM und NEW_FORM nicht der Fall ist.


Anwendungen mit mehreren Forms und das Hauptfenster

  Verwandte Themen

Wenn Sie OPEN_FORM oder CALL_FORM benutzen, um eine Anwendung mit mehreren Forms zu erstellen, sollten Sie im allgemeinen kein Hauptfenster in einem der Formmodule definieren, die gleichzeitig angezeigt werden sollen. Zur Laufzeit kann immer nur ein Hauptfenster gleichzeitig angezeigt werden, selbst in einer Anwendung mit mehreren Forms. Wenn also die erste von Form B angezeigte Leinwand eine Inhaltsansicht ist, die dem Hauptfenster zugewiesen ist, wird sie im Hauptfenster von Form A angezeigt, und nicht in einem separaten eigenen Hauptfenster. Deshalb verbirgt die Inhaltsleinwand von Form B Leinwände von Form A, die schon im Hauptfenster angezeigt werden. Bei den meisten Anwendungen mit mehreren Forms wird dieses Verhalten nicht gewünscht.

Wenn Sie ein Hauptfenster benutzen möchten, können Sie verhindern, daß die zweite Form die erste Form verbirgt. Hierbei muß gewährleistet sein, daß die Zielleinwand (die von der zweiten Form angezeigt wird) folgenden Typ aufweist:

•	Eine Inhaltsleinwand oder gestapelte Leinwand, die einem anderen Fenster als dem Hauptfenster zugewiesen ist

•	Eine gestapelte Leinwand, die dem Hauptfenster zugewiesen ist

Wenn die Zielleinwand einem anderen Fenster zugewiesen ist, zeigt Form Builder die zweite Form in einem separaten Fenster an, und das Hauptfenster der ersten Form bleibt unverändert.

Wenn es sich bei der Zielleinwand um eine gestapelte Leinwand handelt, die dem Hauptfenster zugewiesen ist, zeigt Form Builder sie im Hauptfenster der ersten Form an. Wenn die gestapelte Leinwand jedoch kleiner ist als die Inhaltsleinwand (was üblicherweise der Fall ist), bleibt die Inhaltsleinwand der ersten Form zumindest teilweise sichtbar.


Unabhängige Forms mit OPEN_FORM aufrufen

  Verwandte Themen

Um eine andere Form programmgesteuert zu öffnen, führen Sie die vordefinierte Prozedur OPEN_FORM aus.

OPEN_FORM('stocks');

Standardmäßig aktiviert Form Builder die geöffnete Form und setzt den Fokus in das erste navigierbare Objekt der Form. Um dieses Standardverhalten ausdrücklich anzugeben, nehmen Sie den optionalen Parameter ACTIVATE auf:

OPEN_FORM('stocks', activate);

Wenn Sie eine Form mit angegebenem ACTIVATE öffnen, ignoriert Form Builder Trigger-Anweisungen, die auf den Aufruf von OPEN_FORM folgen (und führt diese niemals aus).

Wenn Form Builder den Fokus nicht in die geöffnete Form setzen soll, nehmen Sie den Parameter NO_ACTIVATE auf:

OPEN_FORM('stocks', no_activate);

Wenn Sie eine Form mit angegebenem NO_ACTIVATE öffnen, führt Form Builder Trigger-Anweisungen, die auf den Aufruf von OPEN_FORM folgen, aus, nachdem die geöffnete Form in den Speicher geladen wurde und nachdem die anfänglichen Start-Trigger (sofern vorhanden) ausgelöst wurden.

Unabhängig davon, ob Sie eine Form mit ACTIVATE oder NO_ACTIVATE öffnen, löst Form Builder Trigger in der geöffneten Form aus, die normalerweise beim Starten der Form ausgelöst wurden. Potentiell könnten diese Pre-Form-, When-New-Form-Instance-, When-New-Block-Instance-, When-New-Record-Instance- und When-New-Item-Instance-Trigger umfassen.

Um eine unabhängige Form zu schließen, führen Sie die Prozedur CLOSE_FORM aus:

CLOSE_FORM('stocks');


Navigation zwischen unabhängigen Forms

  Verwandte Themen

Die Navigation zwischen Forms in einer Anwendung mit mehreren Forms kann erfolgen, wenn der Endbenutzer mit der Maus navigiert, oder wenn eine Form eine der folgenden vordefinierten Navigationsprozeduren aufruft:

•	GO_FORM

•	NEXT_FORM

•	PREVIOUS_FORM

GO_FORM verwendet einen Parameter, der den Namen der Zielform angibt:

GO_FORM('schedule');

NEXT_FORM und PREVIOUS_FORM navigieren zur nächsten oder vorherigen Form in der Reihenfolge, in der die Forms zur Laufzeit geöffnet wurden:

NEXT_FORM;
PREVIOUS_FORM;

Viele Trigger werden als Antwort auf Navigationsereignisse ausgelöst, einschließlich Pre- and Post-Triggern (Pre-Block, Post-Record usw.) und When-New-Instance-Triggern (When-New-Block-Instance, When-New-Item-Instance usw.). Wenn Sie eine Anwendung mit mehreren Forms erstellen, sollten Sie verstehen, wie sich die Navigation auf die Trigger-Verarbeitung auswirkt.

In einer Anwendung mit mehreren Forms hat jede geöffnete Form ein Objekt, das als das aktuelle Objekt für diese Form bezeichnet wird. Wenn Sie GO_FORM, NEXT_FORM, PREVIOUS_FORM oder EXIT_FORM verwenden, um die Navigation zu einer geöffneten Form programmgesteuert auszulösen, ist das Zielobjekt immer das aktuelle Objekt in der Zielform. Wenn z.B. Form A geöffnet wird und Form B aktiviert, setzt Form Builder den Fokus zu dem aktuellen Objekt in Form B. Wenn Form B danach EXIT_FORM oder PREVIOUS_FORM aufruft, setzt Form Builder den Fokus wieder zu dem aktuellen Objekt in Form A zurück - in diesem Fall zu dem Objekt, das aktuell war, als Form A Form B geöffnet hat.

Beim Navigieren zwischen unabhängigen Forms beachten Sie folgendes:

•	In der Startform erfolgt keine Validierung. Es ist möglich, aus einem Feld zu navigieren, das im Augenblick ungültig ist, vorausgesetzt, das Zielobjekt befindet sich in einer anderen Form. Bei der Rückkehr zur Startform und bei dem Versuch, innerhalb dieser Form zu navigieren, wird die normale Validierung eingesetzt.

•	Mit einigen wenigen Ausnahmen werden keine Trigger ausgelöst. Die einzigen Ausnahmen sind When-Window-Deactivated (wird in der auslösenden Form ausgelöst) und When-Window-Activated (wird in der Zielform ausgelöst). Die Pre-, Post- und When-New-Instance-Trigger werden beim Navigieren zwischen Forms nicht ausgelöst.

Wenn ein Endbenutzer mit der Maus von Form A zu Form B navigiert, kann das Zielobjekt entweder das aktuelle Objekt in Form B oder ein anderes Objekt in Form B sein.

Wenn der Endbenutzer

•	auf das aktuelle Objekt in Form B klickt, werden keine Trigger ausgelöst.

•	auf ein anderes Objekt in Form B klickt, werden die Trigger ausgelöst, die normalerweise ausgelöst würden, wenn die Navigation von dem aktuellen Objekt in Form B zu dem Zielobjekt ausgeht und die Validierung wie erforderlich durchgeführt wird. Anders ausgedrückt, die Formverarbeitung wird genauso durchgeführt, als würde der Endbenutzer von dem aktuellen Objekt in Form B ungeachtet eventueller externer Forms zu dem Zielobjekt navigieren.


Forms in verschiedenen Datenbanksitzungen öffnen

  Verwandte Themen

Zur Laufzeit stellt Form Builder automatisch eine einzelne Verbindung zu ORACLE her und verwaltet diese. Standardmäßig wird für diese Verbindung eine Benutzersitzung erstellt. Dank der Möglichkeit von ORACLE, mehrere Sitzungen zu unterstützen, kann ein einzelner Client mehrere Sitzungen mit einer einzigen Anmeldung aufbauen. Alle Transaktionsverwaltungs- und Lesekonsistenz-Funktionen von ORACLE werden auf Sitzungsebene implementiert, so daß ein einzelner Benutzer durch das Erstellen mehrerer Sitzungen mehrere, unabhängige Transaktionen bearbeiten kann.

Das Verhalten bei der Sperre von Datensätzen und bei der Lesekonsistenz bei zwei Forms in verschiedenen Sitzungen ist genau dasselbe wie bei zwei unabhängigen Clients mit separaten Anmeldungen. Wenn zwei unabhängige Forms auf dieselbe Tabelle zugreifen, kann eine Form eine Sperre erhalten, die verhindert, daß die andere Form auf Datensätze in der Tabelle zugreift.

In einer Anwendung mit mehreren Forms haben Sie die Möglichkeit, eine unabhängige Sitzung zu erstellen, wenn eine Form eine andere Form mit der Prozedur OPEN_FORM öffnet. Standardmäßig gibt Form Builder keinen Savepoint aus, wenn Sie eine Form öffnen, und die geöffnete Form benutzt dieselbe Sitzung wie die Form, aus der sie geöffnet wurde.

In den folgenden Beispielen wird eine Form geöffnet, ohne eine neue Sitzung zu erstellen. Sie sind gleichbedeutend:

OPEN_FORM('stocks'); -- default; NO_SESSION is implicit

OPEN_FORM('stocks',
          activate,
          no_session) -- NO_SESSION is explicit (for clarity)

Um eine Form in ihrer eigenen unabhängigen Sitzung zu öffnen, benutzen Sie den Parameter SESSION. Mit dieser Anweisung wird die Form STOCKS aus ihrer eigenen Sitzung geöffnet und erhält sofort den Fokus:

OPEN_FORM('stocks',
          activate,
          session);

Commit-Verarbeitung  Wenn eine Form einen COMMIT-Vorgang auslöst, führt Form Builder die Validierung und die Commit-Verarbeitung für jede geöffnete Form aus, die dieselbe Sitzung wie die auslösende Form benutzt. Forms werden in der Reihenfolge verarbeitet, in der sie geöffnet wurden, beginnend mit der Form, die COMMIT ausgelöst hat. Wenn während des Speichervorgangs ein Fehler auftritt, setzt Form Builder den Fokus wieder in die Form, die COMMIT ausgelöst hat.

Savepoint und Rollback  Wenn Sie OPEN_FORM mit dem Parameter NO_SESSION (Standard) aufrufen, gibt Form Builder keinen Savepoint für die Form aus, wie dies bei Benutzung von CALL_FORM der Fall ist. Wenn Form A Form B öffnet, benutzen beide Forms dieselbe Sitzung. Wenn Form B CLEAR_FORM ausführt (das wiederum einen impliziten ROLLBACK-Vorgang ausführt), setzt Form Builder alle Änderungen zurück, die in Form A und Form B durchgeführt wurden.

Das Erstellen unabhängiger Sitzungen wird im allgemeinen für Forms verwendet, die auf unterschiedliche Tabellen zugreifen und Transaktionen verwalten, die logisch unabhängig sind. So könnte eine Form zur Auftragseingabe z.B. eine Menüoption enthalten, mit der eine Terminkalender-Form aufgerufen wird. Wenn der Terminkalender in derselben Sitzung wie die Form zur Auftragseingabe geöffnet wird, müssen Endbenutzer an beiden Forms vorgenommene Änderungen gleichzeitig speichern. Wenn die Terminkalender-Form jedoch in einer separaten Sitzung geöffnet wird, können Endbenutzer einen neuen Termin eingeben und diesen unabhängig in der Datenbank speichern, ohne einen Commit-Vorgang in der Form zur Auftragseingabe vornehmen zu müssen.

Hinweis:  Bei Forms Runtime muß die Option Sitzung eingeschaltet sein, wenn Sie OPEN_FORM ausführen, während der Parameter session_mode auf SESSION gesetzt ist. Wenn die Option Sitzung ausgeschaltet ist, gibt Form Builder eine Fehlermeldung aus und öffnet die angegebene Form nicht. Um die Option Sitzung für Forms Runtime auf Ein zu setzen, setzen Sie die Umgebungsvariable FORMS50_SESSION auf TRUE. Wenn Sie die Variable FORMS50_SESSION setzen, übernehmen alle Aufrufe von Forms Runtime diese Einstellung, es sei denn, Sie setzen die Umgebungsvariable außer Kraft, indem Sie die Option Sitzung aus der Befehlszeile von Forms Runtime einstellen.


Mehrere Instanzen derselben Form öffnen

  Verwandte Themen

In Anwendungen mit mehreren Forms können Endbenutzer im allgemeinen mehrere Instanzen derselben Form öffnen. Diese Technik eignet sich besonders für Anwendungen, in denen Endbenutzer ähnliche Funktionen mit verschiedenen Datensatzgruppen ausführen können, insbesondere wenn es von Vorteil ist, daß jede Form innerhalb einer separaten Transaktionssitzung verwaltet wird.

Wenn Sie dieselbe Form programmgesteuert n-mal öffnen, werden n Instanzen dieser Form auf dem Bildschirm angezeigt und im Speicher abgelegt. Um - z.B. durch Aufruf von GO_FORM oder CLOSE_FORM - eine bestimmte Instanz einer Form zu referenzieren, müssen Sie die interne ID der Form-Instanz benutzen. (Sie können nicht den Namen der Form benutzen, da dieser für alle Instanzen derselben Form derselbe ist.)

Nachdem eine Form geöffnet wurde, verwenden Sie die vordefinierte Prozedur FIND_FORM, um die interne ID zu erhalten:

DECLARE
  form_id   FORMMODULE;
BEGIN
  OPEN_FORM('stocks', no_activate);
  form_id := FIND_FORM('stocks');
  :GLOBAL.formid := TO_CHAR(form_id.id);
END;

In diesem Beispiel wird eine Variable vom Typ FormModule (ein allgemeiner Form Builder-Typ) deklariert. Nachdem die Form STOCKS geöffnet wurde, wird die interne ID der Variablen mit der Funktion FIND_FORM zugewiesen. Der Instanz-Bezeichner wird dann in CHAR konvertiert und einer globalen Variablen zugewiesen.

Nachdem der Bezeichner in einer globalen Variablen gespeichert ist, können Sie den Instanz-Bezeichner jederzeit für Vorgänge mit der jeweiligen Form-Instanz abrufen. In dem folgenden Beispiel wird der Instanz-Bezeichner an die vordefinierte Prozedur GO_FORM übergeben:

DECLARE
  form_id   FORMMODULE;
BEGIN
  form_id.id := TO_NUMBER(:GLOBAL.formid);
  GO_FORM(form_id);
END;

Die Prozedur GO_FORM verwendet einen Parameter vom Typ FormModule, so daß in einem ersten Schritt eine Variable diesen Typs zur Aufnahme der Instanz-ID deklariert wird, die im Augenblick in der globalen Variablen enthalten ist. Beachten Sie außerdem, daß der Instanz-Bezeichner mit NUMBER verknüpft sein muß, damit er einen gültigen FormModule-Wert darstellt.

Um den Instanz-Bezeichner für verschiedene Forms zu speichern, kombinieren Sie globale Variablen mit der vordefinierten Prozedur COPY:

DECLARE
  form_id FORMMODULE;
  temp    CHAR(10);
BEGIN
  -- Initialize a counter, open the STOCKS form, and
  -- store its internal ID in form_id
  --
  DEFAULT_VALUE('1', 'GLOBAL.counter');
  OPEN_FORM('stocks', NO_ACTIVATE);
  form_id := FIND_FORM('stocks');
  --
  -- The COPY() procedure reads only global variables
  -- and item values, so put the instance identifier in
  -- in a a temporary global variable
  --
  :GLOBAL.temp_var := TO_CHAR(form_id.id);
  --
  -- Now assign the ID to the next occurrence of the global
  -- variable :GLOBAL.form<x>, where x is the counter value
  --
  COPY(NAME_IN('GLOBAL.temp_var'),
               'GLOBAL.form' || :GLOBAL.counter);
  :GLOBAL.counter := TO_NUMBER(:GLOBAL.counter) +1;
END;

Dieses Beispiel erstellt eine Gruppe mit globalen Variablen (:GLOBAL.form1, :GLOBAL.form2 usw.), die die Instanz-Bezeichner für jede geöffnete Form enthalten. Sie können die entsprechende Variable für programmgesteuerte Vorgänge mit einer bestimmten Form benutzen.


Aktuelle Form durch NEW_FORM ersetzen

  Verwandte Themen

Um die aktuelle Form in einer Anwendung zu ersetzen, führen Sie die vordefinierte Prozedur NEW_FORM aus:

NEW_FORM(formmodule_name     CHAR,
         rollback_mode       NUMBER,
         query_mode          NUMBER,
         parameterlist_name  CHAR);

Der Parameter FormModule_Name ist obligatorisch, alle anderen Parameter sind optional. Wenn Sie keine Angaben für die optionalen Parameter machen, führt Form Builder die neue Form mit den Standardwerten für diese Parameter aus. Somit ist

NEW_FORM('form_b');

logisch gleichbedeutend mit

NEW_FORM('form_b',
         to_savepoint,
         no_query_only);

Wenn die aufrufende Form selbst eine aufgerufene Form war (d.h. mit der Prozedur CALL_FORM aufgerufen wurde), übernimmt die neue Form die Position der übergeordneten Form in dem Aufrufstapel. Außerdem führt Form Builder die neue Form mit denselben CALL_FORM-Parametern (HIDE oder NO_HIDE, DO_REPLACE oder NO_REPLACE und QUERY_ONLY oder NO_QUERY_ONLY) wie die aufrufende Form aus.


Modale Forms mit CALL_FORM aufrufen

  Verwandte Themen

Um eine andere Form programmgesteuert aufzurufen, führen Sie die vordefinierte Prozedur CALL_FORM aus:

CALL_FORM(formmodule_name     CHAR,
          display             NUMBER,
          switch_menu         NUMBER,
          query_mode          NUMBER,
          parameterlist_name  CHAR);

Der Parameter FormModule_Name ist obligatorisch, alle anderen Parameter sind optional. Wenn Sie für die optionalen Parameter keine Angaben machen, führt Form Builder die aufgerufene Form mit den Standardwerten für diese Parameter aus. Somit ist

CALL_FORM('form_b');

logisch gleichbedeutend mit

CALL_FORM('form_b',
          HIDE,
          NO_REPLACE,
          NO_QUERY_ONLY);

CALL_FORM lädt die angegebene Form, während die aufrufende Form weiter geladen bleibt. Wenn z.B. Form A Form B aufruft, wird Form B zur aktiven Form in der Sitzung, Form A bleibt jedoch im Speicher. Wenn der Endbenutzer Form B beendet, wird Form A wieder zur aktiven Form. Form B wiederum kann die Prozedur CALL_FORM ausführen, um Form C aufzurufen. Wenn aufeinanderfolgende Forms über die Prozedur CALL_FORM geladen werden, wird die sich ergebende Modulhierarchie als Formaufrufstapel bezeichnet.

Wenn eine Form eine andere Form mit CALL_FORM aufruft, ist die aufgerufene Form modal in bezug auf die aufrufende Form. Fenster, die zu der aufrufenden Form gehören, können erst benutzt werden, wenn die aufgerufene Form beendet wird und die Kontrolle an die aufrufende Form zurückgeht..

Im Gegensatz zu der Prozedur NEW_FORM beendet CALL_FORM die aktuelle Form nicht und gibt den zugehörigen Speicherplatz erst frei, wenn die neue Form bei der aktuellen Position im Formaufrufstapel ausgeführt wird.

Wenn Sie CALL_FORM ausführen, können Sie angeben, ob die aufrufende Form weiter angezeigt wird, indem Sie eine entsprechende Konstante für den Parameter Display übergeben. Gültige Konstanten sind HIDE (Standard) und NO_HIDE. Der folgende Prozeduraufruf ruft Form B auf und läßt Form A (die aufrufende Form) weiter angezeigt:

CALL_FORM('form_B',
          NO_HIDE);

Nur die aufgerufene Form ist aktiv, und Endbenutzer können erst zu Objekten in der aufrufenden Form navigieren, wenn die aufgerufene Form beendet ist.


Aufgerufene Forms beenden

Standardmäßig beendet Form Builder eine Form, wenn einer der folgenden Vorgänge eintritt:

•	Prozedur EXIT_FORM

•	Prozedur NEW_FORM

•	Beenden-Befehl im Standardmenü Aktion

•	[Beenden/Abbrechen] Taste

Wenn eine aufgerufene Form beendet wird, geht die Kontrolle an die aufrufende Form zurück, und die Verarbeitung wird an der Stelle fortgesetzt, an der die aufrufende Form verlassen wurde. Dies bedeutet, daß der Trigger, der Menübefehl oder die benutzerdefinierte Routine, die die Prozedur CALL_FORM aufgerufen hat, die Verarbeitung bei der Anweisung wiederaufnimmt, die unmittelbar auf den Prozeduraufruf CALL_FORM folgt.


So können Endbenutzer eine aufgerufene Form beenden

Gelegentlich muß Endbenutzern die Möglichkeit gegeben werden, eine Anwendung aus einer aufgerufenen Form zu beenden, ohne daß die Endbenutzer jede Form in dem Aufrufstapel explizit beenden müssen. Hierzu benutzen Sie eine globale Variable, mit der angegeben wird, ob der Endbenutzer die ganze Sitzung beenden oder zu der aufrufenden Form zurückkehren möchte. (Globale Variablen sind über aufgerufene Forms sichtbar.)

Die aufgerufene Form könnte z.B. eine Schaltfläche mit der Bezeichnung QUIT aufweisen, mit der Endbenutzer die ganze Anwendung aus einer aufgerufenen Form beenden können. Der When-Button-Pressed-Trigger für jede Schaltfläche setzt den Wert der globalen Variablen so, daß angegeben wird, daß der Endbenutzer entweder die Sitzung beenden oder zu der aufrufenden Form zurückkehren möchte.

When-Button-Pressed-Trigger für Schaltfläche QUIT in aufgerufener Form B:

:GLOBAL.quit_check := 'quit';
Exit_Form;

In der aufrufenden Form wird dann der Wert der globalen Variablen unmittelbar im Anschluß an die Prozeduranweisung CALL_FORM eingelesen:

Triggertext in aufrufender Form A:

CALL_FORM('form_b');
/*
** The following statements execute immediately after
** returning from the called form.
*/
IF :GLOBAL.quit_check = 'quit' THEN
  exit_form;
END IF;


Forms im Abfragemodus aufrufen

Wenn Sie eine Form mit CALL_FORM oder NEW_FORM aufrufen, können Sie angeben, ob die aufgerufene Form im Normalmodus oder im Abfragemodus ausgeführt werden soll. Eine Form im Abfragemodus kann die Datenbank abfragen, jedoch keine Einfügen-, Aktualisieren- oder Löschvorgänge vornehmen.

Um den Abfragemodus für eine aufgerufene Form anzugeben, geben Sie die entsprechende Konstante für den Parameter query_mode in der Argumentliste für CALL_FORM oder NEW_FORM an. Gültige Konstanten sind NO_QUERY_ONLY (Normalmodus) und QUERY_ONLY.

Bei

CALL_FORM('form_b',
          no_hide,
          no_replace,
          query_only);

  oder

NEW_FORM('form_b',
         to_savepoint,
         no_query_only);

Hinweis:  Form Builder führt jede Form, die aus einer Form im Abfragemodus aufgerufen wird, als QUERY_ONLY-Form aus, selbst wenn mit der Syntax von CALL_FORM oder NEW_FORM angegeben wird, daß die aufgerufene Form im NO_QUERY_ONLY (Normal-) Modus ausgeführt werden soll.


CALL_FORM mit OPEN_FORM in derselben Anwendung benutzen

 Beispiele	   Einschränkungen

Wenn Sie CALL_FORM ausführen, um eine modale Form aufzurufen, wird die aufrufende Form deaktiviert, bis der Endbenutzer die aufgerufene Form beendet (und zu der aufrufenden Form zurückkehrt). Wenn eine aufrufende Form deaktiviert ist, werden ihre Fenster grau angezeigt, und Endbenutzer können den Fokus nicht auf Objekte in der Form setzen.

Eine aufgerufene Form kann wiederum eine andere Form aufrufen. Damit sind drei Forms in den Speicher geladen, von denen eine aktiv und für den Endbenutzer verfügbar ist. Wenn aufeinanderfolgende Forms mit der Prozedur CALL_FORM geladen werden, wird die sich ergebende Modulhierarchie als Formaufrufstapel bezeichnet.


Einschränkungen für die Benutzung von CALL_FORM mit OPEN_FORM in derselben Anwendung

Wenn Sie mehrere Forms in derselben Anwendung mit den vordefinierten Prozeduren OPEN_FORM und CALL_FORM aufrufen, beachten Sie folgende Einschränkungen:

•	Navigation  Sie können nicht programmgesteuert zu einer deaktivierten Form in einem Formaufrufstapel navigieren.

•	Aufrufende Forms  Eine geöffnete Form kann die Prozedur CALL_FORM nicht ausführen, wenn eine Kette mit aufgerufenen Forms von einer anderen geöffneten Form ausgelöst wurde.


Beispiele für die Benutzung von CALL_FORM mit OPEN_FORM in derselben Anwendung

•	Betrachen Sie folgendes Beispiel: (1) Form A ruft Form B auf, (2) Form B öffnet Form C, (3) Form C öffnet Form D, und (4) Form B ruft Form E auf. Nunmehr sind drei Forms aktiv und navigierbar (C, D und E), während zwei deaktiviert und nicht navigierbar sind (A und B). Jeder Versuch, programmgesteuert zu den Forms A oder B zu navigieren, löst einen Fehler aus. Gemeinsam stellen Forms A, B und E den aktuellen Formaufrufstapel in der Anwendung dar. Wenn C versucht, eine Form aufzurufen, kommt es zu einem Fehler, da eine geöffnete Form CALL_FORM nicht ausführen kann, wenn ein bestehender Stapel mit aufgerufenen Forms vorhanden ist, der von einer anderen Form ausgelöst wurde (in diesem Fall Form A). Bevor Form C CALL_FORM erfolgreich ausführen kann, muß der Endbenutzer oder die Anwendung Form E beenden (zu Form B zurückgehen), und dann Form B beenden (um den ganzen Formaufrufstapl zu schließen). Wenn Form D beendet wird, kehrt der Fokus zu der Form zurück, aus der D geöffnet wurde (in diesem Fall Form C). Wenn C dann beendet wird, geht der Fokus zu Form E zurück, auch wenn Form B ursprünglich Form C geöffnet hat. Der Grund hierfür ist, daß B momentan deaktiviert ist, da es eine Prozedur CALL_FORM für das Aufrufen von Form E ausgegeben hat.


Commit-Verarbeitung bei Benutzung von CALL_FORM verwalten

In einer Anwendung mit mehreren Forms können sowohl aufgerufene als auch aufrufende Forms DML-Befehle ausgeben, um Datensätze zu sperren, Änderungen zu speichern und abgeschickte Änderungen zurückzusetzen. In diesem Abschnitt werden die Grundlagen und Techniken für die Verwaltung der Commit-Verarbeitung über aufgerufene Forms hinweg beschrieben.


Abschicken und Speichern

Wenn Datenbanktransaktionen bei Ihrer Anwendung über aufgerufene Forms hinweg durchgeführt werden müssen, müssen Sie den Unterschied zwischen Abschicken und Speichern verstehen.

Bei einem standardmäßigen Speichern- bzw. Commit-Vorgang gibt Form Builder die SQL-Anweisungen aus, die für das Aktualisieren, Löschen oder Einfügen von Datensätzen erforderlich sind, die in der Form als geändert, gelöscht oder eingefügt markiert wurden. Form Builder gibt dann die COMMIT-Anweisung aus, um diese Transaktionen in der Datenbank zu speichern.

Beim Abschicken werden Aktualisieren-, Löschen- und Einfügenvorgänge in der Form in die Datenbank geschrieben, diese Transaktionen werden jedoch nicht in der Datenbank gespeichert. Sie können Form Builder explizit veranlassen, Vorgänge abzuschicken, ohne sie zu speichern, indem Sie die vordefinierte Prozedur POST ausführen.

Wenn eine Anwendung die POST-Prozedur ausführt, führt Form Builder die gesamte standardmäßige Validierungs- und Speichern-Verarbeitung durch, gibt jedoch die COMMIT-Anweisung nicht aus, um diese Transaktionen abzuschließen.

Da abgeschickte Transaktionen in die Datenbank geschrieben wurden, muß Form Builder den Status der betroffenen Datensätze nicht über aufgerufene Forms hinweg beibehalten. Was noch wichtiger ist, da diese Transaktionen nicht gespeichert wurden, können sie programmgesteuert zurückgesetzt werden. Sie können diese Funktionalität nutzen, um Transaktionen über aufgerufene Forms hinweg zu verwalten.


Was ist der Abschickmodus?

Wenn eine aufrufende Form ausstehende Aktualisierungen oder Löschvorgänge enthält, die nicht explizit abgeschickt wurden, führt Form Builder die aufgerufene Form im Abschickmodus aus. Außerdem wird jede Form, die von einer Form im Abschickmodus aufgerufen wird, ebenfalls im Abschickmodus ausgeführt.

Im Abschickmodus sind keine Speichervorgänge oder vollständigen Rollbacks zulässig. Ein Versuch, Änderungen zu speichern, führt zu folgender Meldung:

FRM-40403: Aufrufende Form hat nicht abgeschickte Änderungen. Speichern nicht erlaubt.

Wenn ein Endbenutzer Änderungen an Datensätzen in der aufgerufenen Form vornimmt und dann den Beenden-Standardbefehl ausgibt, zeigt Form Builder folgende Warnmeldung an:

Wollen Sie die Änderungen abschicken?

Diese Funktionalität behält alle Sperren bei, die von einer aufrufenden Form erhalten werden, bis die Kontrolle an diese Form zurückgegeben wird.


Über Savepoints und Rollbacks

Wenn bei allen Forms in einer Anwendung das Attribut Savepoint-Modus auf Ein (Standard) eingestellt ist, gibt Form Builder jedesmal einen Savepoint aus, wenn eine Form beim Starten oder über NEW_FORM bzw. CALL_FORM in den Speicher geladen wird (wenn eine Form mit OPEN_FORM aufgerufen wird, wird kein Savepoint ausgegeben). Wenn eine Anwendung mehrere Forms aufruft, trennen diese Savepoints Datenbanktransaktionen in Segmente, die spezifischen Formmodulen entsprechen.

Da Form Builder für jede aufgerufene Form einen Savepoint ausgibt, kann Ihre Anwendung Änderungen in einzelnen Forms abschicken und zurücksetzen, ohne daß sich dies auf Änderungen in anderen Forms auswirkt, die während der Sitzung aktiv waren.


Änderungen zurücksetzen

Die vordefinierten Prozeduren EXIT_FORM und NEW_FORM sind insofern ähnlich, als Form Builder bei beiden die aktuelle Form verläßt; der Unterschied besteht darin, daß NEW_FORM eine andere an ihrer Stelle zu ladende Form angibt, während EXIT_FORM die aktuelle Form einfach verläßt. In beiden Fällen muß Form Builder Änderungen, die vor dem Beenden in der aktuellen Form vorgenommen wurden, beibehalten oder zurücksetzen. Zusätzlich zu EXIT_FORM und NEW_FORM behält ein CLEAR_FORM-Vorgang Änderungen entweder bei oder setzt diese zurück.

Sie können steuern, ob Änderungen in einer Form beibehalten oder zurückgesetzt werden, wenn folgende Vorgänge eintreten:

•	Eine Form führt die vordefinierte Prozedur EXIT_FORM aus.

•	Der Endbenutzer wählt den Menüpunkt Beenden im Standardmenü Aktion (gleichbedeutend mit dem Aufruf von EXIT_FORM mit Standardparametern).

•	Eine Form führt die vordefinierte Prozedur NEW_FORM aus.

•	Eine Form führt die vordefinierte Prozedur CLEAR_FORM aus.

•	Der Endbenutzer wählt den Befehl Alles löschen aus dem Standardmenü Aktion aus (gleichbedeutend mit dem Aufruf von CLEAR_FORM mit Standardparametern).

Ob Änderungen beibehalten oder zurückgesetzt werden, hängt von dem für diese Vorgänge angegebenen Rollback-Modus ab.

Wenn Sie die Prozeduren EXIT_FORM, NEW_FORM oder CLEAR_FORM aufrufen, wird der Rollback-Modus von der Konstanten bestimmt, die Sie für den Parameter rollback_mode angeben: TO_SAVEPOINT, NO_ROLLBACK oder FULL_ROLLBACK.


Über Rollback-Parameter

Bei den Parametern TO_SAVEPOINT, NO_ROLLBACK und FULL_ROLLBACK handelt es sich um vordefinierte numerische Konstanten. Sie müssen ohne einfache Anführungszeichen eingegeben werden, wie in den folgenden Beispielen dargestellt:

CLEAR_FORM(ask_commit, to_savepoint);
NEW_FORM('my_form', no_rollback);
EXIT_FORM(ask_commit, full_rollback);

Rollback-Parameter	Beschreibung
TO_SAVEPOINT	Standard. Form Builder setzt nicht gespeicherte Änderungen (einschließlich abgeschickter Änderungen) auf den letzten Savepoint zurück. Wenn es sich bei der Form um eine aufgerufene Form handelt, werden Änderungen, die in der aufgerufenen Form abgeschickt wurden, beibehalten. Änderungen in der aktuellen Form oder erhaltene Sperren sind jedoch verloren.
NO_ROLLBACK	Form Builder gibt keinen Rollback aus, und abgeschickte Änderungen werden beibehalten. (Nicht abgeschickte Änderungen in der aktuellen Form sind verloren.) Beim Aufruf einer neuen Form oder beim Beenden einer aufgerufenen Form bleiben Sperren, die von der aktuellen Form erhalten wurden, wirksam.
FULL_ROLLBACK	Form Builder setzt alle nicht gespeicherten Änderungen zurück, die in der aktuellen Sitzung ausstehen (einschließlich abgeschickter Änderungen). Dies umfaßt Änderungen, die in der aktuellen Form vorgenommen wurden, abgeschickte Änderungen in Forms, die die aktuelle Form aufgerufen haben, sowie abgeschickte Änderungen in Forms, die von der aktuellen Form aufgerufen wurden.

Beachten Sie, daß vollständige Rollbacks nicht zulässig sind, wenn sich eine Form im Abschickmodus befindet, und daß das Aufrufen einer Prozedur mit dem Parameter FULL_ROLLBACK zu einem Fehler wie dem folgenden führt:

FRM-40739: Vollständiges Rollback nicht möglich im Abschickmodus.


Standard-Rollback-Modus

Der Standard-Rollback-Modus für die Prozeduren CLEAR_FORM, NEW_FORM und EXIT_FORM ist TO_SAVEPOINT. Somit sind die Anweisungen

CLEAR_FORM;
NEW_FORM('form_name');
EXIT_FORM;

logisch gleichbedeutend mit

CLEAR_FORM(ask_commit, to_savepoint);
NEW_FORM('form_name', to_savepoint);
EXIT_FORM(ask_commit, to_savepoint);

Hinweis:  Form Builder interpretiert eine ROLLBACK-Anweisung in einem PL/SQL-Block als vordefinierte Prozedur CLEAR_FORM ohne Parameter.


CLEAR_ALL- und EXIT-Befehle ändern

  Verwandte Themen

Das Standard-Formmenü von Form Builder verfügt über einen Befehl Alles löschen im Menü Aktion, mit dem Endbenutzer Änderungen in einer Form zurücksetzen können. Standardmäßig ist der Menüpunkt Alles löschen funktional gleichbedeutend mit der Ausführung der Prozedur CLEAR_FORM mit Standardparametern:

CLEAR_FORM(ask_commit, to_savepoint);

Gleichermaßen ist der Menüpunkt Beenden im Menü Aktion funktional gleichbedeutend mit dem Aufruf der Prozedur EXIT_FORM mit Standardparametern:

EXIT_FORM(ask_commit, to_savepoint);

Da diese Menüpunkte direkt Tastenbefehlen zugeordnet sind, können Sie deren Funktionalität durch Schreiben eines entsprechenden Tasten-Triggers ändern. Möglicherweise möchten Sie das Standardverhalten des Menüpunkts Alles löschen so ändern, daß alle Änderungen in der Sitzung zurückgesetzt werden, einschließlich Änderungen, die in aufrufenden Forms abgeschickt sind. Hierzu könnten Sie den folgenden Key-CLRFRM -Trigger ("Form-löschen"-Trigger) schreiben, um ein vollständiges Rollback zu verursachen:

CLEAR_FORM(no_commit, full_rollback);

Gleichermaßen können Sie den Rollback-Modus für den Menüpunkt Beenden in NO_ROLLBACK ändern, so daß in der aktuellen Form abgeschickte Änderungen beim Beenden nicht zurückgesetzt werden. Hierzu schreiben Sie den folgenden Key-Exit-Trigger:

EXIT_FORM(ask_commit, no_rollback);


Abschick- und Rollback-Modus zur Verwaltung von Transaktionen benutzen

 Beispiele

Auch wenn eine Anwendung mehr als ein Formmodul umfassen kann, kann immer nur eine Datenbanktransaktion gleichzeitig verarbeitet werden. Bei einem Speichervorgang in einer Form werden Aktualisieren-, Einfügen- und Löschenvorgänge gespeichert, die für die ganze Anwendungssitzung ausstehen und nicht nur für eine individuelle Form in der Anwendung. Dies bedeutet, daß ein von Form B ausgegebener Speichervorgang Änderungen speichern kann, die von Form A abgeschickt wurden. Gleichermaßen kann ein Rollback-Befehl Änderungen zurücksetzen, die in anderen Forms als der aktuellen Form abgeschickt wurden.

Wenn Sie eine Anwendung mit mehreren Forms erstellen, können Sie den Abschick- und Rollback-Modus benutzen, um die Speicherverarbeitung über aufrufende Forms übergreifend zu kontrollieren.

Wenn Änderungen in der aufrufenden Form abgeschickt werden, wird die aufgerufene Form nicht im Abschickmodus ausgeführt, und Endbenutzer können einen Speichervorgang aus der aufgerufenen Form ausgeben. Die folgenden Schritte stellen diese Folge dar und zeigen, wie beim Abschicken eine aufgerufene Form Änderungen speichern kann, die in der aufgerufenen Form vorgenommen wurden:

1	Aktualisieren oder löschen Sie Datensätze in Form A.

2	Schicken Sie die Änderungen in Form A ab.

3	Rufen Sie Form B auf.

4	Fügen Sie Datensätze in Form B ein bzw. aktualisieren oder löschen Sie Datensätze in Form B.

5	Führen Sie einen Speichervorgang in Form B durch. (Dadurch werden die Änderungen gespeichert, die in Form B durchgeführt wurden, und die abgeschickten Änderungen in Form A.)

6	Beenden Sie Form B.


Beispiele für die Benutzung des Abschick- und Rollback-Modus zur Verwaltung von Transaktionen

/* EXAMPLE 1: Committing from a Called Form

** Form Builder runs called forms in post-only mode when there
** are unposted changes in the calling form. Although post-only
** mode is useful in many applications, externalizing it to
** end-users can add complexity to your application's interface.
** For some applications, it may be better to prevent forms
** from running in post-only mode altogether. To do so, design
** the application so changes are explicitly posted before
** another form is called. To post changes in a form, execute
** the POST built-in procedure just prior to calling a form
** with the CALL_FORM or NEW_FORM procedure.  For example, you
** can include the POST procedure in the menu item command or
** When-Button-Pressed trigger that calls the next form:
*/
POST;
IF (system.form_status <> 'QUERY') THEN
  CALL_FORM('form_b', no_hide);
END IF;

/* EXAMPLE 2: Committing Changes in the Calling Form
**            from the Called Form
**
** Use posting to allow a calling form to commit changes posted in
** a called form. The following steps illustrate this sequence:
**
** 1. Update or delete records in Form A.
** 2. Call Form B. (Form B is in post-only mode because changes
**    were made in Form A that were not explicitly posted.)
** 3. Insert, update, or delete records in Form B.
** 4. Post in Form B.
** 5. Exit Form B with NO_ROLLBACK parameter.
** 6. Commit in Form A. (This commits changes made in Form A and
**    changes posted in Form B.)
**
** When Form B exits and returns control to Form A (step 5),
** the rollback mode is set to NO_ROLLBACK to preserve changes
** that were posted in Form B.


Auf geänderte Datensätze prüfen

Wenn die vordefinierte Prozedur POST ausgeführt wird, während keine abzuschickenden Änderungen vorhanden sind, zeigt Form Builder die folgende Fehlermeldung an:

FRM-40405: Es wurden keine Änderungen abgeschickt.

Um diese Fehlermeldung zu vermeiden, prüfen Sie die Systemvariable SYSTEM.FORM_STATUS, bevor Sie Änderungen abschicken, um sicherzustellen, daß mindestens ein Datensatz in der Form als CHANGED validiert wurde.

ENTER;
IF system.form_status = 'CHANGED' THEN
  POST;
END IF;
CALL_FORM('form_b', no_hide);

Da der standardmäßige Rollback-Modus beim Beenden einer Form TO_SAVEPOINT ist, müssen Sie diese Funktionalität explizit außer Kraft setzen, um einen Rollback-Vorgang zu vermeiden. Wenn der Endbenutzer z.B. den Menüpunkt Beenden im Standardmenü Aktion auswählt, sind Änderungen, die an der aufgerufenen Form vorgenommen wurden, verloren. Um den Standardbefehl Beenden außer Kraft zu setzen, könnten Sie folgenden Trigger schreiben:

Key-Exit-Trigger:

IF system.form_status = 'CHANGED' THEN
  POST;
END IF;
EXIT_FORM(no_commit, no_rollback);

Sie können dieselbe Technik verwenden, wenn Sie die aktuelle Form verlassen, indem Sie die Prozedur NEW_FORM anstelle von EXIT_FORM ausführen.

IF system.form_status = 'CHANGED' THEN
  POST;
END IF;
NEW_FORM(no_commit, no_rollback);

In diesem Fall können von der aufgerufenen Form abgeschickte Änderungen dann von der neuen Form gespeichert werden, die ihre Stelle einnimmt.


Informationen über den Formaufrufstapel abrufen

 Beispiele    [image]  Verwandte Themen

Sie können die vordefinierte Prozedur GET_APPLICATION_PROPERTY verwenden, um Informationen über den Formaufrufstapel in einer Anwendung mit mehreren Forms abzurufen, einschließlich:

•	Name der aktuellen Form (Parameter CURRENT_FORM).

•	Name der Form, die die aktuelle Form aufgerufen hat (Parameter CALLING_FORM).

•	Benutzername und Kennwort des aktuellen Endbenutzers (Parameter USERNAME und PASSWORD).


Beispiele für das Abrufen von Informationen über den Formaufrufstapel

/* Determine which form called the current form

** (with CALL_FORM)
*/
DECLARE
  parent_form  CHAR(20);
BEGIN
  parent_form := GET_APPLICATION_PROPERTY(calling_form);
  IF parent_form = 'form_A' THEN
    POST;
    EXIT_FORM(no_commit, no_rollback);
  ELSE
    COMMIT_FORM;
    EXIT_FORM;
  END IF;
END;


Meldungen beim Abschicken und Speichern von Transaktionen unterdrücken

Wenn Sie Anwendungen mit mehreren Forms erstellen, möchten Sie möglicherweise Meldungen im Zusammenhang mit dem Abschicken und Speichern von Transaktionen unterdrücken. Hierzu setzen Sie die Systemvariable SYSTEM.MESSAGE_LEVEL direkt vor einem Abschick- oder Speichervorgang auf 5, und setzen sie dann auf den gewünschten Wert zurück.


Parameter an Forms übergeben

  Verwandte Themen

Wenn Sie eine Form mit den Prozeduren OPEN_FORM, CALL_FORM oder NEW_FORM aufrufen, können Sie Werte für Formparameter aus der aufrufenden Form an die aufgerufene Form übergeben.

Um Parameterwerte von einer Form an eine andere zu übergeben, muß jeder Parameter und der zugehörige Wert in einer Parameterliste stehen. Parameterlisten sind interne dreispaltige Datenstrukturen, die den Schlüssel (Namen), Typ (Text_Parameter oder Data_Parameter) und den Wert jedes Parameters in der Liste enthalten.

Die Parameter, deren Werte übergeben werden, müssen in der aufgerufenen Form beim Entwurf definiert worden sein. Das heißt, die aufgerufene Form muß einen Wert für jeden der Parameter in der Parameterliste, die sie von der aufrufenden Form erhält, erwarten.

Sie können Parameter in einer Form im Objektnavigator beim Entwurf und auch programmgesteuert zur Laufzeit definieren. Die Attribute eines Parameters umfassen Name, Parameter-Datentyp, Länge und Anfangswert des Parameters. Parameterlisten müssen programmgesteuert mit den vordefinierten Prozeduren CREATE_PARAMETER_LIST und ADD_PARAMETER erstellt werden.

Parameterwerte sind über mehrere Forms hinweg nicht sichtbar. Selbst wenn also ein Parameter namens p1 sowohl in Form A als auch in Form B definiert ist, hat jede Form einen separaten Kontext, und die Einstellung des Wertes von p1 in Form B hat keine Auswirkung auf den Wert von p1 in Form A. Deshalb sind Parameter in Anwendungen mit mehreren Forms in erster Linie als Eingaben für eine Form nützlich, wenn diese das erste Mal aufgerufen wird.

Wenn Ihre Anwendungen Variablen erfordern, deren Werte über aufgerufene Forms hinweg sichtbar sind, sollten Sie globale Variablen benutzen. Globale Variablen sind über aufgerufene Forms sichtbar und bleiben aktiv, bis sie explizit mit der vordefinierten Prozedur ERASE gelöscht werden oder bis die Sitzung beendet wird.


Parameterlisten übergeben

 Beispiele   [image]  Verwandte Themen

Eine Parameterliste wird von einer Form zu einer anderen als letztes Argument in den vordefinierten Prozeduren OPEN_FORM, CALL_FORM oder NEW_FORM übergeben:


Beispiele für das Übergeben von Parameterlisten

/* In this example, a parameter list named form_a_parms is

** created and its object ID is assigned to a variable named
** p_list.  A text parameter named p1 then is added to the
** list with ADD_PARAMETER, and its value is set to "BICYCLE."
** Finally, the parameter list is passed to Form B as the last
** argument to the OPEN_FORM procedure. For this example to
** work, a form parameter named p1 must have been declared in
** Form B at design time, and its datatype and length must be
** compatible with the value being passed.
*/
DECLARE
  p_list  PARAMLIST;
BEGIN
  p_list := CREATE_PARAMETER_LIST('form_a_parms');
  ADD_PARAMETER(p_list, 'p1', text_parameter, 'BICYCLE');
  OPEN_FORM('form_b', activate, no_session, p_list);
END;


Standard-Parameterliste

 Beispiele

Jede Form umfaßt eine vordefinierte Parameterliste mit dem Namen Standard. Die Parameterliste Standard enthält alle Formparameter, die bei der Entwicklung in der Form definiert wurden. Wenn Sie z.B. die Parameter p1, p2 und p3 bei der Entwicklung in Form A definieren, werden diese automatisch in der Standard-Parameterliste für Form A aufgenommen.


Beispiele für die Standard-Parameterliste

/* Like any other parameter list, the Default parameter

** list can be passed to a called form by including it in
** the argument list of the OPEN_FORM, CALL_FORM, or
** NEW_FORM built-in procedures.
*/
DECLARE
  p_list  PARAMLIST;
BEGIN
  p_list := GET_PARAMETER_LIST('default');
  OPEN_FORM('form_b', activate, no_session, 'default');
END;


Ausgangswerte von Parametern in einer aufgerufenen Form

In der folgenden Tabelle wird dargestellt, wie die Ausgangswerte von Parametern in der aufgerufenen Form von der Parameterliste bestimmt werden, die von der aufrufenden Form mit OPEN_FORM, CALL_FORM oder NEW_FORM übergeben wird. Es wird davon ausgegangen, daß entsprechende Parameter in Form A (der aufrufenden Form) und Form B (der aufgerufenen Form) vorhanden sind.

Wenn Form A folgendes übergibt...	Sind die entsprechenden Parameter von Form B wie folgt eingestellt...
Keine Parameterliste	Standard-Parameterwerte, wie in Form B beim Entwurf angegeben. (Wenn kein Standardwert angegeben wurde, entspricht der Parameterwert standardmäßig NULL.)
Standard-Parameterliste	Die aktuellen Werte der entsprechenden Parameter in Form A.
Programmgesteuert erstellte Parameterliste	Die für die Parameter angegebenen Werte, als diese mit ADD_PARAMETER in die Parameterliste gesetzt wurden.


Parametervalidierung

 Beispiele    [image]  Verwandte Themen

Wenn Sie die Standard-Parameterliste an eine Form übergeben, validiert Form Builder die einzelnen Parameter anhand der Parameter, die in der aufgerufenen Form definiert sind, wie folgt:

•	Jeder Parameter in der Liste muß beim Entwurf in der aufgerufenen Form definiert worden sein. Wenn Sie einen undefinierten Parameter übergeben, wird OPEN_FORM, NEW_FORM und CALL_FORM nicht erfolgreich ausgeführt, und Form Builder gibt eine Fehlermeldung aus:  FRM-47023: Form <Formmodulname> enthält keinen Parameter namens <Parametername>.

•	Datentyp und Länge des in der aufgerufenen Form definierten Parameters muß mit dem übergebenen Parameterwert kompatibel sein. (Werte in Parameterlisten sind nicht eingegebene Zeichenfolgen, während Formparameter mit dem Typ CHAR, NUMBER oder DATE deklariert werden.) Wenn der Parameter mit dem Wert inkompatibel ist, wird OPEN_FORM, NEW_FORM oder CALL_FORM nicht erfolgreich ausgeführt, und Form Builder gibt eine Fehlermeldung aus: FRM-47024: Parametertyp von Parameter <Parametername> stimmt nicht mit der Definition in Form <Name der aufgerufenen Form> überein.

Sie können die Standard-Parameterliste ändern, indem Sie Parameter mit der vordefinierten Prozedur ADD_PARAMETER und DELETE_PARAMETER hinzufügen bzw. löschen.


Beispiele für die Parametervalidierung

/* To avoid a validation error, you can remove unwanted

** parameters from the list before passing it to a form.
** For example, if Form B requires only parameters p1 and
** p2, you could remove p3 from the list before passing
** the list to Form B.
*/
DECLARE
  p_list  PARAMLIST;
BEGIN
  p_list := GET_PARAMETER_LIST('default');
  DELETE_PARAMETER(p_list, 'p3');
  OPEN_FORM('form_b', activate, no_session, 'default');
END;


Form- und Menümodule integrieren

Genau wie Module mit mehreren Forms zu einer einzigen Anwendung kombiniert werden können, können mehrere Module nach Bedarf benutzt werden. Sie können eine Anwendung so entwerfen, daß verschiedene Formmodule dasselbe Menümodul gemeinsam benutzen. Sie können auch festlegen, daß jede Form in der Anwendung ihr eigenes Menü benutzt. Wie Menüs in Anwendungen mit mehreren Forms geladen werden, hängt davon ab, ob Sie OPEN_FORM, NEW_FORM oder CALL_FORM benutzen.


Menüfunktionalität von OPEN_FORM

Wenn Sie mit OPEN_FORM Anwendungen mit mehreren Forms erstellen, verfügt jedes Formmodul über ein eigenes Menümodul. Wenn der Endbenutzer zwischen Forms navigiert, wird das Menü für die aktuelle Form zum aktuellen Menü für die Anwendung. Beachten Sie, daß der MDI-Anzeigestil bei Microsoft Windows bestimmt, daß das Menü für die aktuelle Form im MDI-Anwendungsfenster angezeigt wird. Dies bedeutet, daß nur das Menü für die aktuelle Form angezeigt wird, wenn Endbenutzer zwischen Forms navigieren.


Menüfunktionalität von NEW_FORM

Wenn Sie NEW_FORM benutzen, um Anwendungen mit mehreren Forms zu erstellen, lädt Form Builder immer das Menümodul der neuen Form, selbst wenn es sich um dasselbe Modul handelt, das von der aufrufenden Form benutzt wird.

Wenn die Form, die die Prozedur NEW_FORM ausführt, selbst eine aufgerufene Form ist, die mit dem Parameter NO_REPLACE aufgerufen wurde, gilt diese Regel ausnahmsweise nicht. In diesem Fall übernimmt die neue Form die Einschränkung NO_REPLACE und läuft unter dem Menü der aufrufenden Form.


Menüfunktionalität von CALL_FORM

Wenn Sie CALL_FORM benutzen, um Anwendungen mit mehreren Forms zu erstellen, bestimmt der Parameter switch_menu, ob Form Builder ein anderes Menü lädt oder das aktuelle Menü beibehält. Gültige Konstanten für den Parameter switch_menu umfassen DO_REPLACE und NO_REPLACE.

Bei dem Parameterwert NO_REPLACE (Standard) behält Form Builder das aktuelle Menümodul bei. Bei DO_REPLACE ersetzt Form Builder das aktuelle Menümodul durch das Menü, das der aufgerufenen Form beim Entwurf zugeordnet wurde (entweder das Standardmenü von Form Builder oder ein benutzerdefiniertes Menümodul).

Bei

CALL_FORM('form_b', hide, do_replace);

wird z.B. Form B mit dem Menü ausgeführt, das Form B beim Entwurf zugeordnet wurde, und wird das aktuelle Menü nicht beibehalten.


Master-Menü erstellen

In Anwendungen mit mehreren Forms wird im allgemeinen eine Front-End-Form erstellt, die nur vorhanden ist, um das Hauptmenü der Anwendung anzuzeigen. Menüpunkte im Hauptmenü können dann einzelne Formmodule aufrufen, die bestimmte Funktionen der Anwendung ausführen. Um ein Master-Menü zu erstellen, das andere Forms aufruft, erstellen Sie zuerst ein Formmodul ohne Blöcke oder Menüpunkte, und ordnen Sie das Master-Menümodul dann dieser Form zu.

Forms aus einem Master-Menü mit OPEN_FORM aufrufen  Wenn Menüpunkte in einem Master-Menü Forms mit OPEN_FORM aufrufen, hat jede unabhängige Form ihr eigenes Menü. Sie können nicht angeben, daß eine unabhängige Form das aktuelle Menü benutzt.

Forms in einem Master-Menü mit NEW_FORM aufrufen  Wenn Menüpunkte in einem Master-Menü Forms mit der vordefinierten Prozedur NEW_FORM aufrufen, wird das jeder Form zugeordnete Menümodul geladen, wenn diese Form aufgerufen wird. Wenn alle Forms in einer Anwendung dasselbe Menü benutzen, ist das erneute Laden desselben Menüs jedesmal, wenn eine neue Form aufgerufen wird (und potentiell jedesmal, wenn die Datenbank abgerufen wird), möglicherweise nicht akzeptabel.

Um dieses Problem zu umgehen, erstellen Sie eine Start-Form, die nur für den Aufruf der Front-End-Form (und des zugehörigen Master-Menüs) vorhanden ist, indem Sie CALL_FORM mit dem Parameter NO_REPLACE ausführen. Bei diesem Konzept lädt Form Builder das Menü nicht jedesmal neu, wenn eine andere Form aus dem Hauptmenü aufgerufen wird. Da es sich bei der Front-End-Form selbst um eine aufgerufene Form handelt, übernehmen Formmodule, die mit der Prozedur NEW_FORM aufgerufen werden, automatisch die Einschränkung NO_REPLACE und werden unter dem Master-Menü ausgeführt.

Forms aus einem Master-Menü mit CALL_FORM aufrufen  Wenn Menüpunkte in dem Master-Menü Forms mit der vordefinierten Prozedur CALL_FORM aufrufen, können Sie mit dem Parameter switch_menu (DO_REPLACE oder NO_REPLACE) angeben, ob aufgerufene Forms das Master-Menü übernehmen sollen.


Vordefinierte Prozedur REPLACE_MENU benutzen

  Verwandte Themen

Sie können die vordefinierte Prozedur REPLACE_MENU benutzen, um das Menü der aktuellen Form durch ein anderes Menü zu ersetzen:

Um z.B. das aktuelle Menü durch ein Menü namens my_new_menu zu ersetzen, könnten Sie folgenden Prozeduraufruf schreiben:

REPLACE_MENU('my_new_menu');


National Language Support in Forms Developer

  Verwandte Themen

Wenn Sie Anwendungen für den internationalen Gebrauch entwerfen, müssen diese Anwendungen mit Benutzern in deren Landessprache kommunizieren, wobei die spezifischen Ländereinstellungen für die Anzeige der Daten verwendet werden. Der National Language Support (NLS) von Oracle umfaßt die drei folgenden Hauptebenen:

•	Unterstützung von Zeichencodierungsschemata verschiedener Länder.

•	Unterstützung von sprach- und länderspezifischen Regeln.

•	Übersetzung der Oberfläche.

Diese Kombination der Unterstützung auf Zeichenebene, auf Ebene der Datenanzeige und auf Oberflächenebene stellt sicher, daß Ihre Anwendungen in den meisten europäischen und asiatischen Sprachen sowie Sprachen des Mittleren Ostens benutzt werden können, einschließlich Mehr-Byte-Zeichencodierungsschemata und Bidirektionalität.


NLS-Architektur

  Verwandte Themen

Die NLS-Architektur hat zwei Hauptbestandteile:

•	sprachunabhängige Funktionen

•	sprachabhängige Daten

Die sprachunabhängigen Funktionen übernehmen die Verarbeitung von Daten auf die entsprechende Weise, je nach Sprache und Land des Laufzeitoperators, und formatieren diese Daten automatisch entsprechend den lokalen Datums- und Zeitregeln.

Durch das Eingrenzen sprachabhängiger Daten muß Ihre Anwendung nur die Zeichenfolgen übersetzen, die für Ihre Anwendung eindeutig sind.


NLS-Umgebungsvariablen

  Verwandte Themen

Sie können die folgenden Parameter als Umgebungsvariablen zur Angabe der Ländereinstellungen verwenden, die von Forms Developer benutzt werden:

Parameter	Beschreibung:
NLS_CALENDAR	Das benutzte Kalendersystem.
NLS_CREDIT	Zeichenfolge zur Angabe eines positiven Währungsbetrages.
NLS_CURRENCY	Lokales Währungssymbol.
NLS_DATE_FORMAT	Standardformat für Datumsangaben.
NLS_DATE_LANGUAGE	Standardsprache für Datumsangaben.
NLS_DEBIT	Zeichenfolge zur Angabe eines negativen Währungsbetrages.
NLS_ISO_CURRENCY	ISO-Währungssymbol.
NLS_LANG	Die von Forms Developer benutzten Spracheinstellungen.
DEVELOPER_NLS_LANG	Die Sprache für die Forms Developer Builder.
USER_NLS_LANG	Die Sprache für die Laufzeitkomponente von Forms Developer.
NLS_LIST_SEPARATOR	Trennzeichen für Objekte in einer Liste.
NLS_MONETARY_CHARACTERS	Dezimalzeichen und Tausenderzeichen bei Währungsbeträgen.
NLS_NUMERIC_CHARACTERS	Dezimalzeichen und Gruppentrennzeichen bei numerischen Werten.
NLS_SORT	Sortierfolge für Zeichendaten.

Weitere Informationen über diese Parameter finden Sie in Oracle8 Reference.


Umgebungsvariable NLS_LANG

  Beispiele	  Verwandte Themen

Mit der Umgebungsvariablen NLS_LANG werden die Ländereinstellungen festgelegt, die von Forms Developer verwendet werden.

NLS_LANG bestimmt:

•	die Sprache für die Anzeige von Meldungen für den Benutzer, z.B. die Meldung "In Arbeit...".

•	Standardformatmasken für Datums- und Zahlenangaben.

•	Sortierfolge.

•	Zeichen, aus denen der Zeichensatz besteht.

NLS_LANG hat folgende Syntax:

NLS_LANG=language_territory.charset

wobei:

language	die Sprache und deren Regeln zur Anzeige von Meldungen sowie zur Anzeige von Tag und Monat angibt. Wenn keine Sprache angegeben wird, wird standardmäßig Amerikanisch verwendet.
territory	das Land und die Regeln für das Standard-Datumsformat, das für Zahlen benutzte Dezimalzeichen, das Währungssymbol und die Berechnungsgrundlage für Wochen- und Tagesnummern angibt. Wenn kein Land angegeben wird, wird standardmäßig von Amerika ausgegangen.
charset	den Zeichensatz angibt, in dem die Daten dargestellt werden. Hier muß es sich um einen Zeichensatz handeln, der Ihrer Sprache und Plattform entspricht. Dieses Argument steuert außerdem den Zeichensatz, der für die Anzeige von Meldungen benutzt wird.

Weitere Informationen über  NLS_LANG finden Sie in Oracle8 Reference.


Umgebungsvariablen DEVELOPER_NLS_LANG und USER_NLS_LANG

  Beispiele	  Verwandte Themen

In den meisten Fällen reicht die Einstellung eines einzigen Wertes für NLS_LANG aus. Wenn Sie jedoch gleichzeitig auf demselben Rechner zwei Gruppen von Resource- und Meldungsdateien benötigen, stehen zwei weitere Umgebungsvariablen zur Verfügung:

•	DEVELOPER_NLS_LANG gibt die Sprache für den Builder des Produkts an.

•	USER_NLS_LANG gibt die Sprache für die Laufzeitkomponente des Produkts an.

Die Syntax von DEVELOPER_NLS_LANG und USER_NLS_LANG ist identisch mit der Syntax von NLS_LANG.

Benutzen Sie in den folgenden Fällen diese beiden Variablen anstelle der einfachen Variablen NLS_LANG:

•	Sie möchten den Builder in Englisch benutzen, entwickeln jedoch eine Anwendung für eine andere Sprache.

•	Sie erstellen eine Anwendung zur Ausführung in einer Sprache, die einen bidirektionalen Zeichensatz verwendet.

•	Sie erstellen eine Anwendung zur Ausführung in einer Sprache, für die keine lokale Sprachversion des Builder verfügbar ist.

Hinweis  Wenn diese Umgebungsvariablen nicht speziell eingestellt werden, übernehmen sie die Standardwerte von NLS_LANG.

Weitere Informationen über NLS_LANG finden Sie in Oracle8 Reference.


Umgebungsvariablen NLS_LANG einstellen

  Beispiele	  Verwandte Themen

So stellen Sie Umgebungsvariablen NLS_LANG ein:

  Definieren Sie Werte für diese Variablen genau so wie Sie andere Umgebungsvariablen in Ihrem Basisbetriebssystem definieren, wobei Sie plattformspezifische Regeln, wie Pfadlänge usw. berücksichtigen müssen.

So stellen Sie z.B. NLS_LANG für Microsoft Windows NT ein:

1	Wählen Sie Ausführen aus dem Menü Start.

2	Geben Sie 'regedit' ein, und klicken Sie auf OK, um den Registrierungseditor zu öffnen.

Hinweis  Die Windows-Registrierung reagiert empfindlich auf Änderungen. Ändern Sie Umgebungsvariablen nur, wenn dies absolut erforderlich ist. Wenn Sie einen Fehler machen, klicken Sie auf Abbrechen, und beginnen Sie von vorne.

3	Blenden Sie den Knoten HKEY_LOCAL_MACHINE ein. Danach blenden Sie den Knoten SOFTWARE ein.

4	Klicken Sie auf ORACLE, um die Oracle-Umgebungsvariablen im rechten Fensterbereich des Registrierungseditors anzuzeigen.

5	Doppelklicken Sie auf die Umgebungsvariable NLS_LANG.

6	Geben Sie den neuen Wert für NLS_LANG in das Textfeld Wertdaten ein, und klicken Sie auf OK.

Hinweis  Wenn Sie eine NLS-Funktion benutzen möchten, müssen Sie NLS_LANG mindestens so einstellen, daß das Produkt NLS-Komponenten finden kann.


Schriftartalias auf Windows-Plattformen verwenden

  Verwandte Themen

Es gibt möglicherweise Fälle, in denen Sie eine Anwendung mit einer bestimmten Schriftart erstellen, bei der Ausführung dieser Anwendung jedoch feststellen, daß eine andere Schriftart verwendet wird. Diese Probleme treten in den meisten Fällen auf, wenn eine englische Schriftart (wie z.B. MS Sans Serif oder Arial) in einer nicht-westeuropäischen Umgebung eingesetzt wird. Forms Developer prüft nämlich, ob der mit der Schriftart verknüpfte Zeichensatz dem Zeichensatz entspricht, der von der Sprach-Umgebungsvariablen angegeben wird. Wenn die beiden Zeichensätze nicht übereinstimmen, ersetzt Forms Developer die Schriftart automatisch durch eine andere Schriftart, deren zugehöriger Zeichensatz dem Zeichensatz entspricht, der von der Sprachumgebungsvariablen angegeben wird. Dieses automatische Ersetzen stellt sicher, daß die von der Datenbank zurückgegebenen Daten richtig in der Anwendung angezeigt werden.

Hinweis  Wenn Sie lokale Zeichen mit einer englischen Schriftart eingeben, nimmt Windows eine implizite Verknüpfung mit einer anderen Schriftart vor.

Nun gibt es jedoch möglicherweise Fälle, in denen diese Substitution nicht erfolgen soll. Sie können diese vermeiden, indem Sie alle gewünschten Schriftarten dem Zeichensatz WE8ISO8859P1 in der Schrifartalias-Datei zuordnen. Wenn Sie z.B. die Schriftart Arial in Ihrer Anwendung nicht benutzen können, fügen Sie folgende Zeile zu der Schriftartalias-Datei hinzu:

Arial.....=Arial...WE8ISO8859P1


Bei Microsoft Windows unterstützte Zeichensätze

Zeichensatzname	Beschreibung
AR8MSWIN1256	MS Windows Code Page 1256 8-Bit Latin/Arabic
BG8MSWIN	MS Windows 8-Bit Bulgarian Cyrillic
CL8MSWIN1251	MS Windows Code Page 1251 8-Bit Latin/Cyrillic
EE8MSWIN1250	MS Windows Code Page 1250 8-Bit East European
EL8MSWIN1253	MS Windows Code Page 1253 8-Bit Latin/Greek
ET8MSWIN923	MS Windows Code Page 923 8-Bit Estonian
IW8MSWIN1255	MS Windows Code Page 1255 8-Bit Latin/Hebrew
JA16SJIS	Shift-JIS 16-Bit Japanese
KO16KSC5601	KSC5601 16-Bit Korean
LT8MSWIN921	MS Windows Code Page 921 8-Bit Lithuanian
TH8TISASCII	Thai Industrial Standard 620-2533 - ASCII 8-Bit
WE8ISO8859P1	ISO 8859-1 West European
ZHS16CGB231280	CGB2312-80 16-Bit Simplified Chinese
ZHT16BIG5	BIG5 16-Bit Traditional Chinese


Unterstützte arabische Bildschirm-Zeichensätze

ID	Zeichensatzname	Beschreibung
61	AR8ASMO708PLUS	ASMO 708 Plus Client 8-Bit Latin/Arabic
72	AR8XBASIC	EBCDIC XBASIC Client 8-Bit Latin/Arabic
504	AR8NAFITHA711T	Nafitha Enhanced 711 Client 8-Bit Latin/Arabic
505	AR8SAKHR707T	SAKHR 707 Client 8-Bit Latin/Arabic
506	AR8MUSSAD768T	Mussa'd Alarabi/2 768 Client 8-Bit Latin/Arabic
507	AR8ADOS710T	Arabic MS-DOS 710 Client 8-Bit Latin/Arabic
508	AR8ADOS720T	Arabic MS-DOS 720 Client 8-Bit Latin/Arabic
509	AR8APTEC715T	APTEC 715 Client 8-Bit Latin/Arabic
511	AR8NAFITHA721T	Nafitha International 721 Client 8-Bit Latin/Arabic
514	AR8HPARABIC8T	HP ARABIC8 Client 8-Bit Latin/Arabic
567	AR8ARABICMACT	Mac Client 8-Bit Latin/Arabic


Sprach- und länderspezifische Regeln

  Verwandte Themen

Während die Zeichencodierungsschemata sicherstellen, daß die einzelnen für jede Sprache erforderlichen Zeichen verfügbar sind, ermöglicht die Unterstützung nationaler Regeln die richtig lokalisierte Anzeige von Datenobjekten.

Die angegebene Sprache bestimmt die Standardregeln für die folgenden Eigenschaften:

•	Sprache für Server-Meldungen

•	Sprache für Tages- und Monatsnamen und deren Abkürzung (wie in den SQL-Funktionen TO_CHAR und TO_DATE angegeben)

•	Symbole für die Äquivalente von AM, PM, AD und BC

•	Standardsortierfolge für Zeichendaten, wenn ORDER BY angegeben wird (GROUP BY benutzt eine binäre Sortierfolge, es sei denn, ORDER BY wird angegeben)

•	Schreibrichtung

•	bestätigende/negative Antwortfolgen

Wenn die Sprache z.B. auf Deutsch eingestellt ist, werden die Meldungen:

ORA-00942:  table or view does not exist
FRM-10043:  Cannot open file.

wie folgt angezeigt:

ORA-00942: Tabelle oder View nicht vorhanden.
FRM-10043: Datei kann nicht geöffnet werden.

Das angegebene Land bestimmt die Regeln für die folgenden Standardformatierungseigenschaften von Datum und Zahlen:

•	Datumsformat

•	Dezimalzeichen und Gruppentrennzeichen

•	lokales Währungssymbol

•	ISO-Währungssymbol

•	Anfangstag der Woche

•	Haben- und Sollsymbol

•	ISO-Flag für Wochen

•	Trennzeichen für Listen

Wenn das Land z.B. auf Deutschland eingestellt ist, werden Zahlen mit einem Komma als Dezimalzeichen formatiert.


Unterstützte Sprachen

Abkürzung	Sprache
ar	Arabisch
eg	Ägyptisch
us	Amerikanisch
bn	Bengali
ptb	Brasilianisches Portugiesisch
bg	Bulgarisch
dk	Dänisch
d	Deutsch
din	Deutsch DIN
zhs	Einfaches Chinesisch
gb	Englisch
et	Estonisch
sf	Finnisch
f	Französisch
el	Griechisch
iw	Hebräisch
nl	Holländisch
in	Indonesisch
is	Isländisch
I	Italienisch
ja	Japanisch
frc	Kanadisches Französisch
ca	Katalanisch
ko	Koreanisch
hr	Kroatisch
esa	Lateinamerikanisches Spanisch
lv	Lettisch
lt	Litauisch
ms	Malayisch
esm	Mexikanisches Spanisch
n	Norwegisch
pl	Polnisch
pt	Portugiesisch
ro	Rumänisch
ru	Russisch
s	Schwedisch
sk	Slowakisch
sl	Slowenisch
e	Spanisch
th	Thai
zht	Traditionelles Chinesisch
cs	Tschechisch
tr	Türkisch
uk	Ukrainisch
hu	Ungarisch
vn	Vietnamesisch

Hinweis  Die Tatsache, daß eine bestimmte Sprache unterstützt wird, bedeutet nicht unbedingt, daß eine Übersetzung für diese Sprache verfügbar ist.


Unterstützte Länder

Ägypten	Jemen	Rumänien
Algerien	Jordanien	Saudi Arabien
Amerika	Kanada	Schweden
Bahrain	Katalonien	Schweiz
Bangladesh	Korea	Slowakien
Brasilien	Kroatien	Slowenien
Bulgarien	Kuwait	Somalia
China	Lettland	Spanien
CIS	Libanon	Sudan
Dänemark	Libyen	Syrien
Deutschland	Litauen	Taiwan
Djibouti	Malaysia	Thailand
Estonien	Marokko	Tschechische Republik
Finnland	Mauritanien	Tschechoslowakei
Frankreich	Mexiko	Tunesien
Griechenland	Niederlande	Türkei
Hong Kong	Norwegen	Ukraine
Irak	Oman	Ungarn
Island	Österreich	Vereinigte Arabische Emirate
Israel	Polen	Vereinigtes Königreich
Italien	Portugal	Vietnam
Japan	Qatar	Zypern


Bidirektionale Unterstützung in Forms Developer

  Verwandte Themen

Die NLS-Unterstützung für die Sprachen des Mittleren Ostens und Nordafrika umfassen die bidirektionale Unterstützung bei Sprachen, deren natürliche Schreibrichtung von rechts nach links geht.

Mit der bidirektionalen Unterstützung können Entwickler folgendes kontrollieren:

•	Layoutrichtung, einschließlich der Anzeige von Objekten mit Beschriftungen am rechten Rand des Objekts und der richtigen Position der Kontrollkästchen und Optionsschaltflächen.

•	Lesereihenfolge, die die Textrichtung von rechts nach links oder von links nach rechts umfaßt.

•	Ausrichtung, die das Wechseln des Ursprungs von der oberen linken zur unteren rechten Ecke umfaßt.

•	Anfänglicher Tastaturstatus, der automatisch bestimmt, ob lokale oder römische Zeichen erzeugt werden, wenn der Endbenutzer mit der Dateneingabe in Forms beginnt (der Endbenutzer kann diese Einstellung außer Kraft setzen).

Neben der Umgebungsvariablen NLS_LANG können bidirektionale Anwendungen zwei zusätzliche Umgebungsvariablen verwenden:

•	DEVELOPER_NLS_LANG

•	USER_NLS_LANG

Wenn Sie z.B. eine amerikanische Oberfläche bei der Entwicklung einer arabischen Anwendung in einer Windows-Umgebung verwenden möchten, stellen Sie diese Umgebungsvariablen wie folgt ein:

DEVELOPER_NLS_LANG=AMERICAN_AMERICA.AR8MSWIN1256
USER_NLS_LANG=ARABIC_territory.charset


Bidirektionale Unterstützung in Form Builder

  Verwandte Themen

Mit fünf Attributen wird das Erscheinungsbild von Objekten in bidirektionalen Anwendungen angegeben: Richtung, Ausrichtung, Lesereihenfolge, Tastaturstatus und Anfänglicher Tastaturstatus.

Richtung ist ein umfassendes Attribut, das für jedes Objekt so viel Funktionalität wie möglich bereitstellt. Bei allen Objekten, mit Ausnahme von Textobjekten und Anzeigeobjekten, ist das Attribut Richtung das einzige bidirektionale Attribut. Mit seiner Einstellung werden die anderen Aspekte der bidirektionalen Funktion bestimmt. (Listenobjekte umfassen hingegen die Attribute Anfänglicher Tastaturstatus und Tastaturstatus.)

Textobjekte und Anzeigeobjekte haben kein Attribut Richtung. Statt dessen können Sie die Attribute Ausrichtung, Lesereihenfolge, Anfänglicher Tastaturstatus und Tastaturstatus für diese Objekte speziell festlegen.

Sie können den Tastaturstatus auf eine Sprache beschränken. Wenn Sie z.B. Tastaturstatus auf Lokal einstellen, kann der Benutzer die Tastatur nicht zu einer anderen Sprache umschalten.

Wenn die bidirektionalen Attribute auf Standard gesetzt sind, übernehmen diese Attribute ihre Werte von der natürlichen Schreibrichtung, wie mit der Sprach-Umgebungsvariablen angegeben. In den meisten Fällen gewährleistet dies die gewünschte Funktionalität. Sie müssen die bidirektionalen Attribute nur angeben, wenn Sie die geerbten Standardwerte außer Kraft setzen möchten.

In der folgenden Darstellung wird die Vererbung bei bidirektionalen Attributen angegeben:

	Standardeinstellung leitet Wert von diesem Objekt ab
Form	Sprach-Umgebungsvariable
Alle Objekte, wie z.B. Warnfenster, Blöcke, Wertelisten, Fenster und Leinwandausschnitte	Form
Alle Objekte, wie z.B. Textobjekte, Anzeigeobjekte, Kontrollkästchen, Schaltflächen, Optionsgruppen und Listenobjekte	Leinwandausschnitt

Die meisten Attribute, die mit der bidirektionalen Funktion verbunden sind, können programmgesteuert abgerufen und eingestellt werden. Weitere Informationen finden Sie in der Beschreibung des entsprechenden vordefinierten Unterprogramms. Für Informationen über das Abrufen des Wertes des Attributs Richtung für Schaltflächen lesen Sie die Beschreibung von GET_ITEM_PROPERTY.


Bidirektionale Unterstützung in Report Builder

  Verwandte Themen

Mit vier Attributen wird das Erscheinungsbild von Objekten in bidirektionalen Anwendungen angegeben: Ausrichtung, Richtung (bei einem Objekt) und Richtung (bei dem Bericht). Die bidirektionalen Attribute werden in folgender Reihenfolge zu Objekten hinzugefügt:

Modul

Boilerplate

Feld

Externer Boilerplate

Schaltfläche

Parametermasken-Boilerplate

Objekte, die in dieser Liste nicht aufgeführt werden, erfordern entweder keine bidirektionale Unterstützung (z.B. Bilder) oder verwenden automatisch die Standardwerte von einem der obigen Objektattribute.


Unterstützung von Unicode in Forms Developer

  Verwandte Themen

Unicode ist ein globaler Zeichensatz, mit dem mehrsprachige Texte in einer einzigen Anwendung angezeigt werden können. Auf diese Weise können multinationale Unternehmen eine einzige mehrsprachige Anwendung erstellen und diese weltweit einsetzen.

Globale Märkte erfordern einen Zeichensatz, der

•	eine einzige Implementierung eines Produkts für alle Sprachen ermöglicht und dennoch so einfach ist, daß er überall implementiert werden kann.

•	alle wichtigen lebenden Skripts enthält.

•	mehrsprachige Benutzer und Unternehmen unterstützt.

•	den weltweiten Austausch von Daten über das Internet ermöglicht.

Forms Developer unterstützt Unicode. Wenn Sie Unicode verwenden, können Sie mehrere Sprachen in einer Anwendung anzeigen, sowohl Einfach-Byte-Sprachen wie die westeuropäischen, osteuropäischen, bidirektionalen Sprachen des Mittleren Ostens als auch asiatische Mehrfach-Byte-Sprachen wie Chinesisch, Japanisch und Koreanisch.

Durch die Benutzung eines einzigen Zeichensatzes, der alle Sprachen umfaßt, müssen keine weiteren Zeichensätze für verschiedene Sprachen eingesetzt werden.

Um z.B. eine Mehrfach-Byte-Sprache wie Japanisch anzuzeigen, muß die Umgebungsvariable NLS_LANG (bei Windows-Plattformen) folgendermaßen eingestellt werden:

Japan_Japanese.JA16SJIS

Um eine Einfach-Byte-Sprache wie Deutsch anzuzeigen, muß NLS_LANG (bei Windows-Plattformen) folgendermaßen eingestellt werden:

German_Germany.WE8ISO8859P1

Dieses Schema hat den eindeutigen Nachteil, daß Anwendungen nur Zeichen aus jeweils einem Zeichensatz anzeigen können. Daten mit gemischtsprachigen Zeichensätzen können nicht angezeigt werden.

Mit dem Unicode-Zeichensatz können Sie den Zeichensatzabschnitt von NLS_LANG auf UTF8 anstelle des spezifischen Länderzeichensatzes einstellen. Auf diese Weise können Zeichen aus verschiedenen Sprachen und Zeichensätzen gleichzeitig angezeigt werden.

Um z.B. Japanisch und Deutsch gemeinsam auf dem Bildschirm anzuzeigen, muß die Variable NLS_LANG wie folgt eingestellt werden:

Japanese_Japan.UTF8

oder

German_Germany.UTF8

Die Unicode-Funktionalität von Forms Developer gibt dem Anwendungsentwickler und dem Endbenutzer die Möglichkeit, mehrsprachigen Text in einer Form anzuzeigen. Dies umfaßt Text aus einer Datenbank, der Unicode enthält, mehrsprachigen Text, Text in GUI-Objekten (z.B. Beschriftungen von Schaltflächen), Texteingabe über die Tastatur und Text aus der Zwischenablage. Forms Developer unterstützt momentan Unicode auf Windows NT 4.0 und Windows 95/98 (begrenzte Unterstützung).

Hinweis  Wenn Sie Anwendungen für das Web entwickeln, können Sie Unicode verwenden, weil Java Unicode unterstützt.


Erwägungen im Zusammenhang mit der Konfiguration

  Verwandte Themen

UNIX-Server können mehrere ORACLE_HOMEs unterstützen (wobei ORACLE_HOME das Verzeichnis ist, das von und für die Oracle-Software erstellt wird) und können somit mehrere NLS-Einstellungen unterstützen. Dies bedeutet, daß ein einziger UNIX-Server mehrere Sprachen unterstützen kann.

Windows NT kann jedoch nur ein einziges ORACLE_HOME unterstützen und läßt somit nur eine einzige NLS-Einstellung zu. Dies bedeutet, daß Windows NT nur eine Sprache unterstützen kann.


Unterstützung von Unicode-Schriftarten

  Verwandte Themen

Um mehrsprachigen Unicode-Text anzuzeigen, muß eine Schriftart verwendet werden, die die Symbole oder Zeichen der anzuzeigenden Sprachen enthält. Bei Windows NT und Windows 95/98 müssen Sie entweder die von Microsoft bereitgestellten TrueType 'Big Fonts' verwenden oder eine Unicode-Schriftart von einem anderen Hersteller. Wenn Sie versuchen, mehrsprachigen Text einzugeben, anzuzeigen oder auszudrucken und unerwartete Zeichen sehen, benutzen Sie wahrscheinlich keinen Big Font. Die von Microsoft unter NT 4.0 bereitgestellten Big Fonts umfassen:

•	Arial

•	Courier New

•	Lucida Console

•	Lucida Sans Unicode

•	Times New Roman

Wenn die Big Fonts von Windows den Anforderungen nicht gerecht werden, kann auch eine Schriftart von einem anderen Hersteller benutzt werden.


Unicode-Unterstützung aktivieren

  Verwandte Themen

Um die Unicode-Unterstützung in Forms Developer zu aktivieren, stellen Sie NLS_LANG wie folgt ein:

NLS_LANG=language_territory.UTF8


Konvertierung zwischen Zeichensätzen

  Verwandte Themen

Wenn Sie mit der Entwicklung von Anwendungen zur Benutzung in mehreren Sprachen beginnen, müssen Sie die Zeichensätze berücksichtigen, die die Endbenutzer der Anwendung verwenden, sowie die Zeichensätze, die die Anwendungsentwickler benutzen. Während die Konvertierung auf Zeichensatzebene zur Laufzeit automatisch erfolgt, wirkt sich die Konvertierung doch auf die Leistung aus.

Wenn Sie z.B. eine Anwendung in einem Zeichensatz generieren und sie in einem anderen Zeichensatz ausführen, werden Sie möglicherweise eine Verminderung der Leistung feststellen. Wenn ein Zeichensatz kein Äquivalent für ein bestimmtes Zeichen enthält, zeigt er statt dessen ein Ersatzzeichen an, z.B. ein Fragezeichen (?). Auch wenn Sie keinen sichtbaren Unterschied feststellen, werden Sie als Entwickler aufgrund von Leistungsfragen auf die Zeichensätze achten, mit denen Sie Ihre Anwendung generieren.

Hinweis  Forms Developer konvertiert nur zwischen Zeichensätzen für dieselbe Sprache, z.B. AR8MSWIN und AR8ISO oder IW8MSWIN und IW8ISO.

Wenn Sie Anwendungen zur Ausführung in mehr als einer Sprache oder auch zur Ausführung in derselben Sprache mit verschiedenen Zeichensätzen entwickeln, werden Sie Ihre Generierungs-Umgebung der Laufzeitumgebung anpassen, um die optimale Leistung zu erzielen:

•	Bestimmen Sie den Zeichensatz, der zur Laufzeit am häufigsten benutzt wird.

•	Stellen Sie die Sprachumgebungsvariable für die Generierung auf diesen Zeichensatz ein.

Hinweis  Bei Form Builder wird der bei der Generierung benutzte Zeichensatz auch zur Laufzeit benutzt, unabhängig von dem in der Laufzeitumgebung angegebenen Zeichensatz.


Benutzeroberfläche von Forms Developer

  Verwandte Themen

Oracle benutzt eine einzige ausführbare Datei bei der Software-Internationalisierung. Dies bedeutet, daß Sie keine separate ausführbare Datei (z.B. f60des.exe) benötigen, um die europäischen Einfach-Byte-Sprachen oder die asiatischen Mehrfach-Byte-Sprachen zu verarbeiten. Dieselben Werkzeuge können benutzt werden, um englische und anderssprachige Anwendungen zu erstellen.

Hinweis  Forms Developer baut auf dem Microsoft Windows-Betriebssystem bezüglich Schriftart und Eingabemethode für die verschiedenen Sprachen auf. Um Text in einer beliebigen Sprache einzugeben und anzuzeigen, müssen Sie eine Windows-Version ausführen, die diese Sprache unterstützt (d.h. um Thai anzuzeigen, müssen Sie Thai Windows ausführen).

Bei der Installation von Forms Developer wählen Sie die Sprache für die zu installierenden Meldungsdateien. Wenn Sie eine Komponente von Forms Developer verwenden (z.B. Form Builder), wird die entsprechende Meldungsdatei basierend auf der Sprach-Umgebungsvariablen benutzt, um die Oberfläche anzuzeigen. Dies umfaßt:

•	Meldungen

•	Menüs und Menüoptionen

•	Dialogfelder

•	Eingabeaufforderungen und Hinweise

•	Warnfenster

Wenn Forms Developer keine Meldungsdatei findet, die der aktuellen Spracheinstellung entspricht, werden standardmäßig die amerikanischen Meldungsdateien verwendet.

Hinweis  Während der Installation können Sie neben Amerikanisch nur eine Sprache angeben, für die Meldungsdateien installiert werden sollen. Wenn Sie Forms Developer später mit einer anderen Sprache benutzen möchten, müssen Sie Forms Developer mit den entsprechenden Meldungsdateien neu installieren.

Die Namen der Meldungsdateien geben sowohl die Forms Developer-Komponente als auch die Sprache an, wobei folgende Regeln für die Dateibenennung verwendet werden:

<Produkt_ID><Sprach_ID>.MSB

Bei Form Builder gilt z.B.:

FMDUS.MSB enthält standardmäßige (amerikanische) Builder-Meldungen

FMGUS.MSB enthält standardmäßige (amerikanische) Generierungs-Meldungen

FMFUS.MSB enthält standardmäßige (amerikanische) Runform-Meldungen

FMFI.MSB enthält italienische Runform-Meldungen

FMFD.MSB enthält deutsche Runform-Meldungen

Weitere Informationen über die Installation von sprachabhängigen Meldungsdateien finden Sie in dem Installation and User Guide für Ihre Plattform.

Hinweis  Sprachergänzungen sind nicht aufwärtskompatibel. Sie gelten nur für die Version von Forms Developer, mit der sie ausgegeben werden. Wenn Sie schon Sprachergänzungen aus früheren Releases haben, müssen diese aus Ihrem System entfernt werden.


Daten mit CONVERT konvertieren

Mit der SQL-Funktion CONVERT können Sie Daten zwischen Zeichensätzen konvertieren. Diese Funktion konvertiert die Binärdarstellung einer Zeichenfolge in einem Zeichensatz in eine andere Darstellung. Weitere Informationen über die Konvertierung finden Sie unter Konvertierung zwischen Zeichensätzen.

Eine vollständige Beschreibung von CONVERT finden Sie in Oracle8 Server SQL Reference.


Standardformatmasken

  Beispiele	  Verwandte Themen

Die Sprach-Umgebungsvariable legt nicht nur die für die Forms Developer-Oberfläche benutzte Sprache (sowohl Builder als auch Runtime) fest, sondern auch die Gruppe von Standardformatmasken, die für die Anzeige von Daten benutzt werden, es sei denn, der Standard wird durch explizite Formatmasken außer Kraft gesetzt. Als Anwendungsentwickler verfügen Sie außerdem über zusätzliche NLS-bezogene Formatmaskenzeichen, die verfügbar sind, wenn Sie die Standardformatmasken außer Kraft setzen wollen.

Alle in Forms Developer oder die Anwendung eingegebenen Daten benutzen die Standardformatmasken, die mit dem jeweiligen Land verknüpft sind. Somit können Sie also die Sprache wechseln, wenn Sie eine Anwendung generieren und diese ausführen, ohne die Datums- und Zahlenformate ändern zu müssen.

Forms Developer benutzt die Standardformatmasken insbesondere:

•	im Builder: Wenn der Builder Standardwerte für Objekte, Bereiche oder Parameter anzeigt.

•	zur Laufzeit: Wenn ein Benutzer Daten in ein Textobjekt eingibt, dessen Typ länderspezifisch ist, wie z.B. DATE oder NUMBER.

Während Sie bei mehrsprachigen Anwendungen mit Datums- und Währungsfeldern arbeiten, sollten Sie folgendes berücksichtigen:

•	Möglicherweise sollten alle angezeigten Objekte (Boilerplate, Textobjekte, Oberflächenobjekte, wie z.B. Schaltflächen und Wertelisten) länger gemacht werden, um die Übersetzung von Text und sprachspezifische Regeln bei der numerischen Anzeige zu berücksichtigen.

•	Ferner müssen Sie beachten, ob NLS-bezogene Formatmaskenzeichen benutzt werden müssen, um spezielle Formatmasken zu erstellen, oder ob die von NLS_LANG aufgerufenen Standardformatmasken ausreichend sind.


Tip
Für eine implizite Konvertierung von Datentypen erwartet PL/SQL, daß die Objekte das amerikanische Standardformat aufweisen (wie z.B. DD-MON-YY). Wenn Sie also in PL/SQL ein Objekt benutzen, dessen Typ länderspezifisch ist, müssen Sie die richtigen Formatmasken angeben. Oracle empfiehlt, daß Sie länderspezifische Objekte mit TO_DATE in PL/SQL übersetzen.

IF :emp.hiredate < TO_DATE(’30-12-1996’,’DD-MM-YYYY’) THEN
   ...


Formatmaskenzeichen

  Beispiele	  Verwandte Themen

Mit den folgenden Formatmaskenzeichen können Sie die Standardformatmasken außer Kraft setzen.

Datums-Formatmaskenzeichen

Zeichen	Rückgabewert
D	Ziffer für den Tag (1-7)
DY	Name des Tages (abgekürzt)
DAY	Name des Tages (mit Leerstellen auf eine Länge von 9 Zeichen aufgefüllt)
WW	Ziffer für die Woche, berechnet mit dem Algorithmus int((day-jan1)/7)
IW	Ziffer der ISO-Woche
MON	Name des Monats (abgekürzt)
MONTH	Name des Monats (mit Leerzeichen auf eine Länge von 9 Zeichen aufgefüllt)
RM	Zeichen für den römischen Monat
I,IY,IYY,IYYYY	Das letzte bzw. die zwei oder drei letzten Ziffern des ISO-Jahres bzw. das ISO-Jahr
BC,AD,B.C.,A.D.	BC- oder AD-Indikator (mit oder ohne Punkte)
AM,PM,A.M.,P.M.	AM- oder PM-Indikator (mit oder ohne Punkt)
Weitere Informationen über ISO und die zugehörigen Datumsformatmasken finden Sie in Oracle Server SQL Reference.

Zahlen-Formatmaskenzeichen

Zeichen	Rückgabewert
C	Internationales Währungssymbol
L	Lokales Währungssymbol
D	Dezimalzeichen
G	Gruppen- (Tausender-) Trennzeichen


Zeichendaten sortieren

  Einschränkungen	  Beispiele	  Verwandte Themen

Wenn Daten sortiert werden, basiert die Sortierfolge konventionell auf den numerischen Werten der Zeichen, wie mit dem Zeichencodierungsschema definiert. Ein derartiger Sortierenvorgang wird als binäres Sortieren bezeichnet und erzeugt vernünftige Ergebnisse für das englische Alphabet, da die ASCII- und EBCDIC-Standards die Buchstaben A bis Z in aufsteigender numerischer Folge definieren.  Hinweis

Wenn jedoch Zeichen vorhanden sind, die in anderen Sprachen benutzt werden, erzeugt ein binärer Sortierenvorgang im allgemeinen keine vernünftigen Ergebnisse. Eine aufsteigende ORDER BY-Abfrage würde z.B. die Zeichenfolgen ABC, ABZ, BCD, ÄBC in dieser Reihenfolge zurückgeben, wobei das Ä einen höheren numerischen Wert als B im Zeichencodierungsschema hat.

Um eine Sortierfolge zu erzeugen, die der alphabetischen Folge der Zeichen bei einer bestimmten Sprache entspricht, muß eine andere Sortierentechnik verwendet werden, die die Zeichen unabhängig von ihren numerischen Werten im Zeichencodierungsschema sortiert. Diese Technik wird als linguistisches Sortieren bezeichnet. Bei einem linguistischen Sortierenvorgang werden Zeichen durch andere Binärwerte ersetzt, die der richtigen linguistischen Folge des Zeichens entsprechen, so daß ein binärer Sortierenvorgang das gewünschte Ergebnis zurückgibt.

Linguistische Sonderfälle  Linguistische Sonderfälle sind Zeichenfolgen, die beim Sortieren als ein einziges Zeichen behandelt werden müssen. Derartige Sonderfälle werden automatisch berücksichtigt, wenn ein linguistischer Sortierenvorgang benutzt wird. Eine der linguistischen Sortierfolgen für Spanisch gibt z.B. an, daß die doppelten Zeichen ch und ll als einfache Zeichen zwischen C und D bzw. zwischen L und M sortiert werden.

Ein weiteres Beispiel ist das scharfe s (ß) im Deutschen. Bei der linguistischen Sortierfolge für Deutsch kann diese Folge als die beiden Zeichen SS sortiert werden, während die amerikanische linguistische Sortierfolge das Zeichen als SZ sortiert.

Sonderfälle wie diese werden ebenfalls behandelt, wenn Großbuchstaben in Kleinbuchstaben konvertiert werden und umgekehrt. Im Deutschen wird z.B. das scharfe s in Großbuchstaben mit SS geschrieben. Derartige Fälle der Konvertierung der Schreibweise werden von den Funktionen NLS_UPPER, NLS_LOWER und NLS_INITCAP behandelt, entsprechend den Konventionen, die von der linguistischen Sortierfolge festgelegt werden. (Die Standardfunktionen UPPER, LOWER und INITCAP können diese Sonderfälle nicht verarbeiten.)

NLSSORT-Funktion  Sie können die SQL-Funktion NLSSORT benutzen, um Zeichendaten zu sortieren. Diese Funktion ersetzt eine Zeichenfolge durch die entsprechende Sortierfolge, die von dem Sortiermechanismus benutzt wird. Bei einem binären Sortierenvorgang ist die Sortierfolge identisch mit der Eingabefolge. Wenn ein linguistischer Sortierenvorgang benutzt wird, gibt NLSSORT die Binärwerte zurück, durch die die Originalfolge ersetzt wird.


Hinweis
In ASCII-Standard stehen alle Großbuchstaben vor Kleinbuchstaben. Beim EBCDIC-Standard ist das Gegenteil der Fall, alle Kleinbuchstaben stehen vor den Großbuchstaben.


Einschränkungen beim linguistischen Sortieren

  Verwandte Themen

Bei Mehrfach-Byte-Zeichensätzen wird das linguistische Sortieren nicht unterstützt.


Zeichenfolgen in einer WHERE-Klausel vergleichen

  Beispiele	  Verwandte Themen

Zeichenfolgen in einer WHERE-Klausel werden mit den Binärwerten der Zeichen verglichen: Ein Zeichen ist 'größer als' ein anderes Zeichen, wenn es einen höheren Binärwert in dem Zeichensatz der Datenbank hat. Da die Folge von Zeichen aufgrund der Binärwerte möglicherweise nicht der alphabetischen Folge für eine Sprache entspricht, werden die Vergleiche den alphabetischen Regeln häufig nicht gerecht. Benutzen Sie die Funktion NLSSORT, um einen linguistischen Sortierenvorgang anstelle eines binären Sortierenvorgangs vorzunehmen.


ORDER BY-Klausel kontrollieren

  Verwandte Themen

Wenn eine linguistische Sortierfolge benutzt wird, wird NLSSORT implizit für jedes Zeichenobjekt in der ORDER BY-Klausel verwendet. Somit ist der für eine ORDER BY-Klausel benutzte Sortiermechanismus (linguistisch oder binär) für die Anwendung transparent.

Wenn jedoch die Funktion NLSSORT explizit für ein Zeichenobjekt in einer ORDER BY-Klausel angegeben wird, wird die implizite NLSSORT-Funktion nicht ausgeführt. Anders ausgedrückt, der linguistische NLSSORT-Ersetzenvorgang erfolgt nur einmal und nicht zweimal.

Die Funktion NLSSORT ist im allgemeinen in einer ORDER BY-Klausel nicht erforderlich, wenn standardmäßig ein linguistischer Sortierenvorgang erfolgt. Wenn jedoch standardmäßig eine binäre Sortierung durchgeführt wird, benutzt eine Abfrage wie

SELECT ENAME FROM EMP

ORDER BY ENAME

einen binären Sortierenvorgang. Ein linguistischer Sortierenvorgang (im folgenden Beispiel für Deutsch) kann wie folgt erhalten werden:

SELECT ENAME FROM EMP

ORDER BY NLSSORT(ENAME, ’NLS_SORT = GERMAN’)


ALTER SESSION benutzen

  Beispiele	  Verwandte Themen

Mit dem SQL-Befehl ALTER SESSION können Sie die NLS-Standardwerte außer Kraft setzen. Angenommen, Sie erstellen einige Parameter (wie z.B. Sprache, Land usw.), und ein Benutzer gibt Werte für diese Parameter an. In diesem Fall könnten Sie die Sitzung ändern, sobald diese Werte angegeben werden.

Hinweis  Zur Laufzeit führt der Server einen Befehl ALTER SESSION für den Client aufgrund der Werte aus, die in NLS_LANG angegeben sind. Wenn NLS_LANG nicht definiert ist, wird die Anweisung ALTER SESSION nicht ausgeführt.

In Form Builder können Sie jeden der folgenden NLS-Parameter für den Befehl ALTER SESSION angeben. Bei Report Builder und Graphics Builder können Sie jedoch nur den Parameter NLS_SORT angeben.

Parameter	Beschreibung
NLS_LANGUAGE	Vom Server zur Rückgabe von Meldungen und Fehlern benutzte Sprache
NLS_TERRITORY	Land für die Standard-Datums- und Währungsmasken
NLS_DATE_FORMAT	Standardformat für Datumsangaben
NLS_DATE_LANGUAGE	Standardsprache für Datumsangaben
NLS_NUMERIC_CHARACTERS	Dezimalzeichen und Gruppentrennzeichen
NLS_ISO_CURRENCY	Internationales ISO-Währungssymbol
NLS_CURRENCY	Lokales Währungssymbol
NLS_SORT	Zeichensortierfolge
NLS_CALENDAR	Aktuelles Kalendersystem

Weitere Einzelheiten über diese Parameter finden Sie in Oracle8 SQL Reference.


NLS-Parameter in SQL-Funktionen verwenden

  Verwandte Themen

Wo immer Sie SQL verwenden, können Sie das NLS-Standardverhalten mit den folgenden NLS-Parametern außerKraft setzen.

SQL-Funktion	NLS-Parameter
TO_DATE	NLS_DATE_LANGUAGE NLS_CALENDAR
TO_NUMBER	NLS_NUMERIC_CHARACTERS NLS_CURRENCY NLS_ISO_CURRENCY
TO_CHAR	NLS_DATE_LANGUAGE NLS_NUMERIC_CHARACTERS NLS_CURRENCY NLS_ISO_CURRENCY NLS_CALENDAR
NLS_UPPER	NLS_SORT
NLS_LOWER	NLS_SORT
NLS_INITCAP	NLS_SORT
NLSSORT	NLS_SORT

Weitere Einzelheiten über diese Parameter finden Sie in Oracle8 SQL Reference.


NLS-Parameter von Form Builder

  Verwandte Themen

Mit den vordefinierten Funktionen von Form Builder können Sie den aktuellen Wert der NLS-Umgebungsvariablen zur Benutzung in PL/SQL-Code abrufen:

	DEVELOPER_NLS_LANG	USER_NLS_LANG
Vordefinierte Prozedur	GET_FORM_PROPERTY	GET_APPLICATION_PROPERTY
Parameter	MODULE_NLS_LANG	USER_NLS_LANG

Da sowohl USER_NLS_LANG als auch DEVELOPER_NLS_LANG standardmäßig den Wert von NLS_LANG verwenden, enthalten die NLS-Parameter von Form Builder den Wert von NLS_LANG, wenn nicht ausdrücklich eine der Variablen gesetzt ist.

Beide NLS-Parameter von Form Builder haben vier Varianten, damit Sie entweder die vollständige Umgebungsvariable oder einen bestimmten Teil der Variablen abrufen können. In der folgenden Tabelle werden die vier Parameter der vordefinierten Prozedur GET_APPLICATION_PROPERTY dargestellt, die die Umgebungsvariable USER_NLS_LANG zurückgibt:

Parameter	Rückgabewert
USER_NLS_LANG	Ganze Variable USER_NLS_LANG
USER_NLS_LANGUAGE	Nur Sprachteil
USER_NLS_TERRITORY	Nur Landesteil
USER_NLS_CHARACTER_SET	Nur Zeichensatzteil

Um die Umgebungsvariable DEVELOPER_NLS_LANG abzurufen, rufen Sie GET_FORM_PROPERTY mit dem Parameter MODULE_NLS_LANG auf.


Druckerdefinitionsdateien und National Language Support

  Verwandte Themen

Wenn Sie Berichte im Zeichenmodus benutzen, sollten Sie die Breite der physikalischen Seite eines Berichts mit einem Zeichen weniger als die Seitenbreite angeben, die in der Druckerdefinitionsdatei definiert ist (.PRT-Datei). Sonst könnten Mehrfach-Byte-Zeichen mit dem letzten Zeichen einer Zeile beginnen und einen Umbruch zur nächsten Zeile vornehmen, um den Vorgang abzuschließen. Wenn die Breite der physikalischen Seite z.B. 80 Zeichen beträgt und die Breite in der Druckerdefinitionsdatei ebenfalls 80 Zeichen beträgt, könnte ein Mehrfach-Byte-Zeichen bei dem 80. Zeichen beginnen. Da Mehrfach-Byte-Zeichen nicht getrennt werden können, müßte bei dem 81. Zeichen ein Überlauf der Zeile erfolgen, um das Mehrfach-Byte-Zeichen zu vervollständigen. Um dies zu vermeiden, sollte die Breite der physikalischen Seite für den Bericht auf 79 eingestellt werden.

In der Druckerdefinitionsdatei können die folgenden für Arabisch und Hebräisch spezifischen NLS-Parameter eingestellt werden:

Benutzung:	Zweck:	Werte:
nls locale	Einstellung der lokalen Variablen der Druck-Engine	Hebräisch oder Arabisch
nls datastorageorder	Einstellung der logischen oder visuellen Datenspeicherung	Logisch oder Visuell
nls contextuallayout	Durchführung eines Prä-Kontext-Layouts bei arabischen Druckern	Nein oder Ja
nls contextualshaping	Durchführung einer Prä-Kontext-Gestaltung bei arabischen Druckern	Nein oder Ja
nls pcharset	Angabe des Zeichensatzes für den Drucker	Beliebiger Zeichensatz

Weitere Informationen über Druckerdefinitionsdateien finden Sie im Hilfesystem zu Report Builder.


Anwendungen übersetzen

  Verwandte Themen

Alle Fehlermeldungen und der gesamte Boilerplate-Text sollten in derselben Sprache angezeigt werden. Wenn Sie eine Anwendung ausführen, zeigt der Endbenutzer Meldungen und Boilerplate-Text aus drei verschiedenen Quellen an:

•	Fehlermeldungen aus dem Server

•	von Forms Developer erzeugte Laufzeit-Fehlermeldungen

•	als Bestandteil der Anwendung definierte Meldungen und Boilerplate-Text

Der National Language Support von Oracle übernimmt die Übersetzung der beiden ersten Quellen. Sie als Anwendungsentwickler sind für die Übersetzung der Meldungen und des Boilerplate-Texts bei der dritten Quelle verantwortlich.

Im allgemeinen gibt es zwei Arten von anwendungsspezifischen Texten, die Sie übersetzen müssen:

•	übersetzbarer Text, wie z.B. Menüs, Boilerplate-Text, Objektbeschriftungen, Meldungen und Hinweise

•	Zeichenfolgen in Triggern und Prozeduren, einschließlich Warnfenstern und Meldungen, die in Triggern definiert sind

Translation Builder hilft Ihnen bei der Übersetzung von 'übersetzbaren Textflgen' in der Benutzeroberfläche in mehrere Sprachen. Translation Builder unterstützt Sie bei der Übersetzung von nahezu allen mehrsprachigen Anwendungen von Forms Developer, indem separate Binärdateien für jede Sprache generiert werden.

Translation Builder hilft Ihnen zwar dabei, Zeichenfolgen in der Benutzeroberfläche zu suchen und zu übersetzen, kann jedoch nicht alle Zeichenfolgenkonstanten in PL/SQL-Triggern und -Prozeduren extrahieren. Konstanten-Text innerhalb von PL/SQL-Blöcken muß manuell übersetzt werden, da dieser Text nicht eindeutig begrenzt ist und häufig aus Variablen und Teilen von Zeichenfolgen besteht.

Eine vollständige Beschreibung von Translation Builder finden Sie in dem Hilfesystem zu Translation Builder.


Erwägungen im Zusammenhang mit dem Entwurf

  Verwandte Themen

Beim Entwurf einer Anwendung, die übersetzt wird, sollten Sie zusätzlichen Platz für Widgets und Boilerplate-Beschriftungen lassen. Um mehrere Zeichensätze zuzulassen und die durch die Übersetzung verursachte Erweiterung zu berücksichtigen, lassen Sie generell 30% Platz um Felder, Umrandungen und Boilerplate-Text frei.

Zum Beispiel:

Prompt auf der linken Seite des Feldes	Lassen Sie 30% Platz links neben dem Prompt frei.
Prompt über dem Feld	Lassen Sie 30% Platz rechts neben dem Prompt frei.
Schaltflächen, Kontrollkästchen, Optionsgruppen und Popup-Listen	Lassen Sie 30% zusätzlichen Platz frei.
Titel	Gestalten Sie die Größe von Umrandungen so, daß der Titel um 30% nach rechts erweitert werden kann.
Nur-Anzeige-Felder	Machen Sie die Größe 30% breiter als in der Ausgangssprache.
Alle Widgets	Machen Sie die Widgets groß genug für eine Übersetzung. So müssen z.B. Schaltflächen groß genug zur Aufnahme der übersetzten Beschriftungen sein. Überprüfen Sie Höhe und Länge der Schaltfläche, damit das höchste benutzte Zeichen aufgenommen werden kann. Berechnen Sie z.B. die Pixel, die zur Darstellung von Kanji-Zeichen erforderlich sind.


Translation Builder-Lösung benutzen

  Verwandte Themen

Sie können Translation Builder benutzen, um nahezu alle mehrsprachigen Anwendungen von Forms Developer zu übersetzen. Wenn die Endbenutzer bei einer Anwendung zur Laufzeit nicht zwischen den Sprachen umschalten müssen, können Sie Translation Builder benutzen und dann separate Binärdateien für jede Sprache generieren.

Wenn die Endbenutzer zur Laufzeit von einer Sprache zu einer anderen wechseln müssen, beenden die Benutzer die Anwendung, ändern die Sprachumgebungsvariable und starten die Anwendung neu.

Mit der Translation Builder-Lösung würden Sie Ihre Anwendung in folgenden Schritten entwickeln:

•	Erstellen einer grundlegenden Anwendungsdefinition (z.B. .FMB, .RDF) in der Quellsprache.

•	Benutzung von Translation Builder, um Zeichenfolgen zur Übersetzung zu extrahieren, die Übersetzung in eine oder mehrere Sprachen durchzuführen und die Zeichenfolgen dann wieder in die Anwendungsdefinition zurückzuspeichern.

•	Manuelles Übersetzen von Standardmeldungen in PL/SQL-Bibliotheken.

•	Benutzung des Generators, um eine Binärversion der Anwendung für jede Zielsprache zu generieren.

Vorteile  Dies ist der einfachste Weg zur schnellen Implementierung von mehrsprachigen Anwendungen. Mit dieser Lösung können Sie Translation Builder im Hinblick auf optimale Leistung einsetzen. Bei einer stabilen Anwendung kann diese Lösung problemlos benutzt werden.

Wenn Sie z.B. eine Anwendung in vier Sprachen erstellt haben und dann den Text einer Feldbeschriftung ändern müssen, würden Sie die Änderung im Builder vornehmen, die Änderung dann in der Definitionsdatei speichern, die neue Feldbeschriftung mit Translation Builder übersetzen und die neuen Meldungen dann in die Definitionsdatei einfügen und neu generieren, um eine Binärdatei mit der neuen Beschriftung zu erstellen.

Nachteile  Wenn Ihre Anwendungen mehrere Sprachen gleichzeitig unterstützen müssen, müssen Sie statt dessen zur Laufzeit zwischen den Sprachen wechseln.


Zur Laufzeit zwischen den Sprachen wechseln

  Verwandte Themen

Eine kleine Anzahl von Anwendungen muß mehrere Sprachen gleichzeitig unterstützen. Möglicherweise zeigt eine Anwendung als erstes ein Fenster in der englischen Sprache an, das während der ganzen Anwendung angezeigt bleibt, während ein Endbenutzer auf eine Schaltfläche in diesem Fenster klicken kann, um die Prompts in Deutsch anzuzeigen und dann wieder in Englisch.

Wenn bei Ihrer Anwendung zur Laufzeit zwischen den Sprachen gewechselt werden muß, können Sie mehr als eine Sprache in einer einzigen Anwendung aufnehmen, vorausgesetzt, die Sprachen benutzen denselben Zeichensatz. Allerdings können Sie den übersetzbaren Text nicht mit Translation Builder suchen, wenn Sie den Text dynamisch zur Laufzeit auffüllen. Statt dessen erstellen Sie Strukturen wie (IF...THEN...ELSIF), um die Anwendung in eine andere Sprache umzuschalten, indem Sie den Wert der NLS-Umgebungsvariablen mit der vordefinierten Prozedur GET_FORM_PROPERTY überprüfen.

Wenn Sie zur Laufzeit zwischen den Sprachen wechseln, würden Sie Ihre Anwendungen wie folgt entwickeln:

•	Entwicklung der ganzen Anwendung für eine Sprache, einschließlich Bibliotheken.

•	Manuelle Übersetzung jeder Bibliothek.

•	Entwurf von Boilerplate-Beschriftungen in Form von entsprechend skalierten Anzeigeobjekten, die dynamisch zur Laufzeit aufgefüllt werden.

Form Builder unterstützt die Zuordnung mehrerer Bibliotheken, so daß Sie eine Bibliothek speziell für Meldungen benutzen können, die übersetzt werden, und die andere Bibliothek für andere Zwecke.

Vorteile  Der Hauptvorteil dieser Lösung besteht darin, daß Sie hochentwickelte Anwendungen unterstützen können, bei denen die Forms hochdynamisch sein können. In diesen Fällen umgeht diese Lösung einige Wartungsprobleme, weil Sie keine separaten Dateien für jede Sprache generieren müssen, sobald sich die Form ändert.

Nachteile  Diese Lösung ist komplizierter, weil sie einen beträchtlichen Aufwand für das Erstellen des sprachspezifischen Meldungsspeichers, für das Auffüllen und Verwalten der Daten und für die manuelle Übersetzung erfordert. So würden Sie z.B. einen WHEN-NEW-FORM-INSTANCE-Trigger einrichten, mit dem Sie die Beschriftungen für jede Schaltfläche festlegen, wobei die korrekten Beschriftungen aus einer zugeordneten Bibliothek basierend auf dem Wert der NLS-Variablen abgerufen werden.


PL/SQL-Bibliotheken für Zeichenfolgen in Code benutzen

  Beispiele	  Verwandte Themen

Während Translation Builder den Benutzer bei der Übersetzung von Meldungen unterstützt, die Bestandteil der standardmäßigen Builder-Oberfläche sind, erfordern Meldungen, die programmgesteuert angezeigt werden, eine besondere Behandlung. Sie können die PL/SQL-Bibliotheken benutzen, um eine flexible Meldungsstruktur für Meldungen in Triggern oder Prozeduren zu integrieren.

Bei anwendungsspezifischen Meldungen – Meldungen, die programmgesteuert über die vordefinierten Routinen MESSAGE oder CHANGE_ALERT_MESSAGE oder durch Zuweisung einer Meldung an ein Anzeigeobjekt aus einem Trigger oder einer Prozedur auf dem Bildschirm angezeigt werden – können Sie die PL/SQL-Bibliotheken, die zugeordnet werden können, zur Implementierung einer flexiblen Meldungsfunktion verwenden. Die Bibliothek kann auf dem Host gespeichert und dann dynamisch zur Laufzeit zugeordnet werden. Zur Laufzeit können Sie basierend auf dem Suchpfad dann die der Form zugeordnete Bibliothek abrufen. (Eine Bibliothek könnte z.B. nur die italienischen Meldungen enthalten.)


Beispiele für National Language Support

  Verwandte Themen 	  Alle Beispiele

Beispiele für das Vergleichen von Zeichenfolgen

Beispiele für Formatmasken

Beispiele für NLS_LANG

Beispiele für PL/SQL-Bibliotheken


Beispiele für ALTER SESSION

  Verwandte Themen

Die folgende Anweisung ändert das Dezimalzeichen in ein Komma und das Tausendertrennzeichen in einen Punkt:

ALTER SESSION
   SET NLS_NUMERIC_CHARACTERS = ',.'

Diese neuen Zeichen werden zurückgegeben, wenn Sie deren Zahlenformatelemente D und G verwenden:

SELECT TO_CHAR(SUM(sal), 'L999G999D99') Total FROM emp

TOTAL
--------------
   FF29.025,00

Die nächste Anweisung ändert das ISO-Währungssymbol in das ISO-Währungssymbol für Amerika:

ALTER SESSION
   SET NLS_ISO_CURRENCY = America

Das für Amerika definierte ISO-Währungssymbol wird benutzt:

SELECT TO_CHAR(SUM(sal), 'C999G999D99') Total FROM emp

TOTAL
---------------
   USD29.025,00

Die nächste Anweisung ändert das lokale Währungssymbol in DM:

ALTER SESSION
   NLS_CURRENCY = 'DM'

Das neue lokale Währungssymbol wird zurückgegeben, wenn Sie das Zahlenformatelement L verwenden:

SELECT TO_CHAR(SUM(sal), 'L999G999D99') Total FROM emp

TOTAL
--------------
   DM29.025,00


Beispiele für das Vergleichen von Zeichenfolgen

  Verwandte Themen 	  Alle Beispiele

Angenommen, eine Spalte (COL1) enthält die Werte ABC, ABZ, BCD und ÄBC in dem ISO 8859/1 8-Bit-Zeichensatz. Außerdem wird davon ausgegangen, daß Sie die folgende Abfrage geschrieben haben:

SELECT COL1 FROM TAB1 WHERE COL1 > 'B'

Die Abfrage würde sowohl BCD als auch ÄBC zurückgeben, da Ä einen höheren numerischen Wert hat als B.

Sie können linguistische Vergleiche mit NLSSORT in der WHERE-Klausel wie folgt vornehmen:

WHERE NLSSORT(column) operator NLSSORT(string)

Beachten Sie, daß NLSSORT auf beiden Seiten des Vergleichsoperators benutzt werden muß.

SELECT COL1 FROM TAB1 WHERE NLSSORT(COL1) > NLSSORT('B')

Wenn eine deutschsprachige Sortierung vorgenommen wird, gibt diese Anweisung keine Folgen zurück, die mit Ä beginnen, da Ä im deutschen Alphabet vor B steht. Wenn nach der schwedischen Sprache sortiert würde, würden diese Folgen zurückgegeben, da Ä im schwedischen Alphabet hinter Z steht.


Beispiele für Formatmasken

  Verwandte Themen 	  Alle Beispiele

Bei NLS-konformen Anwendungen sollten Sie eine Zeichenfolge, die einen Monatsnamen enthält, nicht fest codieren. Wenn jedoch ein fest codierter Monatsname wichtig ist, sollten Sie die vordefinierte Prozedur COPY nicht benutzen. Wenn Sie COPY verwenden, ist der Monatsname möglicherweise falsch, je nachdem, welche Sprache angegeben ist. (Um ein Datum in einer Bibliothek anzugeben, benutzen Sie eine Variable für das Datum, und COPY kann einwandfrei benutzt werden.)

Sprachabhängiges Beispiel (nicht empfohlen):

:emp.hiredate := '30-DEC-96';

copy ('30-DEC-96','emp.hiredate');

Statt dessen verwenden Sie TO_DATE, wie im folgenden Beispiel dargestellt.

Sprachunabhängiges Beispiel (empfohlen):

:emp.hiredate := to_date(’30-12-1996’,’DD-MM-YYYY’);


Beispiele für NLS_LANG

  Verwandte Themen 	  Alle Beispiele

Angenommen, Ihre Anwendung soll in Französisch ausgeführt werden. Die Anwendung wird in Frankreich benutzt, und die Daten werden mit dem Zeichensatz WE8ISO8895P1 angezeigt. In diesem Fall würden Sie NLS_LANG folgendermaßen einstellen:

NLS_LANG=French_France.WE8ISO8895P1

Nun soll Ihre Anwendung zwar weiter in Französisch ausgeführt werden, dieses Mal wird sie jedoch in der Französischen Schweiz benutzt. In diesem Fall würden Sie NLS_LANG wie folgt einstellen:

NLS_LANG=French_Switzerland.WE8ISO8895P1

Weitere Beispiele:

NLS_LANG=Norwegian_Norway.NDK7DEC
NLS_LANG=Norwegian_Norway.WE8ISO8895P1
NLS_LANG=Japanese_Japan.JA16SJIS
NLS_LANG=Arabic_Egypt.AR8MSWIN1256
NLS_LANG=American_America.AR8MSWIN1256
NLS_LANG=American_America.WE8ISO8859P1


Beispiele für PL/SQL-Bibliotheken

  Verwandte Themen 	  Alle Beispiele

FUNCTION nls_appl_mesg(index_no NUMBER)

RETURN CHAR

IS

   msg CHAR(80);

BEGIN

   IF index_no = 1001 THEN

      msg := 'L''impiegato che Voi cercate non esiste...';

   ELSIF index_no = 1002 THEN

      msg := 'Lo stipendio non puo essere minore di zero.';

   ELSIF ...

   :

   ELSE

      msg := 'ERRORE: Indice messaggio inesistente.';

   END IF;

   RETURN msg;

END;

Eine Routine wie diese könnte überall dort benutzt werden, wo normalerweise ein Zeichenausdruck gültig ist; um z.B. eine Warnmeldung mit der entsprechend übersetzten Anwendungsmeldung anzuzeigen, könnten Sie folgenden Code in Ihrer Form aufnehmen:

Change_Alert_Message('My_Error_Alert', nls_appl_mesg(1001));

n := Show_Alert('My_Error_Alert');

Um die Anwendung in einer anderen Sprache anzuzeigen, ersetzen Sie einfach die PL/SQL-Bibliothek, die die Funktion nls_appl_mesg enthält, durch eine Bibliothek desselben Namens, die die Funktion nls_appl_mesg mit übersetztem Text enthält.

Wenn die Anwendung mehrere Sprachen gleichzeitig unterstützen soll, könnte die obige Funktion einen zusätzlichen Parameter akzeptieren, mit dem die gewünschte Sprache angegeben wird, und der Code würde eine zusätzliche Ebene von IF...THEN...ELSIF...ELSE...END IF enthalten, um die verschiedenen Sprachen zu berücksichtigen.


Hilfethema nicht gefunden. Prüfen Sie, ob die Online-Hilfe verwandte Themen enthält.


Beispiele für Oracle8-Objekte

  Verwandte Themen 	   Alle Beispiele

Objekttyp

Tabellentyp

Variierender Array-Typ

Spaltenobjekt

Objekttabelle

Objektansicht


Unterstützung von Oracle8-Server

  Verwandte Themen

Oracle8 Server stellt eine Reihe von neuen Funktionen bereit. Im allgemeinen fallen diese Funktionen in folgende Kategorien:

•	Größere Skalierbarkeit. Oracle8-Datenbanken können z.B. Datenmengen in Terabyte-Größenordnungen enthalten und unterstützen den gleichzeitigen Zugriff durch maximal 10000 Benutzer. Die Tabellen selbst können jetzt bis zu 1000 Spalten enthalten. Die Datentypen CHAR und VARCHAR2 können jetzt maximal 2000 bzw. 4000 Byte umfassen.

•	Größere Leistung und Effizienz. Die Benutzung dieser Oracle8-Funktionen erfolgt automatisch und erfordert kein Eingreifen Ihrerseits. Sie profitieren automatisch von der Geschwindigkeit und Verläßlichkeit, die sich durch die Speicherung von Daten im Oracle8-Server ergibt.

•	Große Objekte (werden gelegentlich als LOBs bezeichnet).

•	Benutzerdefinierte Objekte.

Weitere Unterstützung von Oracle7

Die Funktione von Oracle7-Server (Release 7.3.4 und höher) werden weiter unterstützt.


Unterstützte Oracle8-Datentypen

  Verwandte Themen

Dieses Release unterstützt weiterhin die folgenden Oracle8-Datentypen:

Große Objekte (LOBs)

In Oracle8 können Programmierer große Objekte definieren, die häufig als LOBs bezeichnet werden. In diesen Objekten können Text, Bilder, Klang oder Video gespeichert werden.

Dieses Release unterstützt momentan die folgenden LOB-Datentypen von Oracle8:

•	BLOB (für Binary Large Object)

•	CLOB (für Character Large Object - Einfachbyte)

•	BFILE (für Binary File) (wird gelegentlich als externe Datei bezeichnet).

Benutzerdefinierte Objekte

In Oracle8 können Programmierer Objekttypen (die auch als benutzerdefinierte Typen bezeichnet werden) definieren, bei denen es sich um zusammengesetzte Objekte handelt, basierend auf den bestehenden Einfachelement-Datentypen, die von Oracle8 unterstützt werden. Anhand dieser Objektdefinitionen können Programmierer dann verschiedene Arten von Tabellen erstellen.

Folgende Typen von Oracle8-Objekten werden momentan unterstützt:

•	Objekttabellen, wobei die ganzen Tabellen auf einem einzelnen Objekttyp basieren.

•	Spaltenobjekte in einer relationalen Tabelle, wobei diese Spalten auf einem Objekttyp basieren.

•	REF-Spalten in einer Objekt- oder relationalen Tabelle, wobei die Werte dieser Spalten Pointer auf Zeilen in einer anderen Objekttabelle sind.

Neue skalare Datentypen

Dieses Release unterstützt auch den neuen Oracle8-Datentyp FLOAT. Es ordnet diesen Datentyp seinem eigenen Datentyp NUMBER zu.


Über LOBs von Oracle8

Sie können auf LOB-Datentypen von Oracle8 zugreifen: BLOBs (Binary Large Objects); CLOBs (Character Large Objects) und BFILEs (Binary Files).

Auf einem Oracle8 Server können diese Datentypen Objekte mit maximal 4 GB speichern. Ihr Verwendungszweck entspricht den bekannten Datentypen LONG und LONG RAW von Oracle7, sie bieten allerdings eine Reihe zusätzlicher Vorteile.

Vergleich von LOBs und LONGs

LOBs	LONGs
Maximal 4 GB	Maximal 2 GB
Mehrere LOB-Spalten in einer einzigen Tabelle	Nur eine LONG-Spalte pro Tabelle
Replizierung unterstützt	Keine Replizierung
Wahlfreier Datenzugriff unterstützt	Nur sequentieller Zugriff unterstützt
Bessere Verwaltung des Tabellenspeicher-platzes (nur der LOB-Positionsanzeiger wird gespeichert)	Weniger effizient (Daten werden direkt in Tabellen gespeichert)
In benutzerdefinierten Objekttypen zulässig	Nicht zulässig
Können einfach an Prozeduren und externe Aufrufe übergeben werden	Keine einfache Übergabe
LOBs im Detail:

Mit BLOBs werden große Objekte im Binärformat gespeichert. Mit CLOBs werden Zeichendaten gespeichert. Diese beiden Typen sind auch als interne LOBs bekannt, da ihre Daten innerhalb des Servers gespeichert werden. Die Daten nehmen an Transaktionen und der Integritätskontrolle teil, einschließlich Commits und Rollbacks.

BFILEs hingegen werden außerhalb des Servers gespeichert. Der Server speichert nur die Betriebssystemadresse der Datei. Deshalb können BFILEs nicht an Datenbanktransaktionen teilhaben.

Kompatibilität

Wegen der vielen Vorteile der LOBs (siehe obige Tabelle) sollten Sie LOBs anstelle von LONGs in jeder neuen Anwendung verwenden.

Aus Gründen der Abwärtskompatibilität werden LONGs jedoch weiterhin voll unterstützt.

Forms-Typen

Innerhalb einer Form würde das LOB im allgemeinen einen Steuerelementtyp Text, Bild  oder Klang erhalten, je nach Verwendungsart.

Einschränkungen

•	BFILEs sind schreibgeschützt.

•	Auch wenn  Forms versuchen wird, das gesamte BFILE oder BLOB zu laden, wenn es zur Laufzeit gelesen wird, wird es doch durch den virtuellen Speicherplatz begrenzt, der zur Laufzeit verfügbar ist.

•	Bei CLOBs, hat Forms eine Größenbeschränkung von 65534 Byte.


Über benutzerdefinierte Objekte von Oracle8

  Verwandte Themen  [image]  Beispiele

Durch die Unterstützung des Oracle8-Servers ermöglicht dieses Release den Zugriff auf benutzerdefinierte Objekte von Oracle8. Diese umfassen Objekttabellen, Spaltenobjekte in relationalen Tabellen und eine besondere Art von Spaltenobjekt, die als REF-Spalte bezeichnet wird.

Objekttabellen

In Oracle8 basiert eine Objekttabelle auf der Objekttypdefinition eines Benutzers. Diese Definition selbst ist ein zusammengesetztes Objekt, wobei jedes Attribut bzw. jede Komponente auf einem bekannten vordefinierten Datentyp von Oracle8 basiert. (Eine Objekttypdefinition kann auf einer anderen Objekttypdefinition basieren, schlußendlich beruhen die Definitionen jedoch auf bekannten vordefinierten Oracle8-Datentypen.)

Deshalb wird jede Spalte in einer Objekttabelle als individuelles Datenobjekt behandelt, so wie es die Spalten einer relationalen Tabelle behandelt.

Spaltenobjekte in relationalen Tabellen

Ein Datenbankprogrammierer kann eine Spalte in einer relationalen Tabelle auch auf einer Objekttypdefinition basieren. Dies entspricht dem Einbetten eines zusammengesetzten Objekts in der relationalen Tabelle.

Das eingebettete Spaltenobjekt wird in die entsprechenden Bestandteile erweitert und jeder Teil wird als Spalte für sich selbst behandelt.

Wenn der Oracle8-Server z.B. eine 3spaltige relationale Tabelle enthalten würde, eine dieser Spalten ein Spaltenobjekt wäre und dieses Spaltenobjekt auf einer Objektdefinition basieren würde, die vier Bestandteile oder Attribute hat, würde die Tabelle als 6spaltige Tabelle behandelt (die 2 relationalen Spalten plus den 4 Spalten, aus denen das Objekt besteht).

Falls eines der individuellen Attribute der Definition des Spaltenobjekts auf einem anderen Objekttyp basieren würde, würde dieser Bestandteil weiter erweitert und als Gruppe mit individuellen Spalten behandelt.

REF-Spalten

Eine Spalte in einer Objekt- oder relationalen Tabelle kann als eine Spalte vom Typ REF definiert werden. Eine REF-Spalte enthält nicht direkt Daten, sondern Pointer (Referenzen) auf eine andere Objekttabelle, die die eigentlichen Daten enthält.

Die Referenz kann zur Laufzeit aufgelöst werden, so daß der Benutzer die konkreten referenzierten Daten sieht.


Benutzerdefinierte Objekte von Oracle8: Beispiele

  Verwandte Themen

Um Objekte im Oracle8-Server zu erstellen, definiert ein Datenbankprogrammierer zuerst einen Objekttyp. Danach erstellt er ein spezifisches Objekt basierend auf dieser Typdefinition. Bei dem Ergebnisobjekt kann es sich entweder um eine Objekttabelle oder ein Spaltenobjekt in einer relationalen Tabelle handeln.

Beispiele

Betrachten Sie die folgenden Definitionen. Mit der ersten Definition wird ein Objekttyp erstellt. Die zweite Definition erstellt eine Tabelle dieses Typs.

         CREATE TYPE  emp_type  AS OBJECT

                      (name     CHAR(30),

                       title    CHAR(20),

                       idnum    NUMBER);

         CREATE TABLE  emp  OF emp_type;

Im obigen Beispiel wird eine Objekttabelle mit der Bezeichnung emp erstellt. Sie hat drei Spalten, und diese Spalten haben die Namen und Datentypen, die in den Attributen der Objekttypdefinition emp_type festgelegt werden.

Als nächstes sehen Sie ein Beispiel für ein Spaltenobjekt in einer relationalen Tabelle:

         CREATE TYPE  address_type  AS OBJECT

                      (street    VARCHAR2(40),

                       city      VARCHAR2(25),

                       state     VARCHAR2(2)

                       zip       NUMBER);

         CREATE TABLE  customers

                       (cust_id  NUMBER,

                        name     VARCHAR(40),

                        address  address_type);

In diesem Beispiel wird eine relationale Tabelle mit der Bezeichnung customers erstellt. Die Tabelle hat drei Spalten. Bei den beiden ersten Spalten (cust_id und name) handelt es sich um die üblichen relationalen Spalten. Die dritte Spalte (address) ist ein Spaltenobjekt. Sie basiert auf der Objekttypdefinition mit der Bezeichnung address_type. Diese Adreßspalte hat die Struktur und die Datentypen, die von dieser Objektdefinition festgelegt wurden. Stellen Sie sich die Adreßspalte als eine Spalte mit vier Bestandteilen oder Komponenten vor (street, city, state und zip). Jede dieser Komponenten hat den Datentyp, der in der Objekttypdefinition address_type festgelegt wurde. (In diesem Fall haben alle Komponenten den Datentyp VARCHAR2 mit Ausnahme von zip, die den Datentyp NUMBER hat.)

In der folgenden Darstellung basiert die dritte Spalte einer dreispaltigen relationalen Tabelle auf einem Objekttyp, der selbst drei Bestandteile oder Komponenten hat.

Beachten Sie, daß es sich bei einem Oracle8-Objekt um ein zusammengesetztes Objekt handelt, das aus Bestandteilen oder Komponenten besteht. Jeder der Bestandteile hat einen Namen und einen bekannten Oracle8-Datentyp. Wenn es sich bei dem Objekt um eine Tabelle handelt (in Wirklichkeit eine Zeile in einer Objekttabelle), hat diese so viele Spalten oder Bestandteile, wie Attribute in der Objekttypdefinition vorhanden sind. Wenn eine Spalte in einer relationalen Tabelle auf einem Objekt basiert, können Sie sich jeden der Bestandteile des Objekts als eine zusätzliche Spalte in dieser Tabelle vorstellen. Da jeder dieser Bestandteile auf einem Attribut in der Objekttypdefinition basiert, werden diese Bestandteile gelegentlich als Attributspalten bezeichnet.

So behandelt Developer Objekte

Eine Objekttabelle wird weitestgehend wie eine relationale Tabelle behandelt. Jede Spalte kann individuell ausgewählt werden. Auch wenn alle Spalten ausgewählt werden können, wird jede Spalte als separates Objekt innerhalb der Anwendung behandelt. Die Tabelle selbst verfügt über keine besondere Identität als Objekt innerhalb der Umgebung.

Gleichermaßen wird ein Spaltenobjekt in einer relationalen Tabelle nicht als eine einzelne homogene Entität behandelt. Statt dessen wird jede der Komponenten des Spaltenobjekts als individuelles, unabhängiges Datenobjekt behandelt. Jede Komponente des Spaltenobjekts kann ausgewählt werden. Nachdem die Komponente ausgewählt wurde, wird jede Komponente als unabhängiges Datenobjekt behandelt. Selbst wenn alle Komponenten des Spaltenobjekts ausgewählt sind, hat das Spaltenobjekt selbst keine besondere Identität als Objekt innerhalb der Entwicklungsumgebung.

Datenobjekte, die aus einem Objekt ausgewählt werden, haben den Standardnamen ColumnObjectName_ItemName. Wenn also die Komponente mit der Bezeichnung zip aus dem Spaltenobjekt mit der Bezeichnung address im obigen Beispiel ausgewählt wird, hat das Datenobjekt den Namen address_zip innerhalb der Anwendung.


Über Oracle8-REFs

  Verwandte Themen

REF ist ein neuer Datentyp in Oracle8. Mit ihm wird ein Spaltenobjekt als Pointer auf Daten in einer anderen Objekttabelle festgelegt. Die REF-Spalte selbst enthält die Daten nicht.

Zum Beispiel:

           CREATE TYPE  dept_type  AS OBJECT

                        (deptname     VARCHAR2(24),

                         deptnumber   NUMBER);

           CREATE TABLE  dept_table OF dept_type;

           CREATE TABLE  emp

                         (empname    VARCHAR2(50),

                          empnumber  NUMBER,

                          empdept    REF  dept_type);

In der relationalen Tabelle mit der Bezeichnung emp ist die Spalte empdept eine REF-Spalte. Sie zeigt auf ein Objekt vom Typ dept_type.

Typen und Tabellen

Wenn eine REF-Spalte definiert wird, identifiziert sie einen Objekttyp - und keine bestimmte Objekttabelle. Eine Datenbank kann mehr als eine Objekttabelle basierend auf einer einzigen Objekttypdefinition enthalten. Somit identifiziert die REF-Spaltendefinition selbst die Zieltabelle(n) nicht.

Pointer-Auflösung

Wenn die Tabelle, die die REF-Spalte enthält, initialisiert wird, sind die Werte in der REF-Spalte Pointer auf Zeilen in der bzw. den spezifischen Tabellen, die die gewünschten Daten enthalten. Wenn Benutzer später zur Laufzeit die REF-Spalte betrachten, sehen sie die Daten, auf die gezeigt wird (und nicht die Pointer).

So zeigt Developer REFs beim Entwurf an

Wenn Sie beim Entwurf eine Tabelle sehen möchten, die eine REF-Spalte enthält, wird die REF-Spalte in der erweiterten Form angezeigt. Das heißt, die Attribute in dem Objekttyp, auf die die REF-Originaldefinition zeigt, werden dargestellt.

Im obigen Beispiel würde die REF-Spalte empdept so dargestellt, als enthielte sie zwei Komponenten oder Attributspalten: deptname und deptnumber. Dies waren die beiden Attribute in dem Objekttyp (dept_type), die in der REF-Definition identifiziert wurden.

Genau wie bei einem regulären Spaltenobjekt können Sie eine oder alle referenzierten Komponenten/Spaltenattribute auswählen, damit diese zu Datenobjekten in der Anwendung werden. Im Gegensatz zu den regulären Spaltenobjekten können Sie jedoch auch den REF-Namen selbst auswählen, damit dieser zu einem manipulierbaren Objekt innerhalb der Anwendung wird. Das heißt, Sie können die REF-Spalte in Ihrer PL/SQL-Codierung verwenden. Standardmäßig wird die REF-Spalte zu einem Bestandteil der Null-Leinwand.

So können Sie REF-Daten für die Benutzer anzeigen

Als Anwendungsentwickler können Sie wählen, wie der Laufzeitbenutzer die referenzierten Daten (die aufgelöste REF) sieht:

•	Daten, die in dem Datenblock angezeigt werden, in dem die REF-Spalte vorhanden ist (wird auch gelegentlich als Verweismethode bezeichnet)

•	Daten, die in dem Datenblock angezeigt werden, auf den die REF-Spalte zeigt (Master-Detail-Methode)

Die erste Auswahl (bei der die Daten als Bestandteil des Datenblocks angezeigt werden, in dem die REF vorhanden ist) ist die einfachste. Sie wählen die gewünschten REF-Komponenten als Objekte in Ihrem Datenblock. Zur Laufzeit lösen Developer und Oracle8 die Referenzen auf und setzen die referenzierten Daten in die Anzeigeobjekte. Der Benutzer muß nur einen Block betrachten.

Bei der anderen Auswahl (bei der die Daten in dem Datenblock angezeigt werden, auf den gezeigt wird) ist  die Einrichtung eines Master-Detail-Links erforderlich. Dies entspricht weitestgehend der Einrichtung eines Master-Detail-Links für zwei Blöcke, die eine Primär-/Fremdschlüssel-Beziehung haben. In diesem Fall erstellt die REF den Link zwischen den beiden Blöcken. Der Benutzer sieht beide Blöcke, sieht die REF-Daten jedoch nur in dem referenzierten Block.

Diese Master-/Detail-Beziehung kann mit dem Datenblock-Assistenten von Form Builder eingerichtet werden.


Symbole für Oracle8-Objekte

Der Objektnavigator und die Assistenten geben mit Hilfe von Symbolen an, auf welchen Typ von Oracle8-Daten Sie zugreifen. Diese Symbole und deren Bedeutung sind:

             Normale Tabelle

             Objekttyp

             Objektansicht

             Objekttabelle

             Verschachteltes Objekt

             Verschachtelte Tabelle

             Referenziertes Objekt

             Variierendes Array

             Methode

             Unbekannter Typ

             Server-seitiger Stack-Modus

             Server-seitiger Programmblock

             Datei

             Datentyp Date

             Datentyp Number

             Datentyp Character

             Datentyp Raw

           Datentyp BLOB

             Datentyp BFILE

             Datentyp CLOB

             Rowid

             MLSLABEL


Skalierbarkeit und Leistung bei Oracle8

Durch die Unterstützung des Oracle8-Servers kommen Sie in den Genuß einer Reihe von Verbesserungen bei Skalierbarkeit und Leistung. In den meisten Fällen erhalten Sie diese Vorteile automatisch.

Sie können z.B. auf folgende Funktionen von Oracle8 zugreifen:

•	Größere Größen. Die Datenbank selbst, die Anzahl von gleichzeitigen Benutzern und die Grenzwerte für die Tabellenspalten (jetzt bis zu 1000 Spalten) wurden alle erhöht.

•	Tabellen- und Indexpartitionierung

•	Client-seitiges Speichern von Objekten im Cache

Sie können jetzt außerdem verschiedene andere Oracle8-Funktionen nutzen, durch die die Leistung verbessert wird:

•	Prefetch. Forms benutzt diese Oracle8-Funktion (zusammen mit dem vorhandenen Mechanismus Array-Größe), um Round-Trips und Speichernutzung durch die Datenbank zu reduzieren. Dies geschieht automatisch, ohne Eingreifen des Benutzers.

•	Returning-Klausel. Forms benutzt diese neue DML-Funktion bei Einfügen- und Aktualisierenvorgängen. Durch die Returning-Klausel ist eine zweite Datenabfrage (um server-seitige Trigger-Änderungen an den Daten zu ermitteln) nicht mehr erforderlich, so daß die Verarbeitung beschleunigt wird. Benutzer können dies mit dem Attribut DML-Rückgabewert steuern.

•	INSTEAD-OF-Trigger für das Aktualisieren von Ansichten. Dieser server-seitige Trigger bietet einen Mechanismus für das Aktualisieren von relationalen und Objektansichten, die sonst nicht aktualisiert werden könnten.


Unterstützung von PL/SQL 8

  Verwandte Themen

Dieses Release verwendet PL/SQL 8 auf dem Client und dem Server. Client-seitige Programmblöcke können momentan keine objektbezogene Funktionalität von Oracle8 unterstützen. Gespeicherte Programmblöcke können jedoch alle neuen PL/SQL 8-Funktionen verwenden.

In Anhang A im Handbuch PL/SQL User's Guide and Reference Release 8  werden die neuen PL/SQL 8-Funktionen beschrieben. Dieses Handbuch kann online aufgerufen werden. Wählen Sie Hilfe -> Handbücher, und gehen Sie zu den Referenzhandbüchern unter Online-Handbücher.


Kompatibilität mit früheren PL/SQL-Releases

Bei clientseitigen Programmblöcken, die in PL/SQL 1 oder PL/SQL 2 geschrieben wurden, müssen Sie den Code auf die neue Ebene konvertieren. Das PL/SQL 1-Konvertierungsdienstprogramm automatisiert diesen Umstellungsprozeß.

Gespeicherte Programmblöcke, die mit früheren Releases erstellt wurden, können mit der PL/SQL 8-Engine auf dem Datenbankserver verwendet werden, werden jedoch möglicherweise mit Fehlern kompiliert. Diese Fehler entstehen in einigen Fällen, in denen die Syntax zwischen PL/SQL 8 und PL/SLQ 2 nicht kompatibel ist. Mit einem Kompatibilitäts-Flag in PL/SQL 8 können Sie einen PL/SQL 2-Kompatibilitätsmodus wählen, so daß die PL/SQL 8-Engine derartige Fehler nicht ausgibt, wenn PL/SQL 2-Code im Server kompiliert wird. In Kapitel 6 im Handbuch Oracle8 Server Migration werden die Fälle beschrieben, die von diesem Kompatibilitäts-Flag abgedeckt werden.


Noch nicht unterstützte Oracle8-Funktionen

  Verwandte Themen

In diesem Release werden noch nicht alle Oracle8-Funktionen unterstützt. Die wichtigsten nicht unterstützten Funktionen sind:

•	Collection-Typen (verschachtelte Tabellen und variierende Arrays bzw. Varrays)

•	Gespeicherte Prozeduren, die Objektwerte zurückgeben

•	Skalare Datentypen NCHAR und NVARCHAR2.

Auch  wenndieses Release PL/SQL 8 unterstützt, sollten Sie sich dessen bewußt sein, daß das client-seitige PL/SQL 8 noch nicht alle Funktionen im Oracle8-Server voll unterstützt. (Die server-seitige PL/SQL 8-Unterstützung ist vollständig.)


Unterstützung von Oracle8-Objekten im Objektnavigator

Die Oracle8-Funktionalität im Objektnavigator ermöglicht den Zugriff auf Objekt-Datentypen, so daß Sie einfacher mit Oracle8-Daten programmieren können. Mit der neuen Unterstützung von Oracle8-Objekten können Sie benutzerdefinierte Datentypen in einem hierarchischen Format anzeigen. Außerdem können Sie Tabellen, Ansichten, Spalten, Trigger, Attribute und Methoden suchen und anzeigen, die mit den benutzerdefinierten Datentypen verknüpft sind.

Der Knoten Datenbankobjekte enthält die Schemata und deren Objekte, auf die Sie in der gerade angemeldeten Datenbank zugreifen können. Wenn Sie bei einer Oracle8-Datenbank angemeldet sind, zeigt der Objektnavigator verfügbare benutzerdefinierte Datentypen (mit deren Attributen und Methoden) im Knoten Typen innerhalb jedes Schemas an. Mit den benutzerdefinierten Datentypen verknüpfte Tabellen, Ansichten, Spalten und Trigger werden in den Knoten Tabellen und Ansichten angezeigt.

Mit der Oracle8-Funktionalität im Objektnavigator können Sie insbesondere folgende Elemente anzeigen und suchen:

•	Objekttabellen und Spaltenobjekte im Knoten Tabellen

•	Objektansichten im Knoten Ansichten

•	Instead-Of-Trigger für Ansichten im Knoten Ansichten

•	Objekttypen, Tabellentypen und variierende Array-Typen im Knoten Typen

•	Attribute und Methoden von Objekttypen im Knoten Typen

Mit Symbolen können Sie relationale Objekte und Oracle8-Objekte im Objektnavigator unterscheiden. So werden z.B. unterschiedliche Symbole zur Darstellung von normalen, relationalen und Objekt-Tabellen sowie zur Darstellung von normalen und Objektansichten verwendet.

Weitere Informationen über benutzerdefinierte Oracle8-Datentypen finden Sie in der Oracle8-Dokumentation.

So erfahren Sie mehr über

Knoten Objekttyp

Knoten Tabellentyp

Knoten Variierender Array-Typ

Knoten Spaltenobjekt

Knoten Objekttabelle

Knoten Objektansicht

Alles einblenden

Symbole für Oracle8-Objekte


Knoten Objekttyp

  Beispiel	  Verwandte Themen

Objekttypen werden in dem Knoten Typen im Objektnavigator angezeigt. Ein Objekttyp-Knoten stellt einen Typ dar, der von der SQL-Anweisung CREATE TYPE AS OBJECT erstellt wurde. Der Objekttyp wird im Objektnavigator wie folgt dargestellt:

Objekttyp-Name ( Objekttyp [ * ] & -Rumpf [ * ] )

Die Beschriftung Objekttyp wird angezeigt, wenn eine Anweisung CREATE TYPE AS OBJECT an die Datenbank ausgegeben wurde. Ein Stern (*) wird angezeigt, wenn die Typspezifikation ungültig oder der Typ unvollständig ist. Ein unvollständiger Typ ist ein Platzhalter zur rekursiven Definition von Typen.

Die Beschriftung Objektrumpf wird angezeigt, wenn ein Typrumpf mit der Anweisung CREATE TYPE BODY erstellt wurde. Ein Stern (*) wird angezeigt, wenn der Typrumpf ungültig ist.

Wenn sowohl Objekttyp als auch Objektrumpf erfolgreich erstellt wurden, wird die Beschriftung in Form von Objekttyp & -rumpf angezeigt.

Bei Objekttyp-Knoten handelt es sich um zusammengesetzte Knoten. Sie verfügen über zwei Unterknoten, Attribute und Methoden. Ein Objekttyp-Knoten kann nur eingeblendet werden, wenn eine gültige Typspezifikation vorhanden ist.

Die Attribute eines Objekttyps werden als Knoten unter dem Unterknoten Attribute dargestellt.

Die Methoden eines Objekttyps werden als Knoten unter dem Unterknoten Methoden dargestellt. Die Methoden werden als Prozeduren und Funktionen angezeigt. Die Methodenbeschriftungen werden im Objektnavigator wie folgt dargestellt:

Methodenname (Prozedur)

und

Methodenname (Funktion)

Wenn eine Zuordnungs- oder Sortiermethode für einen Objekttyp angegeben wird, wird die Methodenbeschriftung wie folgt angezeigt:

Methodenname (Zuordnen-Funktion)

oder

Methodenname (Sortieren-Funktion)

Hinweis:  Die Argumentliste einer Methode wird nicht angezeigt.


Beispiel für den Knoten Objekttyp

  Verwandte Themen 	   Alle Beispiele

Die folgende SQL-Anweisung erstellt den Objekttyp emp_typ.

CREATE TYPE emp_typ AS OBJECT
  (ename VARCHAR2(30), esalary NUMBER(5,2),
  MEMBER PROCEDURE raise(amount NUMBER),
  MEMBER FUNCTION get_salary RETURN NUMBER,
  MAP MEMBER FUNCTION compare RETURN NUMBER);

Der Unterbaum für emp_typ ist:

- Types
  - EMP_TYP (Object Type)
    - Attributes
        ENAME (CHAR)
        ESALARY (NUMBER)
    - Methods
        COMPARE (Map Function)
        GET_SALARY (Function)
        RAISE (Procedure)


Knoten Tabellentyp

  Beispiel	  Verwandte Themen

Tabellentypen werden in dem Knoten Typen im Objektnavigator angezeigt. Ein Tabellentyp-Knoten stellt einen Typ dar, der von der SQL-Anweisung CREATE TYPE AS TABLE erstellt wurde. Der Tabellentyp wird im Objektnavigator wie folgt dargestellt:

Tabellentyp-Name (TABLE OF Tabellenuntertyp-Name)

Der Tabellentyp-Knoten kann nicht eingeblendet werden, wenn es sich bei dem Untertyp um einen vordefinierten Typ handelt. Wenn der Untertyp ein Objekttyp oder ein REF-Objekt ist, werden die Attribute des Objekts als Unterknoten angezeigt.


Beispiel für den Knoten Tabellentyp

  Verwandte Themen 	   Alle Beispiele

Die folgenden SQL-Anweisungen erstellen den Objekttyp emp_typ und den Tabellentyp emp_tbl.

CREATE TYPE emp_typ AS OBJECT
  (ename VARCHAR2(30), esalary NUMBER(5,2),
  MEMBER PROCEDURE raise(amount NUMBER),
  MEMBER FUNCTION get_salary RETURN NUMBER,
  MAP MEMBER FUNCTION compare RETURN NUMBER);

CREATE TYPE emp_tbl AS TABLE OF emp_typ;

Der Unterbaum für emp_tbl ist:

- Types
  - EMP_TBL (TABLE OF EMP_TYP)
      ENAME (CHAR)
      ESALARY (NUMBER)
  + EMP_TYP


Knoten Variierender Array-Typ

  Beispiel	  Verwandte Themen

Variierende Array-Typen werden in dem Knoten Typen im Objektnavigator angezeigt. Ein Knoten Variierender Array-Typ stellt einen Typ dar, der von der SQL-Anweisung CREATE TYPE AS VARYING ARRAY erstellt wurde. Der Variierende Array-Typ wird im Objektnavigator wie folgt dargestellt:

Variierender-Array-Typ-Name (VARRAY (Größe) Variierender-Array-Untertyp-Name)

Der Knoten Variierender Array-Typ kann nicht eingeblendet werden, wenn es sich bei dem Untertyp um einen vordefinierten Typ handelt. Wenn der Untertyp ein Objekttyp oder ein REF-Objekt ist, werden die Attribute des Objekts als Unterknoten angezeigt.


Beispiel für den Knoten Variierender Array-Typ

  Verwandte Themen 	   Alle Beispiele

Die folgenden SQL-Anweisungen erstellen den Objekttyp emp_typ und den Variierenden Array-Typ emp_ary.

CREATE TYPE emp_typ AS OBJECT
  (ename VARCHAR2(30), esalary NUMBER(5,2),
  MEMBER PROCEDURE raise(amount NUMBER),
  MEMBER FUNCTION get_salary RETURN NUMBER,
  MAP MEMBER FUNCTION compare RETURN NUMBER);

CREATE TYPE emp_ary AS VARRAY(7) OF emp_typ;

Der Unterbaum für emp_ary ist:

- Types
  - EMP_ARY (VARRAY(7) OF EMP_TYP)
      ENAME (CHAR)
      ESALARY (NUMBER)
  + EMP_TYP


Knoten Spaltenobjekt

  Beispiele	  Verwandte Themen

Spaltenobjekte werden als Knoten in dem Knoten Spalten angezeigt. Jedes Objekt ist mit einem Namen und dem Typ in Klammern beschriftet. Bei Spaltenobjekt-Knoten handelt es sich um zusammengesetzte Knoten, wobei die Attribute des Typs als Unterknoten angezeigt werden.

Es gibt vier Untertypen von Spaltenobjekten - verschachtelter Objekttyp, Tabellentyp, Variierender Array-Typ und REF-Objekttyp. Spaltenobjekte sind im Objektnavigator wie folgt beschriftet:

Spaltenname (verschachtelter_Objekttyp)

Spaltenname (Tabellentyp-Name:TABLE OF Tabellenuntertyp-Name)

Spaltenname (Variierender_Array-Typ-Name: VARRAY(Größe) OF Variierender_Array-Untertyp-Name)

Spaltenname (REF Referenz-Typ-Name)


Beispiele für den Knoten Spaltenobjekt

  Verwandte Themen 	   Alle Beispiele

In dem folgenden Beispiel ist die Spalte emp_col von Tabelle emp_tab ein verschachteltes Objekt vom Typ emp_typ.

CREATE TYPE emp_typ AS OBJECT (ename VARCHAR2(30), esalary NUMBER(5,2));
CREATE TABLE emp_tab (emp_col emp_typ, dept VARCHAR2(2));

Der Unterbaum für emp_tab ist:

- Tables
  - EMP
    + Trigger
    - Columns
      - EMP_COL (EMP_TYP)
         ENAME (CHAR)
         ESALARY (NUMBER)
        DEPT (CHAR)

Im nächsten Beispiel ist die Spalte emps von Tabelle dept_tab eine verschachtelte Tabelle mit dem Untertyp emp_tab. Die verschachtelte Tabelle enthält Zeilen vom Typ emp_typ.

CREATE TYPE emp_typ AS OBJECT (ename (CHAR(30), esalary NUMBER);
CREATE TYPE emp_tab AS TABLE OF emp_typ;
CREATE TABLE dept (dname CHAR(20), emps emp_tab);

Der Unterbaum für dept_tab is:

- Tables
  - DEPT
    + Triggers
    - Columns
        DNAME (CHAR)
      - EMPS (EMP_TAB: TABLE OF EMP_TYP)
         ENAME (CHAR)
         ESALARY (NUMBER)

Im folgenden Beispiel ist die Spalte emps von Tabelle dept_tab_ary ein Variierendes Array mit dem Untertyp emp_ary. Das Variierende Array enthält Zeilen vom Typ emp_typ.

CREATE TYPE emp_typ AS OBJECT (ename (CHAR(30), esalary NUMBER);
CREATE TYPE emp_ary AS VARRAY (30) OF emp_typ;
CREATE TABLE dept (dname CHAR(20), emps emp_ary);

Der Unterbaum für dept_tab_ary ist:

- Tables
  - DEPT
    + Triggers
    - Columns
        DNAME (CHAR)
      - EMPS (EMP_ARY: VARRAY(30) OF EMP_TYP)
         ENAME (CHAR)
         ESALARY (NUMBER)

Im nächsten Beispiel ist die Spalte manager von Tabelle dept_ref ein referenziertes Objekt vom Typ emp_typ.

CREATE TYPE emp_typ AS OBJECT (ename (CHAR(30), esalary NUMBER);
CREATE TABLE dept (dname CHAR(30), manager REF emp_typ);

Der Unterbaum für dept_ref ist:

- Tables
  - DEPT
    + Triggers
    - Columns
        DNAME (CHAR)
      - MANAGER (REF EMP_TYP)
         ENAME (CHAR)
         ESALARY (NUMBER)


Knoten Objekttabelle

  Beispiel	  Verwandte Themen

Objekttabellen werden in dem Knoten Tabellen im Objektnavigator angezeigt. Ein Objekttabellen-Knoten stellt eine Tabelle dar, die mit der SQL-Anweisung CREATE TABLE OF erstellt wurde. Objekttabellen-Knoten sind im Objektnavigator wie folgt beschriftet:

Objekttabellen-Name (Objekttyp-Name)

Jeder Objekttabellen-Knoten hat zwei Unterknoten, Trigger und Spalten. Der Unterknoten Trigger enthält alle mit der Objekttabelle verknüpften Trigger. Diese Trigger werden genau wie Trigger angezeigt, die mit normalen, relationalen Tabellen verknüpft sind. Der Knoten Spalten enthält alle relationalen Spalten und Spaltenobjekte, die mit einer bestimmten Objekttabelle verknüpft sind. Jede Spalte ist mit einem Namen und dem Typ in Klammern beschriftet.


Beispiel für den Knoten Objekttabelle

  Verwandte Themen 	   Alle Beispiele

Die folgenden SQL-Anweisungen erstellen den Objekttyp person_typ und die Objekttabelle person_tab.

CREATE TYPE person_typ AS OBJECT
  (name VARCHAR2(30), address VARCHAR2(60));

CREATE TABLE person_tab OF person_typ;

Der Unterbaum für person_tab ist:

- Tables
  - PERSON_TAB (PERSON_TYP)
    + Triggers
    - Columns
        NAME (CHAR)
        ADDRESS (CHAR)


Knoten Objektansicht

  Beispiel	  Verwandte Themen

Objektansichten werden in dem Knoten Ansichten im Objektnavigator angezeigt. Ein Objektansicht-Knoten stellt eine Ansicht dar, die mit der Klausel OF object_type erstellt wurde. Objektansicht-Knoten sind mit einem Namen und dem Typ in Klammern beschriftet. Die Attribute des Objekts werden nicht angezeigt.

Jeder Objektansicht-Knoten hat zwei Unterknoten, Trigger und Spalten. Der Unterknoten Trigger enthält alle Trigger, die mit der Objektansicht verknüpft sind, einschließlich Instead Of-Triggern. Wenn ein Instead Of-Trigger mit einer Ansicht verknüpft ist, wird die Beschriftung folgendermaßen angezeigt:

Trigger-Name (INSTEAD OF Trigger-Anweisungen)


Beispiel für den Knoten Objektansicht

  Verwandte Themen 	   Alle Beispiele

Die folgenden SQL-Anweisungen erstellen eine Objektansicht.

CREATE TYPE emp_typ AS OBJECT (ename CHAR(30)), dname CHAR(20));
CREATE TABLE emp (ename CHAR(30), dname CHAR(20));
CREATE VIEW dev_emp OF emp_typ AS
  SELECT ename, dname FROM emp WHERE dname='DEVELOPMENT';

Der Unterbaum für die Objektansicht dev_emps ist:

- Views
  - DEV_EMP (EMP_TYP)
    + Triggers
    + Columns


Alle Oracle8-Objektknoten einblenden

  Verwandte Themen

Der Vorgang Alles einblenden im Objektnavigator blendet die Oracle8-Datentyp- und Attributknoten nicht rekursiv ein.

Wenn z.B. ein Attribut mit der Bezeichnung manager und dem Typ emp_typ als untergeordnetes Attribut von einem anderen Typ emp_typ angezeigt wird, wird das Attribut manager mit Alles einblenden nicht eingeblendet.


Mit dem Layout-Assistenten Objekte anordnen

So ordnen Sie Objekte mit dem Layout-Assistenten an:

1	Klicken Sie im Objektnavigator auf den gewünschten Block.

2	Wählen Sie Werkzeuge [image] Layout-Assistent, um einen Assistenten aufzurufen, der Sie durch die einzelnen Schritte beim Anordnen von Objekten führt.


Objekte auswählen

So wählen Sie ein Objekt aus:

1	Klicken Sie im Layouteditor auf das Werkzeug Auswählen in der Werkzeugpalette.

2	Klicken Sie auf das gewünschte Objekt.


Objekte in einem Bereich auswählen

So wählen Sie Objekte in einem Bereich aus:

1	Klicken Sie im Layouteditor auf das Werkzeug Auswählen in der Werkzeugpalette.

2	Klicken und ziehen Sie, bis das Auswahlrechteck die auszuwählenden Objekte umschließt.


Objekte zur aktuellen Auswahl hinzufügen

So fügen Sie ein Objekt zur aktuellen Auswahl hinzu:

1	Klicken Sie im Layouteditor auf das Werkzeug Auswählen in der Werkzeugpalette.

2	Drücken Sie die Strg-Taste, während Sie auf das gewünschte Objekt klicken.


Alle Objekte auswählen

So wählen Sie alle Objekte im Arbeitsbereich aus:

1	Wählen Sie Bearbeiten [image] Alles markieren.


Auswahl von Objekten aufheben

So heben Sie die Auswahl eines Objekts auf:

1	1 Klicken Sie an einer beliebigen Stelle außerhalb der Objektumrandung.

Hinweis: Um die Auswahl eines Objekts in einer Mehrfachauswahl aufzuheben, klicken Sie mit gedrückter Umschalttaste auf das Objekt, um nur die Auswahl dieses Objekts aufzuheben.


Objekte verschieben

  Verwandte Themen

So verschieben Sie ein Objekt:

1	Klicken Sie im Layouteditor auf das Werkzeug Auswählen in der Werkzeugpalette.

2	Klicken und ziehen Sie das Objekt an die gewünschte Stelle.

Hinweis: Wenn Sie mehr als ein Objekt gleichzeitig verschieben möchten, wählen Sie die Objekte aus. Danach klicken und ziehen Sie ein beliebiges ausgewähltes Objekt, um alle Objekte in der Auswahl zu verschieben.


Auswahlen inkrementell verschieben

  Verwandte Themen

So verschieben Sie eine Auswahl inkrementell:

1	Wählen Sie das gewünschte Objekt im Layouteditor aus.

2	Drücken Sie die [Nach-oben], [Nach-unten], [Nach-links] oder [Nach-rechts] Tasten.

Hinweis:  Wenn der Rastersprung ausgeschaltet ist, verschieben die Pfeiltasten die aktuelle Auswahl um jeweils ein Pixel in der angegebenen Richtung. Wenn der Rastersprung eingeschaltet ist, verschieben die Pfeiltasten die aktuelle Auswahl um die Entfernung eines Einrastpunktes. Um die Inkremente von Rasterpunkten im Dialogfeld Formatzeileneinstellungen zu definieren, wählen Sie Format [image] Layout-Optionen [image] Formatzeile.


Verschiebenvorgänge beschränken

  Verwandte Themen

So beschränken Sie einen Verschiebenvorgang:

1	Drücken Sie im Layouteditor [Beschränken] (bei den meisten Plattformen die Umschalttaste), während Sie das ausgewählte Objekt ziehen.


Objekte skalieren

  Verwandte Themen

So skalieren Sie ein Objekt:

1	Klicken Sie im Layouteditor auf das gewünschte Objekt.

2	Skalieren Sie das Objekt, indem Sie eine der Auswahlmarkierungen ziehen.


Objekten dieselbe Größe zuweisen

So weisen Sie Objekten dieselbe Größe zu:

1	Wählen Sie die gewünschten Objekte im Layouteditor aus.

2	Wählen Sie Anordnen [image] Objekte skalieren.

3	In dem daraufhin angezeigten Dialogfeld geben Sie an, ob die ausgewählten Objekte dieselbe Höhe und/oder Breite wie das kleinste ausgewählte Objekt, das größte ausgewählte Objekt oder einen Mittelwert aller ausgewählten Objekte haben soll. Wenn Sie einen bestimmten Breiten- oder Höhenwert eingeben möchten, wählen Sie Benutzerdefiniert.

4	Klicken Sie auf OK, um die Skalierungsparameter zu akzeptieren.


Objekte ausrichten

So richten Sie ein Objekt aus:

1	Klicken Sie im Layouteditor auf das gewünschte Objekt.

2	Wählen Sie Anordnen [image] Objekte ausrichten.

3	In dem daraufhin angezeigten Dialogfeld geben Sie an, wie die ausgewählten Objekte ausgerichtet werden sollen. Ein einzelnes Objekt kann an dem Raster ausgerichtet werden. Mehrere ausgewählte Objekte können an dem Raster oder aneinander ausgerichtet werden. Sie können horizontale und/oder vertikale Ausrichtungsoptionen angeben.

4	Klicken Sie auf OK, um die Einstellungen zu akzeptieren.

Hinweis:  Nachdem Sie Ausrichtungseinstellungen im Dialogfeld Objekte ausrichten definiert haben, können Sie diese Einstellungen für jede Auswahl von zwei oder mehr Objekten anwenden. Hierzu wählen Sie zuerst die auszurichtenden Objekte aus, und wählen Sie dann Anordnen [image] Ausrichtung wiederholen.


Objekte zentrieren

So zentrieren Sie ein Objekt:

Wenn die Menüoption Ansicht [image] Leinwand anzeigen aktiviert ist, ist die Leinwand selbst ein auswählbares Objekt. Sie können Objekte wie folgt in der Mitte einer Leinwand zentrieren:

1	Klicken Sie im Layouteditor auf das gewünschte Objekt.

2	Wählen Sie Anordnen [image] Objekte ausrichten.

3	Geben Sie sowohl bei der Horizontalen als auch der Vertikalen Ausrichtung Zentriert an.


Über das Gruppieren von Objekten

  Verwandte Themen

Sie können mehrere Objekte auswählen, um eine Gruppe zu erstellen. Die Gruppe kann dann als einzelnes Objekt manipuliert werden. Möglicherweise möchten Sie verschiedene Objekte gruppieren und die Gruppe dann als eine Einheit verschieben, ohne die relativen Positionen der Objekte in der Gruppe zu ändern.


Objekte gruppieren

  Verwandte Themen

So gruppieren Sie Objekte:

1	Wählen Sie die gewünschten Objekte im Layouteditor aus.

2	Wählen Sie Anordnen [image] Gruppieren.

Die neue Gruppe wird automatisch ausgewählt, und Sie können sie wie ein einzelnes Objekt bearbeiten. Um eine Gruppe aufzulösen, wählen Sie sie zuerst aus und wählen dann Anordnen [image] Gruppe auflösen.

Sie können eine Gruppe oder einzelne Objekte in einer Gruppe auswählen und manipulieren. Um z.B. eine Gruppe zu verschieben, setzen Sie das Werkzeug Auswählen auf ein beliebiges Objekt in der Gruppe. Danach klicken und ziehen Sie. Um eine Gruppe zu skalieren, benutzen Sie das Werkzeug Auswählen, um eine der Auswahlmarkierungen der Gruppe zu ziehen.


Objekte neu gruppieren

So gruppieren Sie ein Objekt neu:

1	Klicken Sie im Layouteditor auf das gewünschte Objekt.

2	Wählen Sie Anordnen [image] Gruppenvorgänge [image] Zur Gruppe hinzufügen.

Die neue Gruppe wird automatisch ausgewählt, und Sie können sie wie ein einzelnes Objekt bearbeiten. Um eine Gruppe aufzulösen, wählen Sie sie zuerst aus und wählen dann Anordnen [image] Gruppe auflösen.


Über überlappende Objekte

  Verwandte Themen

Objekte können so auf einer Leinwand plaziert werden, daß sich die rechteckigen Umrandungen überlagern. Ein Objekt vor einem anderen Objekt kann das Objekt, das es überlagert, teilweise oder vollständig verdecken.

Form Builder verwaltet die Stapelfolge von Objekten und Grafikobjekten unterschiedlich: Wenn sich ein Objekt und ein Grafikobjekt überlagern, wird das Objekt vor das Grafikobjekt gesetzt, unabhängig von der Erstellungsreihenfolge. Wenn sich zwei Grafikobjekte überlagern, wird das Objekt, das als letztes erstellt wurde, vor das andere Objekt gesetzt.


Reihenfolge von sich überlagernden Objekten festlegen

  Verwandte Themen

So legen Sie die Reihenfolge von sich überlagernden Grafikobjekten fest:

1	Klicken Sie im Layouteditor auf das Objekt, dessen Reihenfolge geändert werden soll.

2	Klicken Sie auf die Schaltfläche In den Vordergrund oder In den Hintergrund in der Symbolleiste.


Über Rahmen

  Verwandte Themen

Ein Rahmen ist ein Grafikobjekt, das auf einer Leinwand angezeigt wird. Mit Rahmen ordnen Sie die Objekte innerhalb eines Blocks an.

Wenn Sie Objekte innerhalb eines Rahmens anordnen, können Sie z.B. eine Anordnung nach Formstil erstellen, den Abstand zwischen Objekten und Prompts definieren, Ränder und Offsets angeben usw.

Rahmen bieten die folgenden Vorteile:

•	Ein Rahmen ist ein Objekt mit Attributen.

Wenn Sie einen Rahmen mit einem Block verknüpfen, werden die Objekte in dem Block automatisch innerhalb des Rahmens angeordnet.

•	Jeder Rahmen kann mit einem Block verknüpft werden.

•	Rahmen können in Unterklassen eingeordnet oder in der Objektbibliothek aufgenommen werden, um visuelle Standards durchzusetzen.

Sie können Objekte innerhalb der Objektbibliothek speichern, um projekt- oder firmenübergreifend Standards durchzusetzen. Sie können eine Reihe von "Vorlagen" für verschiedene Blocktypen erstellen (z.B. einzelner Datensatz, mehrere Datensätze, Master-Detail usw.). Um einen Rahmen wieder zu benutzen, der in der Objektbibliothek gespeichert ist, ziehen Sie einfach den gewünschten Rahmen in eine Leinwand, und rufen Sie den Layout-Assistenten auf, um einen bestehenden Block innerhalb des Rahmens anzuordnen.

•	Rahmen können im Objektnavigator, Layouteditor und der Attributpalette manipuliert werden.

•	Rahmen können sichtbar oder unsichtbar sein.

Wenn ein Rahmen sichtbar ist, wird er als abgerundetes Rechteck angezeigt. Der Inhalt eines Rahmens wird innerhalb der Rahmenumrandung angezeigt.

•	Der Layout-Assistent benutzt Rahmen zur Anordnung von Objekten.


Über das Anordnen von Objekten innerhalb von Rahmen

  Verwandte Themen

Das Anordnen von Objekten innerhalb einer Form ist ein iterativer Vorgang.

Ursprünglich benutzen Sie den Layout-Assistenten, um die Objekte in einem Block anzuordnen. Später optimieren Sie die Anordnung, indem Sie einzelne Rahmenattribute festlegen. Abschließend können Sie noch manuelle Layoutänderungen innerhalb des Layouteditors vornehmen.

Verwendungshinweise

•	Wenn Sie angeben, daß ein Block innerhalb eines Rahmens angeordnet werden soll, ordnet Form Builder jedes Objekt innerhalb des Rahmens an, mit Ausnahme der Objekte, die auf der Null-Leinwand angezeigt werden.

•	Standardmäßig wird das Layout eines Rahmens automatisch jedesmal aktualisiert, wenn der Rahmen positioniert, skaliert oder ein Rahmenattribut geändert wird.

Wenn Sie einen Rahmen skalieren oder neu positionieren, ordnet Form Builder die Objekte innerhalb eines Rahmens automatisch an der neuen Stelle oder basierend auf der neuen Größe an. Bedenken Sie, daß ein Rahmen kein Container-Objekt ist, sondern den Bereich definiert, in dem das Layout erfolgt.

•	Wenn Sie die Objekte innerhalb eines Rahmens manuell anordnen möchten, indem Sie Objekte im Layouteditor ziehen, sollten Sie das Rahmenattribut Layout aktualisieren auf Gesperrt einstellen. Manuelle Änderungen (Ziehen) sollten erst vorgenommen werden, wenn das Layout relativ stabil ist, da diese Arten von Änderungen verlorengehen können.

•	Wenn Sie einen Rahmen skalieren möchten, müssen Sie das Rahmenattribut Shrinkwrap auf Nein einstellen. Standardmäßig entfernt Form Builder den leeren Platz innerhalb eines Rahmens.

•	Wenn Sie ein Objekt zu einem Block hinzufügen, der schon innerhalb eines Rahmens angeordnet ist, müssen Sie das Layout aktualisieren, um das neue Objekt innerhalb des Rahmens anzuordnen.

•	Wenn Sie ein Objekt (mit dem Layout-Assistenten) aus einem Rahmen entfernen, setzt Form Builder das Objektattribut Leinwand auf Null.

Einschränkungen

•	Ein Rahmen kann nur innerhalb eines Blocks verknüpft werden. Ein Rahmen kann nur die Objekte aus dem Block enthalten, mit denen er verknüpft ist. Ein Rahmen kann keine Objekte aus mehreren Blöcken enthalten.


Rahmen erstellen

  Nächster Schritt	    Verwandte Themen

So erstellen Sie einen Rahmen:

Wählen Sie Werkzeuge [image] Layout-Assistent, um einen Assistenten aufzurufen, der Sie durch die einzelnen Schritte beim Erstellen eines Rahmens führt.

Oder

1	Klicken Sie im Layouteditor auf die Schaltfläche Rahmen in der Werkzeugpalette.

2	Klicken und ziehen Sie, um einen Rahmen zu erstellen.


Objekte innerhalb eines Rahmens anordnen

  Verwandte Themen

So ordnen Sie Objekte innerhalb eines Rahmens an:

Klicken Sie im Objektnavigator auf den gewünschten Block, und wählen Sie Werkzeuge [image] Layout-Assistent, um einen Assistenten aufzurufen, der Sie durch die einzelnen Schritte beim Anordnen von Objekten innerhalb eines Rahmens führt.

Oder

1	Doppelklicken Sie im Layouteditor auf das Rahmenobjekt, um die Attributpalette anzuzeigen.

2	Stellen Sie unter dem Knoten Layoutrahmen das Attribut Layout-Datenblock auf den Namen des gewünschten Blocks ein. Dieser Block wird innerhalb des Rahmens angeordnet.


Tabellarische Anordnung innerhalb eines Rahmens erstellen

 Bitte zeigen	    Verwandte Themen

So erstellen Sie eine formartige Anordnung innerhalb eines Rahmens:

Wählen Sie Werkzeuge [image] Layout-Assistent, um einen Assistenten anzuzeigen, der Sie durch den Vorgang führt.

Oder

1	Doppelklicken Sie im Layouteditor auf den gewünschten Rahmen, um die Attributpalette anzuzeigen.

2	Stellen Sie unter dem Knoten Layoutrahmen das Attribut Layoutstil auf Tabellarisch.


Formartige Anordnung innerhalb eines Rahmens erstellen

 Bitte zeigen	    Verwandte Themen

So erstellen Sie eine formartige Anordnung innerhalb eines Rahmens:

Wählen Sie Werkzeuge [image] Layout-Assistent, um einen Assistenten anzuzeigen, der Sie durch den Vorgang führt.

Oder

1	Doppelklicken Sie im Layouteditor auf den gewünschten Rahmen, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Layoutrahmen stellen Sie das Attribut Layoutstil auf Form ein.


Objekte zu einem Rahmen hinzufügen

  Verwandte Themen

So fügen Sie Objekte zu einem Rahmen hinzu:

Wählen Sie Werkzeuge [image] Layout-Assistent, um einen Assistenten anzuzeigen, der Sie durch die einzelnen Schritte beim Hinzufügen von Objekten zu einem Rahmen führt.

Oder

1	Erstellen Sie das gewünschte Objekt im Layouteditor.

2	Geben Sie an, zu welchem Block das neue Objekt gehört, indem Sie einen Block aus dem Feld Block auswählen. Das Feld Block befindet sich im oberen Bereich des Layouteditors. Klicken Sie auf das Dropdown-Listenfeld, um eine Liste aller Blöcke anzuzeigen.

3	Doppelklicken Sie auf das Objekt, um die Attributpalette anzuzeigen.

4	Unter dem Knoten Physikalisch stellen Sie das Attribut Leinwand auf die gewünschte Leinwand ein.

Tip:  Die angegebene Leinwand muß der Leinwand entsprechen, auf der die anderen Objekte des Blocks angezeigt werden. Wenn die Objekte von BLOCK1 z.B. auf LEINWAND1 angezeigt werden, müssen Sie das Attribut Leinwand für das neu erstellte Objekt auf LEINWAND1 einstellen.

5	Klicken Sie im Layouteditor auf den Rahmen.

6	Klicken Sie auf die Schaltfläche Layout aktualisieren in der Symbolleiste.


Objekte aus einem Rahmen entfernen

  Verwandte Themen

So entfernen Sie ein Objekt aus einem Rahmen:

Wählen Sie Werkzeuge [image] Layout-Assistent, um einen Assistenten anzuzeigen, der Sie Schritt für Schritt durch das Entfernen von Objekten aus einem Rahmen führt.

Oder

1	Doppelklicken Sie im Layouteditor auf das gewünschte Objekt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Physikalisch stellen Sie das Attribut Leinwand auf Null ein.


Rahmenlayout aktualisieren

  Verwandte Themen

So aktualisieren Sie ein Rahmenlayout:

1	Klicken Sie im Layouteditor auf den Rahmen.

2	Klicken Sie auf die Schaltfläche Layout aktualisieren in der Symbolleiste.


Rahmen verschieben

  Verwandte Themen

So verschieben Sie einen Rahmen:

Im Layouteditor klicken und ziehen Sie den Rahmen an die gewünschte Stelle.

Hinweis:  Wenn Sie einen Rahmen verschieben, erstellt Form Builder das Rahmenlayout automatisch an der neuen Stelle neu, wenn für das Rahmenattribut Layout aktualisieren Automatisch (Standardwert) angegeben wurde.


Rahmen skalieren

  Verwandte Themen

So skalieren Sie einen Rahmen:

1	Doppelklicken Sie im Layouteditor auf den gewünschten Rahmen, um die Attributpalette anzuzeigen.

2	Stellen Sie das Attribut Shrinkwrap unter Layou-Rahmen auf Nein ein.

3	Skalieren Sie den Rahmen, indem Sie eine der Auswahlmarkierungen ziehen.

Wenn Sie einen Rahmen skalieren, erstellt Form Builder automatisch das Rahmenlayout basierend auf der neuen Größe neu, wenn für das Rahmenattribut Layout aktualisieren Automatisch (Standardwert) angegeben wurde.


Rahmen löschen

  Verwandte Themen

So löschen Sie einen Rahmen:

1	Wählen Sie den Rahmen im Layouteditor aus.

2	Wählen Sie Bearbeiten [image] Löschen.


Objekte innerhalb eines Rahmens verschieben

  Verwandte Themen

So verschieben Sie ein Objekt innerhalb eines Rahmens:

1	Im Layouteditor klicken und ziehen Sie das Objekt an die gewünschte Stelle.

Tip:  Wenn Sie das Layout innerhalb eines Rahmens optimieren, indem Sie ein Objekt an eine andere Stelle ziehen, sollten Sie das Rahmenattribut Layout aktualisieren auf Gesperrt einstellen, sonst sind Ihre Änderungen verloren, wenn das Rahmenlayout das nächste Mal aktualisiert wird.


Objekte innerhalb eines Rahmens skalieren

So skalieren Sie ein Objekt innerhalb eines Rahmens:

Wählen Sie Werkzeuge [image] Layout-Assistent, um einen Assistenten anzuzeigen, der Sie durch die einzelnen Schritte beim Skalieren eines Objekts innerhalb eines Rahmens führt.

Oder

1	Klicken Sie im Layouteditor auf das gewünschte Objekt.

2	Skalieren Sie das Objekt, indem Sie eine der Auswahlmarkierungen ziehen.


Alle Objekte innerhalb eines Rahmens ausrichten

 Bitte zeigen	    Verwandte Themen

So richten Sie Objekte innerhalb eines Rahmens aus:

1	Doppelklicken Sie im Layouteditor auf den gewünschten Rahmen, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Layoutrahmen:

•	Stellen Sie das Attribut Layoutstil auf Form ein.

•	Stellen Sie das Attribut Rahmenausrichtung auf Anfang, Ende, Zentriert, Ausfüllen oder Spalte ein.


Einzelne Objekte innerhalb eines Rahmens ausrichten

  Verwandte Themen

So richten Sie ein einzelnes Objekt innerhalb eines Rahmens aus:

1	Doppelklicken Sie im Layouteditor auf den gewünschten Rahmen, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Layoutrahmen stellen Sie das Attribut Ausrichtung einzelnes Objekt auf Anfang, Ende oder Zentriert ein.


Abstand zwischen Rahmen und Objekten definieren

 Bitte zeigen

So definieren Sie den Abstand zwischen dem Rahmen und den Objekten:

1	Doppelklicken Sie im Layouteditor auf den gewünschten Rahmen, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Layoutrahmen:

•	Stellen Sie das Attribut Horizontaler Rand auf den gewünschten Abstand ein.

•	Stellen Sie das Attribut Vertikaler Rand auf den gewünschten Abstand ein.


Horizontaler und Vertikaler Rand


Abstand zwischen den Objekten innerhalb eines Rahmens definieren

 Bitte zeigen

So definieren Sie den Abstand zwischen den Objekten innerhalb eines Rahmens:

1	Doppelklicken Sie im Layouteditor auf den gewünschten Rahmen, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Layoutrahmen:

•	Stellen Sie das Attribut Horizontaler Objektversatz auf den gewünschten Abstand ein.

•	Stellen Sie das Attribut Vertikaler Objektversatz auf den gewünschten Abstand ein.


Horizontaler und Vertikaler Objektversatz


Prompts innerhalb eines Rahmens ausrichten

 Bitte zeigen

So richten Sie einen Prompt an den Objekten aus:

1	Doppelklicken Sie im Layouteditor auf den gewünschten Rahmen, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Layoutrahmen:

•	Stellen Sie das Attribut Beginn Prompt-Ausrichtung auf Anfang, Ende oder Zentriert ein.

Oder

•	Stellen Sie das Attribut Ausrichtung oberer Prompt auf Anfang, Ende oder Zentriert ein.


Beginn Prompt-Ausrichtung und Ausrichtung oberer Prompt

Start Prompt-Ausrichtung

Ausrichtung oberer Prompt


Prompt-Versatz innerhalb eines Rahmens definieren

 Bitte zeigen

So definieren Sie den Abstand zwischen einem Prompt und den zugehörigen Objekten:

1	Doppelklicken Sie im Layouteditor auf den gewünschten Rahmen, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Layoutrahmen:

•	Stellen Sie das Attribut Beginn Prompt-Versatz auf den gewünschten Abstand ein, wenn Prompts dem Anfang der zugehörigen Objekte zugeordnet werden sollen.

Oder

•	Stellen Sie das Attribut Versatz oberer Prompt auf den gewünschten Abstand ein, wenn Prompts dem oberen Rand der zugehörigen Objekte zugeordnet werden sollen.


Beginn Prompt-Versatz und Versatz oberer Prompt

Start Prompt-Versatz oberer Prompt

  Versatz oberer Prompt


Über Prompts

  Verwandte Themen

Ein Prompt ist die Beschriftung, die mit einem dazugehörigen Objekt angezeigt wird. Mit jedem Oberflächensteuerelement kann ein Prompt verknüpft sein. Ein Prompt ist die Textbeschriftung, die neben einem Objekt angezeigt wird. So kann z.B. neben einem Kontrollkästchen eine Beschriftung bzw. ein Prompt stehen.

Prompts unterscheiden sich von Grafiktext (z.B. Textfeldobjekten) insofern, als Prompts direkt mit einem Objekt verknüpft sind. Wenn Sie z.B. ein Objekt in den Layouteditor verschieben, verschiebt Form Builder das Objekt und den zugehörigen Prompt gemeinsam an die neue Stelle.

Form Builder verfügt über verschiedene Attribute, mit denen Sie Prompts anordnen und verwalten sowie das visuelle Erscheinungsbild von Prompts angeben können.


Prompts mit einem Objekt verknüpfen

  Verwandte Themen

So verknüpfen Sie einen Prompt mit einem Objekt:

1	Wählen Sie im Layouteditor genau ein Objekt und ein Textobjekt.

2	Klicken Sie auf die Schaltfläche Prompt verknüpfen in der Symbolleiste des Layouteditors.

Zeigen Sie unter dem Knoten Prompt in der Attributpalette die verknüpfte Textbeschriftung im Attributfeld Prompt an.


Prompts erstellen

  Verwandte Themen

So erstellen Sie einen Prompt:

1	Doppelklicken Sie im Layouteditor auf das gewünschte Objekt, um die Attributpalette anzuzeigen.

2	Geben Sie unter dem Knoten Prompt die gewünschte Textbeschriftung in das Attributfeld Prompt ein.


Anzeigestil eines Prompts definieren

  Verwandte Themen

So definieren Sie den Anzeigestil eines Prompts:

1	Doppelklicken Sie im Layouteditor auf den gewünschten Prompt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Prompt stellen Sie das Attribut Prompt-Anzeigestil auf Verborgen, Erster Datensatz oder Alle Datensätze ein.


Prompts justieren

  Verwandte Themen

So justieren Sie einen Prompt:

1	Doppelklicken Sie im Layouteditor auf den gewünschten Prompt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Prompt geben Sie für das Attribut Prompt-Justierung Links, Rechts, Zentriert, Anfang oder Ende an.


Rand Prompt-Zuordnung definieren

  Verwandte Themen

So definieren Sie die Rand Prompt-Zuordnung:

1	Doppelklicken Sie im Layouteditor auf den gewünschten Prompt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Prompt stellen Sie das Attribut Rand Prompt-Zuordnung auf Anfang, Ende, Oberer Rand oder Unterer Rand ein.


Prompts an den zugehörigen Objekten ausrichten

  Verwandte Themen

So definieren Sie die Ausrichtung eines Prompts an den zugehörigen Objekten:

1	Doppelklicken Sie im Layouteditor auf den gewünschten Prompt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Prompt stellen Sie das Attribut Prompt-Ausrichtung auf Anfang, Ende oder Zentriert ein.


Abstand zwischen einem Prompt und den zugehörigen Objekten definieren

  Verwandte Themen

So definieren Sie den Abstand zwischen einem Prompt und den zugehörigen Objekten:

1	Doppelklicken Sie im Layouteditor auf den gewünschten Prompt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Prompt stellen Sie das Attribut Versatz Prompt-Zuordnung auf den gewünschten Abstand ein.


Versatz der Prompt-Ausrichtung definieren

  Verwandte Themen

So definieren Sie den Versatz einer Prompt-Ausrichtung:

1	Doppelklicken Sie im Layouteditor auf den gewünschten Prompt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Prompt stellen Sie das Attribut Versatz Prompt-Ausrichtung auf den gewünschten Abstand ein.


Über das Formatieren von Objekten im Layouteditor

Wenn Sie die Schriftart-, Farb- und Musterattribute von Objekten im Layouteditor einstellen, aktualisiert Form Builder die entsprechenden Objektattribute in der Attributpalette.

Da Objekte in dem Stil dargestellt werden, der der Laufzeit-Plattform gerecht wird, sind einige Objektattribute vordefiniert und können im Layouteditor nicht eingestellt werden:

•	Sie können Objekte nicht transparent machen. Die Option Kein Füllmuster in der Füllfarbenpalette ist nur für Grafikobjekte und Text gültig. Wenn ein Textobjekt oder ein Anzeigeobjekt nur Text anzeigen soll, stellen Sie das Attribut Umriß auf Keine und geben für die Füllfarbe des Objekts dieselbe Farbe wie für die Leinwand an.

•	Sie können keine Linienbreite für Objekte angeben. Der Menübefehl Format [image] Linienbreite ist nur für Grafikobjekte/Text gültig. Stellen Sie das Attribut Umriß so ein, daß die Objektränder bestimmt werden.

•	Sie können die Linienfarbe für Objekte nicht angeben. Die Farbpalette für Linienfarben ist nur für Grafikobjekte/Text gültig.

•	Sie können die Umrißeinstellung für Objekte nicht angeben. Der Menübefehl Format [image] Umriß ist nur für Grafikobjekte/Text gültig.

Wenn Sie ein Objekt im Layouteditor formatieren, setzt Form Builder das Attribut Visuelle Attributgruppe auf Benutzerdefiniert. Wenn ein Objekt visuelle Attribute von einem benannten visuellen Attribut übernimmt, unterbricht die Einstellung der Attribute im Layouteditor die Verknüpfung mit dem benannten visuellen Attribut. Wenn ein Objekt visuelle Attribute von einer Attributklasse erbt, setzt die Einstellung dieser Attribute im Layouteditor die vererbten Einstellungen außer Kraft.


Über Farbpaletten

Die Standardfarbauswahlen im Layouteditor und der Attributpalette werden von der aktuellen Farbpalette abgeleitet. Farbpaletten können editiert, im Dateisystem oder der Datenbank gespeichert und nach Bedarf importiert werden.

Die Standard-Farbpalette hat folgende Eigenschaften:

1	Der obere linke Bereich der Palette enthält 16 gebräuchliche Farben mit den folgenden Namen: Schwarz, Weiß, Grün, Dunkelgrün, Grau, Dunkelgrau, Zyan, Dunkelzyan, Rot, Dunkelrot, Blau, Dunkelblau, Gelb, Dunkelgelb, Magenta, Dunkelmagenta.

2	Der untere linke Bereich der Palette enthält acht leere Zellen, in die Sie die benutzerdefinierten Farben setzen können.

3	Die nächsten vier Spalten bestehen aus variierenden Graustufen. Jede Farbe hat die Bezeichnung 'grau<Wert>' entsprechend dem prozentualen Grauanteil. Die Werte reichen von 4 bis 96 in Schritten von jeweils 4. Gültige Farbnamen umfassen z.B. 'grau96', 'grau92' und 'grau4'.

4	Die restliche Farbpalette enthält Farben, die mit variierenden Prozentsätzen von Rot-, Grün- und Blau-Komponenten (RGB) angegeben werden:

•	Die prozentualen Werte für jede rote oder grüne Komponente sind 0, 25, 50, 75, 88 oder 100

•	Die prozentualen Werte für jede Blau-Komponente sind: 0, 50, 75, 88 oder 100.

•	Jede Farbe hat die Bezeichnung 'r<Wert>g<Wert>b<Wert>' entsprechend den RGB-Werten (so hat z.B. eine Farbe, die aus 100% Rot, 88% Blau und 0% Grün besteht, den Namen 'r100b88g0').

•	Mit Ausnahme der oben beschriebenen Farbzellen besteht die Palette aus fünf Hauptbereichen, die jeweils 36 Farben in einer 6x6-Anordnung enthalten. Diese Farben werden mit folgenden Regeln definiert:

•	Die Rotwerte werden mit den Farben von links nach rechts innerhalb jedes Hauptbereichs erhöht.

•	Die Grünwerte werden mit den Farben von oben nach unten innerhalb jedes Hauptbereichs erhöht.

•	Die Blauwerte werden in den Hauptbereichen von links nach rechts erhöht, wobei alle Farben in einem einzelnen Bereich denselben Blauwert benutzen.


Farbattribute von Objekten einstellen

  Verwandte Themen

So stellen Sie die Farbattribute von Objekten ein:

1	Klicken Sie im Layouteditor auf das gewünschte Objekt.

2	Klicken Sie in der Symbolleiste des Layouteditors auf [image] (das Werkzeug für die Füllfarbe), [image] (das Werkzeug für die Linienfarbe) oder [image] (das Werkzeug für die Textfarbe), um das Dialogfeld Farbe anzuzeigen.

3	Klicken Sie auf eine Farbe aus der Palette.

4	Klicken Sie auf OK.

Hinweis:  Bei Microsoft Windows wird die Farbe von Schaltflächentext immer von den Einstellungen im Dialogfeld Farben der Systemsteuerung bestimmt und kann nicht im Layouteditor angegeben werden.


Musterattribute eines Objekts festlegen

  Verwandte Themen

So legen Sie die Musterattribute eines Objekts fest:

1	Doppelklicken Sie im Layouteditor auf das gewünschte Objekt, um die Attributpalette anzuzeigen.

2	Doppelklicken Sie unter dem Knoten Farbe auf das Attribut Füllmuster, um die Füllmusterpalette anzuzeigen.

3	Wählen Sie ein Muster aus der Palette.


Schriftartattribute eines Objekts festlegen

  Verwandte Themen

So legen Sie die Schriftartattribute eines Objekts fest:

1	Doppelklicken Sie im Objektnavigator auf das Symbol des gewünschten Objektes, um die Attributpalette anzuzeigen.

2	Stellen Sie die folgenden Attribute unter dem Knoten Schriftart ein:

•	Schriftartname

•	Schriftgrad

•	Schriftstärke

•	Schriftstil

•	Zeichenabstand


Über hierarchische Bäume

  Verwandte Themen

In dem hierarchischen Baum werden Daten in der Form eines Standardnavigators angezeigt, der mit dem in Forms Developer benutzten Navigator verglichen werden kann.

Sie können einen hierarchischen Baum mit Werten auffüllen, die in einer Datensatzgruppe oder Abfragetext enthalten sind. Zur Laufzeit können Sie Elemente in einem hierarchischen Baum programmgesteuert hinzufügen, entfernen, ändern oder auswerten.

Die gleichzeitig angezeigte Datenmenge hängt davon ab, ob die individuellen Datenknoten eingeblendet sind, sei es über vordefinierte Prozeduren oder einen Benutzer, der auf einen Knoten klickt. Die Datenmenge wird anfänglich in Form Builder angegeben und kann zur Laufzeit geändert oder vollständig ersetzt werden.


Hierarchische Bäume erstellen

 Beispiele 	  Verwandte Themen

So erstellen Sie einen hierarchischen Baum:

1	Klicken Sie im Objektnavigator auf das Plussymbol [image] neben dem gewünschten Blockknoten.

Form Builder blendet den Knoten Datenblöcke ein und zeigt die zugehörigen Unterknoten an.

2	Klicken Sie auf den Knoten Objekte.

3	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

Unter dem Knoten Objekte wird ein neues Objekt mit einem Standardnamen eingefügt.

4	Doppelklicken Sie auf das Objektsymbol neben dem neuen Objekt, um die Attributpalette anzuzeigen.

5	Stellen Sie das Attribut Objekttyp unter dem Knoten Allgemein auf Hierarchischer Baum ein.

6	Unter dem Knoten Physikalisch geben Sie bei dem Attribut Leinwand den Namen der gewünschten Leinwand an.

Hinweis: Um ein Objekt zur Laufzeit anzuzeigen, müssen Sie es einer Leinwand zuweisen.


Daten zu einem hierarchischen Baum hinzufügen

 Beispiele 	  Verwandte Themen

Sie können wie folgt Daten zu einer Baumansicht hinzufügen:

•	Sie können einen Baum mit Werten, die in einer Datensatzgruppe oder Abfrage enthalten sind, mit der vordefinierten Prozedur Populate_Tree auffüllen.

•	Sie können Daten zu einem Baum unter einem bestimmten Knoten mit der vordefinierten Prozedur Add_Tree_Data hinzufügen.

•	Sie können Elemente in einem Baum zur Laufzeit mit vordefinierten Prozeduren ändern.

•	Sie können Knoten und die Datenelemente unter dem Knoten hinzufügen oder löschen.

Hinweis:  Alle vordefinierten Prozeduren sind in dem vordefinierten Paket FTREE gespeichert.


Knoten zu einem hierarchischen Baum hinzufügen

 Beispiele 	  Verwandte Themen

Sie können einen Knoten auf einmal zu einem hierarchischen Baum hinzufügen. Sie können einen Baum aber auch mit Werten auffüllen, die in einer Datensatzgruppe oder Abfrage enthalten sind.

Sie können Werte zu einem Baum mit den folgenden vordefinierten Prozeduren hinzufügen:

•	Add_Tree_Node

•	Delete_Tree_Node

•	Find_Tree_Node

•	Get_Tree_Node_Parent

•	Get_Tree_Node_Property

•	Get_Tree_Property

•	Get_Tree_Selection

•	Set_Tree_Node_Property

•	Set_Tree _Property

•	Set_Tree_Selection

Hinweis:  Wenn Sie die Pseudowurzel des Baums referenzieren müssen, benutzen Sie die Konstante FTREE.ROOT_NODE. Alle vordefinierten Prozeduren sind in dem vordefinierten Paket FTREE gespeichert.


Ausgangswerte für einen hierarchischen Baum angeben

  Verwandte Themen

So geben Sie einen Ausgangswert für einen hierarchischen Baum an:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem gewünschten hierarchischen Baumobjekt, um die Attributpalette anzuzeigen.

2	Geben Sie unter dem Knoten Funktional die Datensatzgruppe oder den Abfragetext an, der die Ausgangswerte enthält.

Hinweis:  Dies sind Indikatoren der Ausgangswerte, es werden jedoch nur Werte angezeigt, wenn der Baum mit der vordefinierten Prozedur Populate_Tree aufgefüllt wird.


 Benutztes Datenformat für das Auffüllen eines hierarchischen Baums

  Verwandte Themen

Die Spalten in den Datensatzgruppen oder Abfragen, mit denen ein hierarchischer Baum aufgefüllt wird, sind:

•	Ausgangsstatus

•	Tiefe des Knotenbaums

•	Beschriftung für den Knoten

•	Symbol für den Knoten

•	Daten

Die Daten in der folgenden Tabelle würden z.B. den folgenden hierarchischen Baum erzeugen:

  +  - Car

  |

  -  - Airplane

     | - Boeing

     | - Boeing

Ausgangs-status	Tiefe	Beschriftung	Symbol	Daten
-1	1	'Car'	''	'car'
0	2	'Honda'	''	'civic'
1	1	'Airplane'	''	'plane'
0	2	'Boeing'	''	'747'
0	2	'Boeing'	''	'757'


Hierarchische Bäume zur Laufzeit bearbeiten

  Verwandte Themen

Form Builder verfügt über Trigger, mit denen Sie auf Ereignisse reagieren können, die eintreten, wenn der Endbenutzer zur Laufzeit mit dem hierarchischen Baum kommuniziert.

•	When-Tree-Node-Activated

•	When-Tree-Node-Expanded

•	When-Tree-Node-Selected

Zur Laufzeit können Sie Elemente in einem hierarchischen Baum programmgesteuert hinzufügen, entfernen, ändern oder auswerten, indem Sie die folgenden vordefinierten Prozeduren verwenden:

•	Add_Tree_Data

•	Add_Tree_Node

•	Delete_Tree_Node

•	Find_Tree_Node

•	Get_Tree_Node_Parent

•	Get_Tree_Selection

•	Populate_Group From_Tree

•	Populate_Tree

•	Set_Tree_Selection

Hinweis:  Alle vordefinierten Prozeduren sind in dem vordefinierten Paket FTREE gespeichert.


Attribute von hierarchischen Baumobjekten festlegen

  Verwandte Themen

So legen Sie die Attribute von hierarchischen Baumobjekten in Form Builder fest:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem gewünschten hierarchischen Baum.

2	Wählen Sie das einzustellende Attribut in der Attributpalette aus.

3	Setzen Sie das ausgewählte Attribut auf die gewünschte Einstellung.

Sie können Attribute zur Laufzeit mit den folgenden vordefinierten Prozeduren festlegen:

•	Get_Tree_Node_Property

•	Get_Tree_Property

•	Set_Tree_Node_Property

•	Set_Tree _Property

Hinweis:  Alle vordefinierten Prozeduren sind in dem vordefinierten Paket FTREE gespeichert.


Hierarchische Bäume auffüllen

  Verwandte Themen

Sie können einen hierarchischen Baum mit Werten in einer Datensatzgruppe oder in Abfragetext auffüllen, indem Sie die folgende vordefinierte Prozedur verwenden:

•	Populate_Tree

•	Add_Tree_Data

Hinweis:  Alle vordefinierten Prozeduren sind in dem vordefinierten Paket FTREE gespeichert.


Beispiel für das Erstellen eines hierarchischen Baums

-- Hierarchical Tree Example

--

-- The first action will typically be to populate the

-- hierarchical tree (htree) with data.

DECLARE

   htree   ITEM;

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Sets the record group and causes the data to display.

   Ftree.Set_Tree_Property(htree, Ftree.RECORD_GROUP, 'record_group5');

END;

-- Tree Node Expansion Example

--

-- This code will expand all nodes in a tree.

DECLARE

   htree   ITEM;

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Find the root node of the tree.

   node  := Ftree.Find_Tree_Node(htree, '');

   -- Loop through all nodes and expand each one if it is collapsed.

   WHILE NOT Ftree.ID_NULL(node) LOOP

      state := Ftree.Get_Tree_Node_Property(htree, node, Ftree.NODE_STATE);

      IF state = Ftree.COLLAPSED_NODE THEN

         Ftree.Set_Tree_Node_Property(htree, node, Ftree.NODE_STATE, Ftree.EXPANDED_NODE);

      END IF;

      node := Ftree.Find_Tree_Node(htree, '', search_root => node);

   END LOOP;

END;

-- Delete Tree Node Example

--

-- This code will delete all tree nodes marked as selected.  See the

-- Ftree.Set_Tree_Selection built-in for a definition of "selected".

DECLARE

   htree         ITEM;

   num_selected  NUMBER;

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Find the number of nodes marked as selected.

   num_selected := Ftree.Get_Tree_Property(htree, Ftree.SELECTION_COUNT);

   -- Loop through nodes and delete them. Since nodes are internally

   -- re-numbered when one is deleted, be sure to loop in reverse

   -- order from last to first.

   FOR j IN num_selected..1 LOOP

      Ftree.Delete_Tree_Node(htree, Ftree.Get_Tree_Selection(htree, j));

   END LOOP;

END;


Über ActiveX und OLE

  Verwandte Themen

Das Verknüpfen und Einbetten von Objekten (Object Linking and Embedding - OLE) wurde eingeführt, um die Zusammenarbeit mit separaten Anwendungen zu unterstützen, die ein einzelnes zusammengesetztes Dokument darstellen. Zusammengesetzte Dokumente verknüpfen oder betten ein bzw. mehrere Dokumente ein, wobei das Problem der Integration unterschiedlicher Objekttypen in einem einzigen Dokument gelöst wird. So kann ein zusammengesetztes Dokument z.B. ein Formmodul-Dokument sein, das Objekte aus anderen Anwendungen enthält, wie z.B. Textverarbeitungsdokumente oder Tabellenkalkulationsdokumente.

Durch Erweitern der Lösung durch zusammengesetzte Dokumente im Hinblick auf einen größeren Geltungsbereich von gemeinsam genutzten Diensten wurde das Component Object Model (COM) als OLE2 eingeführt. OLE2 bietet Automation, eine COM-orientierte Technologie, die eine standardmäßige programmgesteuerte Oberfläche umfaßt. Microsoft Excel kann z.B. sowohl als Toolbox als auch als Endbenutzeranwendung benutzt werden. OLE ist ein Synonym für die meisten auf COM basierenden Technologien geworden.

Heute ersetzt ActiveX OLE als Begriff bei COM-basierten Technologien. Noch einmal, OLE bezieht sich auf das Verknüpfen und Einbetten von Objekten in zusammengesetzten Dokumenten.

ActiveX-Steuerelemente, die ursprünglich als OLE-Steuerelemente oder OCX bezeichnet wurden, nutzen sowohl die ActiveX- als auch die OLE-Technologien. Ein ActiveX-Steuerelement ist eine eigenständige Softwarekomponente, die eine Benutzeroberfläche darstellt und Ereignisse an Clients sendet, alles entsprechend den von COM definierten Standards. Es ist eine OLE-Serveranwendung, die vollständig in einer Anwendung mit OLE-Client-Möglichkeiten eingebettet ist.


Über ActiveX und OLE in Form Builder

  Verwandte Themen

Anstelle einer monolithischen Anwendung, die Ihnen nahezu jede Funktion bietet, die Sie wünschen, erhalten Sie durch zusammengesetzte Objekte und gute Integration eine schlanke benutzerdefinierte Anwendung, die all Ihren Anforderungen gerecht wird.

Textverarbeitungsdokumente, Tabellenkalkulationsdokumente, Steuerelemente für Schaltflächen und Video-Clips sind Beispiele für zusammengesetzte Objekte, mit denen die Möglichkeiten Ihrer Form verbessert werden können. Anstatt eine schon vorhandene Funktionalität erneut zu erstellen, können Sie auf diese Möglichkeiten zugreifen, indem Sie die Unterstützung von ActiveX und OLE in Form Builder nutzen. Zusammengesetzte Objekte bieten besondere Dienste, die in Form Builder nicht verfügbar sind. Mit ihnen wird die Client-Anwendung erweitert, wobei eine zusätzliche eigenständige Funktionalität sichergestellt wird.


Unterstützung von ActiveX in Form Builder

  Verwandte Themen

Form Builder unterstützt ActiveX-Steuerelemente. ActiveX-Steuerelemente sind wiederverwendbare Komponenten, die in Ihrer Form Builder-Anwendung eingebettet werden können. Form Builder fungiert als Container für ActiveX-Steuerelemente.

Der Objekttyp ActiveX-Steuerelement erstellt einen Container für Ihr ActiveX-Steuerelement. Ein ActiveX-Steuerelement ist keine separate Anwendung, sondern ein Server, der in einen ActiveX-Container gesteckt wird.

Es wird empfohlen, daß Sie ActiveX-Steuerelemente in Blöcken verwenden, für die das Attribut Einzelner Datensatz auf Ja eingestellt ist. Das Attribut Einzelner Datensatz ist nicht für mehrere Datensatzblöcke anwendbar. Es wird empfohlen, daß Sie das Attribut Einzelner Datensatz auf Ja einstellen, weil einzelne Datensätze sofort initialisiert werden, wenn Forms Runtime hochgefahren wird. Bei mehreren Datensätzen wird jeder Datensatz erst initialisiert, wenn Sie zu dem Datensatz navigieren. Ohne Initialisierung ist das ActiveX-Steuerelementobjekt leer, so daß der Eindruck entsteht, daß kein ActiveX-Steuerelement verfügbar ist.

Jedes ActiveX-Steuerelement verfügt über eine Reihe von Attributen, Methoden und Ereignissen. Mit Attributen werden die physikalischen und logischen Attribute von ActiveX-Steuerelementen definiert, mit Methoden werden die Aktionen definiert, die das ActiveX-Steuerelement ausführen kann, während Ereignisse Änderungen im Status des ActiveX-Steuerelements angeben. Eine Client-Anwendung verarbeitet ein ActiveX-Steuerelement, indem Werte in die Attribute geschrieben bzw. aus den Attributen abgerufen werden, wobei Methoden benutzt werden, mit denen Attribute eingelesen und eingestellt werden und entsprechend auf Ereignisse reagiert wird.

ActiveX-Steuerelemente stellen eine besondere Art von dynamischer Bibliothek dar. Eine einzelne ActiveX-Datei, die mit der Dateinamenerweiterung .OCX verteilt wird, kann mehr als eine Klasse mit ActiveX-Objekten enthalten.

ActiveX-Steuerelemente sind keine Variante von VBX. VBX-Steuerelemente können ausschließlich unter 16-Bit-Anwendungen eingesetzt werden. Sie sind in einer 32-Bit-Umgebung nicht funktionsfähig. ActiveX-Steuerelemente bieten Ihnen eine den VBX-Steuerelementen entsprechende Funktionalität in einer 32-Bit-Umgebung.

Die Entwicklung eigener ActiveX-Steuerelemente oder OLE-Server ist relativ aufwendig. Deshalb wird empfohlen, daß Sie von Drittherstellern entwickelte ActiveX-Steuerelemente und OLE-Server verwenden. Die Dokumentation für die ActiveX-Steuerelemente und OLE-Server enthält Informationen über Attribute, Methoden und Ereignisse.


Über das Hinzufügen von ActiveX-Steuerelementen zu Forms

  Verwandte Themen

ActiveX-Steuerelemente sollten nur zu einzelnen Datensatzblöcken hinzugefügt werden. Form Builder initialisiert das ActiveX-Steuerelement automatisch, wenn es in einem Block mit einem einzelnen Datensatz steht. Wenn Sie ein ActiveX-Steuerelement zu einem Block mit mehreren Datensätzen hinzufügen, wird nur die erste Instanz des ActiveX-Steuerelements beim Hochfahren initialisiert. Alle anderen Instanzen bleiben uninitialisiert, bis Sie zu dieser Instanz navigieren. Nicht initialisierte Steuerelemente werden leer angezeigt, so daß der Eindruck entsteht, daß kein Steuerelement für diese Objektinstanzen vorhanden ist. Um einen Block mit einem einzelnen Datensatz zu erstellen, stellen Sie das Attribut Anzahl angezeigter Datensätze auf 1 oder das Attribut Anzahl angezeigter Objekte (für den ActiveX-Steuerelement-Container) auf 1 ein.

Mit ActiveX-Steuerelementen werden Oberflächen exportiert, die Methoden und Ereignisse bereitstellen. Form Builder importiert die Methoden und Ereignisse in PL/SQL, so daß Sie in der ursprünglichen Form Builder-Umgebung mit ActiveX-Steuerelementen zusammenarbeiten können.

Form Builder zeigt die importierten Methoden unter dem Knoten Programmblöcke im Objektnavigator an. Sie können aus Ihrer Anwendung auf diese OLE-Methoden zugreifen, indem Sie die vordefinierten Prozeduren STANDARD und OLE2 verwenden.


ActiveX-Steuerelemente zu Ihrer Anwendung hinzufügen

  Verwandte Themen

So fügen Sie ein ActiveX-Steuerelement zu Ihrer Anwendung hinzu:

1	Erstellen Sie einen Container für das ActiveX-Steuerelement.

2	Fügen Sie ein ActiveX-Steuerelement ein.

3	Importieren Sie die gewünschten Methoden und Ereignisse für das ActiveX-Steuerelement.

4	Schreiben Sie den entsprechenden PL/SQL-Code für das Zusammenwirken mit dem ActiveX-Steuerelement.

•	Zugriffsroutinen für Attribute aufrufen.

•	Methoden aufrufen.

•	Auf Ereignisse reagieren.


Container für ActiveX-Steuerelemente erstellen

  Nächster Schritt	  Verwandte Themen

So erstellen Sie einen Container für ActiveX-Steuerelemente:

1	Klicken Sie im Objektnavigator auf das Plussymbol [image] neben dem gewünschten Blockknoten.

Form Builder blendet den Knoten Datenblöcke ein und zeigt die zugehörigen Unterknoten an.

2	Klicken Sie auf den Knoten Objekte.

3	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

4	Doppelklicken Sie auf das Objektsymbol neben dem neu erstellten Objekt, um die Attributpalette anzuzeigen.

5	Stellen Sie unter dem Knoten Allgemein das Attribut Objekttyp auf ActiveX-Steuerelement ein.

6	Unter dem Knoten Physikalisch geben Sie bei dem Attribut Leinwand den Namen der gewünschten Leinwand an.

Hinweis: Um ein Objekt zur Laufzeit anzuzeigen, müssen Sie es einer Leinwand zuweisen.


ActiveX-Steuerelemente in eine Form einfügen

  Nächster Schritt	  Verwandte Themen

So fügen Sie ein ActiveX-Steuerelement in eine Form ein:

1	Wählen Sie den Container für das ActiveX-Steuerelement im Layouteditor aus.

2	Wählen Sie Objekt einfügen aus dem Popup-Menü (wird bei Windows mit der rechten Maustaste aufgerufen), um das Dialogfeld Objekt einfügen anzuzeigen.

3	Klicken Sie auf das gewünschte Steuerelement, und klicken Sie dann auf OK.

4	Doppelklicken Sie im Layouteditor auf den Container für das ActiveX-Steuerelement, um die Attributpalette anzuzeigen.

5	Unter dem Knoten Funktional:

•	Stellen Sie das Attribut OLE-Klasse ein. Jede OLE-Klasse enthält eine Reihe von Steuerelementen.

•	Stellen Sie die gewünschten Attribute für das Steuerelement und den Container ein.


Methoden- und Ereignispakete für ActiveX-Steuerelemente importieren

  Verwandte Themen

So importieren Sie Methoden und Ereignisse für ActiveX-Steuerelemente:

1	Wählen Sie Programm [image] OLE-Importer, um das Dialogfeld OLE-Importer anzuzeigen.

2	Wählen Sie die gewünschte OLE-Klasse, und wählen Sie dann die gewünschten OLE-Methoden und -Ereignisse.

3	Klicken Sie auf OK.


Mit ActiveX-Steuerelementen zusammenarbeiten

  Verwandte Themen

Sie können auf verschiedene Weise mit ActiveX-Steuerelementen zusammenarbeiten:

•	Attribute von ActiveX-Steuerelementen einstellen und einlesen

•	Methoden für ActiveX-Steuerelemente aufrufen

•	Auf Ereignisse von ActiveX-Steuerelementen reagieren


Attribute von ActiveX-Steuerelementen einstellen und einlesen

 Einschränkungen	  Verwandte Themen

Es gibt verschiedene Möglichkeiten, ActiveX-Attributwerte einzustellen und einzulesen:

•	Syntax von Bindevariablen

•	Routinen für den Zugriff auf Attribute (PL/SQL procedures)

•	Attribute aus der Attributpalette steuern


Einschränkungen beim Einstellen und Einlesen von Attributen für ActiveX-Steuerelemente

•	:item('ActXitm').OCX.server_name.property_name wird nicht kompiliert, wenn server_name nicht auf Ihrem Rechner gespeichert ist.

•	Bei anderen Plattformen als Microsoft Windows-Plattformen gibt der Compiler möglicherweise eine Warnmeldung aus, weil die Attributtypen des ActiveX-Steuerelements auf der UNIX-Plattform nicht ermittelt werden können.

•	Die Form wird nicht kompiliert, wenn das ActiveX-Steuerelement unterschiedliche Attributnamen bei verschiedenen Sprachen exportiert.


Attribute von ActiveX-Steuerelementen mit der Syntax von Bindevariablen einstellen

 Beispiele

So stellen Sie Attribute von ActiveX-Steuerelementen mit der Syntax von Bindevariablen ein bzw. lesen sie ein:

Benutzen Sie die Syntax von Bindevariablen, um Attributwerte zuzuweisen oder abzurufen.

Zum Beispiel :item('block_name.item_name').ocx.server_name.property,

wobei 	block_name 	der Name des Datenblocks ist,

item_name 	der Name des ActiveX-Steuerelements,

server_name 	der Name des ActiveX-Servers und

property 	der Name des ActiveX-Attributs, das aufgerufen wird.


Beispiele für das Einstellen von Attributen für ActiveX-Steuerelemente mit der Syntax von Bindevariablen

 Einschränkungen

/* Setting an ActiveX control property using bind variable syntax */

:item('ActXitem').OCX.Spindial.spindialctrl.1.Needleposition:=
:item('ActXitem').OCX.Spindial.spindialctrl.1.Needleposition + 1;

ActXitem ist der Name des Objekts, Spindial.spindialctrl.1 der Name des Servers des ActiveX-Steuerelements und Needleposition der Name des Attributs.

Der folgende Code kann ebenfalls benutzt werden, wenn system.cursor_item ein ActiveX-Steuerelement ist:
:form.cursor_item.OCX.spindial.spindialctrl.1.Needlposition :=
:form.cursor_item.OCX.spindial.spindialctrl.1.Needlposition + 1;


Attribute von ActiveX-Steuerelementen mit Routinen für den Zugriff auf Attribute einstellen

 Beispiele

So stellen Sie Attribute von ActiveX-Steuerelementen mit Routinen für den Aufruf von Attributen ein bzw. lesen sie ein:

Benutzen Sie die Funktionen der Routine für den Aufruf von Attributen, um einen Attributwert einzulesen, während Sie die Prozeduren der Routine für den Aufruf von Attributen für das Einstellen des Attributwertes benutzen.


Beispiele für das Einstellen von Attributen für ActiveX-Steuerelemente mit Routinen für den Zugriff auf Attribute

 Einschränkungen

/* Getting an ActiveX control property using get accessor */

tblname varchar2;
tblname := table_pkg.TableName(:item('Oblk.Oitm').interface);

table_pkg ist der Name des Programmblocks, der aus dem OLE-Importer erstellt wurde. TableName ist der Name der Routine für den Zugriff auf das Attribut. Oblk ist der Name des Blocks und Oitm der Name des Objekts.


ActiveX-Attribute in der Attributpalette einstellen

 Einschränkungen

So stellen Sie Attribute von ActiveX-Steuerelementen in der Attributpalette ein bzw. lesen sie ein:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem Objekt ActiveX-Steuerelement, um die Attributpalette anzuzeigen.

2	Klicken Sie auf das Attribut Steuerelementattribute.

Daraufhin wird das Dialogfeld Steuerelementattribut angezeigt.

3	Stellen Sie die Steuerelementattribute entsprechend ein.

4	Klicken Sie auf OK.


Methoden für ActiveX-Steuerelemente aufrufen

 Beispiele	     Verwandte Themen

Sie können die Methoden für ActiveX-Steuerelemente mit den Programmblöcken aufrufen, die aus dem OLE-Importer generiert werden. Rufen Sie eine der Methoden in einem der Pakete unter dem Knoten Programmblöcke auf.

Hinweis: Einige OLE-Server, wie z.B. Microsoft Excel, benutzen variante Typen. Weil viele der Methoden für diese bestimmten Server die Benutzung von varianten Typen voraussetzen, enthält das vordefinierte Paket STANDARD die Prozeduren und Funktionen für die erforderliche Konvertierung zu und aus varianten Typen. Lebensdauer und Geltungsbereich eines varianten Typs ist auf einen Trigger beschränkt. Der von dem varianten Typ belegte Speicherplatz wird freigegeben, wenn der Trigger beendet ist. Sie können Lebensdauer und Geltungsbereich eines varianten Typs erweitern, indem Sie den Parameter persistent in To_Variant() auf TRUE einstellen und die Ergebnisse einer globalen Variablen zuweisen. Globale Varianten müssen explizit mit Destroy_Variant() zerstört werden. Außerdem sind mit Create_OleObj() erstellte OLE-Objekte im Geltungsbereich global (der Parameter persistent entspricht standardmäßig TRUE). Sie müssen Release_Obj() explizit aufrufen, um globale Objekte freizugeben.


Beispiele für das Aufrufen von Methoden für ActiveX-Steuerelemente

Beispiel 1

/* Getting a cell value from a Spread Table ActiveX control using the GetCellByColRow method provided in the SpreadTable package */

DECLARE
Cur_Row number;
Cur_Col number;
OLEObj OleObj;

BEGIN
Cur_Row:=SpreadTable.CurrentRow(:ITEM('BLK.ITM').interface);
Cur_Col:=SpreadTable.CurrentCol(:ITEM('BLK.ITM').interface);
OLEObj:=SpreadTable.GetCellByColRow(:ITEM('BLK.ITM').interface,
                                        Cur_Col,
                                        Cur_Row);
END;


Auf Ereignisse von ActiveX-Steuerelementen reagieren

 Beispiele	     Verwandte Themen

ActiveX-Steuerelemente generieren Ereignisse. Form Builder speichert diese Ereignisse in dem Ereignispaket, das aus dem OLE-Importer generiert wird. Die Ereignisse werden von dem ActiveX-Steuerelement definiert. Jedes Ereignis ist mit einer PL/SQL-Prozedur verknüpft, die im Ereignispaket definiert ist. Die Prozeduren sind entsprechend einer internen numerischen Darstellung benannt, wie mit dem Steuerelement definiert. Wenn das Steuerelement ein Ereignis auslöst, wird der Code in der Prozedur automatisch ausgeführt. Sie müssen sicherstellen, daß der Code auf das Ereignis reagiert. Geben Sie den Code direkt in das Ereignispaket ein, und kompilieren Sie das Paket.

Alle Ereignisprozeduren sind eingeschränkt, d.h. go_item kann nicht aus dem Prozedurcode aufgerufen werden. Es gibt jedoch Instanzen, bei denen dasselbe Ereignis für mehrere Objekte angewendet werden kann und bei denen ein go_item erforderlich ist - dies ist der nicht eingeschränkte Fall. Im nicht eingeschränkten Fall müssen Sie folgendermaßen vorgehen: Rufen Sie DISPATCH_EVENT(RESTRICTED_ALLOWED) im On-Dispatch-Trigger (Block- oder Formebene) auf. Die Ereignisprozedur muß nicht explizit aufgerufen werden, weil sie automatisch im Anschluß an den On-Dispatch-Triggercode aufgerufen wird.

Hinweis: Initialisierungsereignisse für ActiveX-Steuerelemente werden in Forms Runtime nicht ausgelöst. Diese Initialisierungsereignisse sind absichtlich deaktiviert. Statt dessen können Sie When-New-Item-Instance- oder When-New-Record-Instance-Trigger anstelle der eigenen Initialisierungsereignisse des Steuerelements benutzen.

Wenn ein ActiveX-Steuerelement ein Ereignis auslöst, kann Forms Runtime auf zwei verschiedene Arten auf das Ereignis reagieren: Entweder kann Forms Runtime die entsprechende eingeschränkte Prozedur direkt aufrufen, die von den Ereignispaketen unter dem Knoten Programmblöcke bereitgestellt wird, oder es kann den ON-DISPATCH-EVENT-Trigger aufrufen.

Prozedurenamen werden durch eine interne Nummer bestimmt, die das entsprechende Ereignis darstellt. Die eingeschränkte Prozedur, die von einem Ereignis erzeugt wird, hat eine API wie folgt:

PROCEDURE /*Klicken Sie auf*/ event4294966696(interface OleObj);

Die Prozedur wird erstellt, und Sie müssen sicherstellen, daß die Aktionen ausgeführt werden, die innerhalb der Prozedur erforderlich sind. Beachten Sie, daß die Prozeduren im eingeschränkten Modus ausgeführt werden.

Wenn die Ereignisprozedur über den ON-DISPATCH-EVENT-Trigger aufgerufen wird, können Sie explizit mit dem Aufruf FORMS4W.DISPATCH_EVENT definieren, ob die Prozedur im eingeschränkten oder nicht eingeschränkten Modus ausgeführt wird. Wenn Sie eine eingeschränkte Prozedur definieren, werden alle OUT-Parameter nicht berücksichtigt.


Beispiele für die Reaktion auf Ereignisse von ActiveX-Steuerelementen

Beispiel 1

/*

The event procedure will be called directly to increase the value of a field when a mouse click event is detected.
*/
PROCEDURE /*Klicken Sie auf*/ event4294966696(ocxitem)
BEGIN
:SYSTEM.TRIGGER_ITEM := ocxitem;
:block.value := :block.value + 1;
END;

Beispiel 2

/*

ON-DISPATCH-EVENT trigger
*/
BEGIN
IF SYSTEM.CUSTOM_ITEM_EVENT = 4294966696 THEN
/*when event occurs, allow it to apply to different items */.
FORMS4W.DISPATCH_EVENT(RESTRICTED_ALLOWED);
ELSE
/*run the default, that does not allow applying any other 	item */
FORMS4W.DISPATCH_EVENT(RESTRICTED_UNALLOWED);
ENDIF;
END;


n  Exception FORMS_OLE_FAILURE handhaben

 Beispiele	     Verwandte Themen

Wenn bei der Ausführung einer Methode eines ActiveX-Steuerelements eine Fehlfunktion entdeckt wird, wird eine FRM-Meldung ausgegeben oder die Exception FORMS_OLE_FAILURE ausgelöst. Wenn eine Exception FORMS_OLE_FAILURE ausgelöst wird, können Sie genauere Informationen über die Ursache der Exception abrufen, indem Sie die vordefinierte Prozedur LAST_OLE_EXCEPTION aufrufen.


e für die Handhabung der Exception FORMS_OLE_FAILURE

Beispiel

/*

Handling the exception raised as a result of calling: Var_To_Number(To_Variant('Jane'));
An exception is raised because Jane is not a number.
*/
DECLARE
ExceptNum number;

BEGIN
ExceptNum := LAST_OLE_EXCEPTION('Excel',
'Range Method Fail',
'Excel.hlp',
110);
END;


Active X-Steuerelemente registrieren

  Verwandte Themen

Sie müssen alle ActiveX-Steuerelemente registrieren. Wenn Sie ein ActiveX-Steuerelement mit dem Installationsprogramm installieren, das mit dem ActiveX-Steuerelement geliefert wird, wird die Registrierung wahrscheinlich vom Installationsprogramm übernommen.

Um ActiveX-Steuerelemente manuell zu registrieren, verwenden Sie regActiveX32.exe oder regsvr32.exe. Beide sind in den Microsoft-Entwicklungs-Tools und von den Herstellern der ActiveX-Steuerelemente verfügbar.

Dateiunterstützung

Die meisten ActiveX-Steuerelemente erfordern eine unterstützende DLL, wie z.B. die Microsoft Foundation Class-Laufzeitbibliothek, mfc40.dll. Die DLL muß in dem Ordner \WINDOWS\SYSTEM oder im Suchpfad gespeichert sein. Wenn die DLL veraltet ist oder fehlt, wird das ActiveX-Steuerelement nicht richtig registriert. Die meisten bekannten Hersteller von ActiveX-Steuerelementen liefern eine Dokumentation bezüglich Version und Name der erforderlichen DLLs. Einige Hersteller liefern und installieren diese sogar zusammen mit den ActiveX-Steuerelementen.

ActiveX-Steuerelementdateien verschieben

Bei der Installation werden die Ordner, in denen das ActiveX-Steuerelement installiert ist, in der Windows-Registrierungsdatenbank in Windows 95 und Windows NT registriert, so daß das ActiveX-Steuerelement für die Entwicklungsumgebung sichtbar ist. Wenn Sie das ActiveX-Steuerelement in einen anderen Ordner verschieben oder den Ordner umbenennen, sind die Informationen in der Registrierung nicht mehr gültig. Wenn Sie das ActiveX-Steuerelement verschieben oder den Ordner umbenennen müssen, benutzen Sie die Dienstprogramme regsrv32.exe oder regActiveX.exe, die mit den meisten Microsoft-Entwicklungsprodukten geliefert werden, um das ActiveX-Steuerelement erneut an der neuen Speicherposition zu registrieren.


AcitveX-Steuerelemente mit Ihrer Anwendung einsetzen

  Verwandte Themen

Wenn Sie eine Anwendung einsetzen, die zur Laufzeit ein ActiveX-Steuerelement benutzt, müssen Sie das ActiveX-Steuerelement ebenfalls einsetzen. Sie müssen das ActiveX-Steuerelement in dem zur Laufzeit benutzten Rechner richtig registrieren. Die unterstützenden DLLs müssen an die entsprechenden Speicherorte kopiert werden - WINDOWS\SYSTEM-Ordner, WINDOWS-Ordner oder einen Ordner im DLL-Suchpfad.

Für ActiveX-Steuerelemente müssen Sie unter Umständen zusätzliche Gebühren bezahlen oder vor Verteilung von ActiveX-Steuerelementen zusätzliche Lizenzen erwerben, unabhängig davon, ob diese von Drittherstellern von ActiveX-Steuerelementen verteilt oder in Entwicklungs-Tools gebündelt sind.


Unterstützung von OLE in Form Builder

  Verwandte Themen

Form Builder unterstützt OLE. Form Builder fungiert als OLE-Container, der zusammengesetzte Dokumente und die OLE-Automation unterstützt. Der Objekttyp OLE-Container erstellt einen Container für Ihre OLE-Objekte.

Form Builder ist eine OLE-Container-Anwendung, die folgende Vorteile bietet:

•	Einbetten und Verknüpfen von OLE-Serverobjekten in OLE-Containern von Form Builder.

•	Interne Aktivierung von eingebetteten Inhalten in OLE-Containern von Form Builder.

•	Programmgesteuerter Zugriff auf OLE-Objekte, Attribute und Methoden über die OLE-Automation in PL/SQL.

•	Nahtlose Speicherung von OLE-Objekten in einer Datenbank in LONG RAW-Spalten.

Ein OLE-Container ist ein Objekt in Form Builder. Ein OLE-Objekt ist mit einem OLE-Container verknüpft bzw. in diesem eingebettet. Bei OLE-Objekten kann es sich um Datenquellobjekte oder Steuerelementobjekte handeln.

Form Builder unterstützt die interne OLE-Aktivierung. Bei der internen Aktivierung können Sie aus OLE-Serveranwendungen auf Menüs und Symbolleisten zugreifen, um eingebettete OLE-Objekte aus Form Builder zu bearbeiten.

Außerdem unterstützt Form Builder die OLE-Automation. Mit PL/SQL können Sie Befehle und Funktionen aufrufen, die von OLE-Servern verwendet werden, die die OLE-Automation unterstützen.

Aus Form Builder können Sie OLE-Objekte in einer Datenbank speichern sowie OLE-Objekte aus einer Datenbank abfragen. OLE-Objekte werden als LONG RAW-Spalten in der Datenbank gespeichert. Wenn verknüpfte Objekte gespeichert werden, werden nur die Bild- und Verknüpfungsinformationen in der Datenbank behalten. Der Inhalt eines verknüpften Objekts bleibt in der verknüpften Quelldatei. Wenn Sie ein eingebettetes Objekt speichern, bleibt der gesamte Inhalt eines eingebetteten Objekts in der Datenbank bestehen.

Ein Beispiel für die Benutzung von OLE in Form Builder ist eine Anwendung, mit der Microsoft Word-Dokumente in einem Formmodul integriert werden. Die Integration eines Formmoduls und eines Microsoft Word-Dokuments bietet Ihnen die Möglichkeit, sowohl aus Form Builder als auch aus Microsoft Word auf Funktionen zuzugreifen. Sie können das Microsoft Word-Dokument mit beliebigen Textverarbeitungsfunktionen aus Microsoft Word formatieren und können alle Funktionen von Form Builder zur Anzeige und Bearbeitung der Daten aus der Datenbank einsetzen.

Die Eigenschaften eines OLE-Objekts in Form Builder hängen von den Attributen des OLE-Containers ab. Die Attribute des OLE-Containers bestimmen, wie OLE-Objekte aktiviert, angezeigt und bearbeitet werden.


Über eingebettete und verknüpfte Objekte

  Verwandte Themen

Eine OLE-Serveranwendung erstellt OLE-Objekte, die in einer OLE-Containeranwendung eingebettet oder verknüpft werden. OLE-Container speichern und zeigen OLE-Objekte an. Bei Anwendungen kann es sich um OLE-Serveranwendungen und/oder OLE-Containeranwendungen handeln. Form Builder ist eine OLE-Containeranwendung, während Microsoft Word ein Beispiel für eine OLE-Serveranwendung ist.

Ein eingebettetes OLE-Objekt wird von einer OLE-Serveranwendung erstellt und in ein Formmodul von Form Builder eingebettet. Ein eingebettetes Objekt wird als Bestandteil eines Formmoduls oder als LONG RAW-Spalte in einer Datenbank gespeichert. Eingebettete Objekte können als OLE-Containerobjekte abgefragt werden.

Beim Einbetten von Objekten wird z.B. ein Kalkulationsblatt in einem OLE-Container eines Formmoduls eingefügt. Das Kalkulationsblatt wird als Bestandteil des Formmoduls oder als LONG RAW-Spalte in einer Datenbank gespeichert. Es gibt keine separate Quelldatei, die das Kalkulationsblatt enthält.

Ein verknüpftes OLE-Objekt wird von einer OLE-Serveranwendung erstellt. Ein verknüpftes Objekt wird in einer separaten Quelldatei gespeichert, die aus einer OLE-Serveranwendung erstellt wird. Eine Bilddarstellung des verknüpften Objekts und der Informationen über den Speicherort der Quelldatei des verknüpften Objekts ist in einem Formmodul oder als LONG RAW-Spalte in einer Datenbank gespeichert. Der Inhalt des verknüpften Objekts ist nicht als Bestandteil eines Formmoduls oder als LONG RAW-Spalte in einer Datenbank gespeichert. Er steht in einer separaten Datei, die als verknüpfte Quelldatei bezeichnet wird.

Beim Verknüpfen von Objekten wird z.B. ein Textverarbeitungsdokument in einem Formmodul verknüpft. Eine Abbildung des Dokuments wird in dem OLE-Container des Formmoduls angezeigt, und der Speicherort des Dokuments wird als Bestandteil des Formmoduls oder als LONG RAW-Spalte in einer Datenbank gespeichert.


Über OLE-Server und OLE-Container

  Verwandte Themen

Anwendungen, die OLE unterstützen, können OLE-Server und/oder OLE-Container sein. Eine OLE-Serveranwendung erstellt OLE-Objekte, die in OLE-Containern eingebettet oder verknüpft sind. Beispiele für OLE-Server sind Microsoft Word und Microsoft Excel.

Im Gegensatz zu OLE-Serveranwendungen erstellen OLE-Containeranwendungen keine Dokumente für das Einbetten und Verknüpfen. Statt dessen bieten OLE-Containeranwendungen einen Platz für das Speichern, Anzeigen und Verarbeiten von Objekten, die von OLE-Serveranwendungen erstellt werden. Form Builder ist ein Beispiel für eine OLE-Containeranwendung.

Viele der Optionen zur Verarbeitung von OLE-Objekten in einer OLE-Containeranwendung werden von der OLE-Serveranwendung bestimmt. So werden z.B. Optionen aus dem OLE-Popup-Menü, die auch als OLE-Verben bezeichnet werden, von der OLE-Serveranwendung bereitgestellt. Die Informationen in der Registrierungsdatenbank, wie z.B. Objektklassen für das Verknüpfen und Einbetten, hängen ebenfalls von der OLE-Serveranwendung ab.


Über die Registrierungsdatenbank

  Verwandte Themen

OLE-Serveranwendungen können viele Objektklassen erstellen. Die Objektklassen, die ein OLE-Server erstellen kann, werden in einer Registrierungsdatenbank installiert.

In der Registrierungsdatenbank werden Klassen gespeichert, mit denen OLE-Objekte kategorisiert werden. Die Informationen in der Registrierungsdatenbank bestimmen die Objektklassen, die für das Einbetten und Verknüpfen in OLE-Containern verfügbar sind. OLE-Serveranwendungen exportieren eine Reihe von Klassen, die Bestandteil der Registrierungsdatei werden. Jeder Computer verfügt über seine eigene Registrierungsdatenbank. Wenn die Registrierungsdatenbank bei der Installation einer OLE-Serveranwendung noch nicht vorhanden ist, wird eine derartige Datenbank erstellt.

Eine einzelne OLE-Serveranwendung kann viele OLE-Klassen zu der Registrierungsdatenbank hinzufügen. Das Hinzufügen von Klassen zu der Registrierungsdatenbank ist transparent und geschieht während der Installation einer OLE-Serveranwendung. Wenn z.B. Microsoft Excel installiert wird, werden verschiedene Klassen zu der Registrierungsdatenbank hinzugefügt. Einige der Klassen, die in der Registrierungsdatenbank installiert sind, umfassen Excel Application, Excel Application 5, Excel Chart, Excel Sheet, ExcelMacrosheet und ExcelWorkSheet.


Über Aktivierungsstile von OLE-Objekten

  Verwandte Themen

Sie können ein OLE-Objekt mit der internen oder externen Aktivierung aus einem OLE-Container in Form Builder aktivieren. Durch das Aktivieren eines OLE-Objekts können Sie auf Funktionen aus der OLE-Serveranwendung zugreifen, aus der das OLE-Objekt stammt. Die interne und externe Aktivierung sind möglich, wenn auf die OLE-Serveranwendung zugegriffen werden kann, aus der das OLE-Objekt stammt.

Außerdem hängen die interne und externe Aktivierung von den Attributeinstellungen für die OLE-Aktivierung des OLE-Containers ab. Die Attributeinstellungen für die OLE-Aktivierung werden im Form Builder  angegeben. Wenn auf die OLE-Serveranwendung zugegriffen werden kann, bestimmen die Attributeinstellungen für die Aktivierung des OLE-Containers, ob beim Aktivieren eines eingebetteten OLE-Objekts eine interne oder externe Aktivierung erfolgt. Verknüpfte Objekte können nur mit der externen Aktivierung aktiviert werden; die interne Aktivierung gilt nicht für verknüpfte Objekte, selbst wenn für das Attribut OLE in Forms aktiviert Ja angegeben wurde. OLE-Objekte können in Form Builder und während der Ausführung von Forms Runtime aktiviert werden.


Über die Interne Aktivierung

  Verwandte Themen

Eine interne Aktivierung findet statt, wenn ein OLE-Container und die eingebetteten Objekte bei der Aktivierung intern bleiben. Form Builder umgibt weiter den OLE-Container. Die interne Aktivierung kann für eingebettete Objekte benutzt werden, ist jedoch für verknüpfte Objekte nicht verfügbar.

Wenn ein Objekt aktiviert wird, wird das Objekt innerhalb eines schraffierten Randes angezeigt. Um die interne Aktivierung zu deaktivieren, klicken Sie an einer beliebigen Stelle außerhalb des schraffierten Randes.

Während der internen Aktivierung ersetzen einige Menüoptionen der OLE-Serveranwendung die Menüoptionen von Form Builder. Wenn das Fenster, das den OLE-Container enthält, über eine Symbolleiste verfügt, ersetzt die interne Aktivierung außerdem die Symbolleiste von Form Builder durch die Symbolleiste der OLE-Serveranwendung. Durch das Ersetzen von Menüoptionen und Symbolleisten erhalten Sie Zugang zu Funktionen, die aus der OLE-Serveranwendung zugänglich sind. Die Menüoptionen und Symbolleisten von Form Builder werden wieder angezeigt, sobald Sie die interne Aktivierung deaktivieren.


Über die Externe Aktivierung

  Verwandte Themen

Eine externe Aktivierung findet statt, wenn ein OLE-Objekt in einem separaten Fenster angezeigt wird, das von der OLE-Serveranwendung geöffnet wird, aus der das Objekt stammt. Da eine OLE-Serveranwendung mit eigenen Fenstern gestartet wird, bleiben die Menüoptionen und Symbolleisten von Form Builder während der externen Aktivierung intakt. Die externe Aktivierung kann sowohl für eingebettete als auch für verknüpfte Objekte benutzt werden.

Wenn ein OLE-Objekt aktiviert wird, wird die OLE-Serveranwendung, aus der das Objekt stammt, gestartet, und das OLE-Objekt wird in einem separaten Fenster der OLE-Serveranwendung angezeigt. Das separate Fenster verfügt über die Menüoptionen und Symbolleisten der OLE-Serveranwendung. Um die externe Aktivierung zu deaktivieren, müssen Sie die OLE-Serveranwendung explizit beenden.

Wenn der Inhalt einer verknüpften Quelldatei mit der externen Aktivierung geändert wird, kann ein verknüpftes Objekt manuell oder automatisch aktualisiert werden. Bei manuellen Aktualisierungen ist eine explizite Instruktion für ein Objekt erforderlich, um die Änderungen aus einer verknüpften Quelldatei zu berücksichtigen. Automatische Aktualisierungen erfolgen, sobald Sie eine verknüpfte Quelldatei ändern.


Über OLE-Automation

 Beispiele	     Verwandte Themen

Mit der OLE-Automation kann eine OLE-Serveranwendung eine Reihe von Befehlen und Funktionen bereitstellen, die aus einer OLE-Containeranwendung aufgerufen werden können. Mit der OLE-Automation kann eine OLE-Containeranwendung die Funktionen einer OLE-Serveranwendung benutzen, um ein OLE-Objekt aus der OLE-Containerumgebung zu bearbeiten.

In Form Builder können Sie mit PL/SQL auf jeden Befehl bzw. jede Funktion zugreifen, die von einem OLE-Server bereitgestellt wird. Das OLE2-Paket verfügt über eine PL/SQL Application Programming Interface, mit der die Befehle und Funktionen erstellt, manipuliert und aufgerufen werden können.


Beispiele für die OLE-Automation

Beispiel 1

/*

Set the value of a single cell in Microsoft Excel using the automatically generated PL/SQL methods.
*/

DECLARE
/* Create a variable of variant type. */
Variant OleVar;

BEGIN
/* Find the range of the cells you want to interact with */
Variant := EXCEL_WORKSHEET.ole_Range(
                              :CTRL.interface,
                               To_Variant('A1'));

/* Set cell A1 to contain 20 */
EXCEL_RANGE.Value(
           Var_to_Obj(Variant),
           To_Variant('20'));
END;

Beispiel 2

/*

Get the value of a range of cells in Microsoft Excel for populating a PL/SQL table.  The PL/SQL table can be used as a block data source.
*/

DECLARE
TYPE myrec IS RECORD (
    x varchar2(10),
    y varchar2(10),
    z varchar2(10));

TYPE mytable is TABLE OF myrec
    INDEX BY BINARY_INTEGER;

TableXYZ mytable;
Range OleVar;
Value OleVar;

BEGIN
/* Find the range of cells you want to interact with */
Range := EXCEL_WORKSHEET.ole_Range(
                            :CTRL.interface,
                            To_Variant('A1:C3'));

/* Get the value of cells in the range from A1 to C3 */
Value := EXCEL_RANGE.Value(Var_to_Obj(Range));

/* Populate PL/SQL Table; can access cell values using PL/SQL Syntax such as TableXYZ(1).x, TableXYZ(1).y, TableXYZ(2).x, TableXYZ(2).y, etc. */
Var_to_Table(Value,TableXYZ);
END;

Beispiel  3:

/*

Populate a Microsoft Excel worksheet by obtaining values from a PL/SQL table.
*/

DECLARE
TYPE myrec IS RECORD (
    x varchar2(10),
    y varchar2(10),
    z varchar2(10));

TYPE mytable is TABLE OF myrec
    INDEX BY BINARY_INTEGER;

TableXYZ mytable;
TableVals OleVar;

BEGIN
/* Converts PL/SQL table to variant type */
TableVals := To_Variant(TableXYZ);

/* Set Microsoft Excel Worksheet to contain values from PL/SQL table */
Excel_Range.Value(Var_to_Obj(TableVals),TableVals);
END;

Beispiel  4:

/*

Populate a block with a Microsoft Excel Worksheet.  Base the block on the following stored procedure.
*/

/* This example assumes the range of cells specified is valid */

PROCEDURE Excel_to_Block(tablename mytable,
                         excel_range_spec varchar)
DECLARE
Range OleVar;
Value OleVar;

BEGIN
/* Find the range of cells you want to interact with */
Range := Excel_Worksheet.Ole_Range(
                    :excel.interface,
                    To_Variant(excel_range_spec));

/* Get the value of cells in the range excel_range_spec */
Value := Excel_Range.Value(Var_to_Obj(Range));

/* Populate PL/SQL table with values from Microsoft Excel Worksheet */
Var_to_Table(Value,tablename);
END;


Wann werden OLE-Objekte eingebettet oder verknüpft?

  Verwandte Themen

Ob ein OLE-Objekt eingebettet oder verknüpft ist, hängt davon ab, wie oft ein OLE-Objekt aktualisiert wird, wie ein OLE-Objekt mit anderen Benutzern geteilt wird, wie auf das Quelldokument zugegriffen wird und ob Einschränkungen bezüglich der Speicherung bestehen.

In folgenden Fällen sollten eingebettete Objekte benutzt werden:

•	Das Objekt, das Sie einbetten, muß nicht die neueste Datenversion darstellen, weil die Aktualisierung aus einem Formmodul und keinem eigenständigen Dokument erfolgt.

•	Das Objekt muß nur in einem Dokument aufgenommen werden, so daß Änderungen nur in dem Objekt erforderlich sind, das in dem Formmodul eingebettet ist, und an keiner anderen Stelle.

•	Auf das Quelldokument kann nicht zugegriffen werden, wenn das Objekt verknüpft ist. In diesem Fall muß nur ein einzelnes Formmodul und kein Formmodul zusätzlich zu dem Quelldokument beibehalten werden.

•	Die Größe des Formmoduls spielt keine Rolle, weil sich die Größe des Formmoduls beim Einbetten um etwa die Größe des eingebetteten Objekts vergrößert.

In folgenden Fällen sollten verknüpfte Objekte benutzt werden:

•	Das Objekt, das verknüpft wird, muß die neueste Datenversion enthalten, da die Aktualisierung von einer Stelle außerhalb eines Formmoduls in einem eigenständigen Dokument erfolgt.

•	Das Objekt muß in mehr als einem Dokument enthalten sein, so daß sich Änderungen auf mehrere Formmodule und andere Dokumente auswirken.

•	Auf das Quelldokument kann jederzeit zugegriffen werden, wenn das Objekt verknüpft ist.

•	Die Größe des Formmoduls spielt eine Rolle: Beim Verknüpfen wird die Größe des Formmoduls im Gegensatz zum Einbetten nicht um die Größe des Objekts vergrößert.


Über OLE in Form Builder

  Verwandte Themen

Auch wenn OLE-Objekte sowohl in Form Builder als auch in Forms Runtime aktiv sind, bestimmen die Attributwerte des OLE-Containers die OLE-Funktionalität beim Entwurf und zur Laufzeit.

In Form Builder bestimmen Sie die Kriterien für die Aktivierung, Darstellung und Benutzung von OLE-Objekten, indem Sie die Attribute des OLE-Containers einstellen. Wenn z.B. das Attribut OLE-Popup-Menü anzeigen auf Ja eingestellt ist, ist das OLE-Popup-Menü eine Option in Form Builder und Forms Runtime. Das OLE-Popup-Menü wird angezeigt, wenn der Mauscursor in einem OLE-Container steht und die rechte Maustaste gedrückt wird. Wenn Nein für das Attribut OLE-Popup-Menü anzeigen angegeben wurde, ist das OLE-Popup-Menü keine Option zur Laufzeit. Das OLE-Popup-Menü kann ein Spektrum von Vorgängen enthalten, die Sie mit OLE-Objekten benutzen können.

In Form Builder können Sie die Objektklassen für das Einbetten und Verknüpfen in einem OLE-Container zur Laufzeit einschränken. Wenn Sie z.B. angeben, daß die Objektklasse eines OLE-Containers auf die ExcelWorkSheet-Klasse beschränkt ist, kann nur ein Microsoft Excel Arbeitsblatt ein OLE-Objekt im OLE-Container sein. Wenn keine Einschränkung von Objektklassen angegeben wird, ist jedes OLE-Objekt, das in der Registrierungsdatenbank als eine Objektklasse kategorisiert ist, ein potentielles OLE-Objekt im OLE-Container.

Wenn ein OLE-Container erstellt wird, sind die mit dem OLE-Container verknüpften Attribute anfänglich auf Standardwerte eingestellt. Die OLE-Containerattribute sind in die drei folgenden Attributgruppen unterteilt:

•	Aktivierungsattribute

OLE-Aktivierungsstil

OLE in Forms aktiviert

OLE-Austauschunterstützung

•	Attribute von OLE-Popup-Menü

OLE-Popup-Menüpunkte

OLE-Popup-Menü anzeigen

•	Attribute von OLE-Bewohnern

OLE-Klasse

OLE-Skalierungsstil

OLE-Bewohnerdarstellung

OLE-Bewohnertypen

OLE-Bewohnertypen anzeigen

Mit Aktivierungsattributen wird angegeben, ob die Bearbeitung eines OLE-Objekts mit der internen oder externen Aktivierung erfolgt. Mit den Attributen für OLE-Popup-Menüs wird festgelegt, ob ein OLE-Popup-Menü verfügbar ist und welche Optionen in dem OLE-Popup-Menü angezeigt werden. Mit den Attributen für OLE-Bewohner werden Bedingungen angegeben, die für ein OLE-Objekt in einem OLE-Container benötigt werden.

Sie können OLE-Objekte manuell aus Form Builder in einen OLE-Container einfügen. Das OLE-Objekt, das Sie in einen OLE-Container einfügen, übernimmt die Attributeinstellungen des OLE-Containers. Wenn Sie ein OLE-Objekt aus Form Builder in einen OLE-Container einfügen, wird der OLE-Container initialisiert. Die Initialisierung eines OLE-Containers bestimmt den anfänglichen Inhalt des OLE-Containers während Forms Runtime. Zur Laufzeit überschreibt eine Formabfrage aus einer LONG RAW-Spalte der Datenbank für das Auffüllen des OLE-Containers den Inhalt, der für die Initialisierung benutzt wird.


Über OLE in Forms Runtime

  Verwandte Themen

Die Möglichkeit, Objekte zur Laufzeit in Forms Runtime anzuzeigen und zu bearbeiten, wird von den OLE-Containerattributen bestimmt, die in Form Builder definiert werden. Laufzeitattribute umfassen Aktivierungsstil, Optionen für OLE-Popup-Menüs und OLE-Bewohnerattribute.

Mit dem Attribut OLE-Bewohnerdarstellung wird bestimmt, wie ein OLE-Objekt angezeigt wird. Wenn für das Attribut OLE-Bewohnerdarstellung z.B. Symbol angegeben wird, wird jedes OLE-Objekt, das Sie in den OLE-Container einfügen, als Symbol angezeigt.

Zur Laufzeit können Sie ein OLE-Objekt manuell in einen OLE-Container einfügen oder können die Datenbank auf ein OLE-Objekt abfragen, das den OLE-Container auffüllt. Wenn Sie zur Laufzeit ein OLE-Objekt manuell einfügen, wird das OLE-Objekt bis zur nächsten Datensatzabfrage im OLE-Container angezeigt, bis der Datensatz gelöscht wird. Das OLE-Objekt, das Sie in einen OLE-Container einfügen, übernimmt die Attributeinstellungen des OLE-Containers. Bei nachfolgenden Datensatzabfragen wird der OLE-Container in einem Status angezeigt, wie in Form Builder definiert oder mit einem OLE-Objekt aus der Datenbank aufgefüllt.

Sie können die Datenbank auch nach einem OLE-Objekt abfragen, das einen OLE-Container auffüllen soll. Jede Datensatzabfrage füllt einen OLE-Container mit einem OLE-Objekt aus der Datenbank auf. Eine Abfrage der Datenbank nach einem OLE-Objekt kann nur für ein OLE-Containerobjekt erfolgen. Der Datentyp eines OLE-Objekts in der Datenbank ist LONG RAW. Bei der Abfrage wird ein OLE-Objekt entsprechend den Attributeinstellungen des OLE-Containers angezeigt. Außerdem hängen die Vorgänge, die mit dem OLE-Objekt durchgeführt werden können, von den Attributeinstellungen des OLE-Containers ab. Die OLE-Containerattribute werden nicht als Bestandteil eines OLE-Objekts gespeichert.


OLE-Variantentypen

In der folgenden Tabelle werden die OLE-Variantentypen aufgeführt und der entsprechende Forms Developer VT-TYPE-Bezeichner angegeben.

OLE-definierter Variantentyp	Interpretation in Forms Developer
VT_BLOB	VT_UNKNOWN
VT_BLOB_OBJECT	VT_UNKNOWN
VT_BOOL	Boolesch
VT_BSTR	Zeichenfolge
VT_BYREF	16384.  Dies kann zu jedem der unten aufgeführten Typen hinzugefügt werden, um "pointer-to" anzugeben.
VT_CARRAY	- nicht unterstützt
VT_CF	- nicht unterstützt
VT_CLSID	- nicht unterstützt
VT_CY	- nicht unterstützt
VT_DATE	Datum
VT_DISPATCH	OLE-Objekt-Pointer, der OLE-Automationsaufrufe durchführen kann
VT_EMPTY	Nicht initialisiertes Element
VT_ERROR	Fehlerfeld
VT_FILETIME	VT_DATE
VT_HRESULT	VT_ERROR
VT_INT	Ganzzahl
VT_I1	Ein-Byte-Ganzzahl mit Vorzeichen
VT_I2	Zwei-Byte-Ganzzahl mit Vorzeichen
VT_I4	Vier-Byte-Ganzzahl mit Vorzeichen
VT_I8	- nicht unterstützt
VT_LPSTR	VT_BSTR
VT_LPWSTR	VT_BSTR
VT_NULL	Null
VT_PTR	Pointer ohne Typ
VT_R4	Vier-Byte-Gleitkommazahl
VT_R8	Acht-Byte-Gleitkommazahl
VT_STORAGE	VT_UNKNOWN
VT_STORED_OBJECT	VT_UNKNOWN
VT_STREAM	VT_UNKNOWN
VT_STREAMED_OBJECT	VT_UNKNOWN
VT_UINT	Vier-Byte-Ganzzahl ohne Vorzeichen
VT_UI1	Ein-Byte-Ganzzahl ohne Vorzeichen
VT_UI2	Zwei-Byte-Ganzzahl ohne Vorzeichen
VT_UI4	Vier-Byte-Ganzzahl ohne Vorzeichen
VT_UNKNOWN	OLE-Objekt-Pointer
VT_USERDEFINED	Daten mit Typ
VT_VARIANT	Beliebiger Typ


Array-Typen zur OLE-Unterstützung

  Verwandte Themen

Array-Typ oder -Subtyp	Definition
VT_TYPE	Ein Untertyp in Form von PLS_INTEGER. Weitere Informationen finden Sie unter OLE-Variantentypen.
OLE_SAFEARRAYBOUND	Ein Datensatz, der zwei Felder enthält: • count PLS_INTEGER.   Count entspricht der Anzahl von Objekten in dem Array. • lbound PLS_INTEGER.   Der Standardwert für lbound ist 1.
OLE_SAFEARRAYBOUNDS	Eine Tabelle, die Datensätze vom Typ  OLE_SAFEARRAYBOUND enthält. Der Tabellenzugriff ist INDEX BY BINARY_INTEGER. Dieser Array-Typ wird in den Funktionen CREATE_VAR und GET_VAR_BOUNDS benutzt.
ITEMS_IN_BLOCK	Eine Tabelle in der Form VARCHAR2(30). Der Tabellenzugriff ist INDEX BY BINARY_INTEGER.


Bezeichner für OLE-Arrays

  Beispiele	  Verwandte Themen

Einige der vordefinierten Prozeduren, die mit OLE-Arrays benutzt werden, stellen einen Parameter bereit, mit dem angegeben werden kann, welche Teile des Array benutzt werden sollen. In der Beschreibung dieser vordefinierten Prozeduren wird der Parameter mit arrspec angegeben.

Wenn Sie keinen arrspec-Parameter aufnehmen, wird das ganze Array verarbeitet.

Syntax

Dieser Parameter kann mehrere Unterparameter umfassen, die den Dimensionen des OLE-Arrays entsprechen:

nte Dimension,...  3. Dimension, 2. Dimension, 1. Dimension'

Der arrspec-Parameter ist als Zeichenfolge vom Typ VARCHAR2 codiert. Die Zeichenfolge muß in einfachen Anführungszeichen stehen, wobei die Unterparameter durch Kommas und Leerzeichen getrennt sind. (Beachten Sie, daß die Unterparameter in der korrekten Reihenfolge angegeben werden müssen.)

Geben Sie so viele dieser Unterparameter wie erforderlich an, um den auszuwählenden Teil des Arrays anzugeben.

Unterparameter, die bestimmte Instanzen einer Dimension identifizieren, müssen ganzzahlige Konstanten sein.

Die Unterparameter für die 2. und 1. Dimension können auch mit den Schlüsselwörtern ROW und CONSTANT dargestellt werden. Wenn ROW in der Position der 2. Dimension benutzt wird, gibt ROW an, daß alle Zeilen ausgewählt werden müssen. In der Position der 1. Dimension gibt COLUMN an, daß alle Spalten ausgewählt werden müssen.

Ein arrspec-Wert von '7, 3' würde die 3. Instanzdimension der 7. Zeile auswählen.

Ein arrspec-Wert von '7, COLUMN' würde die ganze 7. Zeile auswählen (alle Spalten der 7. Zeile).

Ein arrspec-Wert von '2, 6, 9' würde das 2. Unterelement der 9. Spalte der 6. Zeile wählen.

Ein arrspec-Wert von '5' würde das 5. Element eines eindimensionalen Arrays wählen.

Füllmuster kontrollieren

Wenn eine Funktion Daten zwischen einem OLE-Array und einer PL/SQL-Tabelle verschiebt, erfolgt die Verarbeitung normalerweise zeilenweise. Sie können dies jedoch außer Kraft setzen und eine andere Zuordnung angeben. Dies erfolgt mit den Unterparameter-Schlüsselwörtern COLUMN und ROW auf eine besondere Weise.

Wenn die Schlüsselwörter wie oben erläutert in der normalen Position in der Unterparameterliste benutzt werden, geben sie an, daß alle Instanzen dieser Dimension ausgewählt werden müssen. Die Schlüsselwörter können jedoch auch außerhalb der normalen Position benutzt werden, um ein anderes Füllmuster für die Dimension dieser Position anzugeben.

Wenn das Schlüsselwort COLUMN in einer anderen Position als der normalen Position benutzt wird, identifiziert die relative Position des Schlüsselwortes column in der Unterparameterliste eine Dimension des Arrays und gibt an, daß diese Dimension in die Spaltendimension der empfangenden Tabelle gesetzt werden muß. Gleichermaßen gibt das Schlüsselwort ROW an, daß die Array-Dimension, die mit der relativen Unterparameterposition des Schlüsselworts angegeben wird, in die Zeilendimension der empfangenden Tabelle gesetzt werden muß.

Bei einem arrspec von 'COLUMN, ROW' steht das Schlüsselwort COLUMN in der 2. Dimensionsposition (der Zeilenposition) und das Schlüsselwort ROW in der 1. Dimensionsposition (der Spaltenposition). Dieser Parameter arrspec würde dazu führen, daß die 2. Dimension (die Zeilen) des Arrays in die Spalten der empfangenden Tabelle verschoben werden. Außerdem würde die erste Position des Arrays (die Spalten) in die Zeilen der empfangenden Tabelle gesetzt.

Tabellengrößen

Die empfangende PL/SQL-Tabelle muß groß genug zur Aufnahme der ausgewählten Array-Daten sein. Dies ist besonders wichtig, wenn Spalten gedreht werden und zu Zeilen werden.


Weitere Beispiele für Bezeichner von OLE-Arrays

Komplexere Auswahlen und Bearbeitungen sind ebenfalls möglich.

Um z.B. alle 4. Subelemente aller Spalten in der 5. Zeile auszuwählen, würde ein arrspec von '4, 5, COLUMN' oder '4, 5, ROW' benutzt. Die 4 gibt die 4. Instanz der 3. Dimension des Arrays an (diese Dimension wird hier als Unterelemente bezeichnet). Die 5 gibt die 5. Instanz der 2. Dimension an (d.h. die 5. Zeile). Das Schlüsselwort COLUMN oder ROW gibt zwei Dinge an. Zuerst gibt es an, daß der gesamte Inhalt der 1. Dimension des Arrays (die Spalten) ausgewählt werden muß. Als zweites gibt es die empfangende Position oder Darstellung der Spalte in der Tabelle an.

Wenn '4, 5, COLUMN' angegeben wird, wird die normale Zuordnung befolgt. In diesem Fall wird das 4. Subelement jeder Spalte in der 5. Zeile in dem Array in die Position des 4. Subelements jeder Spalte in der 5. Zeile der empfangenden Tabelle verschoben. Es findet keine Änderung der Darstellung statt.

Wenn '4, 5, ROW' angegeben wird, wird wiederum das 4. Subelement jeder Spalte in der 5. Zeile ausgewählt. Da das Schlüsselwort ROW in der Spaltenposition in der Unterparameterliste angegeben wurde, werden die Daten in die erste Position jeder Zeile der empfangenden Tabelle verschoben. (Genauer gesagt in die Positionen des 4. Subelements jeder ersten Spaltenposition in so vielen Zeilen, wie zur Aufnahme der ursprünglichen Anzahl von Spalten in dem Array erforderlich sind.)


OLE Objekte zu Anwendungen hinzufügen

  Verwandte Themen

So fügen Sie ein OLE-Objekt zu Ihrer Anwendung hinzu:

1	Erstellen Sie einen OLE-Container.

2	2. Betten Sie das OLE-Objekt ein oder verknüpfen sie es.

3	3. Importieren Sie OLE-Methoden und -Attribute.

4	4. Schreiben Sie den entsprechenden PL/SQL-Code für die Zusammenarbeit mit den OLE-Automationsmethoden.


OLE Container erstellen

Nächster Schritt 	  Verwandte Themen

So erstellen Sie einen OLE-Container:

1	Klicken Sie im Objektnavigator auf das Plussymbol [image] neben dem gewünschten Blockknoten.

Form Builder blendet den Knoten Datenblöcke ein und zeigt die zugehörigen Unterknoten an.

2	Klicken Sie auf den Knoten Objekte.

3	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

Unter dem Knoten Objekte wird ein neues Objekt mit einem Standardnamen eingefügt.

4	Doppelklicken Sie auf das Objektsymbol neben dem neu erstellten Objekt, um die Attributpalette anzuzeigen.

5	Stellen Sie unter dem Knoten Allgemein das Attribut Objekttyp auf OLE-Container ein.

6	Unter dem Knoten Physikalisch geben Sie bei dem Attribut Leinwand den Namen der gewünschten Leinwand an.

Hinweis: Um ein Objekt zur Laufzeit anzuzeigen, müssen Sie es einer Leinwand zuweisen.


Über das Einbetten von OLE-Objekten

Nächster Schritt 	  Verwandte Themen

Ein OLE-Objekt, das Sie manuell aus Form Builder in einen OLE-Container einfügen, initialisiert den OLE-Container zur Laufzeit. Wenn Sie zur Laufzeit manuell ein OLE-Objekt einfügen, wird das OLE-Objekt bis zur nächsten Datensatzabfrage im OLE-Container angezeigt. Bei nachfolgenden Datensatzabfragen wird der OLE-Container in einem Status angezeigt, wie in Form Builder definiert, oder mit einem OLE-Objekt aus der Datenbank aufgefüllt.

Der Zugriff auf die Option Objekt einfügen im OLE-Popup-Menü ist erforderlich, um ein OLE-Objekt manuell in einen OLE-Container einfügen zu können. Erstellen Sie ein neues OLE-Objekt zur Einfügung in einen OLE-Container erstellen, oder betten Sie ein OLE-Objekt aus einer bestehenden Datei ein .


Neue OLE-Objekte einbetten

  Verwandte Themen

So betten Sie ein neues OLE-Objekt ein:

1	Erstellen Sie einen OLE-Container, während das Attribut OLE-Bewohnertypen auf Beliebig oder Eingebettet eingestellt ist.

Stellen Sie sicher, daß für das Attribut OLE-Popup-Menü anzeigen Ja angegeben ist und daß für den Menüpunkt Objekt einfügen bei OLE-Popup-Menüpunkte Anzeigen und Aktivieren angegeben ist.

2	Setzen Sie den Mauscursor im Layouteditor zu dem OLE-Container, und drücken Sie die rechte Maustaste, um das OLE-Popup-Menü aufzurufen. In dem OLE-Popup-Menü wählen Sie Objekt einfügen.

Daraufhin wird das Dialogfeld Objekt einfügen angezeigt.

3	Im Dialogfeld Objekt einfügen wählen Sie Neu erstellen.

4	Wählen Sie einen Objekttyp aus der Liste Objekttyp.

5	Klicken Sie auf OK.

Daraufhin wird die OLE-Serveranwendung gestartet.

6	Erstellen Sie das Objekt in der OLE-Serveranwendung.

7	Beenden Sie die OLE-Serveranwendung.


OLE-Objekte aus einer bestehenden Datei einbetten

  Verwandte Themen

So betten Sie ein Objekt aus einer bestehenden Datei ein:

1	Erstellen Sie einen OLE-Container, während das Attribut OLE-Bewohnertypen auf Beliebig oder Eingebettet eingestellt ist.

Stellen Sie sicher, daß für das Attribut OLE-Popup-Menü anzeigen Ja angegeben ist und daß für den Menüpunkt Objekt einfügen bei OLE-Popup-Menüpunkte Anzeigen und Aktivieren angegeben ist.

2	Setzen Sie den Mauscursor im Layouteditor zu dem OLE-Container, und drücken Sie die rechte Maustaste, um das OLE-Popup-Menü aufzurufen. In dem OLE-Popup-Menü wählen Sie Objekt einfügen.

Daraufhin wird das Dialogfeld Objekt einfügen angezeigt.

3	Im Dialogfeld Objekt einfügen wählen Sie Aus Datei erstellen.

4	Geben Sie den Dateinamen des einzubettenden Objekts an.

Mit der Option Durchsuchen können Sie nach der Datei suchen. Wenn Sie die Option Durchsuchen verwenden, klicken Sie im Dialogfeld Durchsuchen auf OK, nachdem Sie eine Datei ausgewählt haben.

5	Nachdem Sie den Dateinamen bestimmt haben, klicken Sie im Dialogfeld Objekt einfügen auf OK.


OLE Objekte verknüpfen

  Nächster Schrittt	  Einschränkungen 	  Verwandte Themen

So verknüpfen Sie ein Objekt:

1	Erstellen Sie einen OLE-Container, während das Attribut OLE-Bewohnertypen auf Beliebig oder Verknüpft eingestellt ist.

Stellen Sie sicher, daß für das Attribut OLE-Popup-Menü anzeigen Ja angegeben ist und daß für den Menüpunkt Objekt einfügen bei OLE-Popup-Menüpunkte Anzeigen und Aktivieren angegeben ist.

2	Setzen Sie den Mauscursor im Layouteditor zu dem OLE-Container, und drücken Sie die rechte Maustaste, um das OLE-Popup-Menü aufzurufen. In dem OLE-Popup-Menü wählen Sie Objekt einfügen.

Daraufhin wird das Dialogfeld Objekt einfügen angezeigt.

3	Im Dialogfeld Objekt einfügen wählen Sie Aus Datei erstellen.

4	Geben Sie den Dateinamen des zu verknüpfenden Objekts an.

Sie können die Option Durchsuchen benutzen, um nach der Datei zu suchen. Wenn Sie die Option Durchsuchen verwenden, klicken Sie nach der Auswahl einer Datei im Dialogfeld Durchsuchen auf OK.

5	Wählen Sie im Dialogfeld Objekt einfügen das Kontrollkästchen Verknüpfen aus.

6	Klicken Sie auf OK.


Einschränkungen beim Verknüpfen von OLE-Objekten

Da verknüpfte Objekte Informationen über den Speicherort eines OLE-Objekts enthalten, können Sie nur OLE-Objekte aus bestehenden Dateien verknüpfen. Sie können kein Objekt erstellen, wenn Sie einen Link erstellen möchten, da die Position der neuen Objekte noch nicht festgelegt ist.


Über die Anzeige von OLE-Objekten

  Verwandte Themen

Sie können ein OLE-Objekt in folgender Form anzeigen:

•	Den Inhalt des OLE-Objekts, so wie er im OLE-Server angezeigt wird

•	Ein Symbol der OLE-Serveranwendung, aus dem das OLE-Objekt stammt

•	Eine Thumbnail-Vorschau des OLE-Objekts in Form einer Skizze

Sie können die Anzeigeoption mit dem Attribut OLE-Bewohnerdarstellung angeben. Sie können außerdem Als Symbol anzeigen im Dialogfeld Objekt einfügen des OLE-Popup-Menüs wählen. Wenn Sie Als Symbol anzeigen auswählen, wird in dem OLE-Container ein Symbol zur Darstellung des eingebetteten oder verknüpften Objekts angezeigt. Wenn Sie Als Symbol anzeigen auswählen, wird die Einstellung des Attributs OLE-Bewohnerdarstellung außer Kraft gesetzt.


Objekte mit Als Symbol anzeigen als Symbol anzeigen

  Verwandte Themen

So zeigen Sie ein Objekt mit Als Symbol anzeigen als Symbol an:

1	Erstellen Sie einen OLE-Container.

2	Bestimmen Sie im Dialogfeld Objekt einfügen das einzubettende oder zu verknüpfende Objekt.

3	Wählen Sie das Kontrollkästchen Als Symbol anzeigen aus.

Wenn Sie Als Symbol anzeigen auswählen, wird das aktuelle Symbol, das die OLE-Serveranwendung darstellt, aus der das einzufügende OLE-Objekt stammt, im Dialogfeld Objekt einfügen angezeigt. Symbolauswahlen können durch Auswahl von Symbol ändern geändert werden.

Im Dialogfeld Symbol ändern werden die aktuelle Symbolauswahl und die Standard-Symbolauswahl dargestellt. Sie können sowohl die aktuelle als auch die standardmäßige Symbolauswahl ändern, indem Sie das gewünschte Symbol auswählen. Verschiedene Symbole sind in verschiedenen Dateien gespeichert. Nachdem Sie ein Symbol ausgewählt haben, klicken Sie im Dialogfeld Symbol ändern auf OK.

4	Klicken Sie auf OK.


Über das Bearbeiten von OLE-Objekten

  Verwandte Themen

Sie können ein eingebettetes oder verknüpftes Objekt bearbeiten, indem Sie das OLE-Objekt aktivieren. Durch Aktivieren eines OLE-Objekts wird die OLE-Serveranwendung gestartet, aus der das OLE-Objekt stammt.

Wenn die OLE-Serveranwendung in Ihrem Computer nicht verfügbar ist, um ein eingebettetes oder verknüpftes Objekt zu bearbeiten, kann die Bearbeitung durchgeführt werden, indem das OLE-Objekt endgültig oder vorübergehend in ein anderes Format konvertiert wird.

Wenn ein eingebettetes Objekt in Form Builder geändert wird, werden Änderungen unmittelbar in dem Formmodul berücksichtigt, weil eingebettete Objekte als Bestandteil des Formmoduls gespeichert werden.

Wenn eine Quelldatei eines verknüpften Objekts geändert wird, wird das verknüpfte Objekt automatisch oder manuell aktualisiert. Bei der automatischen Aktualisierung werden Änderungen bei einem OLE-Objekt sofort berücksichtigt. Bei der manuellen Aktualisierung müssen Sie Jetzt aktualisieren im Dialogfeld Verknüpfungen auswählen, nachdem ein Dokument geändert wurde.

Die automatische oder manuelle Aktualisierung wird im Dialogfeld Verknüpfungen festgelegt. Über das Dialogfeld Verknüpfungen können Sie eine verknüpfte Quelldatei zur Bearbeitung öffnen, können Verknüpfungen eines OLE-Objekts ändern, um das Objekt mit anderen Quellen zu verknüpfen, oder Verknüpfungen vollständig unterbrechen. Wenn eine Verknüpfung unterbrochen wird, bleibt in einem OLE-Container nur noch ein festes Bild eines OLE-Objekts bestehen. Informationen über den Speicherort der verknüpften Quelldatei werden nicht beibehalten.


Verknüpfte Objekte automatisch aktualisieren

  Verwandte Themen

So aktualisieren Sie ein verknüpftes Objekt automatisch:

1	Klicken Sie im Layouteditor auf den OLE-Container.

Stellen Sie sicher, daß für das Attribut OLE-Popup-Menü anzeigen Ja angegeben wird und daß für den Menüpunkt Links bei OLE-Popup-Menüpunkte Anzeigen und Aktivieren eingestellt ist.

2	Während der Mauscursor in dem OLE-Container steht, rufen Sie das OLE-Popup-Menü mit der rechten Maustaste (bei Windows-Plattformen) auf. Wählen Sie Links aus dem OLE-Popup-Menü.

Daraufhin wird das Dialogfeld Links angezeigt. Im Dialogfeld Links wird die aktuelle Aktualisieren-Option für die ausgewählte verknüpfte Quelldatei angezeigt.

3	Wählen Sie die Optionsschaltfläche Automatisch neben der Bezeichnung Aktualisieren.

4	Klicken Sie auf Schließen.


Mit OLE verknüpfte Quelldatei öffnen

  Verwandte Themen

So öffnen Sie eine verknüpfte Quelldatei aus dem Dialogfeld Links:

1	Klicken Sie im Layouteditor auf den OLE-Container.

Stellen Sie sicher, daß für das Attribut OLE-Popup-Menü anzeigen Ja angegeben wird und daß für den Menüpunkt Links bei OLE-Popup-Menüpunkte Anzeigen und Aktivieren eingestellt ist.

2	Während der Mauscursor in dem OLE-Container steht, rufen Sie das OLE-Popup-Menü mit der rechten Maustaste (bei Windows-Plattformen) auf. Wählen Sie Links aus dem OLE-Popup-Menü.

Daraufhin wird das Dialogfeld Links angezeigt. Im Dialogfeld Links werden daraufhin die aktuellen Links zu Quelldateien angezeigt.

3	Wählen Sie einen Link zu einer Quelldatei.

4	Klicken Sie auf Quelle öffnen.

Die OLE-Serveranwendung, aus der die verknüpfte Quelldatei stammt, wird daraufhin gestartet.

5	Bearbeiten Sie die verknüpfte Quelldatei.

6	Beenden Sie die OLE-Serveranwendung, um Ihre Änderungen zu speichern und zu Form Builder zurückzugehen.


Bestehenden OLE-Link ändern

  Verwandte Themen

So ändern Sie einen bestehenden Link von einer verknüpften Quelldatei zu einer anderen:

1	Klicken Sie im Layouteditor auf den OLE-Container.

Stellen Sie sicher, daß für das Attribut OLE-Popup-Menü anzeigen Ja angegeben wird und daß für den Menüpunkt Links bei OLE-Popup-Menüpunkte Anzeigen und Aktivieren eingestellt ist.

2	Während der Mauscursor in dem OLE-Container steht, rufen Sie das OLE-Popup-Menü mit der rechten Maustaste (bei Windows-Plattformen) auf. Wählen Sie Links aus dem OLE-Popup-Menü.

Daraufhin wird das Dialogfeld Links angezeigt. Im Dialogfeld Links werden die aktuellen Verknüpfungen zu Quelldateien dargestellt.

3	Wählen Sie einen Link zu einer Quelldatei, und wählen Sie Quelle ändern aus.

Daraufhin wird das Dialogfeld Quelle ändern angezeigt.

4	Wählen Sie eine andere verknüpfte Quelldatei.

5	Klicken Sie auf OK, um einen neuen Link zu erstellen.

6	Klicken Sie auf Schließen.


Link zu einer verknüpften Quelldatei unterbrechen

  Verwandte Themen

So unterbrechen Sie einen Link zu einer verknüpften Quelldatei:

1	Klicken Sie im Layouteditor auf den OLE-Container.

Stellen Sie sicher, daß für das Attribut OLE-Popup-Menü anzeigen Ja angegeben wird und daß für den Menüpunkt Links bei OLE-Popup-Menüpunkte Anzeigen und Aktivieren eingestellt ist.

2	Während der Mauscursor in dem OLE-Container steht, rufen Sie das OLE-Popup-Menü mit der rechten Maustaste (bei Windows-Plattformen) auf. Wählen Sie Links aus dem OLE-Popup-Menü.

Daraufhin wird das Dialogfeld Links angezeigt. Im Dialogfeld Links werden die aktuellen Verknüpfungen zu Quelldateien dargestellt.

3	Wählen Sie einen Link zu einer Quelldatei, und wählen Sie Verknüpfung unterbrechen. Beachten Sie, daß der Link aus dem Dialogfeld Links entfernt wird.

4	Klicken Sie auf Schließen.


Über das Konvertieren von OLE-Objekten

  Verwandte Themen

Sie können ein OLE-Objekt von einem Format zu einem anderen konvertieren. Das Konvertieren von OLE-Objekten wird benutzt, um OLE-Objekte zu bearbeiten, wenn die OLE-Serveranwendung, aus der das OLE-Objekt stammt, nicht verfügbar ist.

Die Konvertieren-Option kann aus dem Untermenü Objekt des OLE-Popup-Menüs aufgerufen werden. Sie können ein Objekt endgültig oder vorübergehend zu Bearbeitungszwecken in ein neues Format konvertieren.

Weil verknüpfte Objektquelldateien nicht Bestandteil eines Formmoduls sind, können Sie verknüpfte Objekte in Form Builder nicht von einem Format zu einem anderen konvertieren. Sie können nur verknüpfte Objekte auf der Quellebene konvertieren.


Eingebettete OLE-Objekte konvertieren

So konvertieren Sie ein eingebettetes OLE-Objekt:

1	Klicken Sie im Layouteditor auf den OLE-Container.

Stellen Sie sicher, daß für das Attribut OLE-Popup-Menü anzeigen Ja angegeben wird und daß der Menüpunkt Objekt von OLE-Popup-Menüpunkte auf Anzeigen und Aktivieren eingestellt ist.

2	Während der Mauscursor im OLE-Container steht, rufen Sie das OLE-Popup-Menü mit der rechten Maustaste (auf Windows-Plattformen auf. Aus dem OLE-Popup-Menü wählen Sie aus Objekt [image] Konvertieren aus.

Daraufhin wird das Dialogfeld Konvertieren angezeigt. Im Dialogfeld Konvertieren werden der aktuelle Objekttyp und die Konvertierungsmöglichkeiten dargestellt.

3	Wählen Sie einen Objekttyp für die Konvertierung.

4	Wählen Sie Konvertieren zu oder Aktivieren als. Bei Konvertieren zu wird das Format des Objekts endgültig in den ausgewählten Objekttyp geändert. Bei Aktivieren als wird eine temporäre Konvertierung durchgeführt, bei der ein Objekt bearbeitet oder angezeigt werden kann, wenn keine OLE-Serveranwendung gefunden wird.

5	Klicken Sie auf OK.


OLE Bibliotheksoberflächen importieren

  Verwandte Themen

So importieren Sie OLE-Methoden:

1	Wählen Sie Programm [image] OLE-Bilbiotheksoberflächen importieren...

Daraufhin wird das Dialogfeld OLE-Bibliotheksoberflächen importieren angezeigt.

2	Wählen Sie eine OLE-Klasse.

Die Methoden- und Ereignispakete für die ausgewählte OLE-Klasse werden angezeigt.

3	Klicken Sie mit gedrückter Strg-Taste auf das gewünschte Methodenpaket.

4	Klicken Sie auf das Kontrollkästchen Methoden, um die Methode zu importieren.

5	Klicken Sie auf das Kontrollkästchen Attribute, um die Einlesen- und Einstellen-Routinen für Attribute zu importieren.

6	Klicken Sie auf OK.

Beachten Sie im Objektnavigator die neu erstellten Pakete unter dem Knoten Programmblöcke.

Hinweis: OLE-Objekte exportieren Schnittstellen, die Methoden bereitstellen. Form Builder importiert die Methoden in PL/SQL. Sie können mit OLE-Objekten in der allgemeinen Form Builder-Umgebung arbeiten.


Mit OLE-Objekten zusammenarbeiten

  Verwandte Themen

Sie können auf zwei verschiedene Arten mit OLE-Objekten zusammenarbeiten:

•	OLE-Atribute einstellen und einlesen

•	OLE-Methoden aufrufen


OLE Attribute einstellen und einlesen

 Einschränkungen	 Beispiele	     Verwandte Themen

Es gibt zwei Möglichkeiten, OLE-Attributwerte einzustellen und einzulesen:

•	Syntax von Bindevariablen

•	Routinen für den Aufruf von Attributen (PL/SQL-Prozeduren)

So stellen Sie OLE-Attribute mit der Syntax von Bindevariablen ein bzw. lesen sie ein:

Benutzen Sie die Syntax der Bindevariablen :item('block_name.item_name').ocx.server_name.property, um Attributwerte zuzuweisen oder abzurufen, wobei block_name der Name des Datenblock ist, item_name der Name des ActiveX-Steuerelementobjekts, server_name der Name des ActiveX-Serverobjekts und property der Name des ActiveX-Steuerelementattributs, auf das zugegriffen wird.

So stellen Sie OLE-Attribute mit Routinen für den Aufruf von Attributen ein bzw. lesen sie ein:

Benutzen Sie die Funktionen der Routine für den Zugriff auf Attribute, um einen Attributwert einzulesen, während Sie die Prozeduren der Routine für den Aufruf von Attributen benutzen, um einen Attributwert einzustellen.


Beispiele für das Einstellen und Einlesen von OLE-Attributen

 Einschränkungen

Beispiel 1

/* Setting an OLE property using bind variable syntax */

:item('OLEitem').OCX.SpreadSheet.CellForeGroundColor:=
:item('OLEitem').OCX.SpreadSheet.CellForeGroundColor + 1;

OLEitem ist der Name des Objekts, SpreadSheet ist der Name des OLE-Steuerelement-Servers, und CellForeGroundColor ist der Name des Attributs.

Beispiel 2

/* Setting an OLE property using set accessor */

Variant OleVar;
Variant := EXCEL_WORKSHEET.ole_Range(:CTRL.interface,
To_variant('A1'));

EXCEL_WORKSHEET ist der Name des Pakets, das von dem OLE-Importer erstellt wird. OLE_RANGE ist der Name der Routine für den Aufruf des Attributs.


Einschrän kungen beim Einstellen und Einlesen von OLE-Attributen

•	:item('OLEitm').OCX.server_name.property_name wird nicht kompiliert, wenn server_name nicht auf Ihrem Rechner gespeichert ist.

•	Bei anderen Plattformen als Microsoft Windows gibt der Compiler möglicherweise eine Warnmeldung aus, weil OLE-Attributtypen auf der UNIX-Plattform nicht bestimmt werden können.

•	Ihre Form wird nicht kompiliert, wenn das OLE-Objekt unterschiedliche Attributnamen bei verschiedenen Sprachen exportiert.

•	Das aufgerufene OLE-Attribut kann nicht vom Typ Variante sein.


Über das Aufrufen von OLE-Automationsmethoden

 Beispiele	     Verwandte Themen

Sie können auf Methoden, die von einem OLE-Objekt bereitgestellt werden, mit den von dem OLE-Importer generierten Programmblöcken zugreifen. Rufen Sie eine der Methoden in einem der verfügbaren Pakete unter dem Knoten Programmblöcke auf.

Hinweis: Einige OLE-Server, wie z.B. Microsoft Excel, benutzen variante Typen. Weil viele der Methoden für diese bestimmten Server die Benutzung von varianten Typen voraussetzen, enthält das vordefinierte Paket STANDARD die Prozeduren und Funktionen für die erforderliche Konvertierung zu und aus varianten Typen. Lebensdauer und Geltungsbereich eines varianten Typs ist auf einen Trigger beschränkt. Der von dem varianten Typ belegte Speicherplatz wird freigegeben, wenn der Trigger beendet ist. Sie können Lebensdauer und Geltungsbereich eines varianten Typs erweitern, indem Sie den Parameter persistent in To_Variant() auf TRUE einstellen und die Ergebnisse einer globalen Variablen zuweisen. Globale Varianten müssen explizit mit Destroy_Variant() zerstört werden. Außerdem sind mit Create_OleObj() erstellte OLE-Objekte im Geltungsbereich global (der Parameter persistent entspricht standardmäßig TRUE). Sie müssen Release_Obj() explizit aufrufen, um globale Objekte freizugeben.


Beispiele für das Aufrufen von OLE-Automationsmethoden

Beispiel 1

/*

Set the value of a single cell in Microsoft Excel using the automatically generated PL/SQL methods.
*/

DECLARE
/* Create a variable of variant type. */
Variant OleVar;

BEGIN
/* Find the range of the cells you want to interact with */
Variant := EXCEL_WORKSHEET.ole_Range(
                              :CTRL.interface,
                               To_Variant('A1'));

/* Set cell A1 to contain 20 */
EXCEL_RANGE.Value(
           Var_to_Obj(Variant),
           To_Variant('20'));
END;


Über Open API

  Verwandte Themen

Die Open API von Form Builder ist eine hochentwickelte Funktion für C/C++ Entwickler, die profunde Kenntnisse von Form-Objekten und deren Beziehungen haben.

Form Builder bietet Ihnen eine Open Application Programming Interface, mit der Sie Formmodule erstellen oder ändern können (.fmb-Dateien). Die Open API bietet Ihnen die Leistungsfähigkeit und Flexibilität, Formmodule in einer nicht interaktiven Umgebung zu erstellen oder zu ändern. Sie wurde speziell für den C/C++ Programmierer entworfen.


Über Header-Dateien von Open API

  Verwandte Themen

Eine Reihe von C-Header-Dateien stellt die Open APIs für Sie bereit. Es gibt eine C-Header-Datei pro Objekttyp. Als nächstes sehen Sie eine Liste der Objekttypen von Form Builder und der zugehörigen Header-Dateien:

Zugeordnete Bibliothek	d2falb.h
Warnfenster	d2falt.h
Block	d2fblk.h
Leinwand	d2fcnv.h
Datenquellargumente	d2fdsa.h
Datenquelle	d2fdsc.h
Editor	d2fedt.h
Formmodul	d2ffmd.h
Formparameter	d2ffpm.h
Objekt Grafik	d2fgra.h
Objekt	d2fitm.h
Wertelisten-Spaltenzuordnung	d2flcm.h
Werteliste	d2flov.h
Menümodul	d2fmmd.h
Menüpunkt	d2fmni.h
Menü	d2fmnu.h
Menüparameter	d2fmpm.h
Allgemeines Objekt	d2fob.h
Objektgruppe	d2fobg.h
Untergeordnete Objektgruppe	d2fogc.h
Objektbibliothek	d2folb.h
Objektbibliotheksregister	d2folt.h
Programmblock	d2fpgu.h
Attributklasse	d2fppc.h
Attribut	d2fpr.h
Datensatzgruppe	d2frcg.h
Datensatzgruppen-Spaltenspezifikation	d2frcs.h
Optionsschaltfläche	d2frdb.h
Beziehung	d2frel.h
Bericht	d2frpt.h
Registerseite	d2ftbp.h
Trigger	d2ftrg.h
Visuelles Attribut	d2fvat.h
Fenster	d2fwin.h

Als nächstes finden Sie eine Gruppe mit C-Header-Dateien, die keinen bestimmten Form Builder-Objekten entsprechen, jedoch für die Benutzung von Open API relevante Informationen enthalten:

Funktionen zur Bearbeitung des API-Kontextes	d2fctx.h
Auflistung aller Objekte und aller Attribute	d2fdef.h
Dienstprogramme zur Verarbeitung von Attributen	d2fpr.h
Fehler	d2ferr.h
Von ORACLE verwendete Typen	oratypes.h


Über Objekte und Beziehungen von Open API

  Verwandte Themen

In dieser Abbildung werden die Objekte von Form Builder und deren Beziehungen dargestellt.


Attribute von Open API nach Objekten

  Verwandte Themen

Jedes Form Builder-Objekt von Open API umfaßt eine Reihe von Open API-Attributen.

API-Attribute nach Objekt

Warnfenster

Zugeordnete Bibliotheken

Blöcke

Leinwand

Datenquellargumente

Datenquellspalten

Editoren

Formmodule

Formparameter

Grafiken

Objekte

Werteliste Spaltenzuordnung

Werteliste

Menüpunkte

Menümodule

Menüpunkte

Menüparameter

Objekte(Allgemeine Objekte)

Objektgruppen

Untergeordnete Objektgruppen

Objektbibliothek

Programmblock

Attributklassen

Optionsschaltflächen

Datensatzgruppen

Datensatzgruppen-Spaltenspezifikation

Beziehungsobjekte

Berichtobjekte

Registerseiten

Trigger

Visuelle Attribute

Fenster


API-Attribute für Warnfensterobjekte

 Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_ALT_MSG	Meldung
D2FP_ALT_STY	Typ des Warnfensters
D2FP_BACK_COLOR	Hintergrundfarbe
D2FP_BTN_1_LBL	Beschriftung Schaltfläche 1
D2FP_BTN_2_LBL	Beschriftung Schaltfläche 2
D2FP_BTN_3_LBL	Beschriftung Schaltfläche 3
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Kommentare
D2FP_DFLT_ALT_BTN	Standard-Warnschaltfläche
D2FP_FILL_PAT	Füllmuster
D2FP_FONT_NAM	Schriftartname
D2FP_FONT_SIZE	Schriftgrad
D2FP_FONT_SPCING	Zeichenabstand
D2FP_FONT_STY	Schriftstil
D2FP_FONT_WGHT	Schriftstärke
D2FP_FORE_COLOR	Vordergrundfarbe
D2FP_LANG_DIR	Richtung
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_SOURCE	D2FP_SOURCE
D2FP_TITLE	Titel
D2FP_VAT_NAM	Visuelle Attributgruppe
D2FP_VAT_OBJ	D2FP_VAT_OBJ
D2FP_WHITE_ON_BLACK	Weiß auf Schwarz


API-Attribute für zugeordnete Bibliotheksobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Kommentare
D2FP_LIB_LOC	Speicherort von PL/SQL- Bibliothek
D2FP_LIB_SRC	Quelle von PL/SQL- Bibliothek
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_PREVIOUS	D2FP_PREVIOUS


API-Attribute für Blockobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_BACK_COLOR	Hintergrundfarbe
D2FP_BLK_DESCRIPTION	Datenblockbeschreibung
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Kommentare
D2FP_DB_BLOCK	Datenbank-Datenblock
D2FP_DEL_ALLOWED	Löschen zulässig
D2FP_DEL_PROC_NAM	Prozedurname löschen
D2FP_DML_ARY_SIZ	DML-Array-Größe
D2FP_DML_DAT_NAM	DML-Datenzielname
D2FP_DML_DAT_TYP	DML-Datenzieltyp
D2FP_ENFRC_COL_SECURITY	Spaltensicherheit durchsetzen
D2FP_ENFRC_PRMRY_KEY	Primärschlüssel durchsetzen
D2FP_FILL_PAT	Füllmuster
D2FP_FONT_NAM	Schriftartname
D2FP_FONT_SIZE	Schriftgrad
D2FP_FONT_SPCING	Zeichenabstand
D2FP_FONT_STY	Schriftstil
D2FP_FONT_WGHT	Schriftstärke
D2FP_FORE_COLOR	Vordergrundfarbe
D2FP_INSRT_ALLOWED	Einsetzen zulässig
D2FP_INSRT_PROC_NAM	Prozedurname einfügen
D2FP_ITEM	D2FP_ITEM
D2FP_KEY_MODE	Schlüsselmodus
D2FP_LANG_DIR	Richtung
D2FP_LOCK_MODE	Sperrmodus
D2FP_LOCK_PROC_NAM	Prozedurname sperren
D2FP_LST_IN_BLK_MNU	In Datenblockmenü aufgelistet
D2FP_MAX_QRY_TIME	Maximale Abfragezeit
D2FP_MAX_RECS_FETCHED	Maximal abgerufene Datensätze
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Name
D2FP_NAVIGATION_STY	Navigationsstil
D2FP_NEXT	D2FP_NEXT
D2FP_NXT_NAVIGATION_BLK_OBJ	D2FP_NXT_NAVIGATION_BLK_OBJ
D2FP_NXT_NAVIGATION_BLK_NAM	Nächster Navigationsblock
D2FP_OPT_HINT	Optimizer-Hinweis
D2FP_ORDER_BY_CLAUSE	ORDER BY-Klausel
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PRECOMP_SUMM	D2FP_PRECOMP_SUMM
D2FP_PREV_NAVIGATION_BLK_NAM	Vorheriger Navigationsblock
D2FP_PREV_NAVIGATION_BLK_OBJ	D2FP_PREV_NAVIGATION_BLK_OBJ
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_QRY_ALL_RECS	Alle Datensätze abfragen
D2FP_QRY_ALLOWED	Abfrage zulässig
D2FP_QRY_DAT_SRC_NAM	Abfrage-Datenquellname
D2FP_QRY_DAT_SRC_TYP	Abfrage-Datenquelltyp
D2FP_REC_ORNT	Datensatzdarstellung
D2FP_REC_VAT_GRP_NAM	Visuelle Attributgruppe Aktueller Datensatz
D2FP_REC_VAT_GRP_OBJ	D2FP_REC_VAT_GRP_OBJ
D2FP_RECS_BUFFERED_COUNT	Anzahl gepufferter Datensätze
D2FP_RECS_DISP_COUNT	Anzahl angezeigter Datensätze
D2FP_RECS_FETCHED_COUNT	Abzurufende Datensätze
D2FP_REL	D2FP_REL
D2FP_REV_DIR	Umgekehrte Richtung
D2FP_SCRLBR_CNV_NAM	Bildlaufleisten-Leinwand
D2FP_SCRLBR_CNV_OBJ	D2FP_SCRLBR_CNV_OBJ
D2FP_SCRLBR_HGT	Bildlaufleisten-Höhe
D2FP_SCRLBR_ORNT	Bildlaufleisten-Darstellung
D2FP_SCRLBR_TBP_NAM	Bildlaufleiste Registerseite
D2FP_SCRLBR_TBP_OBJ	D2FP_SCRLBR_TBP_OBJ
D2FP_SCRLBR_WID	Bildlaufleisten-Breite
D2FP_SCRLBR_X_POS	Bildlaufleiste X-Position
D2FP_SCRLBR_Y_POS	Bildlaufleiste Y-Position
D2FP_SHOW_SCRLBR	Bildlaufleiste anzeigen
D2FP_SNGL_REC	Einzelner Datensatz
D2FP_SOURCE	D2FP_SOURCE
D2FP_TRIGGER	D2FP_TRIGGER
D2FP_UPDT_ALLOWED	Aktualisieren zulässig
D2FP_UPDT_CHANGED_COLS	Nur geänderte Spalten aktualisieren
D2FP_UPDT_PROC_NAM	Prozedurname aktualisieren
D2FP_VAT_NAM	Visuelle Attributgruppe
D2FP_VAT_OBJ	D2FP_VAT_OBJ
D2FP_WHERE_CLAUSE	WHERE-Klausel
D2FP_WHITE_ON_BLACK	Weiß auf Schwarz


API-Attribute für Leinwandobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_BACK_COLOR	Hintergrundfarbe
D2FP_BEVEL	Umriß
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_CNV_TYP	Leinwandtyp
D2FP_COMMENT	Kommentare
D2FP_FILL_PAT	Füllmuster
D2FP_FONT_NAM	Schriftartname
D2FP_FONT_SIZE	Schriftgrad
D2FP_FONT_SPCING	Zeichenabstand
D2FP_FONT_STY	Schriftstil
D2FP_FONT_WGHT	Schriftstärke
D2FP_FORE_COLOR	Vordergrundfarbe
D2FP_GRAPHIC	D2FP_GRAPHIC
D2FP_HEIGHT	Breite/Höhe
D2FP_LANG_DIR	Richtung
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_POPUP_MNU_NAM	Popup-Menü
D2FP_POPUP_MNU_OBJ	D2FP_POPUP_MNU_OBJ
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_RAISE_ON_ENT	Automatisch anzeigen
D2FP_SHOW_HORIZ_SCRLBR	Horizontale Bildlaufleiste anzeigen
D2FP_SHOW_VERT_SCROLL	Vertikale Bildlaufleiste anzeigen
D2FP_SOURCE	D2FP_SOURCE
D2FP_TAB_ATT_EDGE	Register-Zuordnungskante
D2FP_TAB_PAGE	Registerseite
D2FP_TAB_STY	Registerstil
D2FP_VAT_NAM	Visuelle Attributgruppe
D2FP_VAT_OBJ	D2FP_VAT_OBJ
D2FP_VISIBLE	Sichtbar
D2FP_VPRT_HGT	Ausschnitthöhe
D2FP_VPRT_WID	Ausschnittbreite
D2FP_VPRT_X_POS	Ausschnitt X-Position
D2FP_VPRT_X_POS_ON_CNV	Ausschnitt X-Position auf Leinwand
D2FP_VPRT_Y_POS	Ausschnitt Y-Position
D2FP_VPRT_Y_POS_ON_CNV	Ausschnitt Y-Position auf Leinwand
D2FP_WHITE_ON_BLACK	Weiß auf Schwarz
D2FP_WIDTH	Breite/Höhe
D2FP_WND_NAM	Fenster
D2FP_WND_OBJ	D2FP_WND_OBJ


API-Attribute für Datenquellargumentobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_DSA_MODE	D2FP_DSA_MODE
D2FP_DSA_NAM	D2FP_DSA_NAM
D2FP_DSA_TYP	D2FP_DSA_TYP
D2FP_DSA_TYPE_NAM	D2FP_DSA_TYP_NAM
D2FP_DSA_VAL	D2FP_DSA_VAL
D2FP_NEXT	D2FP_NEXT
D2FP_PREVIOUS	D2FP_PREVIOUS


API-Attribute für Datenquellspaltenobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_DSC_LEN	D2FP_DSC_LEN
D2FP_DSC_MANDATORY	D2FP_DSC_MANDATORY
D2FP_DSC_NAM	D2FP_DSC_NAM
D2FP_DSC_PRECISION	D2FP_DSC_PRECISION
D2FP_DSC_SCALE	D2FP_DSC_SCALE
D2FP_DSC_TYP	D2FP_DSC_TYPE
D2FP_NEXT	D2FP_NEXT
D2FP_PREVIOUS	D2FP_PREVIOUS


API-Attribute für Editor-Objekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_BACK_COLOR	Hintergrundfarbe
D2FP_BTM_TTL	Fußnote
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Kommentare
D2FP_FILL_PAT	Füllmuster
D2FP_FONT_NAM	Schriftartname
D2FP_FONT_SIZE	Schriftgrad
D2FP_FONT_SPCING	Zeichenabstand
D2FP_FONT_STY	Schriftstil
D2FP_FONT_WGHT	Schriftstärke
D2FP_FORE_COLOR	Vordergrundfarbe
D2FP_HEIGHT	Breite/Höhe
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_SHOW_HORZ_SCRLBR	Horizontale Bildlaufleiste anzeigen
D2FP_SHOW_VERT_SCRLBR	Vertikale Bildlaufleiste anzeigen
D2FP_SOURCE	D2FP_SOURCE
D2FP_TITLE	Titel
D2FP_VAT_NAM	Visuelle Attributgruppe
D2FP_VAT_OBJ	D2FP_VAT_OBJ
D2FP_WHITE_ON_BLACK	Weiß auf Schwarz
D2FP_WIDTH	Breite/Höhe
D2FP_WRAP_STY	Umbruchstil
D2FP_X_POS	X-Position/Y-Position
D2FP_Y_POS	X-Position/Y-Position


API-Attribute für Formmodulobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_ALERT	D2FP_ALERT
D2FP_ATT_LIB	D2FP_ATT_LIB
D2FP_BLOCK	D2FP_BLOCK
D2FP_CANVAS	D2FP_CANVAS
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Kommentare
D2FP_CONSOLE_WIN	Konsolfenster
D2FP_CRSR_MODE	Cursor-Modus
D2FP_EDITOR	Editor
D2FP_FORM_PARAM	D2FP_FORM_PARAM
D2FP_FRST_NAVIGATION_BLK_NAM	Erster Navigationsblock
D2FP_FRST_NAVIGATION_BLK_OBJ	D2FP_FIRST_NAVIGATION_BLK_OBJ
D2FP_HORZ_TLBR_CNV	Horizontale Symbolleisten-Leinwand
D2FP_INIT_MNU	Ausgangsmenü
D2FP_INTERACTION_MODE	Interaktionsmodus
D2FP_ISOLATION_MODE	Isolationsmodus
D2FP_LANG_DIR	Richtung
D2FP_LOV	Werteliste
D2FP_MAX_QRY_TIME	Maximale Abfragezeit
D2FP_MAX_RECS_FETCHED	Maximal abgerufene Datensätze
D2FP_MENU	D2FP_MENU
D2FP_MNU_MOD	Menümodul
D2FP_MNU_ROLE	Menümodulrollen
D2FP_MNU_SRC	Menüquelle
D2FP_MNU_STY	Menüstil
D2FP_MOUSE_NAVIGATION_LMT	Mausnavigationsbegrenzung
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_OBJ_GRP	D2FP_OBJ_GRP
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_PROG_UNIT	D2FP_PROG_UNIT
D2FP_PROP_CLASS	Attributklasse
D2FP_REC_GRP	Datensatzgruppe
D2FP_REC_VAT_GRP_NAM	Visuelle Attributgruppe Aktueller Datensatz
D2FP_REC_VAT_GRP_OBJ	D2FP_REC_VAT_GRP_OBJ
D2FP_REPORT	D2FP_REPORT
D2FP_SVPNT_MODE	Savepoint-Modus
D2FP_TITLE	Titel
D2FP_TRIGGER	D2FP_TRIGGER
D2FP_USE_3D_CNTRLS	3D-Steuerelemente verwenden
D2FP_VALIDATION_UNIT	Validierungseinheit
D2FP_VERT_TLBR_CNV	Vertikale Symbolleisten-Leinwand
D2FP_VIS_ATTR	D2FP_VIS_ATTR
D2FP_WINDOW	Fenster


API-Attribute für Formparameterobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Kommentare
D2FP_MAX_LEN	Maximale Länge
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PARAM_DAT_TYPE	Parameter-Datentyp
D2FP_PARAM_INIT_VAL	Parameter-Ausgangswert
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_SOURCE	D2FP_SOURCE


API-Attribute für Grafikobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_ALLOW_EXPANSION	Erweitern zulassen
D2FP_ALLOW_MLT_LIN_PRMPTS	Mehrzeilige Prompts zulassen
D2FP_ALLOW_STRT_ATT_PRMPTS	Mit Start verknüpfte Prompts zulassen
D2FP_ALLOW_TOP_ATT_PRMPTS	Mit oberem Rand verknüpfte Prompts zulassen
D2FP_ARROW_STY	Pfeilstil
D2FP_BEVEL	Umriß
D2FP_CAP_STY	Linienende Objektrand
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_CLIP_HGT	Höhe Begrenzungsrechteck
D2FP_CLIP_WID	Breite Begrenzungsrechteck
D2FP_CLIP_X_POS	X-Ursprung Begrenzungsrechteck
D2FP_CLIP_Y_POS	Y-Ursprung Begrenzungsrechteck
D2FP_CLOSED	Polygon-Marke/Begrenzungslinie
D2FP_CORNER_RADIUS_X	X-Winkelradius für Abgerundetes Rechteck
D2FP_CORNER_RADIUS_Y	Y-Winkelradius für Abgerundetes Rechteck
D2FP_CSTM_SPCING	Benutzerdefinierter Abstand für Textobjekt
D2FP_DASH_STY	Strichart für Objektrand
D2FP_DISP_QLTY	Anzeigequalität
D2FP_DIST_BTWN_RECS	Abstand zwischen Datensätzen
D2FP_DITHER	Bild-Dithering bei Grafiken
D2FP_EDGE_BACK_COLOR	Hintergrundfarbe Objektrand
D2FP_EDGE_FORE_COLOR	Vordergrundfarbe Objektrand
D2FP_END_ANGLE	Endwinkel
D2FP_FIXED_BOUNDING_BX	Feste Größe von Objektumrandung
D2FP_FONT_SCALEABLE	Punktgröße skaliert mit Objekt
D2FP_FRAME_ALIGN	Rahmenausrichtung
D2FP_FRAME_TTL	Rahmentitel
D2FP_FRAME_TTL_ALIGN	Ausrichtung Rahmentitel
D2FP_FRAME_TTL_BACK_COLOR	Rahmentitel Hintergrundfarbe
D2FP_FRAME_TTL_FILL_PAT	Rahmentitel Füllmuster
D2FP_FRAME_TTL_FONT_NAM	Rahmentitel Schriftartname
D2FP_FRAME_TTL_FONT_SIZ	Rahmentitel Schriftgrad
D2FP_FRAME_TTL_FONT_SPCING	Rahmentitel Zeichenabstand
D2FP_FRAME_TTL_FONT_STY	Rahmentitel Schriftstil
D2FP_FRAME_TTL_FONT_WGHT	Rahmentitel Schriftstärke
D2FP_FRAME_TTL_FORE_COLOR	Rahmentitel Vordergrundfarbe
D2FP_FRAME_TTL_OFST	Versatz Rahmentitel
D2FP_FRAME_TTL_SPCING	Abstand Rahmentitel
D2FP_FRAME_TTL_VAT_NAM	Rahmentitel Visuelle Attributgruppe
D2FP_FRAME_TTL_VAT_OBJ	D2FP_FRAME_TTL_VAT_OBJ
D2FP_GRA_DIST_BTWN_RECS	Abstand zwischen Datensätzen bei Grafikobjekten
D2FP_GRA_FONT_NAM	Schriftartname bei Grafiken
D2FP_GRA_FONT_SIZ	Schriftgrad bei Grafiken
D2FP_GRA_FONT_STY	Schriftstil bei Grafiken
D2FP_GRA_TEXT	Grafiktext
D2FP_GRAPHIC	D2FP_GRAPHIC
D2FP_GRAPHICS_TYP	Objekttyp bei Grafiken
D2FP_HEIGHT	Breite/Höhe
D2FP_HORZ_JST	Horizontale Justierung von Textobjekt
D2FP_HORZ_MARGN	Horizontaler Rand
D2FP_HORZ_OBJ_OFST	Horizontaler Objektversatz
D2FP_HORZ_ORGN	Horizontalposition relativ zum Ursprung
D2FP_INVISIBLE	Text unsichtbar
D2FP_JOIN_STY	Verknüpfungsstil von Objektrand
D2FP_LANG_DIR	Richtung
D2FP_LAYOUT_DATA_BLK_NAM	Layout-Datenblock
D2FP_LAYOUT_STY	Layoutstil
D2FP_LIN_SPCING	Zeilenabstand
D2FP_LIN_WID	Zeilenbreite
D2FP_MAX_OBJS	Max. Objekte pro Zeile
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_POINT	Schriftgrad
D2FP_RECS_DISP_COUNT	Anzahl angezeigter Datensätze
D2FP_ROTATION_ANGLE	Drehwinkel
D2FP_SCRLBR_ALIGN	Ausrichtung Bildlaufleiste
D2FP_SCRLBR_WID	Bildlaufleisten-Breite
D2FP_SHRINKWRAP	Shrinkwrap
D2FP_SNGL_OBJ_ALIGN	Ausrichtung einzelnes Objekt
D2FP_SOURCE	D2FP_SOURCE
D2FP_STRT_ANGLE	Anfangswinkel
D2FP_STRT_PRMPT_ALIGN	Start Prompt-Ausrichtung
D2FP_STRT_PRMPT_OFST	Start Prompt-Versatz
D2FP_TBP_NAM	D2FP_TBP_NAM
D2FP_TBP_OBJ	D2FP_TBP_OBJ
D2FP_TOP_PRMPT_ALIGN	Ausrichtung oberer Prompt
D2FP_TOP_PRMPT_OFST	Versatz oberer Prompt
D2FP_TTL_READING_ORDR	Lesereihenfolge für Titel
D2FP_UPDT_LAYOUT	Layout aktualisieren
D2FP_VERT_FILL	Vertikales Füllen
D2FP_VERT_JST	Vertikale Justierung
D2FP_VERT_MARGN	Vertikaler Rand
D2FP_VERT_OBJ_OFST	Vertikaler Objektversatz
D2FP_VERT_ORGN	Vertikalposition relativ zum Ursprung
D2FP_WIDTH	Breite/Höhe
D2FP_WRAP_TXT	Textumbruch
D2FP_X_POS	X-Position/Y-Position
D2FP_Y_POS	X-Position/Y-Position


API-Attribute für Item-Objekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_ACCESS_KEY	Zugriffstaste
D2FP_AUDIO_CHNNLS	Audio-Kanäle
D2FP_AUTO_HINT	Hinweis automatisch anzeigen
D2FP_AUTO_SKP	Automatisches Überspringen
D2FP_BACK_COLOR	Hintergrundfarbe
D2FP_BEVEL_STY	Umriß
D2FP_CALC_MODE	Berechnungsmodus
D2FP_CASE_INSENSITIVE_QRY	Abfrage ohne Berücksichtigung der Schreibweise
D2FP_CASE_RSTRCTION	Einschränkung Schreibweise
D2FP_CHK_BX_OTHER_VALS	Kontrollkästchenzuordnung anderer Werte
D2FP_CHKED_VAL	Ausgewählt
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_CMPRSSION_QLTY	Komprimierungsqualität
D2FP_CNV_NAM	Leinwand
D2FP_CNV_OBJ	D2FP_CNV_OBJ
D2FP_COL_NAM	Spaltenname
D2FP_COMM_MODE	Kommunikationsmodus
D2FP_COMMENT	Kommentare
D2FP_COMPRESS	Komprimieren
D2FP_CONCEAL_DATA	Daten verbergen
D2FP_COPY_VAL_FROM_ITM	Wert aus Objekt kopieren
D2FP_DAT_SRC_BLK	Datenquellblock
D2FP_DAT_SRC_X_AXS	Datenquelle X-Achse
D2FP_DAT_SRC_Y_AXS	Datenquelle Y-Achse
D2FP_DAT_TYP	Datentyp
D2FP_DB_ITM	Datenbankobjekt
D2FP_DFLT_BTN	Standardschaltfläche
D2FP_DISP_QLTY	Anzeigequalität
D2FP_DIST_BTWN_RECS	Abstand zwischen Datensätzen
D2FP_EDT_NAM	Editor
D2FP_EDT_OBJ	D2FP_EDT_OBJ
D2FP_EDT_X_POS	Editor X-Position, Editor Y-Position
D2FP_EDT_Y_POS	Editor X-Position, Editor Y-Position
D2FP_ENABLED	Aktiviert
D2FP_EXEC_MODE	Ausführungsmodus
D2FP_FILL_PAT	Füllmuster
D2FP_FIXED_LEN	Feste Länge
D2FP_FLNAM	Dateiname
D2FP_FMT_MSK	Formatmaske
D2FP_FONT_NAM	Schriftartname
D2FP_FONT_SIZE	Schriftgrad
D2FP_FONT_SPCING	Zeichenabstand
D2FP_FONT_STY	Schriftstil
D2FP_FONT_WGHT	Schriftstärke
D2FP_FORE_COLOR	Vordergrundfarbe
D2FP_FORMULA	Formel
D2FP_HEIGHT	Breite/Höhe
D2FP_HIGHEST_ALLOWED_VAL	Höchster zulässiger Wert/Niedrigster zulässiger Wert
D2FP_HINT	Hinweis
D2FP_ICON_FLNAM	Symbol-Dateiname
D2FP_ICONIC	Als Symbol
D2FP_IMG_DPTH	Bildtiefe
D2FP_IMG_FMT	Bildformat
D2FP_INIT_KBRD_DIR	Anfänglicher Tastaturstatus
D2FP_INIT_VAL	Ausgangswert
D2FP_INSRT_ALLOWED	Einsetzen zulässig
D2FP_ITM_TYP	Objekttyp
D2FP_ITMS_DISP	Anzahl angezeigter Objekte
D2FP_JUSTIFICATION	Justierung
D2FP_KBRD_NAVIGABLE	Tastatur-navigierbar
D2FP_KEEP_CRSR_POS	Cursor-Position beibehalten
D2FP_LABEL	Beschriftung
D2FP_LANG_DIR	Richtung
D2FP_LOCK_REC	Datensatz sperren
D2FP_LOV_NAM	X-Position Liste
D2FP_LOV_OBJ	D2FP_LOV_OBJ
D2FP_LOV_X_POS	Werteliste
D2FP_LOV_Y_POS	Y-Position ListeLOVPOSITY
D2FP_LOWEST_ALLOWED_VAL	Höchster zulässiger Wert/Niedrigster zulässiger Wert
D2FP_LST_ELEMENT_COUNT	Anzahl von Listenelementobjekten
D2FP_LST_STY	Listenstil
D2FP_MAX_LEN	Maximale Länge
D2FP_MLT_LIN	Mehrzeilig
D2FP_MODULE	D2FP_MODULE
D2FP_MOUSE_NAVIGATE	Mausnavigation
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_NXT_NAVIGATION_ITM_OBJ	D2FP_NXT_NAVIGATION_ITM_OBJ
D2FP_NXT_NAVIGATION_ITM_NAM	Nächstes Navigationsobjekt
D2FP_ACTIVEX_CLASS	OLE-Klasse
D2FP_ACTIVEX_VAL_PROP	Steuerelementattribute
D2FP_OLE_ACT_STY	OLE-Aktivierungsstil
D2FP_OLE_CLASS	OLE-Klasse
D2FP_OLE_IN_PLACE_ACT	OLE in Forms aktiviert
D2FP_OLE_INSD_OUT_SUPPORT	OLE-Austauschunterstützung
D2FP_OLE_POPUP_MNU_ITMS	OLE-Popup-Menüpunkte
D2FP_OLE_RESIZ_STY	OLE-Skalierungsstil
D2FP_OLE_SHOW_POP_UP_MNU	OLE Popup-Menü anzeigen
D2FP_OLE_SHOW_TNNT_TYP	OLE-Bewohnertyp anzeigen
D2FP_OLE_TNNT_ASPCT	OLE-Bewohnerdarstellung
D2FP_OLE_TNNT_TYP	OLE-Bewohnertypen
D2FP_OTHER_VALS	Zuordnung anderer Werte
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_POPUP_MNU_NAM	Popup-Menü
D2FP_POPUP_MNU_OBJ	D2FP_POPUP_MNU_OBJ
D2FP_POPUP_VA_OBJ	D2FP_POPUP_VA_OBJ
D2FP_PREV_NAVIGATION_ITM_NAM	Vorheriges Navigationsobjekt
D2FP_PREV_NAVIGATION_ITM_OBJ	D2FP_PREV_NAVIGATION_ITM_OBJ
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_PRMPT	Prompt
D2FP_PRMPT_ALIGN	Prompt-Ausrichtung
D2FP_PRMPT_ALIGN_OFST	Versatz Prompt-Ausrichtung
D2FP_PRMPT_ATT_EDGE	Rand Prompt-Zuordnung
D2FP_PRMPT_ATT_OFST	Versatz Prompt-Zuordnung
D2FP_PRMPT_BACK_COLOR	Prompt-Hintergrundfarbe
D2FP_PRMPT_DISP_STY	Prompt-Anzeigestil
D2FP_PRMPT_FILL_PAT	Prompt-Füllmuster
D2FP_PRMPT_FONT_NAM	Prompt-Schriftartname
D2FP_PRMPT_FONT_SIZ	Prompt-Schriftgrad
D2FP_PRMPT_FONT_SPCING	Prompt-Zeichenabstand
D2FP_PRMPT_FONT_STY	Prompt-Schriftstil
D2FP_PRMPT_FONT_WGHT	Prompt-Schriftstärke
D2FP_PRMPT_FORE_COLOR	Prompt-Vordergrundfarbe
D2FP_PRMPT_JST	Prompt-Justierung
D2FP_PRMPT_READING_ORDR	Prompt-Lesereihenfolge
D2FP_PRMPT_VAT_NAM	Prompt Visuelle Attributgruppe
D2FP_PRMPT_VAT_OBJ	D2FP_PRMPT_VAT_OBJ
D2FP_PRMRY_KEY	Primärschlüssel
D2FP_QRY_ALLOWED	Abfrage zulässig
D2FP_QRY_LEN	Abfragelänge
D2FP_QRY_ONLY	Nur Abfrage
D2FP_RAD_BUT	D2FP_RAD_BUT
D2FP_READING_ORDR	Lesereihenfolge
D2FP_REC_VAT_GRP_NAM	Visuelle Attributgruppe Aktueller Datensatz
D2FP_REC_VAT_GRP_OBJ	D2FP_REC_VAT_GRP_OBJ
D2FP_RENDERED	Gerendert
D2FP_REQUIRED	Erforderlich
D2FP_SHOW_FAST_FWD	Schnellvorlauf-Schaltfläche anzeigen
D2FP_SHOW_HORZ_SCRLBR	Horizontale Bildlaufleiste anzeigen
D2FP_SHOW_PALETTE	Palette anzeigen
D2FP_SHOW_PLAY	Wiedergabe-Schaltfläche anzeigen
D2FP_SHOW_REC	Aufzeichnen-Schaltfläche anzeigen
D2FP_SHOW_REWIND	Rückspul-Schaltfläche anzeigen
D2FP_SHOW_SLIDER	Schieberegler anzeigen
D2FP_SHOW_TIME	Zeitindikator anzeigen
D2FP_SHOW_VERT_SCRLBR	Vertikale Bildlaufleiste anzeigen
D2FP_SHOW_VOLUME	Lautstärkeregler anzeigen
D2FP_SIZING_STY	Skalierungsstil
D2FP_SND_FMT	Klangformat
D2FP_SND_QLTY	Klangqualität
D2FP_SOURCE	D2FP_SOURCE
D2FP_SUMM_BLK_NAM	Summierter Block
D2FP_SUMM_FUNC	Summenfunktion
D2FP_SUMM_ITM_NAM	Summiertes Objekt
D2FP_SYNC_ITM_NAM	Mit Objekt synchronisieren
D2FP_SYNC_ITM_OBJ	D2FP_SYNC_ITM_OBJ
D2FP_TBP_NAM	D2FP_TBP_NAM
D2FP_TBP_OBJ	D2FP_TBP_OBJ
D2FP_TOOLTIP	Tooltip
D2FP_TOOLTIP_VAT_GRP	Tooltip Visuelle Attributgruppe
D2FP_TRIGGER	D2FP_TRIGGER
D2FP_UNCHKED_VAL	Wert, wenn nicht ausgewählt
D2FP_UPDT_ALLOWED	Aktualisieren zulässig
D2FP_UPDT_COMMIT	Nach Festschreiben aktualisieren
D2FP_UPDT_IF_NULL	Nur aktualisieren, wenn NULL
D2FP_UPDT_QRY	Abfrage aktualisieren
D2FP_VALIDATE_FROM_LIST	Aus Liste validieren
D2FP_VAT_NAM	Visuelle Attributgruppe
D2FP_VAT_OBJ	D2FP_VAT_OBJ
D2FP_VISIBLE	Sichtbar
D2FP_WHITE_ON_BLACK	Weiß auf Schwarz
D2FP_WIDTH	Breite/Höhe
D2FP_WRAP_STY	Umbruchstil
D2FP_X_POS	X-Position/Y-Position
D2FP_Y_POS	X-Position/Y-Position


API-Attribute für Wertelisten-Spaltenzuordnungsobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_DISP_WID	Anzeigebreite
D2FP_NAME	Name
D2FP_RTRN_ITM	Rückgabeobjekt
D2FP_TITLE	Titel


API-Attribute für Wertelistenobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_AUTO_COL_WID	Automatische Spaltenbreite
D2FP_AUTO_DISP	Automatisch anzeigen
D2FP_AUTO_POS	Automatische Position
D2FP_AUTO_RFRSH	Automatisches Auffrischen
D2FP_AUTO_SKP	Automatisches Überspringen
D2FP_AUTO_SLCT	Automatische Auswahl
D2FP_BACK_COLOR	Hintergrundfarbe
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COL_MAP	Attribute Spaltenzuordnung
D2FP_COMMENT	Kommentare
D2FP_FILL_PAT	Füllmuster
D2FP_FLTR_BEFORE_DISP	Vor Anzeige filtern
D2FP_FONT_NAM	Schriftartname
D2FP_FONT_SIZE	Schriftgrad
D2FP_FONT_SPCING	Zeichenabstand
D2FP_FONT_STY	Schriftstil
D2FP_FONT_WGHT	SchriftstärkeFONTWGT
D2FP_FORE_COLOR	Vordergrundfarbe
D2FP_HEIGHT	Breite/Höhe
D2FP_LANG_DIR	Richtung
D2FP_LST_TYP	Listentyp
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_OLD_LOV_TXT	Alter Wertelistentext
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_REC_GRP_NAM	Datensatzgruppe
D2FP_REC_GRP_OBJ	D2FP_REC_GRP_OBJ
D2FP_SOURCE	D2FP_SOURCE
D2FP_TITLE	Titel
D2FP_VAT_NAM	Visuelle Attributgruppe
D2FP_VAT_OBJ	D2FP_VAT_OBJ
D2FP_WHITE_ON_BLACK	Weiß auf Schwarz
D2FP_WIDTH	Breite/Höhe
D2FP_X_POS	X-Position/Y-Position
D2FP_Y_POS	X-Position/Y-Position


API-Attribute für Menüobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_BTM_TTL	Fußnote
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Kommentare
D2FP_MNU_ITM	Menüpunkttyp
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_SOURCE	D2FP_SOURCE
D2FP_SUB_TTL	Untertitel
D2FP_TEAR_OFF_MNU	Abtrennbares Menü
D2FP_TITLE	Titel


API-Attribute für Menümodulobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_ATT_LIB	D2FP_ATT_LIB
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Kommentare
D2FP_MAIN_MNU	Hauptmenü
D2FP_MENU	D2FP_MENU
D2FP_MNU_DESCRIPTION	Menübeschreibung
D2FP_MNU_DRCTRY	Menüordner
D2FP_MNU_FLNAM	Menüdateiname
D2FP_NAME	Name
D2FP_OBJ_GRP	D2FP_OBJ_GRP
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PROP_CLASS	Attributklasse
D2FP_SHARE_LIB	Bibliothek mit Form gemeinsam benutzen
D2FP_SHORT_NAM	Kurzname
D2FP_STRTUP_CODE	Startcode
D2FP_USE_SECURITY	Sicherheit verwenden


API-Attribute für Menüpunktobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COM_TXT	Befehlstext
D2FP_COM_TYP	Befehlstyp
D2FP_COMMENT	Kommentare
D2FP_DISP_NO_PRIV	Anzeige ohne Berechtigung
D2FP_ENABLED	Aktiviert
D2FP_FONT_NAM	Schriftartname
D2FP_FONT_SIZE	Schriftgrad
D2FP_FONT_SPCING	Zeichenabstand
D2FP_FONT_STY	Schriftstil
D2FP_FONT_WGHT	Schriftstärke
D2FP_HINT	Hinweis
D2FP_HLP_DESCRIPTION	Hilfe
D2FP_ICON_FLNAM	Symbol-Dateiname
D2FP_ICON_IN_MNU	Als Symbol
D2FP_KBRD_ACC	Schnelltaste
D2FP_LABEL	Beschriftung
D2FP_MAGIC_ITM	Magischer Menüpunkt
D2FP_MNU_ITM_CODE	D2FP_MNU_ITM_CODE
D2FP_MNU_ITM_RAD_GRP	Menüpunkt Optionsgruppe
D2FP_MNU_ITM_TYP	Menüpunkttyp
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_SOURCE	D2FP_SOURCE
D2FP_SUB_MNU_NAM	D2FP_SUB_MNU_NAM
D2FP_SUB_MNU_OBJ	D2FP_SUB_MNU_OBJ
D2FP_VAT_NAM	Visuelle Attributgruppe
D2FP_VAT_OBJ	D2FP_VAT_OBJ
D2FP_VISIBLE	Sichtbar
D2FP_VSBL_IN_HORZ_MNU_TLBR	Sichtbar in horizontaler/vertikaler Menüsymbolleiste
D2FP_VSBL_IN_MENU	Sichtbar in Menü
D2FP_VSBL_IN_VERT_MNU_TLBR	Sichtbar in horizontaler/vertikaler Menüsymbolleiste


API-Attribute für Menüparameterobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_ASSOC_MENUS_COUNT	D2FP_ASSOC_MENUS_COUNT
D2FP_ASSOC_MNUS	Verknüpfte Menüs
D2FP_CASE_RSTRCTION	Einschränkung Schreibweise
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Kommentare
D2FP_CONCEAL_DATA	Daten verbergen
D2FP_FIXED_LEN	Feste Länge
D2FP_HINT	Hinweis
D2FP_LABEL	Beschriftung
D2FP_MAX_LEN	Maximale Länge
D2FP_MNU_PARAM_INIT_VAL	Menüparameter-Ausgangswert
D2FP_NAME	Name
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_REQUIRED	Erforderlich


API-Attribute für allgemeine Objekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_ACCESS_KEY
Zugriffstaste
D2FP_ALERT
D2FP_ALERT
D2FP_ALLOW_EXPANSION
Erweitern zulassen
D2FP_ALLOW_MLT_LIN_PRMPTS
Mehrzeilige Prompts zulassen
D2FP_ALLOW_STRT_ATT_PRMPTS
Mit Start verknüpfte Prompts zulassen
D2FP_ALLOW_TOP_ATT_PRMPTS
Mit oberem Rand verknüpfte Prompts zulassen
D2FP_ALT_MSG
Meldung
D2FP_ALT_STY
Typ des Warnfensters
D2FP_ARROW_STY
Pfeilstil
D2FP_ASSOC_MENUS_COUNT
D2FP_ASSOC_MENUS_COUNT
D2FP_ASSOC_MNUS
Verknüpfte Menüs
D2FP_ATT_LIB
D2FP_ATT_LIB
D2FP_AUDIO_CHNNLS
Audio-Kanäle
D2FP_AUTO_COL_WID
Automatische Spaltenbreite
D2FP_AUTO_DISP
Automatisch anzeigen
D2FP_AUTO_HINT
Hinweis automatisch anzeigen
D2FP_AUTO_POS
Automatische Position
D2FP_AUTO_QRY
Automatische Abfrage
D2FP_AUTO_RFRSH
Automatisches Auffrischen
D2FP_AUTO_SKP
Automatisches Überspringen
D2FP_AUTO_SLCT
Automatische Auswahl
D2FP_BACK_COLOR
Hintergrundfarbe
D2FP_BEVEL
Umriß
D2FP_BTN_1_LBL
Beschriftung Schaltfläche 1
D2FP_BTN_2_LBL
Beschriftung Schaltfläche 2
D2FP_BTN_3_LBL
Beschriftung Schaltfläche 3
D2FP_CALC_MODE
Berechnungsmodus
D2FP_CANVAS
D2FP_CANVAS
D2FP_CAP_STY
Linienende Objektrand
D2FP_CASE_INSENSITIVE_QRY
Abfrage ohne Berücksichtigung der Schreibweise
D2FP_CASE_RSTRCTION
Einschränkung Schreibweise
D2FP_CHK_BX_OTHER_VALS
Kontrollkästchenzuordnung anderer Werte
D2FP_CHKED_VAL
Ausgewählt
D2FP_CLIENT_INFO
D2FP_CLIENT_INFO
D2FP_CLIP_HGT
Höhe Begrenzungsrechteck
D2FP_CLIP_WID
Breite Begrenzungsrechteck
D2FP_CLIP_X_POS
X-Ursprung Begrenzungsrechteck
D2FP_CLIP_Y_POS
Y- Ursprung Begrenzungsrechteck
D2FP_CLOSED
Polygon-Marke/Begrenzungslinie
D2FP_CLS_ALLOWED
Schließen zulässig
D2FP_CMPRSSION_QLTY
Komprimierungsqualität
D2FP_CNV_NAM
Leinwand
D2FP_CNV_OBJ
D2FP_CNV_OBJ
D2FP_CNV_TYP
Leinwandtyp
D2FP_COL_DAT_TYP
D2FP_COL_DAT_TYP
D2FP_COL_MAP
Attribute Spaltenzuordnung
D2FP_COL_NAM
Spaltenname
D2FP_COL_SPEC
Spaltenspezifikationen
D2FP_COL_VALS_COUNT
D2FP_COL_VALS_COUNT
D2FP_COM_TXT
Befehlstext
D2FP_COM_TYP
Befehlstyp
D2FP_COMM_MODE
Kommunikationsmodus
D2FP_COMMENT
Kommentare
D2FP_COMPRESS
Komprimieren
D2FP_CONCEAL_DATA
Daten verbergen
D2FP_CONSOLE_WIN
Konsolfenster
D2FP_COPY_VAL_FROM_ITM
Wert aus Objekt kopieren
D2FP_CORNER_RADIUS_X
X-Winkelradius für Abgerundetes Rechteck
D2FP_CORNER_RADIUS_Y
Y- Winkelradius für Abgerundetes Rechteck
D2FP_CRSR_MODE
Cursor-Modus
D2FP_CSTM_SPCING
Benutzerdefinierter Abstand für Textobjekt
D2FP_DASH_STY
Strichart für Objektrand
D2FP_DAT_SRC_BLK
Datenquellblock
D2FP_DAT_SRC_X_AXS
Datenquelle X-Achse
D2FP_DAT_SRC_Y_AXS
Datenquelle Y-Achse
D2FP_DAT_TYP
Datentyp
D2FP_DB_BLOCK
Datenbank-Datenblock
D2FP_DB_ITM
Datenbankobjekt
D2FP_DEFERRED
Verzögert
D2FP_DEL_ALLOWED
Löschen zulässig
D2FP_DEL_PROC_NAM
Prozedurname löschen
D2FP_DEL_REC
Verhalten bei Datensatz löschen
D2FP_DETAIL_BLK
Detail-Block
D2FP_DFLT_ALT_BTN
Standard-Warnschaltfläche
D2FP_DFLT_BTN
Standardschaltfläche
D2FP_DISP_IN_KBRD_HLP
Anzeige in Tastenbelegung
D2FP_DISP_NO_PRIV
Anzeige ohne Berechtigung
D2FP_DISP_QLTY
Anzeigequalität
D2FP_DISP_WID
Anzeigebreite
D2FP_DIST_BTWN_RECS
Abstand zwischen Datensätzen
D2FP_DITHER
Bild-Dithering bei Grafiken
D2FP_DML_ARY_SIZ
DML-Array-Größe
D2FP_DML_DAT_NAM
DML-Datenzielname
D2FP_DML_DAT_TYP
DML-Datenzieltyp
D2FP_DSA_MODE
D2FP_DSA_MODE
D2FP_DSA_NAM
D2FP_DSA_NAM
D2FP_DSA_TYP
D2FP_DSA_TYP
D2FP_DSA_TYPE_NAM
D2FP_DSA_TYP_NAM
D2FP_DSA_VAL
D2FP_DSA_VAL
D2FP_DSC_LEN
D2FP_DSC_LEN
D2FP_DSC_MANDATORY
D2FP_DSC_MANDATORY
D2FP_DSC_NAM
D2FP_DSC_NAM
D2FP_DSC_PRECISION
D2FP_DSC_PRECISION
D2FP_DSC_SCALE
D2FP_DSC_SCALE
D2FP_DSC_TYP
D2FP_DSC_TYP
D2FP_EDGE_BACK_COLOR
Hintergrundfarbe Objektrand
D2FP_EDGE_FORE_COLOR
Vordergrundfarbe Objektrand
D2FP_EDITOR
Editor
D2FP_EDT_NAM
Editor
D2FP_EDT_OBJ
D2FP_EDT_OBJ
D2FP_EDT_X_POS
Editor X-Position, Editor Y-Position
D2FP_EDT_Y_POS
Editor X-Position, Editor Y-Position
D2FP_ENABLED
Aktiviert
D2FP_END_ANGLE
Endwinkel
D2FP_ENFRC_COL_SECURITY
Spaltensicherheit durchsetzen
D2FP_ENFRC_PRMRY_KEY
Primärschlüssel durchsetzen
D2FP_EXEC_HIERARCHY
Ausführungsstil
D2FP_EXEC_MODE
Ausführungsmodus
D2FP_FILL_PAT
Füllmuster
D2FP_FIRE_IN_QRY
In Abfragemodus auslösen
D2FP_FIXED_BOUNDING_BX
Feste Größe von Objektumrandung
D2FP_FIXED_LEN
Feste Länge
D2FP_FLNAM
Dateiname
D2FP_FLTR_BEFORE_DISP
Vor Anzeige filtern
D2FP_FMT_MSK
Formatmaske
D2FP_FONT_NAM
Schriftartname
D2FP_FONT_SCALEABLE
Punktgröße skaliert mit Objekt
D2FP_FONT_SIZE
Schriftgrad
D2FP_FONT_SPCING
Zeichenabstand
D2FP_FONT_STY
Schriftstil
D2FP_FONT_WGHT
Schriftstärke
D2FP_FORE_COLOR
Vordergrundfarbe
D2FP_FORM_PARAM
D2FP_FORM_PARAM
D2FP_FORMULA
Formel
D2FP_FRAME_ALIGN
Rahmenausrichtung
D2FP_FRAME_TTL
Rahmentitel
D2FP_FRAME_TTL_ALIGN
Ausrichtung Rahmentitel
D2FP_FRAME_TTL_BACK_COLOR
Rahmentitel Hintergrundfarbe
D2FP_FRAME_TTL_FILL_PAT
Rahmentitel Füllmuster
D2FP_FRAME_TTL_FONT_NAM
Rahmentitel Schriftartname
D2FP_FRAME_TTL_FONT_SIZ
Rahmentitel Schriftgrad
D2FP_FRAME_TTL_FONT_SPCING
Rahmentitel Zeichenabstand
D2FP_FRAME_TTL_FONT_STY
Rahmentitel Schriftstil
D2FP_FRAME_TTL_FONT_WGHT
Rahmentitel Schriftstärke
D2FP_FRAME_TTL_FORE_COLOR
Rahmentitel Vordergrundfarbe
D2FP_FRAME_TTL_OFST
Versatz Rahmentitel
D2FP_FRAME_TTL_SPCING
Abstand Rahmentitel
D2FP_FRAME_TTL_VAT_NAM
Rahmentitel Visuelle Attributgruppe
D2FP_FRAME_TTL_VAT_OBJ
D2FP_FRAME_TTL_VAT_OBJ
D2FP_FRST_NAVIGATION_BLK_NAM
Erster Navigationsblock
D2FP_FRST_NAVIGATION_BLK_OBJ
D2FP_FIRST_NAVIGATION_BLK_OBJ
D2FP_GRA_FONT_NAM
Schriftartname bei Grafiken
D2FP_GRA_FONT_SIZ
Schriftgrad bei Grafiken
D2FP_GRA_FONT_STY
Schriftstil bei Grafiken
D2FP_GRA_TEXT
Grafiktext
D2FP_GRAPHIC
D2FP_GRAPHIC
D2FP_GRAPHICS_TYP
Objekttyp bei Grafiken
D2FP_HEIGHT
Breite/Höhe
D2FP_HIDE_ON_EXIT
Beim Beenden verbergen
D2FP_HIGHEST_ALLOWED_VAL
Höchster zulässiger Wert/Niedrigster zulässiger Wert
D2FP_HINT
Hinweis
D2FP_HLP_DESCRIPTION
Hilfe
D2FP_HORZ_JST
Horizontale Justierung von Textobjekt
D2FP_HORZ_MARGN
Horizontaler Rand
D2FP_HORZ_OBJ_OFST
Horizontaler Objektversatz
D2FP_HORZ_ORGN
Horizontalposition relativ zum Ursprung
D2FP_HORZ_TLBR_CNV
Horizontale Symbolleisten-Leinwand
D2FP_HTB_CNV_NAME
Horizontale Symbolleisten-Leinwand
D2FP_ICON_FLNAM
Symbol-Dateiname
D2FP_ICON_IN_MNU
Als Symbol
D2FP_ICONIC
Als Symbol
D2FP_IMG_DPTH
Bildtiefe
D2FP_IMG_FMT
Bildformat
D2FP_INHRT_MNU
Menü vererben
D2FP_INIT_KBRD_DIR
Anfänglicher Tastaturstatus
D2FP_INIT_MNU
Ausgangsmenü
D2FP_INIT_VAL
Ausgangswert
D2FP_INSRT_ALLOWED
Einsetzen zulässig
D2FP_INSRT_PROC_NAM
Prozedurname einfügen
D2FP_INTERACTION_MODE
Interaktionsmodus
D2FP_ISOLATION_MODE
Isolationsmodus
D2FP_ITEM
D2FP_ITEM
D2FP_ITM_TYP
Objekttyp
D2FP_ITMS_DISP
Anzahl angezeigter Objekte
D2FP_JOIN_COND
Join-Bedingung
D2FP_JOIN_STY
Verknüpfungsstil von Objektrand
D2FP_JUSTIFICATION
Justierung
D2FP_KBRD_ACC
Schnelltaste
D2FP_KBRD_HLP_TXT
Tastenbelegung-Hilfetext
D2FP_KBRD_NAVIGABLE
Tastatur-navigierbar
D2FP_KBRD_STATE
Tastaturstatus
D2FP_KEEP_CRSR_POS
Cursor-Position beibehalten
D2FP_KEY_MODE
Schlüsselmodus
D2FP_LABEL
Beschriftung
D2FP_LANG_DIR
Richtung
D2FP_LAYOUT_DATA_BLK_NAM
Layout-Datenblock
D2FP_LAYOUT_STY
Layoutstil
D2FP_LIB_LOC
Speicherort von PL/SQL-Bibliothek
D2FP_LIB_SRC
Quelle von PL/SQL-Bibliothek
D2FP_LIN_SPCING
Zeilenabstand
D2FP_LIN_WID
Zeilenbreite
D2FP_LOCK_MODE
Sperrmodus
D2FP_LOCK_PROC_NAM
Prozedurname sperren
D2FP_LOCK_REC
Datensatz sperren
D2FP_LOV
Werteliste
D2FP_LOV_NAM
X-Position Liste
D2FP_LOV_OBJ
D2FP_LOV_OBJ
D2FP_LOV_X_POS
Werteliste
D2FP_LOV_Y_POS
Y-Position Liste
D2FP_LOWEST_ALLOWED_VAL
Höchster zulässiger Wert/Niedrigster zulässiger Wert
D2FP_LST_ELEMENT_COUNT
Anzahl von Listenelementobjekten
D2FP_LST_IN_BLK_MNU
In Datenblockmenü aufgelistet
D2FP_LST_STY
Listenstil
D2FP_LST_TYP
Listentyp
D2FP_MAGIC_ITM
Magischer Menüpunkt
D2FP_MAIN_MNU
Hauptmenü
D2FP_MAX_LEN
Maximale Länge
D2FP_MAX_OBJS
Max. Objekte pro Zeile
D2FP_MAX_QRY_TIME
Maximale Abfragezeit
D2FP_MAX_RECS_FETCHED
Maximal abgerufene Datensätze
D2FP_MAXIMIZE_ALLOWED
Maximieren zulässig
D2FP_MENU
D2FP_MENU
D2FP_MINIMIZE_ALLOWED
Minimieren zulässig
D2FP_MINIMIZE_TTL
Minimierter Titel
D2FP_MLT_LIN
Mehrzeilig
D2FP_MNU_DESCRIPTION
Menübeschreibung
D2FP_MNU_DRCTRY
Menüordner
D2FP_MNU_FLNAM
Menüdateiname
D2FP_MNU_ITM
Menüpunkttyp
D2FP_MNU_ITM_CODE
D2FP_MNU_ITM_CODE
D2FP_MNU_ITM_RAD_GRP
Menüpunkt Optionsgruppe
D2FP_MNU_ITM_TYP
Menüpunkttyp
D2FP_MNU_MOD
Menümodul
D2FP_MNU_PARAM
D2FP_MNU_PARAM
D2FP_MNU_PARAM_INIT_VAL
Menüparameter-Ausgangswert
D2FP_MNU_ROLE
Menümodulrolle
D2FP_MNU_SRC
Menüquelle
D2FP_MNU_STY
Menüstil
D2FP_MODAL
Modal
D2FP_MODULE
D2FP_MODULE
D2FP_MOUSE_NAVIGATE
Mausnavigation
D2FP_MOUSE_NAVIGATION_LMT
Mausnavigationsbegrenzung
D2FP_MV_ALLOWED
Verschieben zulässig
D2FP_NAME
Name
D2FP_NAVIGATION_STY
Navigationsstil
D2FP_NEXT
D2FP_NEXT
D2FP_NXT_NAVIGATION_BLK_OBJ
D2FP_NXT_NAVIGATION_BLK_OBJ
D2FP_NXT_NAVIGATION_BLK_NAM
Nächster Navigationsblock
D2FP_NXT_NAVIGATION_ITM_OBJ
D2FP_NXT_NAVIGATION_ITM_OBJ
D2FP_NXT_NAVIGATION_ITM_NAM
Nächstes Navigationsobjekt
D2FP_OBJ_GRP
D2FP_OBJ_GRP
D2FP_OBJ_GRP_CHILD_REAL_OBJ
D2FP_OBJ_GRP_CHILD_REAL_OBJ
D2FP_ACTIVEX_CLASS
OLE-Klasse
D2FP_ACTIVEX_VAL_PROP
Steuerelementattribute
D2FP_OG_CHILD
D2FP_OG_CHILD
D2FP_OLD_LOV_TXT
Alter Wertelistentext
D2FP_OLE_ACT_STY
OLE-Aktivierungsstil
D2FP_OLE_CLASS
OLE-Klasse
D2FP_OLE_IN_PLACE_ACT
OLE in Forms aktiviert
D2FP_OLE_INSD_OUT_SUPPORT
OLE-Austauschunterstützung
D2FP_OLE_POPUP_MNU_ITMS
OLE-Popup-Menüpunkte
D2FP_OLE_RESIZ_STY
OLE-Skalierungsstil
D2FP_OLE_SHOW_POP_UP_MNU
OLE Popupmenü anzeigen
D2FP_OLE_SHOW_TNNT_TYP
OLE-Bewohnertyp anzeigen
D2FP_OLE_TNNT_ASPCT
OLE-Bewohnerdarstellung
D2FP_OLE_TNNT_TYP
OLE-Bewohnertypen
D2FP_OPT_HINT
Optimizer-Hinweis
D2FP_ORDER_BY_CLAUSE
ORDER BY-Klausel
D2FP_OTHER_VALS
Zuordnung anderer Werte
D2FP_OWNER
D2FP_OWNER
D2FP_PAR_FLNAM
D2FP_PAR_FLNAM
D2FP_PAR_FLPATH
D2FP_PAR_FLPATH
D2FP_PAR_MODSTR
D2FP_PAR_MODSTR
D2FP_PAR_MODTYP
D2FP_PAR_MODTYPE
D2FP_PAR_MODULE
D2FP_PAR_MODULE
D2FP_PAR_NAM
D2FP_PAR_NAME
D2FP_PARAM_DAT_TYP
Parameter-Datentyp
D2FP_PARAM_INIT_VAL
Parameter-Ausgangswert
D2FP_PGU_TXT
D2FP_PGU_TXT
D2FP_POPUP_MNU_NAM
Popup-Menü
D2FP_POPUP_MNU_OBJ
D2FP_POPUP_MNU_OBJ
D2FP_POPUP_VA_OBJ
D2FP_POPUP_VA_OBJ
D2FP_PRECOMP_SUMM
D2FP_PRECOMP_SUMM
D2FP_PREV_NAVIGATION_BLK_NAM
Vorheriger Navigationsblock
D2FP_PREV_NAVIGATION_BLK_OBJ
D2FP_PREV_NAVIGATION_BLK_OBJ
D2FP_PREV_NAVIGATION_ITM_NAM
Vorheriges Navigationsobjekt
D2FP_PREV_NAVIGATION_ITM_OBJ
D2FP_PREV_NAVIGATION_ITM_OBJ
D2FP_PREVIOUS
D2FP_PREVIOUS
D2FP_PRMPT
Prompt
D2FP_PRMPT_ALIGN
Prompt-Ausrichtung
D2FP_PRMPT_ALIGN_OFST
Versatz Prompt-Ausrichtung
D2FP_PRMPT_ATT_EDGE
Rand Prompt-Zuordnung
D2FP_PRMPT_ATT_OFST
Versatz Prompt-Zuordnung
D2FP_PRMPT_BACK_COLOR
Prompt-Hintergrundfarbe
D2FP_PRMPT_DISP_STY
Prompt-Anzeigestil
D2FP_PRMPT_FILL_PAT
Prompt-Füllmuster
D2FP_PRMPT_FONT_NAM
Prompt-Schriftartname
D2FP_PRMPT_FONT_SIZ
Prompt-Schriftgrad
D2FP_PRMPT_FONT_SPCING
Prompt-Zeichenabstand
D2FP_PRMPT_FONT_STY
Prompt-Schriftstil
D2FP_PRMPT_FONT_WGHT
Prompt-Schriftstärke
D2FP_PRMPT_FORE_COLOR
Prompt-Vordergrundfarbe
D2FP_PRMPT_JST
Prompt-Justierung
D2FP_PRMPT_READING_ORDR
Prompt-Lesereihenfolge
D2FP_PRMPT_VAT_NAM
Prompt Visuelle Attributgruppe
D2FP_PRMPT_VAT_OBJ
D2FP_PRMPT_VAT_OBJ
D2FP_PRMRY_CNV
Primäre Leinwand
D2FP_PRMRY_KEY
Primärschlüssel
D2FP_PROG_UNIT
D2FP_PROG_UNIT
D2FP_PROP_CLASS
Attributklasse
D2FP_PRVNT_MSTRLESS_OPS
Masterlose Vorgänge verhindern
D2FP_QRY_ALL_RECS
Alle Datensätze abfragen
D2FP_QRY_ALLOWED
Abfrage zulässig
D2FP_QRY_DAT_SRC_NAM
Abfrage-Datenquellname
D2FP_QRY_DAT_SRC_TYP
Abfrage-Datenquelltyp
D2FP_QRY_LEN
Abfragelänge
D2FP_QRY_ONLY
Nur Abfrage
D2FP_RAD_BUT
D2FP_RAD_BUT
D2FP_RAISE_ON_ENT
Automatisch anzeigen
D2FP_RDB_VAL
Optionsschaltflächenwert
D2FP_READING_ORDR
Lesereihenfolge
D2FP_REC_GRP
Datensatzgruppe
D2FP_REC_GRP_FETCH_SIZ
D2FP_REC_GRP_FETCH_SIZEz
D2FP_REC_GRP_NAM
Datensatzgruppe
D2FP_REC_GRP_OBJ
D2FP_REC_GRP_OBJ
D2FP_REC_GRP_QRY
Datensatzgruppenabfrage
D2FP_REC_GRP_TYP
Datensatzgruppentyp
D2FP_REC_ORNT
Datensatzdarstellung
D2FP_REC_VAT_GRP_NAM
Visuelle Attributgruppe Aktueller Datensatz
D2FP_REC_VAT_GRP_OBJ
D2FP_REC_VAT_GRP_OBJ
D2FP_RECS_BUFFERED_COUNT
Anzahl gepufferter Datensätze
D2FP_RECS_DISP_COUNT
Anzahl angezeigter Datensätze
D2FP_RECS_FETCHED_COUNT
Abzurufende Datensätze
D2FP_REL
D2FP_REL
D2FP_RENDERED
Gerendert
D2FP_REPORT
D2FP_REPORT
D2FP_REQUIRED
Erforderlich
D2FP_RESIZE_ALLOWED
Skalieren zulässig
D2FP_REV_DIR
Umgekehrte Richtung
D2FP_ROTATION_ANGLE
Drehwinkel
D2FP_RPT_DESTINATION_FMT
Berichtzielformat
D2FP_RPT_DESTINATION_NAM
Berichtzielname
D2FP_RPT_DESTINATION_TYP
Berichtzieltyp
D2FP_RPT_PARAMS
Andere Reports-Parameter
D2FP_RPT_SRVR
Bericht-Server
D2FP_RTRN_ITM
Rückgabeobjekt
D2FP_SCRLBR_ALIGN
Ausrichtung Bildlaufleiste
D2FP_SCRLBR_CNV_NAM
Bildlaufleisten-Leinwand
D2FP_SCRLBR_CNV_OBJ
D2FP_SCRLBR_CNV_OBJ
D2FP_SCRLBR_HGT
Bildlaufleisten-Höhe
D2FP_SCRLBR_ORNT
Bildlaufleisten-Darstellung
D2FP_SCRLBR_TBP_NAM
Bildlaufleiste Registrierseite
D2FP_SCRLBR_TBP_OBJ
D2FP_SCRLBR_TBP_OBJ
D2FP_SCRLBR_WID
Bildlaufleisten-Breite
D2FP_SCRLBR_X_POS
Bildlaufleiste X-Position
D2FP_SCRLBR_Y_POS
Bildlaufleiste Y-Position
D2FP_SHARE_LIB
Bibliothek mit Form gemeinsam benutzen
D2FP_SHORT_NAM
Kurzname
D2FP_SHOW_FAST_FWD
Schnellvorlauf-Schaltfläche anzeigen
D2FP_SHOW_HORZ_SCRLBR
Horizontale Bildlaufleiste anzeigen
D2FP_SHOW_PALETTE
Palette anzeigen
D2FP_SHOW_PLAY
Wiedergabe-Schaltfläche anzeigen
D2FP_SHOW_REC
Aufzeichnen-Schaltfläche anzeigen
D2FP_SHOW_REWIND
Rückspul-Schaltfläche anzeigen
D2FP_SHOW_SCRLBR
Bildlaufleiste anzeigen
D2FP_SHOW_SLIDER
Schieberegler anzeigen
D2FP_SHOW_TIME
Zeitindikator anzeigen
D2FP_SHOW_VERT_SCRLBR
Vertikale Bildlaufleiste anzeigen
D2FP_SHOW_VOLUME
Lautstärkeregler anzeigen
D2FP_SHRINKWRAP
Shrinkwrap
D2FP_SIZING_STY
Skalierungsstil
D2FP_SND_FMT
Klangformat
D2FP_SND_QLTY
Klangqualität
D2FP_SNGL_OBJ_ALIGN
Ausrichtung einzelnes Objekt
D2FP_SNGL_REC
Einzelner Datensatz
D2FP_SOURCE
D2FP_SOURCE
D2FP_STRT_ANGLE
Anfangswinkel
D2FP_STRT_PRMPT_ALIGN
Start Prompt-Ausrichtung
D2FP_STRT_PRMPT_OFST
Start Prompt-Versatz
D2FP_STRTUP_CODE
Startcode
D2FP_SUB_MNU_NAM
D2FP_SUB_MNU_NAM
D2FP_SUB_MNU_OBJ
D2FP_SUB_MNU_OBJ
D2FP_SUB_TTL
Untertitel
D2FP_SUMM_BLK_NAM
Summierter Block
D2FP_SUMM_FUNC
Summenfunktion
D2FP_SUMM_ITM_NAM
Summiertes Objekt
D2FP_SVPNT_MODE
Savepoint-Modus
D2FP_SYNC_ITM_NAM
Mit Objekt synchronisieren
D2FP_SYNC_ITM_OBJ
D2FP_SYNC_ITM_OBJ
D2FP_TAB_ATT_EDGE
Register-Zuordnungskante
D2FP_TAB_PAGE
Registerseite
D2FP_TAB_STY
Registerstil
D2FP_TBP_NAM
D2FP_TBP_NAM
D2FP_TBP_OBJ
D2FP_TBP_OBJ
D2FP_TEAR_OFF_MNU
Abtrennbares Menü
D2FP_TITLE
Titel
D2FP_TOOLTIP
Tooltip
D2FP_TOOLTIP_VAT_GRP
Tooltip Visuelle Attributgruppe
D2FP_TOP_PRMPT_ALIGN
Ausrichtung oberer Prompt
D2FP_TOP_PRMPT_OFST
Versatz oberer Prompt
D2FP_TRG_STY
Triggerstil
D2FP_TRG_TXT
Triggertext
D2FP_TRG_TYP
Triggertyp
D2FP_TRIGGER
D2FP_TRIGGER
D2FP_TTL_READING_ORDR
Lesereihenfolge für Titel
D2FP_UNCHKED_VAL
Wert, wenn nicht ausgewählt
D2FP_UPDT_ALLOWED
Aktualisieren zulässig
D2FP_UPDT_CHANGED_COLS
Nur geänderte Spalten aktualisieren
D2FP_UPDT_COMMIT
Nach Festschreiben aktualisieren
D2FP_UPDT_IF_NULL
Nur aktualisieren, wenn NULL
D2FP_UPDT_LAYOUT
Layout aktualisieren
D2FP_UPDT_PROC_NAM
Prozedurname aktualisieren
D2FP_UPDT_QRY
Abfrage aktualisieren
D2FP_USE_SECURITY
Sicherheit verwenden
D2FP_USE_3D_CNTRLS
3D-Steuerelemente verwenden
D2FP_VALIDATE_FROM_LIST
Aus Liste validieren
D2FP_VALIDATION_UNIT
Validierungseinheit
D2FP_VAT_NAM
Visuelle Attributgruppe
D2FP_VAT_OBJ
D2FP_VAT_OBJ
D2FP_VAT_TYP
D2FP_VAT_TYP
D2FP_VERT_FILL
Vertikales Füllen
D2FP_VERT_JST
Vertikale Justierung
D2FP_VERT_MARGN
Vertikaler Rand
D2FP_VERT_OBJ_OFST
Vertikaler Objektversatz
D2FP_VERT_ORGN
Vertikalposition relativ zum Ursprung
D2FP_VERT_TLBR_CNV
Vertikale Symbolleisten-Leinwand
D2FP_VIS_ATTR
D2FP_VIS_ATTR
D2FP_VISIBLE
Sichtbar
D2FP_VPRT_HGT
Ausschnitthöhe
D2FP_VPRT_WID
Ausschnittbreite
D2FP_VPRT_X_POS
Ausschnitt X-Position
D2FP_VPRT_X_POS_ON_CNV
Ausschnitt X-Position auf Leinwand
D2FP_VPRT_Y_POS
Ausschnitt Y-Position
D2FP_VPRT_Y_POS_ON_CNV
Ausschnitt Y-Position auf Leinwand
D2FP_VSBL_IN_HORZ_MNU_TLBR
Sichtbar in horizontaler/vertikaler Menüsymbolleiste
D2FP_VSBL_IN_MENU
Sichtbar in Menü
D2FP_VSBL_IN_VERT_MNU_TLBR
Sichtbar in horizontaler/vertikaler Menüsymbolleiste
D2FP_VTB_CNV_NAME
Vertikale Symbolleisten-Leinwand
D2FP_WHERE_CLAUSE
WHERE-Klausel
D2FP_WHITE_ON_BLACK
Weiß auf Schwarz
D2FP_WIDTH
Breite/Höhe
D2FP_WIN_STY
Fensterstil
D2FP_WINDOW
Fenster
D2FP_WND_NAM
Fenster
D2FP_WND_OBJ
D2FP_WND_OBJ
D2FP_WRAP_STY
Umbruchstil
D2FP_WRAP_TXT
Textumbruch


API-Attribute für Objektgruppen

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_MODULE	D2FP_MODULE
D2FP_NEXT	D2FP_NEXT
D2FP_OG_CHILD	D2FP_OG_CHILD
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_SOURCE	D2FP_SOURCE


API-Attribute für untergeordnete Objektgruppen

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_OBJ_GRP_CHILD_REAL_OBJ	D2FP_OBJ_GRP_CHILD_REAL_OBJ
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_SOURCE	D2FP_SOURCE


API-Attribute für Objektbibliotheken

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Kommentare
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_OBJ_COUNT	D2FP_OBJ_COUNT
D2FP_OBJ_LIB_TAB	D2FP_OBJ_LIB_TAB
D2FP_PREVIOUS	D2FP_PREVIOUS


API-Attribute für Programmblockobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Kommentare
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PGU_TXT	D2FP_PGU_TXT
D2FP_PGU_TYP	D2FP_PGU_TYP
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_SOURCE	D2FP_SOURCE


API-Attribute für Attributklassenobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_SOURCE	D2FP_SOURCE
D2FP_TRIGGER	D2FP_TRIGGER


API-Attribute für Optionsschaltflächenobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_ACCESS_KEY	Zugriffstaste
D2FP_BACK_COLOR	Hintergrundfarbe
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Kommentare
D2FP_DIST_BTWN_RECS	Abstand zwischen Datensätzen
D2FP_ENABLED	Aktiviert
D2FP_FILL_PAT	Füllmuster
D2FP_FONT_NAM	Schriftartname
D2FP_FONT_SIZE	Schriftgrad
D2FP_FONT_SPCING	Zeichenabstand
D2FP_FONT_STY	Schriftstil
D2FP_FONT_WGHT	Schriftstärke
D2FP_FORE_COLOR	Vordergrundfarbe
D2FP_HEIGHT	Breite/Höhe
D2FP_LABEL	Beschriftung
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_PRMPT	Prompt
D2FP_PRMPT_ALIGN	Prompt-Ausrichtung
D2FP_PRMPT_ALIGN_OFST	Versatz Prompt-Ausrichtung
D2FP_PRMPT_ATT_EDGE	Rand Prompt-Zuordnung
D2FP_PRMPT_ATT_OFST	Versatz Prompt-Zuordnung
D2FP_PRMPT_BACK_COLOR	Prompt-Hintergrundfarbe
D2FP_PRMPT_DISP_STY	Prompt-Anzeigestil
D2FP_PRMPT_FILL_PAT	Prompt-Füllmuster
D2FP_PRMPT_FONT_NAM	Prompt-Schriftartname
D2FP_PRMPT_FONT_SIZ	Prompt-Schriftgrad
D2FP_PRMPT_FONT_SPCING	Prompt-Zeichenabstand
D2FP_PRMPT_FONT_STY	Prompt-Schriftstil
D2FP_PRMPT_FONT_WGHT	Prompt-Schriftstärke
D2FP_PRMPT_FORE_COLOR	Prompt-Vordergrundfarbe
D2FP_PRMPT_JST	Prompt-Justierung
D2FP_PRMPT_READING_ORDR	Prompt-Lesereihenfolge
D2FP_PRMPT_VAT_NAM	Prompt Visuelle Attributgruppe
D2FP_PRMPT_VAT_OBJ	D2FP_PRMPT_VAT_OBJ
D2FP_RDB_VAL	Optionsschaltflächenwert
D2FP_SOURCE	D2FP_SOURCE
D2FP_VAT_NAM	Visuelle Attributgruppe
D2FP_VAT_OBJ	D2FP_VAT_OBJ
D2FP_VISIBLE	Sichtbar
D2FP_WHITE_ON_BLACK	Weiß auf Schwarz
D2FP_WIDTH	Breite/Höhe
D2FP_X_POS	X-Position/Y-Position
D2FP_Y_POS	X-Position/Y-Position


API-Attribute für Datensatzgruppenobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COL_SPEC	Spaltenspezifikationen
D2FP_COMMENT	Kommentare
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_REC_GRP_FETCH_SIZ	D2FP_REC_GRP_FETCH_SIZ
D2FP_REC_GRP_QRY	Datensatzgruppenabfrage
D2FP_REC_GRP_TYP	Datensatzgruppentyp
D2FP_SOURCE	D2FP_SOURCE


API-Attribute für Datensatzgruppen-Spaltenspezifikationsobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COL_DAT_TYP	D2FP_COL_DAT_TYP
D2FP_COL_VALS_COUNT	D2FP_COL_VALS_COUNT
D2FP_MAX_LEN	Maximale Länge
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_PREVIOUS	D2FP_PREVIOUS


API-Attribute für Beziehungsobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_AUTO_QRY	Automatische Abfrage
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Kommentare
D2FP_DEFERRED	Verzögert
D2FP_DEL_REC	Verhalten bei Datensatz löschen
D2FP_DETAIL_BLK	Detail-Block
D2FP_JOIN_COND	Join-Bedingung
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_PRVNT_MSTRLESS_OPS	Masterlose Vorgänge verhindern
D2FP_SOURCE	D2FP_SOURCE


API-Attribute für Berichtobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMM_MODE	Kommunikationsmodus
D2FP_COMMENT	Kommentare
D2FP_DAT_SRC_BLK	Datenquellblock
D2FP_EXEC_MODE	Ausführungsmodus
D2FP_FLNAM	Dateiname
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_RPT_DESTINATION_FMT	Berichtzielformat
D2FP_RPT_DESTINATION_NAM	Berichtzielname
D2FP_RPT_DESTINATION_TYP	Berichtzieltyp
D2FP_RPT_PARAMS	Andere Reports-Parameter
D2FP_RPT_SRVR	Reports Server
D2FP_SOURCE	D2FP_SOURCE


API-Attribute für Registerseitenobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_GRAPHIC	D2FP_GRAPHIC
D2FP_LABEL	Beschriftung
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_SOURCE	D2FP_SOURCE


API-Attribute für Triggerobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Kommentare
D2FP_DISP_IN_KBRD_HLP	Anzeige in Tastenbelegung
D2FP_EXEC_HIERARCHY	Ausführungsstil
D2FP_FIRE_IN_QRY	In Abfragemodus auslösen
D2FP_KBRD_HLP_TXT	Tastenbelegung-Hilfetext
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_SOURCE	D2FP_SOURCE
D2FP_TRG_STY	Triggerstil
D2FP_TRG_TXT	Triggertext
D2FP_TRG_TYP	Triggertyp


API-Attribute für Visuelle Attributobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_BACK_COLOR	Hintergrundfarbe
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_FILL_PAT	Füllmuster
D2FP_FONT_NAM	Schriftartname
D2FP_FONT_SIZE	Schriftgrad
D2FP_FONT_SPCING	Zeichenabstand
D2FP_FONT_STY	Schriftstil
D2FP_FONT_WGHT	Schriftstärke
D2FP_FORE_COLOR	Vordergrundfarbe
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_PRMPT_BACK_COLOR	Prompt-Hintergrundfarbe
D2FP_PRMPT_FILL_PAT	Prompt-Füllmuster
D2FP_PRMPT_FONT_NAM	Prompt-Schriftartname
D2FP_PRMPT_FONT_SIZ	Prompt-Schriftgrad
D2FP_PRMPT_FONT_SPCING	Prompt-Zeichenabstand
D2FP_PRMPT_FONT_STY	Prompt-Schriftstil
D2FP_PRMPT_FONT_WGHT	Prompt-Schriftstärke
D2FP_PRMPT_FORE_COLOR	Prompt-Vordergrundfarbe
D2FP_SOURCE	D2FP_SOURCE
D2FP_VAT_TYP	D2FP_VAT_TYP
D2FP_WHITE_ON_BLACK	Weiß auf Schwarz


API-Attribute für Fensterobjekte

  Verwandte Themen

Die linke Spalte enthält die Attribute, so wie sie in den Header-Dateien von Open API stehen. Die rechte Spalte enthält den entsprechenden Attributnamen, wie er auf der Oberfläche von Form Builder angezeigt wird.

D2FP_BACK_COLOR	Hintergrundfarbe
D2FP_BEVEL	Umriß
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_CLS_ALLOWED	Schließen zulässig
D2FP_COMMENT	Kommentare
D2FP_FILL_PAT	Füllmuster
D2FP_FONT_NAM	Schriftartname
D2FP_FONT_SIZE	Schriftgrad
D2FP_FONT_SPCING	Zeichenabstand
D2FP_FONT_STY	Schriftstil
D2FP_FONT_WGHT	Schriftstärke
D2FP_FORE_COLOR	Vordergrundfarbe
D2FP_HEIGHT	Breite/Höhe
D2FP_HIDE_ON_EXIT	Beim Beenden verbergen
D2FP_HTB_CNV_NAME	Horizontale Symbolleisten-Leinwand
D2FP_ICON_FLNAM	Symbol-Dateiname
D2FP_INHRT_MNU	Menü vererben
D2FP_LANG_DIR	Richtung
D2FP_MAXIMIZE_ALLOWED	Maximieren zulässig
D2FP_MINIMIZE_ALLOWED	Minimieren zulässig
D2FP_MINIMIZE_TTL	Minimierter Titel
D2FP_MODAL	Modal
D2FP_MODULE	D2FP_MODULE
D2FP_MV_ALLOWED	Verschieben zulässig
D2FP_NAME	Name
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_PRMRY_CNV	Primäre Leinwand
D2FP_RESIZE_ALLOWED	Skalieren zulässig
D2FP_SHOW_HORZ_SCRLBR	Horizontale Bildlaufleiste anzeigen
D2FP_SHOW_VERT_SCRLBR	Vertikale Bildlaufleiste anzeigen
D2FP_SOURCE	D2FP_SOURCE
D2FP_TITLE	Titel
D2FP_VAT_NAM	Visuelle Attributgruppe
D2FP_VAT_OBJ	D2FP_VAT_OBJ
D2FP_VTB_CNV_NAME	Vertikale Symbolleisten-Leinwand
D2FP_WHITE_ON_BLACK	Weiß auf Schwarz
D2FP_WIDTH	Breite/Höhe
D2FP_WIN_STY	Fensterstil
D2FP_X_POS	X-Position/Y-Position
D2FP_Y_POS	X-Position/Y-Position


Open API-Objekte

  Verwandte Themen

API-Objekte

Warnfenster

Zugeordnete Bibliotheken

Blöcke

Leinwand

Datenquellargumente

Datenquellspalten

Editoren

Formmodule

Formparameter

Grafiken

Objekte

Werteliste Spaltenzuordnung

Werteliste

Menüpunkte

Menümodule

Menüpunkte

Menüparameter

Objekte(Allgemeine Objekte)

Objektgruppen

Untergeordnete Objektgruppen

Objektbibliothek

Programmblock

Attributklassen

Optionsschaltflächen

Datensatzgruppen

Datensatzgruppen-Spaltenspezifikation

Beziehungsobjekte

Berichtobjekte

Registerseiten

Trigger

Visuelle Attribute

Fenster


Warnfensterobjekt API;
Objekt Warnfenster

  Verwandte Themen

Dieses Objekt ist ein modales Fenster, in dem eine Meldung angezeigt wird, die den Operator über eine bestimmte Anwendungsbedingung unterrichtet.


Objekt Zugeordnete Bibliothek

  Verwandte Themen

Dieses Objekt ist ein schreibgeschütztes Bibliotheksmodul, das eine Sammlung von Unterprogrammen darstellt, einschließlich benutzerdefinierter Prozeduren, Funktionen und Pakete, die aus anderen Modulen in der Anwendung aufgerufen werden können.


Objekt Block

  Verwandte Themen

Dieses Objekt stellt einen logischen Container zur Gruppierung zusammengehöriger Objekte in einer Funktionseinheit zur Speicherung, Anzeige und Verarbeitung von Datensätzen dar. Nur in einem Block enthaltene Objekte sind auf der Anwendungsoberfläche sichtbar.


Objekt Leinwand

  Verwandte Themen

Dieses Objekt stellt eine Hintergrund-Entität dar, in der Sie Oberflächenobjekte positionieren, wie z.B. Kontrollkästchen, Optionsgruppen und Textobjekte. Es gibt vier Arten von Leinwandobjekten: Inhalt, Gestapelt, Horizontale Symbolleiste und Vertikale Symbolleiste.


D2FP_CLIENT_INFO

D2FP_CLIENT_INFO wird vom Client benutzt, um Form Builder-Objekten zusätzliche Daten zuzuordnen. Bitte beachten Sie, daß zusätzliche Daten, die vom Client benutzt werden, nicht in der .fmb-Datei gespeichert werden. D2FP_CLIENT_INFO ist in nachfolgenden Instantiierungen von Form Builder undefiniert.


D2FP_MODULE

D2FP_MODULE wird benutzt, um ein Handle zu einem Modulobjekt zurückzugeben - einer Form, einer Objektbibliothek oder einem Menü.


D2FP_NEXT

D2FP_NEXT wird benutzt, um das Handle zu dem nächsten Objekt desselben Typs in der Liste zurückzugeben. D2FP_NEXT kann z.B. benutzt werden, um das Handle für das nächste Warnfensterobjekt zu erhalten. Bei dem letzten Objekt in der Liste gibt D2FP_NEXT NULL zurück.


D2FP_OWNER

D2FP_OWNER wird benutzt, um das Handle zu dem Eigentümer des Objekts zurückzugeben. D2FP_OWNER gibt z.B. ein Handle zu dem Eigentümerblock für ein Objekt zurück, weil ein Objekt einem Block gehört.


D2FP_PREVIOUS

D2FP_PREVIOUS wird benutzt, um das Handle zu dem vorherigen Objekt desselben Typs auf der Liste zurückzugeben. Bei einem Warnfensterobjekt gibt D2FP_PREVIOUS das Handle zu dem vorherigen Warnfensterobjekt zurück. Bei dem ersten Objekt auf der Liste gibt D2FP_PREVIOUS NULL zurück.


D2FP_SOURCE

D2FP_SOURCE wird benutzt, um das Handle zu dem Quellobjekt zurückzugeben. Dieses Attribut gilt nur für in Unterklassen eingeordnete Objekte.


D2FP_VAT_OBJ

D2FP_VAT_OBJ wird benutzt, um das Handle zu den Objekten der visuellen Attributgruppe zurückzugeben.


D2FP_PAR_FLNAM

D2FP_PAR_FLNAM wird benutzt, um den Dateinamen des übergeordneten Objekts zurückzugeben. Dieses Attribut gilt nur für in Unterklassen eingeordnete Objekte.


D2FP_PAR_FLPATH

D2FP_PAR_FLPATH wird benutzt, um die Dateipfade des übergeordneten Objekts zurückzugeben. Dieses Attribut gilt nur für in Unterklassen eingeordnete Objekte.


D2FP_PAR_MODSTR

D2FP_PAR_MODSTR wird benutzt, um die Modulfolge des übergeordneten Objekts zurückzugeben. Dieses Attribut gilt nur für in Unterklassen eingeordnete Objekte.


D2FP_PAR_MODTYP

D2FP_PAR_MODTYP wird benutzt, um den Modultyp des übergeordneten Objekts zurückzugeben. Dieses Attribut gilt nur für in Unterklassen eingeordnete Objekte.


D2FP_PAR_MODULE

D2FP_PAR_MODULE wird benutzt, um das Modul des übergeordneten Objekts zurückzugeben. Dieses Attribut gilt nur für in Unterklassen eingeordnete Objekte.


D2FP_PAR_NAM

D2FP_PAR_NAM wird benutzt, um den Namen des übergeordneten Objekts zurückzugeben. Dieses Attribut gilt nur für in Unterklassen eingeordnete Objekte.


D2FP_LIB_LOC

D2FP_LIB_LOC wird benutzt, um den physikalischen Speicherort der PL/SQL-Bibliothek zurückzugeben.


D2FP_LIB_SRC

D2FP_LIB_SRC wird benutzt, um die Bibliotheksquelle der PL/SQL-Bibliothek zurückzugeben.


D2FP_PRECOMP_SUMM

D2FP_PRECOMP_SUMM wird benutzt, um die Summe für ein berechnetes Objekt zurückzugeben.


D2FP_NXT_NAVIGATION_BLK_OBJ

D2FP_NXT_NAVIGATION_BLK_OBJ wird benutzt, um das Handle zu dem Objekt zurückzugeben, das als nächster Navigationsblock oder als Block mit der nächsthöheren Sequenznummer bekannt ist.


D2FP_PREV_NAVIGATION_BLK_OBJ

D2FP_PREV_NAVIGATION_BLK_OBJ wird benutzt, um das Handle zu dem Objekt zurückzugeben, das als vorheriger Navigationsblock bekannt ist.


D2FP_NXT_NAVIGATION_ITM_OBJ

D2FP_NXT_NAVIGATION_ITM_OBJ wird benutzt, um das Handle zu dem Objekt zurückzugeben, das als nächster Navigationsblock bekannt ist.


D2FP_PREV_NAVIGATION_ITM_OBJ

D2FP_PREV_NAVIGATION_ITM_OBJ wird benutzt, um das Handle zu dem Objekt zurückzugeben, das als nächster Navigationsblock oder Block mit der nächstniedrigeren Sequenznummer bekannt ist.


D2FP_REC_VAT_GRP_OBJ

D2FP_REC_VAT_GRP_OBJ wird benutzt, um das Handle zu dem visuellen Attributgruppenobjekt des aktuellen Datensatzes zurückzugeben.


D2FP_RELD2FP_REL

D2FP_REL wird benutzt, um das Handle zu der Liste mit Beziehungsobjekten zurückzugeben.


D2FP_SCRLBR_CNV_OBJ

D2FP_SCRLBR_CNV_OBJ ist das Handle zu der Liste mit Objekten der Symbolleisten-Leinwand.


D2FP_SCRLBR _TBP_OBJ

D2FP_SCRLBR_TBP_OBJ ist das Handle zu der Liste mit Bildlaufleisten-Registerseitenobjekten.


D2FP_TRIGGER

D2FP_TRIGGER wird benutzt, um das Handle zu der Liste mit Triggerobjekten zurückzugeben.


D2FP_GRAPHIC

D2FP_GRAPHIC wird benutzt, um das Handle zu der Liste mit Grafikobjekten zurückzugeben.


D2FP_POPUP_MNU_OBJ

D2FP_POP_MENU_OBJ wird benutzt, um das Handle zu der Liste mit Objekten von Popup-Menüs zurückzugeben.


D2FP_WND_OBJ

D2FP_WND_OBJ wird benutzt, um das Handle zu der Liste mit Fensterobjekten zurückzugeben.


D2FP_DSA_MODE

D2FP_DSA_MODE wird benutzt, um den Modus - IN, OUT, IN OUT - für ein Datenquellobjekt zurückzugeben.


D2FP_DSA_NAM

D2FP_DSA_NAM wird benutzt, um den Namen eines Datenquellarguments zurückzugeben.


D2FP_DSA_TYP

D2FP_DSA_TYP wird benutzt, um den Datentyp eines Datenquellarguments zurückzugeben.


D2FP_DSA_TYP_NAM

D2FP_DSA_TYP_NAM wird benutzt, um den Namen eines Datenquellargument-Typs zurückzugeben.


D2FP_DSA_VAL

D2FP_DSA_VAL wird benutzt, um den Wert eines Datenquellarguments zurückzugeben.


D2FP_DSC_LEN

D2FP_DSC_LEN wird benutzt, um die Länge der Datenquellspalte zurückzugeben.


D2FP_DSC_MANDATORY

D2FP_DSC_MANDATORY wird benutzt, um einen Wert zurückzugeben, mit dem angegeben wird, ob eine Datenquellspalte obligatorisch ist.


D2FP_DSC_NAM

D2FP_DSC_NAM wird benutzt, um den Namen einer Datenquellspalte zurückzugeben.


D2FP_DSC_PRECISION

D2FP_DSC_PRECISION wird benutzt, um die Genauigkeit einer Datenquellspalte zurückzugeben.


D2FP_DSC_SCALE

D2FP_DSC_SCALE wird benutzt, um die Skalierung einer Datenquellspalte zurückzugeben.


D2FP_DSC_TYPE

D2FP_DSC_TYPE wird benutzt, um den Datentyp einer Datenquellspalte zurückzugeben.


D2FP_ALERT

D2FP_ALERT wird benutzt, um das Handle zu der Liste mit Warnfensterobjekten zurückzugeben.


D2FP_ATT_LIB

D2FP_ATT_LIB wird benutzt, um das Handle zu der Liste mit zugeordneten Bibliotheksobjekten zurückzugeben.


D2FP_BLOCK

D2FP_BLOCK wird benutzt, um das Handle zu der Liste mit Blockobjekten zurückzugeben.


D2FP_CANVAS

D2FP_CANVAS wird benutzt, um das Handle zu der Liste mit Leinwandobjekten zurückzugeben.


D2FP_FORM_PARAM

D2FP_FORM_PARAM wird benutzt, um das Handle zu der Liste mit Objekten zurückzugeben.


D2FP_FIRST_NAVIGATION_BLK_OBJ

D2FP_FIRST_NAVIGATION_BLK_OBJ wird benutzt, um das Handle zu dem ersten navigierbaren Blockobjekt zurückzugeben.


D2FP_MENU

D2FP_MENU wird benutzt, um das Handle zu der Liste mit Menüobjekten zurückzugeben.


D2FP_PROG_UNIT

D2FP_PROG_UNIT wird benutzt, um das Handle zu der Liste mit Programmblockobjekten zurückzugeben.


D2FP_REPORT

D2FP_REPORT wird benutzt, um das Handle zu der Liste mit Bericht-Objekten zurückzugeben.


D2FP_OBJ_GRP

D2FP_OBJ_GRP wird benutzt, um das Handle zu der Liste mit Objektgruppenobjekten zurückzugeben.


D2FP_VIS_ATTR

D2FP_VIS_ATTR wird benutzt, um das Handle zu der Liste mit visuellen Attributobjekten zurückzugeben.


D2FP_OBJ_COUNT

D2FP_OBJ_COUNT wird benutzt, um die Anzahl von Objekten in einer Objektbibliothek zurückzugeben.


D2FP_OBJ_LIB_TAB

D2FP_OBJ_LIB_TAB wird benutzt, um das Handle zu der Liste mit Objektbibliotheksregistern zurückzugeben.


D2FP_ITEM

D2FP_ITEM wird benutzt, um das Handle zu der Liste mit Objekten zurückzugeben.


D2FP_FRAM_TTL_VAT_OBJ

D2FP_FRAM_TTL_VAT_OBJ wird benutzt, um das Handle zu der Liste mit visuellen Attributobjekten des Rahmentitels zurückzugeben.


D2FP_TBP_OBJ

D2FP_TBP_OBJ wird benutzt, um das Handle zu der Liste mit Registerseitenobjekten zurückzugeben.


D2FP_CNV_OBJ

D2FP_CNV_OBJ wird benutzt, um das Handle zu der Liste mit Leinwandobjekten zurückzugeben.


D2FP_EDT_OBJ

D2FP_EDT_OBJ wird benutzt, um das Handle zu der Liste mit Editorobjekten zurückzugeben.


D2FP_LOV_OBJ

D2FP_LOV_OBJ wird benutzt, um das Handle zu der Liste mit Wertelistenobjekten zurückzugeben.


D2FP_POPUP_VA_OBJ

D2FP_POPUP_VA_OBJ wird benutzt, um das Handle zu der Liste mit visuellen Attributobjekten von Popup-Menüs zurückzugeben.


D2FP_PRMPT_VAT_OBJ

D2FP_PRMPT_VAT_OBJ wird benutzt, um das Handle zu der Liste mit visuellen Attributobjekten von Prompts zurückzugeben.


D2FP_SYNC_ITM_OBJ

D2FP_SYNC_ITM_OBJ wird benutzt, um das Handle zu der Liste mit synchronisierten Objekten zurückzugeben.


D2FP_REC_GRP_OBJ

D2FP_REC_GRP_OBJ wird benutzt, um das Handle zu der Liste mit Datensatzgruppenobjekten zurückzugeben.


D2FP_LIST_ELEMENT_COUNT

D2FP_LIST_ELEMENT_COUNT wird benutzt, um die Anzahl von Elementen in einem Listenelementobjekt zurückzugeben.


D2FP_RAD_BUT

D2FP_RAD_BUT wird benutzt, um das Handle zu der Liste mit Optionsschaltflächen zurückzugeben.


D2FP_MENU_ITM_CODE

D2FP_MENU_ITM_CODE wird benutzt, um das Handle zu dem Quellcode des Menüpunkts zurückzugeben.


D2FP_SUB_MNU_NAM

D2FP_SUB_MNU_NAM wird benutzt, um den Namen eines Untermenüs zurückzugeben.


D2FP_SUB_MNU_OBJ

D2FP_SUB_MNU_OBJ wird benutzt, um das Handle zu der Liste mit Untermenüs zurückzugeben.


D2FP_VAT_TYP

D2FP_VAT_TYP wird benutzt, um den visuellen Attributtyp zurückzugeben.


D2FP_COL_VALS_COUNT

D2FP_COL_VALS_COUNT wird benutzt, um die Anzahl von Werten zurückzugeben, die mit einem Spaltennamen in dem Spaltenspezifikationsobjekt verknüpft sind.


D2FP_COL_DAT_TYP

D2FP_COL_DAT_TYP wird benutzt, um das Datentypattribut für das Spaltenspezifikationsobjekt zurückzugeben.


D2FP_PGU_TXT

D2FP_PGU_TXT wird benutzt, um den Programmblocktext zurückzugeben.


D2FP_PGU_TYP

D2FP_PGU_TYP wird benutzt, um den Programmblocktyp zurückzugeben.


D2FP_OBJ_GRP_CHILD_REAL_OBJ

D2FP_OBJ_GRP_CHILD_REAL_OBJ wird benutzt, um das Handle zu dem reellen Objekt der untergeordneten Objektgruppe zurückzugeben.


D2FP_ASSOC_MENUS_COUNT

D2FP_ASSOC_MENUS_COUNT wird benutzt, um die Anzahl von verknüpften Menüs zurückzugeben.


D2FP_OG_CHILD

D2FP_OG_CHILD wird benutzt, um ein Handle zu dem ersten untergeordneten Objekt der Objektgruppe zurückzugeben.


D2FP_MNU_PARAM

D2FP_MNU_PARAM wird benutzt, um ein Handle zu dem ersten Menüparameter zurückzugeben.


Objekt Datenquellargument

  Verwandte Themen

Dieses Objekt gibt Namen, Datentyp und Werte der Argumente an, die zur Abfrage von Daten an eine Prozedur übergeben werden müssen.


Objekt Datenquellspalte

  Verwandte Themen

Dieses Objekt gibt Namen und Datentyp der Spalten an, die mit der Datenquelle der Blockabfrage verknüpft sind.


Objekt Editor

  Verwandte Themen

Dieses Objekt ermöglicht dem Editor, Text zu bearbeiten. Es gibt drei Arten von Editorobjekten: Standardeditor, Systemeditor und benutzerdefinierter Editor.


Objekt Formmodul

  Verwandte Themen

Dieses Objekt stellt eine Sammlung von Objekten und Coderoutinen dar. Einige der Objekte, die Sie in einem Formmodul definieren können, umfassen Fenster, Textobjekte (Felder), Kontrollkästchen, Schaltflächen, Warnfenster, Wertelisten und Blöcke mit PL/SQL-Code, die als Trigger bezeichnet werden.


Objekt Formparameter

  Verwandte Themen

Mit diesem Objekt können Sie auf einfache Weise die Werte von Eingaben definieren und festlegen, die beim Starten von einer Form benötigt werden. Formparameter sind Variablen vom Typ CHAR, NUMBER oder DATE, die Sie bei der Entwicklung definieren.


Objekt Grafik

  Verwandte Themen

Dieses Objekt stellt eine Sammlung von grafischen Boilerplate-Objekten dar, die auf ein Leinwandobjekt gesetzt werden können. Sie können die folgenden grafischen Objekte erstellen: Rechtecke, Ellipsen, Polygone, abgerundete Rechtecke, Text-Boilerplate, Linien, Bogen, Polygonzüge und Freihand-Boilerplate-Objekte (Freihand-Objekte).


Objekt Item

  Verwandte Themen

Dieses Objekt zeigt Informationen für Operatoren an und ermöglicht diesen die Zusammenarbeit mit der Anwendung. Objekte umfassen folgende Typen: Bean-Bereiche, Schaltflächen, Diagrammobjekte, Kontrollkästchen, Anzeigeobjekte, Bilder, Listenobjekte, OLE-Container, Optionsgruppen, Textobjekte, Benutzerbereiche und VBX-Steuerelemente.


Objekt Wertelisten-Spaltenzuordnung

  Verwandte Themen

Dieses Objekt stellt die individuellen Spalten innerhalb eines Wertelistenobjekts dar. Nachdem Sie ein Wertelistenobjekt erstellt haben, müssen Sie ein Objekt zur Wertelisten-Spaltenzuordnung (mit d2flcmcr_Create()) für jede Spalte des Wertelistenobjekts erstellen.


Objekt Werteliste

  Verwandte Themen

Dieses Objekt stellt eine interne Datenstruktur von Form Builder dar, die ein Spalten-/Zeilen-Gerüst wie eine Datenbanktabelle hat.

Ein Wertelisten-Objekt ist ein Popup-Fenster mit einer Bildlaufleiste, mit dem dem Benutzer eine ein- oder mehrspaltige Auswahlliste bereitgestellt wird.


Objekt Menü

  Verwandte Themen

Dieses Objekt gibt die Zeichenfolge an, die auf der Meldungszeile angezeigt wird, wenn der Endbenutzer zu dem Menü navigiert. Dies gilt für Anwendungen, die im Zeichenmodus mit Pulldown- und Leisten-Menüs arbeiten. Bei der Anzeige im Gesamtbildschirmmodus stellt dieses Objekt die Zeichenfolge dar, die das Menümodul kennzeichnet. Jede Form wird mit einem der folgenden Menüobjekte ausgeführt: ein Standardmenü, das in jeder Form integriert ist, sowie ein benutzerdefiniertes Menü, das Sie als separates Modul definieren und dann der Form für die Ausführung zur Laufzeit zuordnen können, oder überhaupt kein Menü.


Objekt Menümodul

  Verwandte Themen

Dieses Objekt stellt eine Sammlung von Menüs (ein Hauptmenü und eine beliebige Anzahl von Untermenüobjekten) sowie Menüpunktbefehle dar, die gemeinsam ein Anwendungsmenü bilden.


Objekt Menüpunkt

  Verwandte Themen

Dieses Objekt gibt den Typ des Menüpunkts an: Normal, Kontroll, Magisch, Option oder Trennlinie. Mit dem Typ wird angegeben, wie der Menüpunkt angezeigt wird und ob mit dem Menüpunkt ein Befehl verknüpft sein kann.


Objekt Menüparameter

  Verwandte Themen

Dieses Objekt stellt den Namen der individuellen Menüs in dem Modul dar, mit denen der Parameter verknüpft ist. Wenn der Operator zu einem Menü navigiert, das über einen verknüpften Parameter verfügt, fordert Form Builder den Operator auf, einen Wert in das Dialogfeld Parameterwerte eingeben einzugeben.


Objekt (Allgemeines Objekt)

  Verwandte Themen

Mit diesem Objekt können Sie alle Änderungen an allen verknüpften Objekten programmgesteuert weiterleiten, die in einer bestimmten Form enthalten sind.


Objekt Objektgruppe

  Verwandte Themen

Dieses Objekt ist ein Container für eine Gruppe von Objekten. Sie definieren eine Objektgruppe, wenn Sie zusammengehörige Objekte so zusammenfassen möchten, daß Sie sie in ein anderes Modul kopieren bzw. in einem anderen Modul in eine Unterklasse einordnen können.

Mit Objektgruppen können Objekte zu Bausteinen einer höheren Ebene gebündelt werden, die in anderen Teilen einer Anwendung und in späteren Entwicklungsobjekten benutzt werden können.


Objekt Untergeordnete Objektgruppe

  Verwandte Themen

Dieses Objekt stellt ein untergeordnetes Objekt eines Objektgruppen-Containers dar.


Objekt Objektbibliothek

  Verwandte Themen

Mit diesem Objekt können Objekte problemlos wiederbenutzt und Standards über die ganze Entwicklungsorganisation hinweg durchgesetzt werden.

Sie können die Objektbibliothek benutzen, um standardmäßige und wiederverwendbare Objekte zu erstellen, zu speichern, zu verwalten und weiterzuleiten.

Mit Objektbibliotheken können Sie außerdem schnell Anwendungen erstellen, indem vordefinierte Objekte mit Drag-and-Drop in die Form gezogen und abgelegt werden.


Objekt Programmblock

  Verwandte Themen

Dieses Objekt stellt eine benannte PL/SQL-Funktion oder -Prozedur dar, die Sie in Forms, Menüs oder Bibliotheksmodulen schreiben. Auch wenn im wesentlichen Triggerobjekte benutzt werden, um eine Form Builder-Anwendung mit einer programmgesteuerten Kontrolle zu versehen, ergänzt dieses Objekt Triggerobjekte insofern, als Sie Code wiederbenutzen können, ohne ihn in mehrere Trigger eingeben zu müssen.


Objekt Attributklasse

  Verwandte Themen

Dieses Objekt ist ein benanntes Objekt, das eine Liste mit Attributen und die zugehörigen Einstellungen enthält. Nachdem Sie eine Attributklasse erstellt haben, können Sie andere Objekte auf dieser Attributklasse aufbauen. Ein Objekt, das auf einer Attributklasse basiert, kann die Einstellungen der Attribute in der Klasse übernehmen, die für dieses Objekt zutreffend sind.


Objekt Optionsschaltfläche

  Verwandte Themen

Dieses Objekt stellt eine Option dar, die auf einem Oberflächensteuerelement einer Optionsgruppe angezeigt wird, und ausschließlichen Charakter hat. Dieses Objekt kann unabhängig von anderen Optionsschaltflächenobjekten skaliert, positioniert und formatiert werden.


Objekt Datensatzgruppe

  Verwandte Themen

Dieses Objekt stellt eine interne Datenstruktur von Form Builder dar, die ein Spalten-/Zeilen-Gerüst wie eine Datenbanktabelle hat. Im Gegensatz zu Datenbanktabellen sind Datensatzgruppen separate Objekte, die zu dem Formmodul gehören, in dem sie definiert sind. Ein Datensatzgruppenobjekt kann eine begrenzte Anzahl von Spalten vom Typ CHAR, LONG, NUMBER oder DATE haben, vorausgesetzt, die Gesamtanzahl von Spalten überschreitet 64 K nicht. Die Spaltennamen von Datensatzgruppenobjekten dürfen 30 Zeichen nicht überschreiten.


Objekt Datensatzgruppen-Spaltenspezifikation

  Verwandte Themen

Dieses Objekt stellt die individuellen Spalten innerhalb eines Datensatzgruppenobjekts dar. Nachdem Sie ein Datensatzgruppenobjekt erstellt haben, müssen Sie ein Datensatzgruppen-Spaltenspezifikationsobjekt (mit d2frcscr_Create()) für jede Spalte des Datensatzgruppenobjekts erstellen.


Objekt Beziehung

  Verwandte Themen

Dieses logische Objekt gibt die Beziehung zwischen einem Master-Block und einem entsprechenden Detail-Block an. Im Objektnavigator wird das Beziehungsobjekt unter dem Block angezeigt, der der Master-Block in der Beziehung ist.

Wenn Sie eine Beziehung erstellen, generiert Form Builder die Trigger und PL/SQL-Prozeduren, die zur Durchsetzung der Koordination zwischen den Master- und Detail-Blöcken erforderlich sind. Der konkrete Code, den Form Builder generiert, hängt davon ab, wie Sie die Attribute der Beziehung definieren.


Objekt Bericht

  Verwandte Themen

Dieses Objekt stellt ein Berichtmodul dar, das mit Oracle Report Builder erstellt wird.


Registerseitenobjekte;
Objekt Registerseite

  Verwandte Themen

Dieses Objekt zeigt eine Teilmenge der Informationen an, die auf der ganzen Registerleinwand angezeigt werden. Mit einer Registerleinwand können Sie eine große Informationsmenge auf einem einzelnen dynamischen Leinwandobjekt gruppieren und anzeigen. Eine Registerleinwand kann ein oder mehrere Registerseitenobjekte enthalten.


Objekt Trigger

  Verwandte Themen

Dieses Objekt stellt einen Codeblock dar, den Sie schreiben, um eine Standardanwendung mit zusätzlicher Funktionalität zu versehen. Jedes Triggerobjekt hat einen Namen und enthält eine oder mehrere PL/SQL-Anweisungen. Ein Triggerobjekt umfaßt PL/SQL-Code, so daß Sie es mit einem Ereignis verknüpfen und als eigenständiges Objekt ausführen und verwalten können.


Objekt Visuelles Attribut

  Verwandte Themen

Dieses Objekt stellt ein benanntes visuelles Attribut dar, das zur Laufzeit für ein Objekt angewendet werden soll. Ein visuelles Attribut definiert eine Sammlung von Schriftart-, Farb- und Musterattributen, die das Erscheinungsbild eines Objekts bestimmen.


Objekt Fenster

  Verwandte Themen

Dieses Objekt gibt das Fenster an, in dem das Leinwandobjekt zur Laufzeit angezeigt wird.


Über Open API-Funktionen nach Objekten

  Verwandte Themen

In diesem Abschnitt werden die Funktionen beschrieben, so wie sie in den Header-Dateien von Open API auftreten. Funktionen sind nach dem zugehörigen Open API-Objekt von Forms geordnet. Jede Funktion umfaßt eine Argumentliste und eine kurze Beschreibung.

Eine vollständige Beschreibung der verschiedenen möglichen Rückgabecodes von Open API-Funktionen finden Sie in dem Abschnitt "Über Rückgabecodes von Open API-Funktionen".

API-Funktionen nach Objekten

Warnfenster

Zugeordnete Bibliotheken

Blöcke

Leinwand

Datenquellargumente

Datenquellspalten

Editoren

Formmodule

Formparameter

Grafiken

Objekte

Werteliste Spaltenzuordnung

Werteliste

Menüpunkte

Menümodule

Menüpunkte

Menüparameter

Objekte(Allgemeine Objekte)

Objektgruppen

Untergeordnete Objektgruppe

Objektbibliothek

Programmblock

Attributklassen

Optionsschaltflächen

Datensatzgruppen

Datensatzgruppen-Spaltenspezifikation

Beziehungsobjekte

Berichtobjekte

Registerseiten

Trigger

Visuelle Attribute

Fenster


Funktionen des Objekts Warnfenster

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Warnfenster von Form Builder beschrieben.

d2faltcr_Create( d2fctx *pd2fctx, d2fob *parent, d2falt **ppd2falt, text *name );

Diese Funktion erstellt ein Warnfenster-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Warnfenster-Objekts in parent, ein Handle zur Speicherung des neu erstellten Warnfenster-Objekts in ppd2falt und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_D2FS_SUCCESS zurück, wenn das neue Warnfenster-Objekt erstellt und in ppd2falt gespeichert werden kann.

d2faltde_Destroy( d2fctx *pd2fctx, d2falt *pd2falt );

Diese Funktion zerstört das angegebene Warnfenster-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Warnfenster-Objekt in pd2falt an.

d2faltdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2alt *pd2falt_src, d2falt **ppd2falt_dst, text *new_name );

Diese Funktion dupliziert das angegebene Warnfenster-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das neue übergeordnete Objekt in new_parent, die Quelle des Warnfensters in pd2falt_src, ein Handle zur Speicherung des Warnfenster-Ziels in ppd2falt_dst und einen Zeiger für den Namen des neuen Warnfenster-Objekts (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Warnfenster-Objekt dupliziert und in dem Speicherort ppd2falt_dst gespeichert werden kann.

d2faltgb_GetBoolProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für das angegebene Warnfenster-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Warnfenster-Objekt in pd2falt, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2faltgn_GetNumProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für das angegebene Warnfenster-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Warnfenster-Objekt in pd2falt, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2faltgt_GetTextProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für das angegebene Warnfenster-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Warnfenster-Objekt in pd2falt, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für das angegebene Warnfenster-Objekt in pprp aufgefüllt wird

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2faltgo_GetObjectProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt des angegebenen Warnfenster-Objekts ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Warnfenster-Objekt in pd2falt, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwerts an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attributwert in pprp gespeichert wird.

d2faltgp_GetBlobProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Warnfenster-Objekt in pd2falt, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2faltsb_SetBoolProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des angegebenen Booleschen Attributs für das Warnfenster-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Warnfenster-Objekt in pd2falt, die Attributnummer in pnum und den Booleschen Attributwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2faltsn_SetNumProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des Number-Attributs des angegebenen Warnfenster-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Warnfenster-Objekt in pd2falt, die Attributnummer in pnum und den Number-Attributwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2faltst_SetTextProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des angegebenen Text-Attributs des Warnfenster-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Warnfenster-Objekt in pd2falt, die Attributnummer in pnum und einen Zeiger zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2faltso_SetObjectProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt den Wert des angegebenen Attributs Warnfenster-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Warnfenster-Objekt in pd2falt, eine Attributnummer in pnum und einen Zeiger zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2faltsp_SetBlobProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Warnfenster-Objekt in pd2falt, eine Attributnummer in pnum und einen Zeiger zu dem vom Cient angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2falthp_HasProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum );

Diese Funktion fragt das angegebene Warnfenster-Objekt nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Warnfenster-Objekt in pd2falt und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben je nach spezifischen Umständen. Eine vollständige Liste der gültigen Open API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2faltip_InheritProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum );

Mit dieser Funktion kann das angegebene Warnfenster-Objekt das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Warnfenster-Objekt in pd2falt und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2faltii_IspropInherited( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum );

Diese Funktion prüft, ob das angegebene Objekt-Attribut von dem übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Warnfenster-Objekt in pd2falt und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2faltsc_SubClass( d2fctx *pd2fctx, d2falt *pd2falt, d2fob *parent, boolean keep_path);

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Warnfenster-Objekt (pd2falt) zu einer Unterklasse des angegebenen übergeordneten Objekts (parent) wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Warnfenster-Objekt in pd2falt, einen Zeiger zu dem übergeordneten Objekt in parent und ein Boolesches Flag an, um anzugeben, ob die Funktion den Pfad zu dem übergeordneten Objekt in keep_path speichert.

Beachten Sie, daß Forms API das Boolesche Argument keep_path verwendet, um die konkreten Pfadinformationen zu speichern. Es wird davon abgeraten, keep_path auf TRUE einzustellen, da diese Informationen möglicherweise verloren gehen, wenn Sie zu einem anderen Rechner wechseln. Wenn keep_path auf TRUE eingestellt ist, speichert Forms API den konkreten Pfad in der .fnb-Datei. Wenn die Form das nächste Mal geladen wird, sucht Forms API deshalb nach der übergeordneten Form in einem der angegebenen Verzeichnisse, wie von der Umgebungsvariablen definiert, je nachdem, wie der Pfad der Umgebungsvariablen in Forms 4.5 oder 5.0 definiert ist..

d2faltis_IsSubclassed	( d2fctx *pd2fctx, d2falt *pd2falt );

Diese Funktion prüft, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem Warnfenster-Objekt in pd2falt an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Zugeordnete Bibliothek

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Zugeordnete Bibliothek von Form Builder beschrieben.

d2falbat_Attach( d2fctx *pd2fctx, d2fob *parent, d2falb **ppd2falb, boolean db, text *name );

Diese Funktion ordnet die angegebene Bibliothek einer Datenbank (wie z.B. einer Form, einem Menü oder einer PL/SQL-Bibliothek) oder einem Dateisystem zu. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der Stelle, an der die Bibliothek zugeordnet werden soll, in parent, ein Handle für die zurückgegebene zugeordnete Bibliothek in ppd2falb, ein Boolesches Flag zur Angabe, ob die Bibliothek in einer Datenbank oder einem Dateisystem gespeichert ist, in db und einen Zeiger zu dem Namen der Bibliothek in name an.

Wenn Sie db auf TRUE einstellen, sucht Forms API nach der angegebenen Bibliothek (dem in name übergebenen Namen) in einer Datenbank. Wenn db auf FALSE eingestellt ist, ist die Bibliothek in einem Dateisystem gespeichert, und Forms API sucht nach der angegebenen Bibliothek in dem Dateisystem und ordnet sie dann zu. Wenn z.B. eine Bibliothek einem Formmodul zugeordnet werden soll und die Bibliothek in einem Dateisystem gespeichert ist, muß db auf FALSE eingestellt werden.

d2falbdt_Detach( d2fctx *pd2fctx, d2falb *pd2falb );

Diese Funktion hebt die Zuordnung der angegebenen Bibliothek von einer Datenbank oder dem Dateisystem auf. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu der zugeordneten Bibliothek in ppd2falb an.

d2falbgb_GetBoolProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für die angegebene zugeordnete Bibliothek ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der zugeordneten Bibliothek in pd2falb, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2falbgn_GetNumProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für die angegebene zugeordnete Bibliothek ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der zugeordneten Bibliothek in pd2falb, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des abgerufenen numerischen Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2falbgt_GetTextProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für die angegebene zugeordnete Bibliothek ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der zugeordneten Bibliothek in pd2falb, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen zur Speicherung des Text-Attributwertes (pprp) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für die angegebene zugeordnete Bibliothek in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2falbgo_GetObjectProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt der angegebenen zugeordneten Bibliothek ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der zugeordneten Bibliothek in pd2falb, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2falbgp_GetBlobProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der zugeordneten Bibliothek in pd2falb, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2falbsb_SetBoolProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des angegebenen Booleschen Attributs der zugeordneten Bibliothek. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der zugeordneten Bibliothek in pd2falb, die Attributnummer in pnum und den Booleschen Attributwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2falbsn_SetNumProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des angegebenen Number-Attributs der zugeordneten Bibliothek. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der zugeordneten Bibliothek in pd2falb, die Attributnummer in pnum und den Number-Attributwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2falbst_SetTextProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des angegebenen Text-Attributs der zugeordneten Bibliothek. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der zugeordneten Bibliothek in pd2falb, die Attributnummer in pnum und einen Zeiger zu dem Text-Attributwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2falbso_SetObjectProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt den Wert des angegebenen Objekt-Attributs der zugeordneten Bibliothek. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der zugeordneten Bibliothek in pd2falb, eine Attributnummer in pnum und einen Zeiger zu dem Objekt-Attributwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2falbsp_SetBlobProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem zugeordneten Bibliotheksobjekt in pd2falb, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2falbhp_HasProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum );

Diese Funktion fragt die angegebene zugeordnete Bibliothek nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der zugeordneten Bibliothek in pd2falb und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2falbip_InheritProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum );

Mit dieser Funktion kann die angegebene zugeordnete Bibliothek das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem zugeordneten Bibliotheksobjekt in pd2falb und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2falbii_IspropInherited( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts von dem übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem zugeordneten Bibliotheksobjekt in pd2falb und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Block

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Block von Form Builder beschrieben.

d2fblkcr_Create( d2fctx *pd2fctx, d2fob *parent, d2fblk **ppd2fblk, text *name );

Diese Funktion erstellt einen Block. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Block-Objekts in parent, ein Handle zur Speicherung des neu erstellten Blockobjekts in ppd2fblk und einen Zeiger zu name für den Namen des neuen Objekts an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein neuer Block in ppd2fblk erstellt werden kann.

d2fblkde_Destroy( d2fctx *pd2fctx, d2fblk *pd2fblk );

Diese Funktion zerstört den angegebenen Block. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Block-Objekt in pd2fblk an.

d2fblkdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2blk *pd2fblk_src, d2fblk **ppd2fblk_dst, text *new_name );

Diese Funktion dupliziert den angegebenen Block. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Blockquelle in pd2fblk_src, ein Handle zur Speicherung des Ziels in ppd2fblk_dst und einen Zeiger für den Namen des neuen Blocks (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der angegebene Block dupliziert und in ppd2fblk_dst gespeichert werden kann.

d2fblkco_CompileObj( d2fctx *pd2fctx, d2fblk *pd2fblk );

Diese Funktion kompiliert den gesamten PL/SQL-Code, der mit dem angegebenen Block verknüpft ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu kompilierenden Objekt in pd2fblk an.

Sie könnten diese Funktion z.B. benutzen, um alle Triggerobjekte, die einem Block zugeordnet sind, und alle Triggerobjekte zu kompilieren, die allen Objekten in einem Block zugeordnet sind.

d2fblkgb_GetBoolProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für den angegebenen Block ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Block in pd2fblk, die Attributnummer in pnum und einen Zeiger zu pprp an, um den Booleschen Attributwert zu speichern.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2fblkgn_GetNumProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für den angegebenen Block ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Block in pd2fblk, die Attributnummer in pnum und einen Zeiger zu pprp an, um den numerischen Attributwert zu speichern.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2fblkgt_GetTextProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für den angegebenen Block ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Block in pd2fblk, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen zur Speicherung des Text-Attributwertes in pprp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für den angegebenen Block in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2fblkgo_GetObjectProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt des angegebenen Blocks ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Block in pd2fblk, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2fblkgp_GetBlobProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Blockobjekt in pd2fblk, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2fblksb_SetBoolProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des angegebenen Booleschen Block-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Block in pd2fblk, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fblksn_SetNumProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des angegebenen Block-Number-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Block in pd2fblk, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fblkst_SetTextProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des angegebenen Block-Text-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Block in pd2fblk, die Attributnummer in pnum und einen Zeiger zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fblkso_SetObjectProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt den Wert des angegebenen Block-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Block in pd2fblk, eine Attributnummer in pnum und einen Zeiger zu dem Objekt-Attributwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fblksp_SetBlobProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Blockobjekt in pd2fblk, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2fblkhp_HasProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum );

Diese Funktion fragt den angegebenen Block nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Block in pd2fblk und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fblkip_InheritProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum );

Mit dieser Funktion kann der angegebene Block das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Blockobjekt in pd2fblk und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fblkii_IspropInherited( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum );

Diese Funktion prüft, ob das angegebene Objekt-Attribut von dem übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Blockobjekt in pd2fblk und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fblksc_SubClass( d2fctx *pd2fctx, d2fblk *pd2fblk, d2fob *parent, boolean keep_path);

Diese Funktion gibt D2FS_YES zurück, wenn der angegebene Block (pd2fblk) zu einer Unterklasse des angegebenen übergeordneten Objekts (parent) wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Block in pd2fblk, einen Zeiger zu dem übergeordneten Objekt in parent und ein Boolesches Flag zur Angabe an, ob die Funktion den Pfad zu dem übergeordneten Objekt in keep_path speichert.

Beachten Sie, daß Forms API das Boolesche Argument keep_path verwendet, um die konkreten Pfadinformationen zu speichern. Es wird davon abgeraten, keep_path auf TRUE einzustellen, da diese Informationen möglicherweise verloren gehen, wenn Sie zu einem anderen Rechner wechseln. Wenn keep_path auf TRUE eingestellt ist, speichert Forms API den konkreten Pfad in der .fnb-Datei. Wenn die Form das nächste Mal geladen wird, sucht Forms API deshalb nach der übergeordneten Form in einem der angegebenen Verzeichnisse, wie von der Umgebungsvariablen definiert, je nachdem, wie der Pfad der Umgebungsvariablen in Forms 4.5 oder 5.0 definiert ist..

d2fblkis_IsSubclassed	( d2fctx *pd2fctx, d2fblk *pd2fblk );

Diese Funktion prüft, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem Blockobjekt in pd2fblk an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Leinwand

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Block von Form Builder beschrieben.

d2fcnvcr_Create( d2fctx *pd2fctx, d2fob *parent, d2fcnv **ppd2fcnv, text *name );

Diese Funktion erstellt eine Leinwand. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Leinwand-Objekts in parent, ein Handle zur Speicherung des neu erstellten Leinwand-Objekts in ppd2fcnv und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn eine neue Leinwand in ppd2fcnv erstellt werden kann.

d2fcnvde_Destroy( d2fctx *pd2fctx, d2fcnv *pd2fcnv );

Diese Funktion zerstört die angegebene Leinwand. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu der zu zerstörenden Leinwand in pd2fcnv an.

d2fcnvdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2cnv *pd2fcnv_src, d2fcnv **ppd2fcnv_dst, text *new_name );

Diese Funktion dupliziert die angegebene Leinwand. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Leinwandquelle in pd2fcnv_src, ein Handle zur Speicherung des Ziels in ppd2fcnv_dst und einen Zeiger für den Namen der neuen Leinwand (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn die angegebene Leinwand dupliziert und in ppd2fcnv_dst gespeichert werden kann.

d2fcnvco_CompileObj( d2fctx *pd2fctx, d2fcnv *pd2fcnv );

Diese Funktion kompiliert den gesamten PL/SQL-Code, der mit der angegebenen Leinwand verknüpft ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu kompilierenden Objekt in pd2fcnv an.

Sie könnten diese Funktion z.B. benutzen, um alle einer Leinwand zugeordneten Triggerobjekte und alle Triggerobjekte zu kompilieren, die allen Objekten auf einer Leinwand zugeordnet sind.

d2fcnvgb_GetBoolProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für die angegebene Leinwand ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der Leinwand in pd2fcnv, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2fcnvgn_GetNumProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für die angegebene Leinwand ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der Leinwand in pd2fcnv, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2fcnvgt_GetTextProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für die angegebene Leinwand ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der Leinwand in pd2fcnv, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen zur Speicherung des Text-Attributwertes in pprp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für die angegebene Leinwand in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2fcnvgo_GetObjectProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt der angegebenen Leinwand ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der Leinwand in pd2fcnv, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2fcnvgp_GetBlobProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Leinwandobjekt in pd2fcnv, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2fcnvsb_SetBoolProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des angegebenen Booleschen Leinwandattributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Leinwand in pd2fcnv, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fcnvsn_SetNumProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des Number-Attributs der angegebenen Leinwand. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Leinwand in pd2fcnv, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fcnvst_SetTextProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des Text-Attributs der angegebenen Leinwand. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Leinwand in pd2fcnv, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fcnvso_SetObjectProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Leinwandattributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Leinwand in pd2fcnv, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fcnvsp_SetBlobProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Leinwandobjekt in pd2fcnv, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2fcnvhp_HasProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum );

Diese Funktion fragt die angegebene Leinwand nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Leinwand in pd2fcnv und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fcnvip_InheritProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum );

Durch diese Funktion kann die angegebene Leinwand das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Leinwandobjekt in pd2fcnv und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fcnvii_IspropInherited( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum );

Diese Funktion überprüft, ob das Attribut des angegebenen Objekts von dem übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Leinwandobjekt in pd2fcnv und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fcnvsc_SubClass( d2fctx *pd2fctx, d2fcnv *pd2fcnv, d2fob *parent, boolean keep_path);

Diese Funktion gibt D2FS_SUCCESS zurück, wenn die angegebene Leinwand (pd2fcnv) zu einer Unterklasse des angegebenen übergeordneten Objekts (parent) wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der Leinwand in pd2fcnv, einen Zeiger zu dem übergeordneten Objekt in parent und ein Boolesches Flag zur Speicherung des Pfads zu dem übergeordneten Objekt in keep_path an.

Beachten Sie, daß Forms API das Boolesche Argument keep_path verwendet, um die konkreten Pfadinformationen zu speichern. Es wird davon abgeraten, keep_path auf TRUE einzustellen, da diese Informationen möglicherweise verloren gehen, wenn Sie zu einem anderen Rechner wechseln. Wenn keep_path auf TRUE eingestellt ist, speichert Forms API den konkreten Pfad in der .fnb-Datei. Wenn die Form das nächste Mal geladen wird, sucht Forms API deshalb nach der übergeordneten Form in einem der angegebenen Verzeichnisse, wie von der Umgebungsvariablen definiert, je nachdem, wie der Pfad der Umgebungsvariablen in Forms 4.5 oder 5.0 definiert ist..

d2fcnvis_IsSubclassed	( d2fctx *pd2fctx, d2fcnv *pd2fcnv );

Diese Funktion prüft, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem Leinwandobjekt in pd2fcnv an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Kontext

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Kontext von Form Builder beschrieben.

d2fctxcr_Create( d2fctx **pd2fctx, d2fctxa *d2fctx_attr );

Diese Funktion erstellt den Kontext. Sie geben ein Handle für Forms API zur Speicherung des neu erstellten Kontextes in pd2fctx und einen Zeiger zu der Attributstruktur in pd2fctx_attr an.

Um diesen Kontext zu erstellen, müssen Sie die unten dargestellte konkrete Attributstruktur (d2fctxa) definieren:

   typedef struct d2fctxa

   {

       ub4 mask_d2fctxa;

       dvoid *cdata_d2fctxa;       /* Client data     */

       d2fmalc d2fmalc_d2fctxa;

       d2fmfre d2fmfre_d2fctxa;

       d2fmrlc d2fmrlc_d2fctxa;

   } d2fctxa;

d2fctxde_Destroy( d2fctx *pd2fctx );

Diese Funktion zerstört den angegebenen Kontext. Sie geben einen Zeiger zu dem Kontext in pd2fctx an.

Beachten Sie, daß Sie diese Funktion zuletzt aufrufen müssen, nachdem die Benutzung von Forms API abgeschlossen ist.

d2fctxsa_SetAttributes( d2fctx *pd2fctx, d2fctxa *pd2fctx_attr );

Diese Funktion bestimmt die angegebenen Attribute in der Attributstruktur. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu der Attributstruktur in pd2fctx_attr an.

Beachten Sie, daß Sie diese Funktion immer dann benutzen können, wenn Sie Client-Daten oder Memory-Callbacks übergeben müssen.

d2fctxga_GetAttributes( d2fctx *pd2fctx, d2fctxa *pd2fctx_attr );

Diese Funktion liest die angegebenen Attribute aus der Attributstruktur ein. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu der Attributstruktur in pd2fctx_attr an.

Sie können diese Funktion immer dann benutzen, wenn Sie Client-Daten oder Memory-Callbacks abrufen müssen.

d2fctxcn_Connect( d2fctx *pd2fctx, text *con_str, dvoid *phstdef );

Mit dieser Funktion melden Sie sich bei der angegebenen Datenbank an. Sie geben einen Zeiger zu dem Kontext in pd2fctx , einen Zeiger zu der DB-Adresse in con_str und optional einen hstdef-Zeiger (phstdef) an.

Beachten Sie, daß das Argument phstdef für erfahrene Benutzer vorgesehen ist, die eine hstdef-fähige Verbindung gemeinsam benutzen möchten (die hstdef-Struktur wird von PL/SQL API extern zugänglich gemacht), anstatt eine zweite Verbindung aufzubauen und die Verarbeitungsleistung dadurch möglicherweise zu verlangsamen. Der Zeiger hstdef enthält Informationen über die Datenbankanmeldung. Wenn Sie phstdef auf NULL einstellen, stellt Forms API die Verbindung zu der Datenbank her, die Sie in con_str angeben. Sonst prüft die Funktion, ob die Verbindung hstdef gültig ist, und benutzt den Zeiger hstdef, um die Datenbankverbindung herzustellen. Wenn der Zeiger hstdef ungültig ist oder keine Anmeldung vorgenommen wurde, wird ein Fehler zurückgegeben. Die meisten Benutzer sollten einen NULL-Zeiger für das Argument phstdef übergeben.

d2fctxdc_Disconnect( d2fctx *pd2fctx );

Diese Funktion unterbricht die aktuelle Datenbankverbindung.

d2fctxbv_BuilderVersion( d2fctx *pd2fctx, number *version );

Diese Funktion gibt die aktuelle Version von Forms Designer zurück. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zur Versionsnummer in version an.


Funktionen des Objekts Datenquellargument

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Datenquellargument von Form Builder beschrieben.

d2fdsacr_Create( d2fctx *pd2fctx, d2fob *parent, d2fdsa **ppd2fdsa, text *name );

Diese Funktion erstellt ein Datenquellargument. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Datenquellarguments in parent, ein Handle zur Speicherung des neu erstellten Datenquellargument-Objekts in ppd2fdsa und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein neues Datenquellargument in ppd2fdsa erstellt und gespeichert werden kann.

d2fdsade_Destroy( d2fctx *pd2fctx, d2fdsa *pd2fdsa );

Diese Funktion zerstört das angegebene Datenquellargument. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Datenquellargument in pd2fdsa an.

d2fdsadu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2dsa *pd2fdsa_src, d2fdsa **ppd2fdsa_dst, text *new_name );

Diese Funktion dupliziert das angegebene Datenquellargument. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle des Datenquellarguments in pd2fdsa_src, ein Handle zur Speicherung des Ziels in ppd2fdsa_dst und einen Zeiger für den Namen des neuen Datenquellarguments (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Datenquellargument dupliziert und in dem Speicherort ppd2fdsa_dst gespeichert werden kann.

d2fdsagb_GetBoolProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für das angegebene Datenquellargument ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Datenquellargument in pd2fdsa, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2fdsagn_GetNumProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für das angegebene Datenquellargument ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Datenquellargument in pd2fdsa, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2fdsagt_GetTextProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für das angegebene Datenquellargument ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Datenquellargument in pd2fdsa, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen zur Speicherung des Text-Attributwertes in pprp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für das angegebene Datenquellargument in pprp aufgefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2fdsago_GetObjectProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt des angegebenen Datenquellarguments ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Datenquellargument in pd2fdsa, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2fdsagp_GetBlobProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Datenquellargument-Objekt in pd2fdsa, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2fdsasb_SetBoolProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des angegebenen Booleschen Datenquellargument-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Datenquellargument in pd2fdsa, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fdsasn_SetNumProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des angegebenen Number-Attributs des Datenquellarguments. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Datenquellargument in pd2fdsa, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fdsast_SetTextProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des angegebenen Text-Attributs des Datenquellarguments. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Datenquellargument in pd2fdsa, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fdsaso_SetObjectProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Datenquellargument-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Datenquellargument in pd2fdsa, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fdsasp_SetBlobProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Datenquellargument-Objekt in pd2fdsa, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2fdsahp_HasProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum );

Diese Funktion fragt das angegebene Datenquellargument für das angegebene Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Datenquellargument in pd2fdsa und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fdsaip_InheritProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum );

Mit dieser Funktion kann das angegebene Datenquellargument das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Datenquellargument-Objekt in pd2fdsa und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fdsaii_IspropInherited( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts von dem übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Datenquellargument-Objekt in pd2fdsa und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Datenquellspalte

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Datenquellspalte von Form Builder beschrieben.

d2fdsccr_Create( d2fctx *pd2fctx, d2fob *parent, d2fdsc **ppd2fdsc, text *name );

Diese Funktion erstellt eine Datenquellspalte. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Datenquellspalten-Objekts in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2fdsc und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn eine neue Datenquellspalte in ppd2fdsc erstellt werden kann.

d2fdscde_Destroy( d2fctx *pd2fctx, d2fdsc *pd2fdsc );

Diese Funktion zerstört die angegebene Datenquellspalte. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu der zu zerstörenden Datenquellspalte in pd2fdsc an.

d2fdscdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2dsc *pd2fdsc_src, d2fdsc **ppd2fdsc_dst, text *new_name );

Diese Funktion dupliziert die angegebene Datenquellspalte. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle der Datenquellspalte in pd2fdsc_src, ein Handle zur Speicherung des Ziels in ppd2fdsc_dst und einen Zeiger für den Namen der neuen Datenquellspalte (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn die angegebene Datenquellspalte dupliziert und in dem Speicherort ppd2fdsc_dst gespeichert werden kann.

d2fdscgb_GetBoolProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für die angegebene Datenquellspalte ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Datenquellspalte in pd2fdsc, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2fdscgn_GetNumProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für die angegebene Datenquellspalte ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Datenquellspalte in pd2fdsc, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2fdscgt_GetTextProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für die angegebene Datenquellspalte ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Datenquellspalte in pd2fdsc, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für die angegebene Datenquellspalte in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2fdscgo_GetObjectProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt der angegebenen Datenquellspalte ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Datenquellspalte in pd2fdsc, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2fdscgp_GetBlobProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Datenquellspalten-Objekt in pd2fdsc, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2fdscsb_SetBoolProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des angegebenen Booleschen Datenquellspalten-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Datenquellspalte in pd2fdsc, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fdscsn_SetNumProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des angegebenen Number-Attributs der Datenquellspalte. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Datenquellspalte in pd2fdsc, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fdscst_SetTextProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des angegebenen Text-Attributs der Datenquellspalte. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Datenquellspalte in pd2fdsc, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fdscso_SetObjectProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Datenquellspalten-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Datenquellspalte in pd2fdsc, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fdscsp_SetBlobProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Datenquellspalten-Objekt in pd2fdsc, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2fdschp_HasProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum );

Diese Funktion fragt die angegebene Datenquellspalte nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Datenquellspalte in pd2fdsc und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fdscip_InheritProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum );

Mit dieser Funktion kann die angegebene Datenquellspalte das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Datenquellspalten-Objekt in pd2fdsc und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fdscii_IspropInherited( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts von dem übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Datenquellspalten-Objekt in pd2fdsc und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Editor

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Editor von Form Builder beschrieben.

d2fedtcr_Create( d2fctx *pd2fctx, d2fob *parent, d2fedt **ppd2fedt, text *name );

Diese Funktion erstellt einen Editor. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Editor-Objekts in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2fedt und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein neuer Editor in ppd2fedt erstellt werden kann.

d2fedtde_Destroy( d2fctx *pd2fctx, d2fedt *pd2fedt );

Diese Funktion zerstört den angegebenen Editor. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Editor in pd2fedt an.

d2fedtdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2edt *pd2fedt_src, d2fedt **ppd2fedt_dst, text *new_name );

Diese Funktion dupliziert den angegebenen Editor. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Editor-Quelle in pd2fedt_src, ein Handle zur Speicherung des Ziels in ppd2fedt_dst und einen Zeiger für den Namen des neuen Editors (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der angegebene Editor dupliziert und in ppd2fedt_dst gespeichert werden kann.

d2fedtgb_GetBoolProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für den angegebenen Editor ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Editor in pd2fedt, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2fedtgn_GetNumProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für den angegebenen Editor ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Editor in pd2fedt, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2fedtgt_GetTextProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für den angegebenen Editor ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Editor in pd2fedt, die Attributnummer in pnum und einen Zeiger zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für den angegebenen Editor in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2fedtgo_GetObjectProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt des angegebenen Editors ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Editor in pd2fedt, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2fedtgp_GetBlobProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert von dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Editor-Objekt in pd2fedt, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2fedtsb_SetBoolProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des angegebenen Booleschen Editor-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Editor in pd2fedt, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fedtsn_SetNumProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des angegebenen Editor-Number-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Editor in pd2fedt, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fedtst_SetTextProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des angegebenen Editor-Text-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Editor in pd2fedt, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fedtso_SetObjectProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Editor-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Editor in pd2fedt, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fedtsp_SetBlobProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Editor-Objekt in pd2fedt, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2fedthp_HasProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum );

Diese Funktion fragt den angegebenen Editor nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Editor in pd2fedt und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fedtip_InheritProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum );

Mit dieser Funktion kann der angegebene Editor das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Editor-Objekt in pd2fedt und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fedtii_IspropInherited( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts von dem übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Editor-Objekt in pd2fedt und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fedtsc_SubClass( d2fctx *pd2fctx, d2fedt *pd2fedt, d2fob *parent, boolean keep_path);

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der angegebene Editor (pd2fedt) zu einer Unterklasse des angegebenen übergeordneten Objekts (parent) wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Editor in pd2fedt, einen Zeiger zu dem übergeordneten Objekt in parent und ein Boolesches Flag zur Speicherung des Pfads zu dem übergeordneten Objekt in keep_path an.

Beachten Sie, daß Forms API das Boolesche Argument keep_path verwendet, um die konkreten Pfadinformationen zu speichern. Es wird davon abgeraten, keep_path auf TRUE einzustellen, da diese Informationen möglicherweise verloren gehen, wenn Sie zu einem anderen Rechner wechseln. Wenn keep_path auf TRUE eingestellt ist, speichert Forms API den konkreten Pfad in der .fnb-Datei. Wenn die Form das nächste Mal geladen wird, sucht Forms API deshalb nach der übergeordneten Form in einem der angegebenen Verzeichnisse, wie von der Umgebungsvariablen definiert, je nachdem, wie der Pfad der Umgebungsvariablen in Forms 4.5 oder 5.0 definiert ist..

d2fedtis_IsSubclassed	( d2fctx *pd2fctx, d2fedt *pd2fedt );

Diese Funktion prüft, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem Editor-Objekt in pd2fedt an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Formmodul

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Formmodul von Form Builder beschrieben.

d2ffmdcr_Create( d2fctx *pd2fctx, d2fob *parent, d2ffmd **ppd2ffmd, text *name );

Diese Funktion erstellt ein Formmodul. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des Formmodul-Objekts in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2ffmd und den Namen des neuen Objekts in name an.

d2ffmdde_Destroy( d2fctx *pd2fctx, d2ffmd *pd2ffmd );

Diese Funktion zerstört das angegebene Formmodul. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Formmodul in pd2ffmd an.

d2ffmddl_Delete( d2fctx *pd2fctx, text *name, boolean db );

Diese Funktion löscht das angegebene Formmodul. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu einer Textfolge für den Namen des Formmoduls und ein Boolesches Flag zur Angabe, ob das Formmodul aus einer Datenbank (z.B. einer geöffneten Bibliothek, einem Formmodul oder einem Menümodul) gelöscht werden soll, in db an.

Wenn db TRUE ist, geht Forms API davon aus, daß das angegebene Formmodul aus einer Datenbank gelöscht werden soll. Wenn db FALSE ist, sucht Forms API im Dateisystem nach dem angegebenen Formmodul und löscht es dann.

d2ffmddu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2fmd *pd2ffmd_src, d2ffmd **ppd2ffmd_dst, text *new_name );

Diese Funktion dupliziert das angegebene Formmodul. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Formmodulquelle in pd2ffmd_src, ein Handle zur Speicherung des Ziels in ppd2ffmd_dst und einen Zeiger für den Namen des neuen Formmoduls (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Formmodul dupliziert und in ppd2ffmd_dst gespeichert werden kann.

d2ffmdco_CompileObj ( d2fctx *pd2fctx, d2ffmd *pd2ffmd );

Diese Funktion kompiliert den gesamten PL/SQL-Code, der mit dem angegebenen Formmodul verknüpft ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu kompilierenden Objekt in pd2ffmd an.

Sie könnten diese Funktion z.B. benutzen, um alle Triggerobjekte zu kompilieren, die einem Formmodul zugeordnet sind, sowie alle Triggerobjekte, die allen Objekten in einem Formmodul zugeordnet sind.

d2ffmdcf_CompileFile( d2fctx *pd2fctx, d2ffmd *pd2ffmd );

Diese Funktion kompiliert eine .fmb-Datei und erstellt eine generierte .fmx-Datei. Sie geben den Kontext (pd2fctx) und einen Zeiger zu dem Formmodul-Objekt (pd2ffmd) an.

d2ffmdld_Load ( d2fctx *pd2fctx, d2ffmd **ppd2ffmd, text *formname, boolean db );

Diese Funktion lädt das angegebene Formmodul. Sie geben den Kontext (pd2fctx), ein Handle zu einem Zeiger zur Speicherung des Formmoduls (ppd2ffmd), den Namen des Formmoduls (formname) und ein Boolesches Flag (db) zur Angabe an, ob das Formmodul in einer Datenbank gespeichert ist.

Wenn db TRUE ist, sucht Forms API das angegebene Formmodul in der Datenbank. Beachten Sie, daß davon ausgegangen wird, daß Sie sich vorher bei einer Datenbank angemeldet haben. Sie müssen d2fctx_Connect() aufrufen, bevor Sie ein Formmodul in einer Datenbank laden.

d2ffmdsv_Save ( d2fctx *pd2fctx, d2ffmd *pd2ffmd, text *formname, boolean db );

Diese Funktion speichert das angegebene Formmodul.  Sie geben den Kontext (pd2fctx), einen Zeiger zu dem Formmodul (pd2ffmd), den Namen des angegebenen Formmoduls (formname) und ein Boolesches Flag (db) an, mit dem angegeben wird, daß das Formmodul in einer Datenbank gespeichert werden soll.

Wenn db TRUE ist, speichert Forms API das angegebene Formmodul in der Datenbank. Beachten Sie, daß davon ausgegangen wird, daß Sie sich vorher bei einer Datenbank angemeldet haben. Sie müssen d2fctx_Connect() aufrufen, bevor Sie ein Formmodul in einer Datenbank speichern.

Wenn das Formmodul mit dem Standardnamen (dem beim Erstellen angegebenen Namen) gespeichert werden soll, müssen Sie NULL als Textfolge in formname übergeben. Wenn Sie das Formmodul unter einem anderen Namen speichern möchten, übergeben Sie diese Textfolge in formname.

d2ffmdfv_FileVersion ( d2fctx *pd2fctx, text *formname, boolean db, number *version );

Diese Funktion gibt die Version des Formmoduls zurück. Sie geben den Kontext (pd2fctx), den Namen des Formmoduls (formname), ein Boolesches Flag (db) zur Angabe, ob das Formmodul in einer Datenbank oder dem Dateisystem gespeichert ist, und einen Zeiger für die von der Funktion zurückgegebene Version (version) an.

Beachten Sie, daß Sie diese Funktion aufrufen sollten, bevor Sie die Funktion d2ffmdld_Load() aufrufen, da sich die Dateiversion ändert, wenn Sie das Formmodul laden.

d2ffmdgb_GetBoolProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für das angegebene Formmodul ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Formmodul in pd2ffmd, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2ffmdgn_GetNumProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für das angegebene Formmodul ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Formmodul in pd2ffmd, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2ffmdgt_GetTextProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für das angegebene Formmodul ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Formmodul in pd2ffmd, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für das angegebene Formmodul in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2ffmdgo_GetObjectProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt des angegebenen Formmoduls ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Formmodul in pd2ffmd, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2ffmdgp_GetBlobProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Formmodul-Objekt in pd2ffmd, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2ffmdsb_SetBoolProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des angegebenen Booleschen Formmodul-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Formmodul in pd2ffmd, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2ffmdsn_SetNumProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des angegebenen Number-Attributs des Formmoduls. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Formmodul in pd2ffmd, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2ffmdst_SetTextProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des angegebenen Text-Attributs des Formmoduls. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Formmodul in pd2ffmd, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2ffmdso_SetObjectProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Formmodul-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Formmodul in pd2ffmd, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2ffmdsp_SetBlobProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Formmodul-Objekt in pd2ffmd, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2ffmdhp_HasProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum );

Diese Funktion fragt das angegebene Formmodul nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Formmodul in pd2ffmd und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2ffmdip_InheritProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum );

Mit dieser Funktion kann das angegebene Formmodul das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Formmodul-Objekt in pd2ffmd und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2ffmdii_IspropInherited( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts von dem übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Formmodul-Objekt in pd2ffmd und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Formparameter

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Formparameter von Form Builder beschrieben.

d2ffpmcr_Create( d2fctx *pd2fctx, d2fob *parent, d2ffpm **ppd2ffpm, text *name );

Diese Funktion erstellt ein Formparameter-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Formparameter-Objekts in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2ffpm und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das neue Formparameter-Objekt in ppd2ffpm erstellt werden kann.

d2ffpmde_Destroy( d2fctx *pd2fctx, d2ffpm *pd2ffpm );

Diese Funktion zerstört das angegebene Formparameter-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Formparameter-Objekt in pd2ffpm an.

d2ffpmdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2fpm *pd2ffpm_src, d2ffpm **ppd2ffpm_dst, text *new_name );

Diese Funktion dupliziert das angegebene Formparameter-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle des Formparameter-Objekts in pd2ffpm_src, ein Handle zur Speicherung des Ziels in ppd2ffpm_dst und einen Zeiger für den Namen des neuen Formparameter-Objekts (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Formparameter-Objekt dupliziert und in ppd2ffpm_dst gespeichert werden kann.

d2ffpmgb_GetBoolProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für das angegebene Formparameter-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Formparameter-Objekt in pd2ffpm, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2ffpmgn_GetNumProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für das angegebene Formparameter-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Formparameter-Objekt in pd2ffpm, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2ffpmgt_GetTextProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für das angegebene Formparameter-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Formparameter-Objekt in pd2ffpm, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für das angegebene Formparameter-Objekt in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2ffpmgo_GetObjectProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt des angegebenen Formparameter-Objekts ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Formparameter-Objekt in pd2ffpm, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2ffpmgp_GetBlobProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Formparameter-Objekt in pd2ffpm, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2ffpmsb_SetBoolProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des angegebenen Booleschen Attributs des Formparameter-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Formparameter-Objekt in pd2ffpm, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2ffpmsn_SetNumProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des angegebenen Number-Attributs des Formparameter-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Formparameter-Objekt in pd2ffpm, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2ffpmst_SetTextProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des angegebenen Text-Attributs des Formparameter-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Formparameter-Objekt in pd2ffpm, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2ffpmso_SetObjectProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt den Wert des angegebenen Formparameter-Objektattributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Formparameter-Objekt in pd2ffpm, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2ffpmsp_SetBlobProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Formparameter-Objekt in pd2ffpm, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2ffpmhp_HasProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum );

Diese Funktion fragt das angegebene Formparameter-Objekt nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Formparameter-Objekt in pd2ffpm und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2ffpmip_InheritProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum );

Mit dieser Funktion kann das angegebene Formparameter-Objekt das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Formparameter-Objekt in pd2ffpm und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2ffpmii_IspropInherited( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts von dem übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Formparameter-Objekt in pd2ffpm und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2ffpmsc_SubClass( d2fctx *pd2fctx, d2ffpm *pd2ffpm, d2fob *parent, boolean keep_path);

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Formparameter-Objekt (pd2ffpm) eine Unterklasse des angegebenen übergeordneten Objekts (parent) wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Formparameter-Objekt in pd2ffpm, einen Zeiger zu dem übergeordneten Objekt in parent und ein Boolesches Flag zur Speicherung des Pfads zu dem übergeordneten Objekt in keep_path an.

Beachten Sie, daß Forms API das Boolesche Argument keep_path verwendet, um die konkreten Pfadinformationen zu speichern. Es wird davon abgeraten, daß Sie keep_path auf TRUE einstellen, da diese Informationen verloren gehen können, wenn Sie zu einem anderen Rechner wechseln. Wenn keep_path auf TRUE eingestellt ist, speichert Forms API den konkreten Pfad in der .fmb-Datei. Wenn die Form das nächste Mal geladen wird, sucht Forms API deshalb nach der übergeordneten Form in einem der angegebenen Verzeichnisse, wie von der Umgebungsvariablen definiert, je nachdem, wie der Pfad der Umgebungsvariablen in Forms 4.5 oder 5.0 definiert ist.

d2ffpmis_IsSubclassed	( d2fctx *pd2fctx, d2ffpm *pd2ffpm );

Diese Funktion prüft, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem Formparameter-Objekt in pd2ffpm an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Grafik

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Grafik von Form Builder beschrieben.

d2fgracr_Create( d2fctx *pd2fctx, d2fob *parent, d2fgra **ppd2fgra, text *name );

Diese Funktion erstellt ein Grafikobjekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Grafikobjekts in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2fgra und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein neues Grafikobjekt in ppd2fgra erstellt werden kann.

d2fgrade_Destroy( d2fctx *pd2fctx, d2fgra *pd2fgra );

Diese Funktion zerstört das angegebene Grafikobjekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Grafikobjekt in pd2fgra an.

d2fgradu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2gra *pd2fgra_src, d2fgra **ppd2fgra_dst, text *new_name );

Diese Funktion dupliziert das angegebene Grafikobjekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle des Grafikobjekts in pd2fgra_src, ein Handle zur Speicherung des Ziels in ppd2fgra_dst und einen Zeiger für den Namen des neuen Grafikobjekts (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Grafikobjekt dupliziert und in ppd2fgra_dst gespeichert werden kann.

d2fgragb_GetBoolProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für das angegebene Grafikobjekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Grafikobjekt in pd2fgra, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2fgragn_GetNumProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für das angegebene Grafikobjekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Grafikobjekt in pd2fgra, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2fgragt_GetTextProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für das angegebene Grafikobjekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Grafikobjekt in pd2fgra, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für das angegebene Grafikobjekt in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2fgrago_GetObjectProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt des angegebenen Grafikobjekts ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Grafikobjekt in pd2fgra, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2fgragp_GetBlobProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Grafikobjekt in pd2fgra, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2fgrasb_SetBoolProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des Booleschen Attributs des angegebenen Grafikobjekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Grafikobjekt in pd2fgra, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fgrasn_SetNumProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des Number-Attributs des angegebenen Grafikobjekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Grafikobjekt in pd2fgra, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fgrast_SetTextProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des Text-Attributs des angegebenen Grafikobjekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Grafikobjekt in pd2fgra, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fgraso_SetObjectProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Grafikobjekt-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Grafikobjekt in pd2fgra, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fgrasp_SetBlobProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Grafikobjekt in pd2fgra, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2fgrahp_HasProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum );

Diese Funktion fragt das angegebene Grafikobjekt nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Grafikobjekt in pd2fgra und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fgraip_InheritProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum );

Mit dieser Funktion kann das angegebene Grafikobjekt das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Grafikobjekt in pd2fgra und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fgraii_IspropInherited( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts von dem übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Grafikobjekt in pd2fgra und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fgrasc_SubClass( d2fctx *pd2fctx, d2fgra *pd2fgra, d2fob *parent, boolean keep_path);

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Grafikobjekt (pd2fgra) eine Unterklasse des angegebenen übergeordneten Objekts (parent) wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Grafikobjekt in pd2fgra, einen Zeiger zu dem übergeordneten Objekt in parent und ein Boolesches Flag zur Speicherung des Pfads zu dem übergeordneten Objekt in keep_path an.

Beachten Sie, daß Forms API das Boolesche Argument keep_path verwendet, um die konkreten Pfadinformationen zu speichern. Es wird davon abgeraten, daß Sie keep_path auf TRUE einstellen, da diese Informationen verloren gehen können, wenn Sie zu einem anderen Rechner wechseln. Wenn keep_path auf TRUE eingestellt ist, speichert Forms API den konkreten Pfad in der .fmb-Datei. Wenn die Form das nächste Mal geladen wird, sucht Forms API deshalb nach der übergeordneten Form in einem der angegebenen Verzeichnisse, wie von der Umgebungsvariablen definiert, je nachdem, wie der Pfad der Umgebungsvariablen in Forms 4.5 oder 5.0 definiert ist.

d2fgrais_IsSubclassed	( d2fctx *pd2fctx, d2fgra *pd2fgra );

Diese Funktion prüft, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem Grafikobjekt in pd2fgra an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Item

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Item (Objekt) von Form Builder beschrieben.

d2fitmcr_Create( d2fctx *pd2fctx, d2fob *parent, d2fitm **ppd2fitm, text *name );

Diese Funktion erstellt ein Item-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Item-Objekts in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2fitm und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein neues Item (Objekt) in ppd2fitm erstellt werden kann.

d2fitmde_Destroy( d2fctx *pd2fctx, d2fitm *pd2fitm );

Diese Funktion zerstört das angegebene Item. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Item in pd2fitm an.

d2fitmdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2itm *pd2fitm_src, d2fitm **ppd2fitm_dst, text *new_name );

Diese Funktion dupliziert das angegebene Item. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle des Items in pd2fitm_src, ein Handle zur Speicherung des Ziels in ppd2fitm_dst und einen Zeiger für den Namen des neuen Items (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Item dupliziert und in ppd2fitm_dst gespeichert werden kann.

d2fitmco_CompileObj( d2fctx *pd2fctx, d2fitm *pd2fitm );

Diese Funktion kompiliert den gesamten PL/SQL-Code, der mit dem angegebenen Item verknüpft ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu kompilierenden Objekt in pd2fitm an.

So könnten Sie diese Funktion z.B. benutzen, um alle einem Item zugeordneten Triggerobjekte zu kompilieren.

d2fitmile_InsertListElem( d2fctx *pd2fctx, d2fitm *pd2fitm, number index, text *label, text *value );

Diese Funktion fügt das angegebene Item und den verknüpften Wert in die Liste ein. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Item-Objekt in pd2fitm, den Index des Listenelements (in die Liste mit Elementen) in index, einen Zeiger zu den Namen des Listenelements in label und einen Zeiger zu dem Wert des Listenelements in value an.

Beachten Sie, daß diese Funktion nur für Item-Objekte vom Typ "Listenelement" gültig ist.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Listenelement in die Liste eingefügt wird.

d2fitmile_DeleteListElem( d2fctx *pd2fctx, d2fitm *pd2fitm, number index );

Diese Funktion löscht das angegebene Objekt und den zugehörigen Wert aus der Liste. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Item-Objekt in pd2fitm und den Index des Listenelements in die Liste mit Elementen in index an.

Beachten Sie, daß diese Funktion nur für Item-Objekte vom Typ "Listenelement" gültig ist.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Listenelement aus der Liste gelöscht wird.

d2fitmile_GetListElem( d2fctx *pd2fctx, d2fitm *pd2fitm, number index, text **label, text **value );

Diese Funktion ruft den Namen und Wert für das angegebene Listenelement ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Item-Objekt in pd2fitm, den Index des Listenelements in die Liste von Elementen in index, ein Handle zu einem Zeiger für den Namen des Listenelements in label und ein Handle zu einem Zeiger für den Wert des Listenelements in value an.

Beachten Sie, daß diese Funktion nur für Item-Objekte vom Typ "Listenelement" gültig ist.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Name und Wert des angegebenen Listenelements in label bzw. text gespeichert wird.

d2fitmgb_GetBoolProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für das angegebene Item ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Item in pd2fitm, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2fitmgn_GetNumProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für das angegebene Item ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Item in pd2fitm, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2fitmgt_GetTextProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für das angegebene Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Item in pd2fitm, die Attributnummer in pnum und einen Zeiger zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für das angegebene Item in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2fitmgo_GetObjectProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt des angegebenen Items ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Item in pd2fitm, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2fitmgp_GetBlobProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Item-Objekt in pd2fitm, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2fitmsb_SetBoolProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des angegebenen Booleschen Item-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Item in pd2fitm, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fitmsn_SetNumProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des angegebenen Item-Attributs vom Typ Number. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Item in pd2fitm, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fitmst_SetTextProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des angegebenen Item-Text-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Item in pd2fitm, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fitmso_SetObjectProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Item-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Item in pd2fitm, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fitmsp_SetBlobProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Item-Objekt in pd2fitm, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2fitmhp_HasProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum );

Diese Funktion fragt das angegebene Item nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Item in pd2fitm und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fitmip_InheritProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum );

Mit dieser Funktion kann das angegebene Item das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Item-Objekt in pd2fitm und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fitmii_IspropInherited( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts von dem übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Item-Objekt in pd2fitm und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fitmsc_SubClass( d2fctx *pd2fctx, d2fitm *pd2fitm, d2fob *parent, boolean keep_path);

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Item (pd2fitm) eine Unterklasse des angegebenen übergeordneten Objekts (parent) wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Item in pd2fitm, einen Zeiger zu dem übergeordneten Objekt in parent und ein Boolesches Flag zur Speicherung des Pfads zu dem übergeordneten Objekt in keep_path an.

Beachten Sie, daß Forms API das Boolesche Argument keep_path verwendet, um die konkreten Pfadinformationen zu speichern. Es wird davon abgeraten, daß Sie keep_path auf TRUE einstellen, da diese Informationen verloren gehen können, wenn Sie zu einem anderen Rechner wechseln. Wenn keep_path auf TRUE eingestellt ist, speichert Forms API den konkreten Pfad in der .fmb-Datei. Wenn die Form das nächste Mal geladen wird, sucht Forms API deshalb nach der übergeordneten Form in einem der angegebenen Verzeichnisse, wie von der Umgebungsvariablen definiert, je nachdem, wie der Pfad der Umgebungsvariablen in Forms 4.5 oder 5.0 definiert ist.

d2fitmis_IsSubclassed	( d2fctx *pd2fctx, d2fitm *pd2fitm );

Diese Funktion prüft, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem Item-Objekt in pd2fitm an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Wertelisten-Spaltenzuordnung

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Wertelisten-Spaltenzuordnung von Form Builder beschrieben.

d2flcmcr_Create( d2fctx *pd2fctx, d2fob *parent, d2flcm **ppd2flcm, text *name );

Diese Funktion erstellt ein Objekt Wertelisten-Spaltenzuordnung. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Objekts Wertelisten-Spaltenzuordnung in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2flcm und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn eine neue Wertelisten-Spaltenzuordnung in ppd2flcm erstellt werden kann.

d2flcmde_Destroy( d2fctx *pd2fctx, d2flcm *pd2flcm );

Diese Funktion zerstört die angegebene Wertelisten-Spaltenzuordnung. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Objekt Wertelisten-Spaltenzuordnung in pd2flcm an.

d2flcmdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2lcm *pd2flcm_src, d2flcm **ppd2flcm_dst, text *new_name );

Diese Funktion dupliziert die angegebene Wertelisten-Spaltenzuordnung. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle der Wertelisten-Spaltenzuordnung in pd2flcm_src, ein Handle zur Speicherung des Ziels in ppd2flcm_dst und einen Zeiger für den Namen der neuen Wertelisten-Spaltenzuordnung (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn die angegebene Wertelisten-Spaltenzuordnung dupliziert und in ppd2flcm_dst gespeichert werden kann.

d2flcmgb_GetBoolProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für die angegebene Wertelisten-Spaltenzuordnung ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Wertelisten-Spaltenzuordnung in pd2flcm, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2flcmgn_GetNumProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für die angegebene Wertelisten-Spaltenzuordnung ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Wertelisten-Spaltenzuordnung in pd2flcm, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2flcmgt_GetTextProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für die angegebene Wertelisten-Spaltenzuordnung ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Wertelisten-Spaltenzuordnung in pd2flcm, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für die angegebene Wertelisten-Spaltenzuordnung in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2flcmgo_GetObjectProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt der angegebenen Wertelisten-Spaltenzuordnung ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Wertelisten-Spaltenzuordnung in pd2flcm, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2flcmgp_GetBlobProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Objekt Wertelisten-Spaltenzuordnung in pd2flcm, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2flcmsb_SetBoolProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des angegebenen Booleschen Attributs von Wertelisten-Spaltenzuordnung. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Wertelisten-Spaltenzuordnung in pd2flcm, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2flcmsn_SetNumProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des angegebenen Number-Attributs von Wertelisten-Spaltenzuordnung. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Wertelisten-Spaltenzuordnung in pd2flcm, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2flcmst_SetTextProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des angegebenen Text-Attributs von Wertelisten-Spaltenzuordnung. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Wertelisten-Spaltenzuordnung in pd2flcm, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2flcmso_SetObjectProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Attributs Wertelisten-Spaltenzuordnung. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Wertelisten-Spaltenzuordnung in pd2flcm, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2flcmsp_SetBlobProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Objekt Wertelisten-Spaltenzuordnung in pd2flcm, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2flcmhp_HasProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum );

Diese Funktion fragt die angegebene Wertelisten-Spaltenzuordnung nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Wertelisten-Spaltenzuordnung in pd2flcm und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2flcmip_InheritProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum );

Mit dieser Funktion kann die angegebene Wertelisten-Spaltenzuordnung das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Objekt Wertelisten-Spaltenzuordnung in pd2flcm und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2flcmii_IspropInherited( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts von dem übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Objekt Wertelisten-Spaltenzuordnung in pd2flcm und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Werteliste

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Werteliste von Form Builder beschrieben.

d2flovcr_Create( d2fctx *pd2fctx, d2fob *parent, d2flov **ppd2flov, text *name );

Diese Funktion erstellt eine Werteliste. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Wertelisten-Objekts in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2flov und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn eine neue Werteliste in ppd2flov erstellt werden kann.

d2flovde_Destroy( d2fctx *pd2fctx, d2flov *pd2flov );

Diese Funktion zerstört die angegebene Werteliste. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Wertelisten-Objekt in pd2flov an.

d2flovdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2lov *pd2flov_src, d2flov **ppd2flov_dst, text *new_name );

Diese Funktion dupliziert die angegebene Werteliste. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle der Werteliste in pd2flov_src, ein Handle zur Speicherung des Ziels in ppd2flov_dst und einen Zeiger für den Namen der neuen Werteliste in new_name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn die angegebene Werteliste dupliziert und in ppd2fitm_dst gespeichert werden kann.

d2flovgb_GetBoolProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für die angegebene Werteliste ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Werteliste in pd2flov, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2flovgn_GetNumProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für die angegebene Werteliste ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Werteliste in pd2flov, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2flovgt_GetTextProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum, text **pprp );

Diese Funktion ruft das Attribut vom Typ Text für die angegebene Werteliste ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Werteliste in pd2flov, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für die angegebene Werteliste in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2flovgo_GetObjectProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt der angegebenen Werteliste ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Werteliste in pd2flov, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2flovgp_GetBlobProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Wertelisten-Objekt in pd2flov, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2flovsb_SetBoolProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des angegebenen Booleschen Wertelisten-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Werteliste in pd2flov, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2flovsn_SetNumProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des Number-Attributs der angegebenen Werteliste. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Werteliste in pd2flov, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2flovst_SetTextProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des Text-Attributs der angegebenen Werteliste. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Werteliste in pd2flov, die Attributnummer in pnum und einen Zeiger zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2flovso_SetObjectProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Wertelisten-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Werteliste in pd2flov, eine Attributnummer in pnum und einen Zeiger zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2flovsp_SetBlobProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Wertelisten-Objekt in pd2flov, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2flovhp_HasProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum );

Diese Funktion fragt die angegebene Werteliste nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Werteliste in pd2flov und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2flovip_InheritProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum );

Mit dieser Funktion kann die angegebene Werteliste das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Werteliste in pd2flov und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2flovii_IspropInherited( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts von dem übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Wertelisten-Objekt in pd2flov und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2flovsc_SubClass( d2fctx *pd2fctx, d2flov *pd2flov, d2fob *parent, boolean keep_path);

Diese Funktion gibt D2FS_SUCCESS zurück, wenn die angegebene Werteliste (pd2flov) zu einer Unterklasse des angegebenen übergeordneten Objekts (parent) wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der Werteliste in pd2flov, einen Zeiger zu dem übergeordneten Objekt in parent und ein Boolesches Flag zur Speicherung des Pfads zu dem übergeordneten Objekt in keep_path an.

Beachten Sie, daß Forms API das Boolesche Argument keep_path verwendet, um die konkreten Pfadinformationen zu speichern. Es wird davon abgeraten, daß Sie keep_path auf TRUE einstellen, da diese Informationen verloren gehen können, wenn Sie zu einem anderen Rechner wechseln. Wenn keep_path auf TRUE eingestellt ist, speichert Forms API den konkreten Pfad in der .fmb-Datei. Wenn die Form das nächste Mal geladen wird, sucht Forms API deshalb nach der übergeordneten Form in einem der angegebenen Verzeichnisse, wie von der Umgebungsvariablen definiert, je nachdem, wie der Pfad der Umgebungsvariablen in Forms 4.5 oder 5.0 definiert ist.

d2flovis_IsSubclassed	( d2fctx *pd2fctx, d2flov *pd2flov );

Diese Funktion prüft, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem Wertelisten-Objekt in pd2flov an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Menü

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Menü von Form Builder beschrieben.

d2fmnucr_Create( d2fctx *pd2fctx, d2fob *parent, d2fmnu **ppd2fmnu, text *name );

Diese Funktion erstellt ein Menü. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Menüobjekts in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2fmnu und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein neues Menü in ppd2fmnu erstellt werden kann.

d2fmnude_Destroy( d2fctx *pd2fctx, d2fmnu *pd2fmnu );

Diese Funktion zerstört das angegebene Menü. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Menü in pd2fmnu an.

d2fmnudu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2mnu *pd2fmnu_src, d2fmnu **ppd2fmnu_dst, text *new_name );

Diese Funktion dupliziert das angegebene Menü. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Menüquelle in pd2fmnu_src, ein Handle zur Speicherung des Ziels in ppd2fmnu_dst und einen Zeiger für den Namen des neuen Menüs (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Menü dupliziert und in ppd2fmnu_dst gespeichert werden kann.

d2fmnugb_GetBoolProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für das angegebene Menü ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menü in pd2fmnu, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2fmnugn_GetNumProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für das angegebene Menü ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menü in pd2fmnu, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2fmnugt_GetTextProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für das angegebene Menü ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menü in pd2fmnu, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für das angegebene Menü in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2fmnugo_GetObjectProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt des angegebenen Menüs ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menü in pd2fmnu, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2fmnugp_GetBlobProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menüobjekt in pd2fmnu, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2fmnusb_SetBoolProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des angegebenen Booleschen Attributs Menü. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menü in pd2fmnu, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fmnusn_SetNumProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des angegebenen Number-Attributs des Objekts Menü. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menü in pd2fmnu, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fmnust_SetTextProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des angegebenen Text-Attributs des Objekts Menü. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menü in pd2fmnu, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fmnuso_SetObjectProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Menü-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menü in pd2fmnu, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fmnusp_SetBlobProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menüobjekt in pd2fmnu, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2fmnuhp_HasProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum );

Diese Funktion fragt das angegebene Menü nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menü in pd2fmnu und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fmnuip_InheritProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum );

Mit dieser Funktion kann das angegebene Menü das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menü in pd2fmnu und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fmnuii_IspropInherited( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts vom übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menüobjekt in pd2fmnu und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fmnusc_SubClass( d2fctx *pd2fctx, d2fmnu *pd2fmnu, d2fob *parent, boolean keep_path);

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Menü (pd2fmnu) zu einer Unterklasse des angegebenen übergeordneten Objekts (parent) wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menü in pd2fmnu, einen Zeiger zu dem übergeordneten Objekt in parent und ein Boolesches Flag zur Speicherung des Pfads zu dem übergeordneten Objekt in keep_path an.

Beachten Sie, daß Forms API das Boolesche Argument keep_path verwendet, um die konkreten Pfadinformationen zu speichern. Es wird davon abgeraten, daß Sie keep_path auf TRUE einstellen, da diese Informationen verloren gehen können, wenn Sie zu einem anderen Rechner wechseln. Wenn keep_path auf TRUE eingestellt ist, speichert Forms API den konkreten Pfad in der .fmb-Datei. Wenn die Form das nächste Mal geladen wird, sucht Forms API deshalb nach der übergeordneten Form in einem der angegebenen Verzeichnisse, wie von der Umgebungsvariablen definiert, je nachdem, wie der Pfad der Umgebungsvariablen in Forms 4.5 oder 5.0 definiert ist.

d2fmnuis_IsSubclassed	( d2fctx *pd2fctx, d2fmnu *pd2fmnu );

Diese Funktion prüft, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem Menüpunkt in pd2fmnu an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Menümodul

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Menümodul von Form Builder beschrieben.

d2fmmdcr_Create( d2fctx *pd2fctx, d2fob *parent, d2fmmd **ppd2fmmd, text *name );

Diese Funktion erstellt ein Menümodul. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Menümodul-Objekts in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2fmmd und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein neues Menümodul in ppd2fmmd erstellt werden kann.

d2fmmdde_Destroy( d2fctx *pd2fctx, d2fmmd *pd2fmmd );

Diese Funktion zerstört das angegebene Menümodul. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Menümodul in pd2fmmd an.

d2fmmddl_Delete( d2fctx *pd2fctx, text *name, boolean db );

Diese Funktion löscht das angegebene Menümodul. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Namen des Menümoduls in name und ein Boolesches Flag zur Angabe, ob das Menümodul Bestandteil einer Datenbank ist, in db an.

Wenn db TRUE ist, geht Forms API davon aus, daß Sie das angegebene Menümodul (den in name übergebenen Namen) aus einer Datenbank löschen möchten. Wenn db FALSE ist, ist das Menümodul Bestandteil eines Dateisystems, und Forms API sucht in dem Dateisystem nach dem angegebenen Menümodul und löscht es dann.

d2fmmddu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2mmd *pd2fmmd_src, d2fmmd **ppd2fmmd_dst, text *new_name );

Diese Funktion dupliziert das angegebene Menümodul. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle des Menümoduls in pd2fmmd_src, ein Handle zur Speicherung des Ziels in ppd2fmmd_dst und einen Zeiger für den Namen des neuen Menümoduls (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Menümodul dupliziert und in ppd2fmmd_dst gespeichert werden kann.

d2fmmdco_CompileObj( d2fctx *pd2fctx, d2fmmd *pd2fmmd );

Diese Funktion kompiliert den gesamten PL/SQL-Code, der mit dem angegebenen Menümodul verknüpft ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu kompilierenden Objekt in pd2fmmd an.

Sie könnten diese Funktion z.B. benutzen, um alle Triggerobjekte, die einem Menümodul zugeordnet sind, und alle Triggerobjekte, die allen Item-Objekten in einem Menümodul zugeordnet sind, zu kompilieren.

d2fmmdcf_CompileFile( d2fctx *pd2fctx, d2fmmd *pd2fmmd );

Diese Funktion kompiliert eine FMB-Datei und erstellt eine generierte FMX-Datei. Sie geben den Kontext (pd2fctx) und einen Zeiger zu einem Menümodul (pd2fmmd) an.

d2fmmdld_Load( d2fctx *pd2fctx, d2fmmd **ppd2fmmd, text *menuname, boolean db );

Diese Funktion lädt das angegebene Menümodul. Sie geben den Kontext (pd2fctx), ein Handle zu einem Zeiger zur Speicherung des Menümoduls (ppd2fmmd), den Namen des Menümoduls (menuname) und ein Boolesches Flag (db) zur Angabe, ob das Menümodul in einer Datenbank gespeichert ist, an.

Wenn Sie db auf TRUE einstellen, sucht Forms API in der Datenbank nach dem angegebenen Menümodul. Dabei wird davon ausgegangen, daß Sie bei einer Datenbank angemeldet sind. Sie müssen d2fctx_Connect() aufrufen, bevor Sie ein Menümodul aus einer Datenbank laden.

d2fmmdsv_Save( d2fctx *pd2fctx, d2fmmd *pd2fmmd, text *menuname, boolean db );

Diese Funktion speichert das angegebene Menümodul. Sie geben den Kontext (pd2fctx), einen Zeiger zu dem Menümodul (pd2fmmd), den Namen des angegebenen Menümoduls (menuname) und ein Boolesches Flag (db) an, mit dem angegeben wird, ob das Menümodul in einer Datenbank gespeichert werden soll.

Wenn Sie db auf TRUE einstellen, speichert Forms API das angegebene Menümodul in der Datenbank. Dabei wird davon ausgegangen, daß Sie sich vorher bei einer Datenbank angemeldet haben. Sie müssen d2fctx_Connect() aufrufen, bevor Sie ein Menümodul in einer Datenbank speichern.

Wenn Sie das Menümodul mit dem Standardnamen (dem beim Erstellen angegebenen Namen) speichern möchten, müssen Sie NULL als Textfolge in menuname übergeben. Wenn Sie das Formmodul unter einem anderen Namen speichern möchten, übergeben Sie die entsprechende Textfolge in menuname.

d2fmmdfv_FileVersion( d2fctx *pd2fctx, text *menuname, boolean db, number version );

Diese Funktion gibt die Version des Menümoduls zurück. Sie geben den Kontext (pd2fctx), den Namen des Menümoduls (menuname), ein Boolesches Flag (db) zur Angabe, ob das Menümodul in einer Datenbank oder dem Dateisystem gespeichert ist, und einen Zeiger für die von der Funktion zurückgegebene Version (version) an.

Sie müssen diese Funktion aufrufen, bevor Sie die Funktion d2fmmdld_Load() aufrufen, da sich die Dateiversion ändert, wenn das Menümodul geladen wird.

d2fmmdar_AddRole( d2fctx *pd2fctx, d2fmmd *pd2fmmd, number index, text *role_name );

Diese Funktion fügt eine Sicherheits-"Rolle" zu dem angegebenen Menümodul hinzu. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menümodul in pd2fmmd, den Index in die Rollenliste, in der Forms API diese Rolle speichert, in index und den Namen der zu der Liste hinzuzufügenden Rolle in role_name an.

Mit den Funktionen "AddRole", "RemoveRole" und "GetRole" können Sie angeben, welche Sicherheitsrollen eine Zugriffsberechtigung zu einem bestimmten Menümodul haben.

Beachten Sie, daß ein Forms API-Attribut mit der Bezeichnung D2FP_ROLE_COUNT vorhanden ist, mit dem Sie die Anzahl aller Rollen für ein bestimmtes Menümodul abrufen können.

Wenn Sie die Menümodulrollen nicht auf Modulebene angeben, können Sie auf Menüpunktebene nicht auf die Menümodulrollen zugreifen.

d2fmmdrr_RemoveRole( d2fctx *pd2fctx, d2fmmd *pd2fmmd, number index );

Diese Funktion entfernt die angegebene Sicherheits-"Rolle" aus dem angegebenen Menümodul. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menümodul in pd2fmmd und den Index in die Rollenliste, aus der Forms API diese Rolle entfernt, in index an.

Mit den Funktionen "AddRole", "RemoveRole" und "GetRole" können Sie angeben, welche Sicherheitsrollen eine Zugriffsberechtigung zu einem bestimmten Menümodul haben.

Beachten Sie, daß ein Forms API-Attribut mit der Bezeichnung D2FP_ROLE_COUNT vorhanden ist, mit dem Sie die Anzahl aller Rollen für ein bestimmtes Menümodul abrufen können.

Wenn Sie die Menümodulrollen nicht auf Modulebene angeben, können Sie auf Menüpunktebene nicht auf die Menümodulrollen zugreifen.

d2fmmdgr_GetRole( d2fctx *pd2fctx, pd2fmmd *pd2fmmd, number index, text **role_name );

Diese Funktion ruft die angegebene Sicherheitsrolle aus dem Menümodul ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menümodul in pd2fmmd, den Index in die Rollenliste, mit der Forms API diese Rolle abruft, in index und ein Handle zur Speicherung des Namens der Rolle in role_name an.

Mit den Funktionen "AddRole", "RemoveRole" und "GetRole" können Sie angeben, welche Sicherheitsrollen eine Zugriffsberechtigung zu einem bestimmten Menümodul haben.

Beachten Sie, daß ein Forms API-Attribut mit der Bezeichnung D2FP_ROLE_COUNT vorhanden ist, mit dem Sie die Anzahl aller Rollen für ein bestimmtes Menümodul abrufen können.

Wenn Sie die Menümodulrollen nicht auf Modulebene angeben, können Sie auf Menüpunktebene nicht auf die Menümodulrollen zugreifen.

d2fmmdgb_GetBoolProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für das angegebene Menümodul ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menümodul in pd2fmmd, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2fmmdgn_GetNumProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für das angegebene Menümodul ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menümodul in pd2fmmd, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2fmmdgt_GetTextProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für das angegebene Menümodul ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menümodul in pd2fmmd, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für das angegebene Menümodul in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2fmmdgo_GetObjectProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt des angegebenen Menümoduls ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menümodul in pd2fmmd, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2fmmdgp_GetBlobProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menümodul-Objekt in pd2fmmd, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2fmmdsb_SetBoolProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des Booleschen Attributs des angegebenen Menümoduls. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menümodul in pd2fmmd, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fmmdsn_SetNumProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des Number-Attributs des angegebenen Menümoduls. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menümodul in pd2fmmd, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fmmdst_SetTextProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des Text-Attributs des angegebenen Menümoduls. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menümodul in pd2fmmd, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fmmdso_SetObjectProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Menümodul-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menümodul in pd2fmmd, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fmmdsp_SetBlobProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menümodul-Objekt in pd2fmmd, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2fmmdhp_HasProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum );

Diese Funktion fragt das angegebene Menümodul nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menümodul in pd2fmmd und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fmmdip_InheritProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum );

Mit dieser Funktion kann das angegebene Menümodul das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menümodul in pd2fmmd und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fmmdii_IspropInherited( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts von dem übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menümodul-Objekt in pd2fmmd und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Menüpunkt

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Menüpunkt von Form Builder beschrieben.

d2fmnicr_Create( d2fctx *pd2fctx, d2fob *parent, d2fmni **ppd2fmni, text *name );

Diese Funktion erstellt einen Menüpunkt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Menüpunkt-Objekts in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2fmni und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein neuer Menüpunkt in ppd2fmni erstellt werden kann.

d2fmnide_Destroy( d2fctx *pd2fctx, d2fmni *pd2fmni );

Diese Funktion zerstört den angegebenen Menüpunkt. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Menüpunkt in pd2fmni an.

d2fmnidu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2mni *pd2fmni_src, d2fmni **ppd2fmni_dst, text *new_name );

Diese Funktion dupliziert den angegebenen Menüpunkt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle des Menüpunkts in pd2fmni_src, ein Handle zur Speicherung des Ziels in ppd2fmni_dst und einen Zeiger für den Namen des Menüpunkts (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der angegebene Menüpunkt dupliziert und in ppd2fmni_dst gespeichert werden kann.

d2fmnico_CompileObj( d2fctx *pd2fctx, d2fmni *pd2fmni );

Diese Funktion kompiliert den gesamten PL/SQL-Code, der mit dem angegebenen Menüpunkt verknüpft ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu kompilierenden Objekt in pd2fmni an.

Mit dieser Funktion könnten Sie z.B. alle Triggerobjekte kompilieren, die einem Menüpunkt zugeordnet sind.

d2fmnild_Load( d2fctx *pd2fctx, d2fmni **ppd2fmni, text *menuname, boolean db );

Diese Funktion lädt den angegebenen Menüpunkt. Sie geben den Kontext (pd2fctx), ein Handle zu einem Zeiger zur Speicherung des Menüpunktes (ppd2fmni), den Namen des Menüpunkts (menuname) und ein Boolesches Flag (db) Zur Angabe, ob der Menüpunkt in einer Datenbank gespeichert ist, an.

Wenn Sie db auf TRUE einstellen, sucht Forms API in der Datenbank nach dem angegebenen Menüpunkt. Dabei wird vorausgesetzt, daß Sie sich bei einer Datenbank angemeldet haben. Sie müssen d2fctx_Connect() aufrufen, bevor Sie ein Formmodul aus einer Datenbank laden.

d2fmniar_AddRole( d2fctx *pd2fctx, d2fmni *pd2fmni, number index, text *role_name );

Diese Funktion fügt eine Sicherheits-"Rolle" zu dem angegebenen Menüpunkt hinzu. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menüpunkt in pd2fmni, den Index in die Rollenliste, in der Forms API diese Rolle speichert, in index und den Namen der zu der Liste hinzuzufügenden Rolle in role_name an.

Mit den Funktionen "AddRole", "RemoveRole" und "GetRole" können Sie angeben, welche Sicherheitsrollen eine Zugriffsberechtigung zu einem bestimmten Menüpunkt haben.

Beachten Sie, daß ein Forms API-Attribut mit der Bezeichnung D2FP_ROLE_COUNT vorhanden ist, mit dem Sie die Anzahl aller Rollen für einen bestimmten Menüpunkt abrufen können.

Wenn Sie die Menümodulrollen nicht auf Modulebene angeben, können Sie auf Menüpunktebene nicht auf die Menümodulrollen zugreifen.

d2fmnirr_RemoveRole( d2fctx *pd2fctx, d2fmni *pd2fmni, number index );

Diese Funktion entfernt die angegebene Sicherheits-"Rolle" aus dem angegebenen Menüpunkt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menüpunkt in pd2fmni und den Index in die Rollenliste, aus der Forms API diese Rolle entfernt, in index an.

Mit den Funktionen "AddRole", "RemoveRole" und "GetRole" können Sie angeben, welche Sicherheitsrollen eine Zugriffsberechtigung zu einem bestimmten Menüpunkt haben.

Beachten Sie, daß ein Forms API-Attribut mit der Bezeichnung D2FP_ROLE_COUNT vorhanden ist, mit dem Sie die Anzahl aller Rollen für einen bestimmten Menüpunkt abrufen können.

Wenn Sie die Menümodulrollen nicht auf Modulebene angeben, können Sie auf Menüpunktebene nicht auf die Menümodulrollen zugreifen.

d2fmnigr_GetRole( d2fctx *pd2fctx, pd2fmni *pd2fmni, number index, text **role_name );

Diese Funktion ruft die angegebene Sicherheitsrolle aus einem Menüpunkt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menümodul in pd2fmni, den Index in die Rollenliste, mit der Forms API diese Rolle abruft, in index und ein Handle zur Speicherung des Namens der Rolle in role_name an.

Mit den Funktionen "AddRole", "RemoveRole" und "GetRole" können Sie angeben, welche Sicherheitsrollen eine Zugriffsberechtigung zu einem bestimmten Menüpunkt haben.

Beachten Sie, daß ein Forms API-Attribut mit der Bezeichnung D2FP_ROLE_COUNT vorhanden ist, mit dem Sie die Anzahl aller Rollen für einen bestimmten Menüpunkt abrufen können.

Wenn Sie die Menümodulrollen nicht auf Modulebene angeben, können Sie auf Menüpunktebene nicht auf die Menümodulrollen zugreifen.

d2fmnigb_GetBoolProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für den angegebenen Menüpunkt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Menüpunkt in pd2fmni, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2fmnign_GetNumProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für den angegebenen Menüpunkt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Menüpunkt in pd2fmni, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2fmnigt_GetTextProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für den angegebenen Menüpunkt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Menüpunkt in pd2fmni, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für den angegebenen Menüpunkt in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2fmnigo_GetObjectProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt des angegebenen Menüpunkts ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Menüpunkt in pd2fmni, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2fmnigp_GetBlobProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu den Menüpunkt-Objekt in pd2fmni, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion den Zugriff zu dem vom Client angegebenen Wert ermöglicht.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2fmnisb_SetBoolProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des Booleschen Attributs des angegebenen Menüpunkts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Menüpunkt in pd2fmni, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fmnisn_SetNumProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des Number-Attributs des angegebenen Menüpunkts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Menüpunkt in pd2fmni, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fmnist_SetTextProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des Text-Attributs des angegebenen Menüpunkts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Menüpunkt in pd2fmni, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fmniso_SetObjectProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Menüpunkt-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Menüpunkt in pd2fmni, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fmnisp_SetBlobProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu den Menüpunkt-Objekt in pd2fmni, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2fmnihp_HasProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum );

Diese Funktion fragt den angegebenen Menüpunkt nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Menüpunkt in pd2fmni und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fmniip_InheritProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum );

Mit dieser Funktion kann der angegebene Menüpunkt das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menüpunkt-Objekt in pd2fmni und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fmniii_IspropInherited( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts von dem übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menüpunkt-Objekt in pd2fmni und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fmmisc_SubClass( d2fctx *pd2fctx, d2fmmi *pd2fmmi, d2fob *parent, boolean keep_path);

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der angegebene Menüpunkt (pd2fmmi) zu einer Unterklasse des angegebenen übergeordneten Objekts (parent) wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menüpunkt in pd2fmni, einen Zeiger zu dem übergeordneten Objekt in parent und ein Boolesches Flag zur Speicherung des Pfads zu dem übergeordneten Objekt in keep_path an.

Beachten Sie, daß Forms API das Boolesche Argument keep_path verwendet, um die konkreten Pfadinformationen zu speichern. Es wird davon abgeraten, daß Sie keep_path auf TRUE einstellen, da diese Informationen verloren gehen können, wenn Sie zu einem anderen Rechner wechseln. Wenn keep_path auf TRUE eingestellt ist, speichert Forms API den konkreten Pfad in der .fmb-Datei. Wenn die Form das nächste Mal geladen wird, sucht Forms API deshalb nach der übergeordneten Form in einem der angegebenen Verzeichnisse, wie von der Umgebungsvariablen definiert, je nachdem, wie der Pfad der Umgebungsvariablen in Forms 4.5 oder 5.0 definiert ist.

d2fmmiis_IsSubclassed	( d2fctx *pd2fctx, d2fmmi *pd2fmni );

Diese Funktion prüft, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem Menüpunkt in pd2fmnu an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Menüparameter

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Menüparameter von Form Builder beschrieben.

d2fmpmcr_Create( d2fctx *pd2fctx, d2fob *parent, d2fmpm **ppd2fmpm, text *name );

Diese Funktion erstellt ein Menüparameter-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Menüparameter-Objekts in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2fmpm und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein neues Menüparameter-Objekt in ppd2fmpm erstellt werden kann.

d2fmpmde_Destroy( d2fctx *pd2fctx, d2fmpm *pd2fmpm );

Diese Funktion zerstört das angegebene Menüparameter-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Menüparameter-Objekt in pd2fmpm an.

d2fmpmdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2mpm *pd2fmpm_src, d2fmpm **ppd2fmpm_dst, text *new_name );

Diese Funktion dupliziert das angegebene Menüparameter-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle des Menüparameter-Objekts in pd2fmpm_src, ein Handle zur Speicherung des Ziels in ppd2fmpm_dst und einen Zeiger für den Namen des neuen Menüparameter-Objekts (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Menüparameter-Objekt dupliziert und in ppd2fmpm_dst gespeichert werden kann.

d2fmpmaam_AddAssocMenu( d2fctx *pd2fctx, d2fmpm *pd2fmpm, number index, text *menu_name);

Diese Funktion fügt das verknüpfte Menü zu dem angegebenen Menüparameter-Objekt hinzu. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menüparameter-Objekt in pd2fmpm, den Index in die Menüliste, in der Forms API das verknüpfte Menü speichert, in index und den Namen des zu der Liste hinzuzufügenden Menüs in menu_name an.

Beachten Sie, daß ein Forms API-Attribut mit der Bezeichnung D2FP_ASSOC_MENU_COUNT vorhanden ist, mit dem Sie die Anzahl aller verknüpften Menüs für ein bestimmtes Menüparameter-Objekt abrufen können.

d2fmpmram_RemoveAssocMenu( d2fctx *pd2fctx, d2fmpm *pd2fmpm, number index );

Diese Funktion entfernt das verknüpfte Menü aus dem angegebenen Menüparameter-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menüparameter-Objekt in pd2fmpm und den Index in die Menüliste, in der Forms API dieses verknüpfte Menü sucht und entfernt, in index an.

Beachten Sie, daß ein Forms API-Attribut mit der Bezeichnung D2FP_ASSOC_MENU_COUNT vorhanden ist, mit dem Sie die Anzahl aller verknüpften Menüs für ein bestimmtes Menüparameter-Objekt abrufen können.

d2fmpmgam_GetAssocMenu( d2fctx *pd2fctx, d2fmpm *pd2fmpm, number index, text **menu_name );

Diese Funktion ruft das verknüpfte Menü für das angegebene Menüparameter-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menüparameter-Objekt in pd2fmpm, den Index in die Menüliste, in der Forms API dieses zugehörige Menü sucht, in index und ein Handle zu menu_name zur Speicherung des Namens des abzurufenden Menüs an.

Beachten Sie, daß ein Forms API-Attribut mit der Bezeichnung D2FP_ASSOC_MENU_COUNT vorhanden ist, mit dem Sie die Anzahl aller verknüpften Menüs für ein bestimmtes Menüparameter-Objekt abrufen können.

d2fmpmgb_GetBoolProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für das angegebene Menüparameter-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menüparameter-Objekt in pd2fmpm, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2fmpmgn_GetNumProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für das angegebene Menüparameter-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menüparameter-Objekt in pd2fmpm, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2fmpmgt_GetTextProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für das angegebene Menüparameter-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menüparameter-Objekt in pd2fmpm, die Attributnummer in pnum und einen Zeiger zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für das angegebene Menüparameter-Objekt in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2fmpmgo_GetObjectProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt des angegebenen Menüparameter-Objekts ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menüparameter-Objekt in pd2fmpm, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2fmpmgp_GetBlobProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menüparameter-Objekt in pd2fmpm, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2fmpmsb_SetBoolProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des Booleschen Attributs des angegebenen Menüparameter-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menüparameter-Objekt in pd2fmpm, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fmpmsn_SetNumProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des Number-Attributs des angegebenen Menüparameter-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menüparameter-Objekt in pd2fmpm, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fmpmst_SetTextProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des Text-Attributs des angegebenen Menüparameter-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menüparameter-Objekt in pd2fmpm, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fmpmso_SetObjectProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Menüparameter-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menüparameter-Objekt in pd2fmpm, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fmpmsp_SetBlobProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menüparameter-Objekt in pd2fmpm, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2fmpmhp_HasProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum );

Diese Funktion fragt das angegebene Menüparameter-Objekt nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Menüparameter-Objekt in pd2fmpm und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fmpmip_InheritProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum );

Mit dieser Funktion kann das angegebene Menüparameter-Objekt das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menüparameter-Objekt in pd2fmpm und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fmpmii_IspropInherited( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts vom übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menüparameter-Objekt in pd2fmpm und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fmpmsc_SubClass( d2fctx *pd2fctx, d2fmpm *pd2fmpm, d2fob *parent, boolean keep_path);

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Menüparameter-Objekt (pd2fmpm) zu einer Unterklasse des angegebenen übergeordneten Objekts (parent) wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Menüparameter-Objekt in pd2fmpm, einen Zeiger zu dem übergeordneten Objekt in parent und ein Boolesches Flag zur Speicherung des Pfads zu dem übergeordneten Objekt in keep_path an.

Beachten Sie, daß Forms API das Boolesche Argument keep_path verwendet, um die konkreten Pfadinformationen zu speichern. Es wird davon abgeraten, daß Sie keep_path auf TRUE einstellen, da diese Informationen verloren gehen können, wenn Sie zu einem anderen Rechner wechseln. Wenn keep_path auf TRUE eingestellt ist, speichert Forms API den konkreten Pfad in der .fmb-Datei. Wenn die Form das nächste Mal geladen wird, sucht Forms API deshalb nach der übergeordneten Form in einem der angegebenen Verzeichnisse, wie von der Umgebungsvariablen definiert, je nachdem, wie der Pfad der Umgebungsvariablen in Forms 4.5 oder 5.0 definiert ist.

d2fmpmis_IsSubclassed	( d2fctx *pd2fctx, d2fmpm *pd2fmpm );

Diese Funktion prüft, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem Menüparameter-Objekt in pd2fmpm an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Objektfunktionen (allgemeine Objekte)

  Verwandte Themen

In diesem Abschnitt werden die Funktionen von Open API-Objekten (allgemeines Objekt) von Form Builder beschrieben.

d2fobfo_FindObj( d2fctx *pd2fctx, d2fob *owner, text *name, d2fotyp objtyp, d2fob **ppd2fob );

Diese Funktion gibt das angegebene Objekt zurück. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des Objekts in parent, einen Zeiger zu einer Textfolge für den Namen des angegebenen Objekts in name, den Objekttyp in objtyp und ein Handle zur Rückgabe des Objekts in ppd2fob an.

Wenn Sie z.B. ein bestimmtes Triggerobjekt unter einem Block suchen möchten, müssen Sie den Namen des spezifischen Triggerobjekts als übergeordnetes Objekt in den Block übergeben und D2FFO_TRIGGER (Objekttyp) angeben.

d2fobmv_Move( d2fctx *pd2fctx, d2fob *pd2fob, d2fob *pd2fob_nxt );

Diese Funktion verschiebt das angegebene Objekt um die Liste mit Objekten. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Objekt in pd2fob und das Objekt, das direkt (nach dem Verschieben) auf dieses Objekt folgen soll, in pd2fob_nxt an.

Wenn Sie das angegebene Objekt an den Anfang der Liste stellen möchten, übergeben Sie das erste Objekt in pd2fob_nxt; wenn das Objekt an das Ende der Liste gestellt werden soll, stellen Sie pd2fob_nxt auf NULL ein.

d2fobgb_GetBoolProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für das angegebene Objekt (allgemeines Objekt) ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Objekt in pd2fob, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2fobgn_GetNumProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für das angegebene Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Objekt in pd2fob, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2fobgt_GetTextProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für das angegebene Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Objekt in pd2fob, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für das angegebene Objekt in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2fobgo_GetObjectProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt des angegebenen Objekts ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Objekt in pd2fob, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2fobgp_GetBlobProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem angegebenen Objekt in pd2fob, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2fobsb_SetBoolProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des angegebenen Booleschen Objekt-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Objekt in pd2fob, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fobsn_SetNumProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des Number-Attributs des angegebenen Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Objekt in pd2fob, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fobst_SetTextProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des Text-Attributs des angegebenen Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Objekt in pd2fob, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fobso_SetObjectProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Objekt-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Objekt in pd2fob, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fobsp_SetBlobProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem angegebenen Objekt in pd2fob, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2fobhp_HasProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum );

Diese Funktion ruft das angegebene Objekt für das angegebene Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Objekt in pd2fob und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fobip_InheritProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum );

Mit dieser Funktion kann das angegebene Objekt das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Objekt in pd2fob und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fobii_IspropInherited( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts von dem übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Objekt in pd2fob und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fobsc_SubClass( d2fctx *pd2fctx, d2fob *pd2fob, d2fob *parent, boolean keep_path);

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt (pd2fob) eine Unterklasse des angegebenen übergeordneten Objekts (parent) wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Objekt in pd2fob, einen Zeiger zu dem übergeordneten Objekt in parent und ein Boolesches Flag zur Speicherung des Pfads zu dem übergeordneten Objekt in keep_path an.

Beachten Sie, daß Forms API das Boolesche Argument keep_path verwendet, um die konkreten Pfadinformationen zu speichern. Es wird davon abgeraten, daß Sie keep_path auf TRUE einstellen, da diese Informationen verloren gehen können, wenn Sie zu einem anderen Rechner wechseln. Wenn keep_path auf TRUE eingestellt ist, speichert Forms API den konkreten Pfad in der .fmb-Datei. Wenn die Form das nächste Mal geladen wird, sucht Forms API deshalb nach der übergeordneten Form in einem der angegebenen Verzeichnisse, wie von der Umgebungsvariablen definiert, je nachdem, wie der Pfad der Umgebungsvariablen in Forms 4.5 oder 5.0 definiert ist.

d2fobis_IsSubclassed	( d2fctx *pd2fctx, d2fob *pd2fob );

Diese Funktion prüft, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem angegebenen Objekt in pd2fob an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fobqt_QueryType( d2fctx *pd2fctx, d2fob *pd2fob, d2fotyp *objtyp );

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der angegebene Objekttyp vorhanden ist und das Objekt in pd2fob speichert. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger für das zurückgegebene Objekt (pd2fob) und einen Zeiger für den angegebenen Objekttyp (objtyp) an.

Diese Funktion wird besonders dann benutzt, wenn eine Traversalfunktion durch alle Objekte in einer Form geht. Mit dieser Funktion können Sie wieder auf alle konkreten Objekte in Ihrer Form zugreifen.


Funktionen des Objekts Objektgruppe

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Objektgruppe von Form Builder beschrieben.

d2fobgcr_Create( d2fctx *pd2fctx, d2fob *parent, d2fobg **ppd2fobg, text *name );

Diese Funktion erstellt eine Objektgruppe. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Objekts Objektgruppe in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2fobg und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn eine neue Objektgruppe in ppd2fobg erstellt werden kann.

d2fobgde_Destroy( d2fctx *pd2fctx, d2fobg *pd2fobg );

Diese Funktion zerstört die angegebene Objektgruppe. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu der zu zerstörenden Objektgruppe in pd2fobg an.

d2fobgdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2obg *pd2fobg_src, d2fobg **ppd2fobg_dst, text *new_name );

Diese Funktion dupliziert die angegebene Objektgruppe. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle der Objektgruppe in pd2fobg_src, ein Handle zur Speicherung des Ziels in ppd2fobg_dst und einen Zeiger für den Namen der neuen Objektgruppe (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn die angegebene Objektgruppe dupliziert und in ppd2fobg_dst gespeichert werden kann.

d2fobggb_GetBoolProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für die angegebene Objektgruppe ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Objektgruppe in pd2fobg, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2fobggn_GetNumProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für die angegebene Objektgruppe ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Objektgruppe in pd2fobg, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2fobggt_GetTextProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für die angegebene Objektgruppe ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Objektgruppe in pd2fobg, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für die angegebene Objektgruppe in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2fobggo_GetObjectProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt der angegebenen Objektgruppe ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Objektgruppe in pd2fobg, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2fobggp_GetBlobProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der Objektgruppe in pd2fobg, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2fobgsb_SetBoolProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des Booleschen Attributs der angegebenen Objektgruppe. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Objektgruppe in pd2fobg, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fobgsn_SetNumProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des Number-Attributs der angegebenen Objektgruppe. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Objektgruppe in pd2fobg, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fobgst_SetTextProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des Text-Attributs der angegebenen Objektgruppe. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Objektgruppe in pd2fobg, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fobgso_SetObjectProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Objektgruppen-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Objektgruppe in pd2fobg, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fobgsp_SetBlobProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der angegebenen Objektgruppe in pd2fobg, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2fobghp_HasProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum );

Diese Funktion fragt die angegebene Objektgruppe nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Objektgruppe in pd2fobg und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fobgip_InheritProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum );

Mit dieser Funktion kann die angegebene Objektgruppe das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der Objektgruppe in pd2fobg und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fobgii_IspropInherited( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts von dem übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der Objektgruppe in pd2fobg und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fobgsc_SubClass( d2fctx *pd2fctx, d2fong *pd2fobg, d2fob *parent, boolean keep_path);

Diese Funktion gibt D2FS_SUCCESS zurück, wenn die angegebene Objektgruppe (pd2fobg) zu einer Unterklasse des angegebenen übergeordneten Objekts (parent) wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der Objektgruppe in pd2fobg, einen Zeiger zu dem übergeordneten Objekt in parent und ein Boolesches Flag zur Speicherung des Pfads zu dem übergeordneten Objekt in keep_path an.

Beachten Sie, daß Forms API das Boolesche Argument keep_path verwendet, um die konkreten Pfadinformationen zu speichern. Es wird davon abgeraten, daß Sie keep_path auf TRUE einstellen, da diese Informationen verloren gehen können, wenn Sie zu einem anderen Rechner wechseln. Wenn keep_path auf TRUE eingestellt ist, speichert Forms API den konkreten Pfad in der .fmb-Datei. Wenn die Form das nächste Mal geladen wird, sucht Forms API deshalb nach der übergeordneten Form in einem der angegebenen Verzeichnisse, wie von der Umgebungsvariablen definiert, je nachdem, wie der Pfad der Umgebungsvariablen in Forms 4.5 oder 5.0 definiert ist.

d2fobgis_IsSubclassed	( d2fctx *pd2fctx, d2fobg *pd2fobg );

Diese Funktion prüft, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu der angegebenen Objektgruppe in pd2fobg an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Untergeordnete Objektgruppe

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Untergeordnete Objektgruppe von Form Builder beschrieben.

d2fogcgcr_Create( d2fctx *pd2fctx, d2fogc *parent, d2fogc **ppd2fogc, text *name );

Diese Funktion erstellt eine untergeordnete Objektgruppe. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt der neuen untergeordneten Objektgruppe in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2fogc und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn eine neue Objektgruppe in ppd2fogcg erstellt werden kann.

d2fogcgde_Destroy( d2fctx *pd2fctx, d2fogc *pd2fogc );

Diese Funktion zerstört die angegebene untergeordnete Objektgruppe. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu der zu zerstörenden untergeordneten Objektgruppe in pd2fogc an.

d2fogcgdu_Duplicate( d2fctx *pd2fctx, d2fogc *new_parent, d2ogc *pd2fogc_src, d2fogc **ppd2fogc_dst, text *new_name );

Diese Funktion dupliziert die angegebene untergeordnete Objektgruppe. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle der untergeordneten Objektgruppe in pd2fogc_src, ein Handle zur Speicherung des Ziels in ppd2fogc_dst und einen Zeiger für den Namen der neuen untergeordneten Objektgruppe (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn die angegebene untergeordnete Objektgruppe dupliziert und in ppd2fogcg_dst gespeichert werden kann.

d2fogcggb_GetBoolProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für die angegebene untergeordnete Objektgruppe ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die untergeordnete Objektgruppe in pd2fogc, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2fogcggn_GetNumProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für die angegebene untergeordnete Objektgruppe ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die untergeordnete Objektgruppe in pd2fogc, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2fogcggt_GetTextProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für die angegebene untergeordnete Objektgruppe ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die untergeordnete Objektgruppe in pd2fogc, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für die angegebene untergeordnete Objektgruppe in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2fogcggo_GetObjectProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt der angegebenen untergeordneten Objektgruppe ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die untergeordnete Objektgruppe in pd2fogc, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2fogcggp_GetBlobProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der untergeordneten Objektgruppe in pd2fogc, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2fogcgsb_SetBoolProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des Booleschen Attributs der angegebenen untergeordneten Objektgruppe. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die untergeordnete Objektgruppe in pd2fogc, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fogcgsn_SetNumProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des Number-Attributs der angegebenen untergeordneten Objektgruppe. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die untergeordnete Objektgruppe in pd2fogc, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fogcgst_SetTextProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des Text-Attributs der angegebenen untergeordneten Objektgruppe. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die untergeordnete Objektgruppe in pd2fogc, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fogcgso_SetObjectProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen untergeordneten Objektgruppen-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die untergeordnete Objektgruppe in pd2fogc, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fogcgsp_SetBlobProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der angegebenen untergeordneten Objektgruppe in pd2fogc, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2fogcghp_HasProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum );

Diese Funktion fragt die angegebene untergeordnete Objektgruppe nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die untergeordnete Objektgruppe in pd2fogc und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fogcgip_InheritProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum );

Mit dieser Funktion kann die angegebene untergeordnete Objektgruppe das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der untergeordneten Objektgruppe in pd2fogc und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fogcgii_IspropInherited( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts vom übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der untergeordneten Objektgruppe in pd2fogc und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Objektbibliothek

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Objektbibliothek von Form Builder beschrieben.

d2folbcr_Create( d2fctx *pd2fctx, d2fob *parent, d2folb **ppd2folb, text *name );

Diese Funktion erstellt eine Objektbibliothek. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Objekts Objektbibliothek in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2folb und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn eine neue Objektbibliothek in ppd2folb erstellt werden kann.

d2folbde_Destroy( d2fctx *pd2fctx, d2folb *pd2folb );

Diese Funktion zerstört die angegebene Objektbibliothek. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu der zu zerstörenden Objektbibliothek in pd2folb an.

d2folbdl_Delete( d2fctx *pd2fctx, text *name, boolean db );

Diese Funktion löscht die angegebene Objektbibliothek. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu einer Textfolge für den Namen der Objektbibliothek in name und ein Boolesches Flag zur Angabe, ob die Objektbibliothek aus einer Datenbank gelöscht werden soll (z.B. einer geöffneten Bibliothek, einem Formmodul oder einem Menümodul) in db an.

Wenn db TRUE ist, geht Forms API davon aus, daß die angegebene Objektbibliothek aus einer Datenbank gelöscht werden soll. Wenn db FALSE ist, sucht Forms API in dem Dateisystem nach der angegebenen Objektbibliothek und löscht sie dann.

d2folbdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2olb *pd2folb_src, d2folb **ppd2folb_dst, text *new_name );

Diese Funktion dupliziert die angegebene Objektbibliothek. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle der Objektbibliothek in pd2folb_src, ein Handle zur Speicherung des Ziels in ppd2folb_dst und einen Zeiger für den Namen der neuen Objektbibliothek (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn die angegebene Objektbibliothek dupliziert und in ppd2folb_dst gespeichert werden kann.

d2folbao_AddObj( d2fctx *pd2fctx, d2folb *pd2folb, d2folt *pd2folt, d2fob *pd2fob, d2fob **ppd2fob, boolean replace );

Diese Funktion fügt eine Kopie des angegebenen Objekts zu einer Objektbibliothek hinzu. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der Objektbibliothek in pd2folb, einen Zeiger zu dem Registerseitenobjekt in pd2folt, einen Zeiger zu dem zu der Objektbibliothek hinzuzufügenden Objekt in pd2fob, ein Handle zur Rückgabe des neu erstellten Objekts in ppd2fob und ein Boolesches Flag, replace, an, mit dem festgelegt wird, was die Funktion tun soll, wenn schon ein Objekt mit diesem Namen vorhanden ist.

Wenn schon ein Objekt mit demselben Namen und Typ vorhanden ist und Sie replace auf TRUE einstellen, ersetzt die Funktion das bestehende Objekt durch das neue Objekt. Wenn replace auf FALSE eingestellt ist, gibt die Funktion eine Fehlermeldung zurück (D2FS_OBJNOTUNIQUE).

d2folbro_RemoveObj( d2fctx *pd2fctx, d2folb *po2olb, d2fob *pd2fob );

Diese Funktion entfernt das angegebene Objekt aus einer Objektbibliothek. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der Objektbibliothek in pd2folb und einen Zeiger zu dem aus der Objektbibliothek zu entfernenden Objekt in pd2fob an.

d2folbf2_Findobjbypos( d2fctx *pd2fctx, d2folb *pd2folb, number pos, d2fob **ppret_obj);

Diese Funktion gibt die Position des angegebenen Objekts innerhalb der Objektbibliothek zurück. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu einer Objektbibliothek in pd2folb, die Position des Objekts in der Objektbibliothek in pos und ein Handle zu dem zurückgegebenen Objekt in ppret_obj an.

Beachten Sie, daß ein Forms API-Attribut mit der Bezeichnung D2FP_OBJ_COUNT vorhanden ist, mit dem Sie die Anzahl aller verknüpften Objekte für eine bestimmte Objektbibliothek abrufen können.

d2folbld_Load( d2fctx *pd2fctx, d2folb **pd2folb, text *olibname, boolean db );

Diese Funktion lädt die angegebene Objektbibliothek.  Sie geben den Kontext (pd2fctx), ein Handle zu einem Zeiger zur Speicherung der Objektbibliothek (ppd2folb), den Namen der Objektbibliothek (olibname) und ein Boolesches Flag (db) an, mit dem bestimmt wird, ob die Objektbibliothek in einer Datenbank gespeichert ist.

Wenn Sie db auf TRUE einstellen, sucht Forms API in der Datenbank nach der angegebenen Objektbibliothek. Dabei wird davon ausgegangen, daß Sie sich bei einer Datenbank angemeldet haben. Sie müssen d2fctx_Connect() aufrufen, bevor Sie die Objektbibliothek aus einer Datenbank laden.

d2folbsv_Save( d2fctx *pd2fctx, d2folb *pd2folb, text *olibname, boolean db );

Diese Funktion speichert die angegebene Objektbibliothek. Sie geben den Kontext (pd2fctx), einen Zeiger zu der Objektbibliothek (pd2folb), den Namen der angegebenen Objektbibliothek (olibname) und ein Boolesches Flag (db) an, mit dem festgelegt wird, ob die Objektbibliothek in einer Datenbank gespeichert werden soll.

Wenn Sie db auf TRUE einstellen, speichert Forms API die angegebene Objektbibliothek in der Datenbank. Dabei wird davon ausgegangen, daß Sie sich vorher bei einer Datenbank angemeldet haben. Sie müssen d2fctx_Connect() aufrufen, bevor Sie eine Objektbibliothek in einer Datenbank speichern.

Wenn Sie die Objektbibliothek mit dem Standardnamen (dem beim Erstellen angegebenen Namen) speichern möchten, müssen Sie NULL als Textfolge in olibname übergeben. Wenn die Objektbibliothek unter einem anderen Namen gespeichert werden soll, geben Sie diese Textfolge in olibname an.

d2folbfv_FileVersion( d2fctx *pd2fctx, text *olibname, boolean db, number *version );

Diese Funktion gibt die Version der Datei zurück. Sie geben den Kontext (pd2fctx), den Namen der Objektbibliothek (olibname), ein Boolesches Flag (db) zur Angabe, ob die Objektbibliothek in einer Datenbank oder dem Dateisystem gespeichert ist, und einen Zeiger für die von der Funktion zurückgegebene Version (version) an.

Diese Funktion muß aufgerufen werden, bevor Sie die Funktion d2folbld_Load() aufrufen, da sich die Dateiversion ändert, wenn Sie die Objektbibliothek laden.

d2folbgb_GetBoolProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für die angegebene Objektbibliothek ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Objektbibliothek in pd2folb, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2folbgn_GetNumProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für die angegebene Objektbibliothek ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Objektbibliothek in pd2folb, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2folbgt_GetTextProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für die angegebene Objektbibliothek ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Objektbibliothek in pd2folb, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für die angegebene Objektbibliothek in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2folbgo_GetObjectProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt der angegebenen Objektbibliothek ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Objektbibliothek in pd2folb, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2folbgp_GetBlobProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der Objektbibliothek in pd2folb, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2folbsb_SetBoolProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des Booleschen Attributs der angegebenen Objektbibliothek. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Objektbibliothek in pd2folb, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2folbsn_SetNumProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des Number-Attributs der angegebenen Objektbibliothek. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Objektbibliothek in pd2folb, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2folbst_SetTextProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des Text-Attributs der angegebenen Objektbibliothek. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Objektbibliothek in pd2folb, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2folbso_SetObjectProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Objektbibliothek-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Objektbibliothek in pd2folb, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2folbsp_SetBlobProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der angegebenen Objektbibliothek in pd2folb, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2folbhp_HasProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum );

Diese Funktion fragt die angegebene Objektbibliothek nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Objektbibliothek in pd2folb und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2folbip_InheritProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum );

Mit dieser Funktion kann die angegebene Objektbibliothek das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der Objektbibliothek in pd2folb und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2folbii_IspropInherited( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts vom übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der Objektbibliothek in pd2folb und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2folbss_SetSmartclass( d2fctx *pd2fctx, d2folb *pd2folb, d2fob *pd2fob, boolean state);

Diese Funktion legt die angegebene Objektbibliothek als Bestandteil einer SmartClass fest. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu einer Objektbibliothek in pd2folb, einen Zeiger zu dem Objekt, das Bestandteil einer SmartClass werden soll, in pd2fob, einen Booleschen Schalter in state an, mit dem angegeben wird, ob das angegebene Objekt als Bestandteil einer SmartClass gekennzeichnet werden soll. Wenn state auf TRUE eingestellt ist, kennzeichnet Forms API das angegebene Objekt als Bestandteil einer SmartClass. Wenn state auf FALSE eingestellt ist, kennzeichnet Forms API das Objekt als nicht zu einer SmartClass gehörig.

d2folbis_IsSmartclassed( d2fctx *pd2fctx, d2folb *pd2folb, d2fob *pd2fob );

Diese Funktion gibt D2FS_YES zurück, wenn das angegebene Objekt (pd2fob) Bestandteil einer SmartClass ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Objektbibliothek in pd2folb und das Objekt in pd2fob an.

d2folbsd_SetDesc ( d2fctx *pd2fctx, d2folb *pd2folb, d2fob *pd2fob, text *desc );

Diese Funktion gibt D2FS_SUCCESS zurück, wenn Forms API die Kurzbeschreibung für das angegebene Objekt festlegt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Objektbibliothek in pd2folb, das Objekt in pd2fob und einen Zeiger zu der konkreten Kurzbeschreibung in desc an.

d2folbgd_GetDesc ( d2fctx *pd2fctx, d2folb *pd2folb, d2fob *pd2fob, text **desc );

Diese Funktion gibt D2FS_SUCCESS zurück, wenn Forms API die Kurzbeschreibung des angegebenen Objekts abruft. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Objektbibliothek in pd2folb, das Objekt in pd2fob und ein Handle zur Rückgabe der Kurzbeschreibung in desc an.


Funktionen des Objekts Programmblock

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Programmblock von Form Builder beschrieben.

d2fpgucr_Create( d2fctx *pd2fctx, d2fob *parent, d2fpgu **ppd2fpgu, text *name );

Diese Funktion erstellt einen Programmblock. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Programmblock-Objekts in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2fpgu und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein neuer Programmblock in ppd2fpgu erstellt werden kann.

d2fpgude_Destroy( d2fctx *pd2fctx, d2fpgu *pd2fpgu );

Diese Funktion zerstört den angegebenen Programmblock. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Programmblock in pd2fpgu an.

d2fpgudu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2pgu *pd2fpgu_src, d2fpgu **ppd2fpgu_dst, text *new_name );

Diese Funktion dupliziert den angegebenen Programmblock. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle des Programmblocks in pd2fpgu_src, ein Handle zur Speicherung des Ziels in ppd2fpgu_dst und einen Zeiger für den Namen des neuen Programmblocks (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der angegebene Programmblock dupliziert und in ppd2fpgu_dst gespeichert werden kann.

d2fpguco_CompileObj ( d2fctx *pd2fctx, d2fpgu *pd2fpgu );

Diese Funktion kompiliert den gesamten PL/SQL-Code, der mit dem angegebenen Programmblock verknüpft ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu kompilierenden Objekt in pd2fpgu an.

Sie könnten diese Funktion z.B. benutzen, um alle einem Programmblock zugeordneten Triggerobjekte und alle Triggerobjekte zu kompilieren, die allen Objekten in einem Programmblock zugeordnet sind.

d2fpgugb_GetBoolProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für den angegebenen Programmblock ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Programmblock in pd2fpgu, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2fpgugn_GetNumProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für den angegebenen Programmblock ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Programmblock in pd2fpgu, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2fpgugt_GetTextProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für den angegebenen Programmblock ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Programmblock in pd2fpgu, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für den angegebenen Programmblock in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2fpgugo_GetObjectProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt des angegebenen Programmblocks ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Programmblock in pd2fpgu, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2fpgugp_GetBlobProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Programmblock-Objekt in pd2fpgu, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2fpgusb_SetBoolProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des Booleschen Attributs für den angegebenen Programmblock. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Programmblock in pd2fpgu, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fpgusn_SetNumProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des Number-Attributs für den angegebenen Programmblock. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Programmblock in pd2fpgu, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fpgust_SetTextProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des Text-Attributs für den angegebenen Programmblock. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Programmblock in pd2fpgu, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fpguso_SetObjectProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Programmblock-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Programmblock in pd2fpgu, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fpgusp_SetBlobProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Programmblock-Objekt in pd2fpgu, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2fpguhp_HasProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum );

Diese Funktion fragt den angegebenen Programmblock nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, den Programmblock in pd2fpgu und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fpguip_InheritProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum );

Mit dieser Funktion kann der angegebene Programmblock das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Programmblock-Objekt in pd2fpgu und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fpguii_IspropInherited( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts vom übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Programmblock-Objekt in pd2fpgu und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fpgusc_SubClass( d2fctx *pd2fctx, d2fpgu *pd2fpgu, d2fob *parent, boolean keep_path);

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der angegebene Programmblock (pd2fpgu) eine Unterklasse des angegebenen übergeordneten Objekts (parent) wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu den Programmblock in pd2fpgu, einen Zeiger zu dem übergeordneten Objekt in parent und ein Boolesches Flag zur Speicherung des Pfads zu dem übergeordneten Objekt in keep_path an.

Beachten Sie, daß Forms API das Boolesche Argument keep_path verwendet, um die konkreten Pfadinformationen zu speichern. Es wird davon abgeraten, daß Sie keep_path auf TRUE einstellen, da diese Informationen verloren gehen können, wenn Sie zu einem anderen Rechner wechseln. Wenn keep_path auf TRUE eingestellt ist, speichert Forms API den konkreten Pfad in der .fmb-Datei. Wenn die Form das nächste Mal geladen wird, sucht Forms API deshalb nach der übergeordneten Form in einem der angegebenen Verzeichnisse, wie von der Umgebungsvariablen definiert, je nachdem, wie der Pfad der Umgebungsvariablen in Forms 4.5 oder 5.0 definiert ist.

d2fpguis_IsSubclassed	( d2fctx *pd2fctx, d2fpgu *pd2fpgu );

Diese Funktion prüft, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem Programmblock-Objekt in pd2fpgu an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Attributklasse

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Attributklasse von Form Builder beschrieben.

d2fppccr_Create( d2fctx *pd2fctx, d2fob *parent, d2fppc **ppd2fppc, text *name );

Diese Funktion erstellt ein Attributklassen-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Attributklassen-Objekts in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2fppc und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn eine neue Attributklasse in ppd2fppc erstellt werden kann.

d2fppcde_Destroy( d2fctx *pd2fctx, d2fppc *pd2fppc );

Diese Funktion zerstört die angegebene Attributklasse. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu der zu zerstörenden Attributklasse in pd2fppc an.

d2fppcdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2ppc *pd2fppc_src, d2fppc **ppd2fppc_dst, text *new_name );

Diese Funktion dupliziert die angegebene Attributklasse. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle der Attributklasse in pd2fppc_src, ein Handle zur Speicherung des Ziels in ppd2fppc_dst und einen Zeiger für den Namen der neuen Attributklasse (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn die angegebene Attributklasse dupliziert und in ppd2fppc_dst gespeichert werden kann.

d2fppcrp_RemoveProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum );

Diese Funktion entfernt das angegebene Attribut aus der Attributklasse. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Attributklasse in pd2fppc und die Attributnummer des zu entfernenden Attributs in pnum an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Attribut entfernt wurde.

d2fppcgb_GetBoolProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für die angegebene Attributklasse ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Attributklasse in pd2fppc, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2fppcgn_GetNumProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für die angegebene Attributklasse ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Attributklasse in pd2fppc, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2fppcgt_GetTextProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für die angegebene Attributklasse ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Attributklasse in pd2fppc, die Attributnummer in pnum und einen Zeiger zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für die angegebene Attributklasse in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2fppcgo_GetObjectProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt der angegebenen Attributklasse ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Attributklasse in pd2fppc, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2fppcgp_GetBlobProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Attributklassen-Objekt in pd2fppc, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2fppcsb_SetBoolProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des Booleschen Attributs der angegebenen Attributklasse. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Attributklasse in pd2fppc, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fppcsn_SetNumProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des Number-Attributs der angegebenen Attributklasse. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Attributklasse in pd2fppc, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fppcst_SetTextProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des Text-Attributs der angegebenen Attributklasse. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Attributklasse in pd2fppc, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fppcso_SetObjectProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Attributklassen-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Attributklasse in pd2fppc, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fppcsp_SetBlobProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Attributklassen-Objekt in pd2fppc, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2fppchp_HasProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum );

Diese Funktion fragt die angegebene Attributklasse nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Attributklasse in pd2fppc und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fppcip_InheritProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum );

Mit dieser Funktion kann die angegebene Attributklasse das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der Attributklasse in pd2fppc und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fppcii_IspropInherited( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts von dem übergeordneten Objekt vererbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Attributklassen-Objekt in pd2fppc und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fppcsc_SubClass( d2fctx *pd2fctx, d2fppc *pd2fppc, d2fob *parent, boolean keep_path);

Diese Funktion gibt D2FS_SUCCESS zurück, wenn die angegebene Attributklasse (pd2fppc) eine Unterklasse des angegebenen übergeordneten Objekts (parent) wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der Attributklasse in pd2fppc, einen Zeiger zu dem übergeordneten Objekt in parent und ein Boolesches Flag zur Speicherung des Pfads zu dem übergeordneten Objekt in keep_path an.

Beachten Sie, daß Forms API das Boolesche Argument keep_path verwendet, um die konkreten Pfadinformationen zu speichern. Es wird davon abgeraten, daß Sie keep_path auf TRUE einstellen, da diese Informationen verloren gehen können, wenn Sie zu einem anderen Rechner wechseln. Wenn keep_path auf TRUE eingestellt ist, speichert Forms API den konkreten Pfad in der .fmb-Datei. Wenn die Form das nächste Mal geladen wird, sucht Forms API deshalb nach der übergeordneten Form in einem der angegebenen Verzeichnisse, wie von der Umgebungsvariablen definiert, je nachdem, wie der Pfad der Umgebungsvariablen in Forms 4.5 oder 5.0 definiert ist.

d2fppcis_IsSubclassed	( d2fctx *pd2fctx, d2fppc *pd2fppc );

Diese Funktion prüft, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem Attributklassen-Objekt in pd2fppc an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Optionsschaltfläche

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Optionsschaltfläche von Form Builder beschrieben.

d2frdbcr_Create( d2fctx *pd2fctx, d2fob *parent, d2frdb **ppd2frdb, text *name );

Diese Funktion erstellt ein Optionsschaltflächen-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Optionsschaltflächen-Objekts in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2frdb und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn eine neue Optionsschaltfläche in ppd2frdb erstellt werden kann.

d2frdbde_Destroy( d2fctx *pd2fctx, d2frdb *pd2frdb );

Diese Funktion zerstört die angegebene Optionsschaltfläche. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Optionsschaltflächen-Objekt in pd2frdb an.

d2frdbdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2rdb *pd2frdb_src, d2frdb **ppd2frdb_dst, text *new_name );

Diese Funktion dupliziert die angegebene Optionsschaltfläche. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle der Optionsschaltfläche in pd2frdb_src, ein Handle zur Speicherung des Ziels in ppd2frdb_dst und einen Zeiger für den Namen der neuen Optionsschaltfläche (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn die angegebene Optionsschaltfläche dupliziert und in ppd2frdb_dst gespeichert werden kann.

d2frdbgb_GetBoolProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für die angegebene Optionsschaltfläche ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Optionsschaltfläche in pd2frdb, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2frdbgn_GetNumProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für die angegebene Optionsschaltfläche ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Optionsschaltfläche in pd2frdb, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2frdbgt_GetTextProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für die angegebene Optionsschaltfläche ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Optionsschaltfläche in pd2frdb, die Attributnummer in pnum und einen Zeiger zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für die angegebene Optionsschaltfläche in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2frdbgo_GetObjectProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt der angegebenen Optionsschaltfläche ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Optionsschaltfläche in pd2frdb, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2frdbgp_GetBlobProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Optionsschaltflächen-Objekt in pd2frdb, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2frdbsb_SetBoolProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des Booleschen Attributs der angegebenen Optionsschaltfläche. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Optionsschaltfläche in pd2frdb, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2frdbsn_SetNumProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des Number-Attributs der angegebene Optionsschaltfläche. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Optionsschaltfläche in pd2frdb, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2frdbst_SetTextProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des Text-Attributs der angegebenen Optionsschaltfläche. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Optionsschaltfläche in pd2frdb, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2frdbso_SetObjectProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Optionsschaltflächen-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Optionsschaltfläche in pd2frdb, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2frdbsp_SetBlobProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Optionsschaltflächen-Objekt in pd2frdb, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2frdbhp_HasProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum );

Diese Funktion fragt die angegebene Optionsschaltfläche nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Optionsschaltfläche in pd2frdb und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2frdbip_InheritProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum );

Mit dieser Funktion kann die angegebene Optionsschaltfläche das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der Optionsschaltfläche in pd2frdb und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2frdbii_IspropInherited( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts von dem übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Optionsschaltflächen-Objekt in pd2frdb und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2frdbsc_SubClass( d2fctx *pd2fctx, d2frdb *pd2frdb, d2fob *parent, boolean keep_path);

Diese Funktion gibt D2FS_SUCCESS zurück, wenn die angegebene Optionsschaltfläche (pd2frdb) eine Unterklasse des angegebenen übergeordneten Objekts (parent) wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu der Optionsschaltfläche in pd2frdb, einen Zeiger zu dem übergeordneten Objekt in parent und ein Boolesches Flag zur Speicherung des Pfads zu dem übergeordneten Objekt in keep_path an.

Beachten Sie, daß Forms API das Boolesche Argument keep_path verwendet, um die konkreten Pfadinformationen zu speichern. Es wird davon abgeraten, daß Sie keep_path auf TRUE einstellen, da diese Informationen verloren gehen können, wenn Sie zu einem anderen Rechner wechseln. Wenn keep_path auf TRUE eingestellt ist, speichert Forms API den konkreten Pfad in der .fmb-Datei. Wenn die Form das nächste Mal geladen wird, sucht Forms API deshalb nach der übergeordneten Form in einem der angegebenen Verzeichnisse, wie von der Umgebungsvariablen definiert, je nachdem, wie der Pfad der Umgebungsvariablen in Forms 4.5 oder 5.0 definiert ist.

d2frdbis_IsSubclassed	( d2fctx *pd2fctx, d2frdb *pd2frdb );

Diese Funktion prüft, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem Optionsschaltflächen-Objekt in pd2frdb an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Datensatzgruppe

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Datensatzgruppe von Form Builder beschrieben.

d2frcgcr_Create( d2fctx *pd2fctx, d2fob *parent, d2frcg **ppd2frcg, text *name );

Diese Funktion erstellt ein Datensatzgruppen-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Datensatzgruppen-Objekts in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2frcg und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein neues Datensatzgruppen-Objekt in ppd2frcg erstellt werden kann.

d2frcgde_Destroy( d2fctx *pd2fctx, d2frcg *pd2frcg );

Diese Funktion zerstört das angegebene Datensatzgruppen-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Datensatzgruppen-Objekt in pd2frcg an.

d2frcgdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2rcg *pd2frcg_src, d2frcg **ppd2frcg_dst, text *new_name );

Diese Funktion dupliziert das angegebene Datensatzgruppen-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle des Datensatzgruppen-Objekts in pd2frcg_src, ein Handle zur Speicherung des Ziels in ppd2frcg_dst und einen Zeiger für den Namen des neuen Datensatzgruppen-Objekts (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Datensatzgruppen-Objekt dupliziert und in ppd2frcg_dst gespeichert werden kann.

d2frcggb_GetBoolProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für das angegebene Datensatzgruppen-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Datensatzgruppen-Objekt in pd2frcg, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2frcggn_GetNumProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für das angegebene Datensatzgruppen-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Datensatzgruppen-Objekt in pd2frcg, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2frcggt_GetTextProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für das angegebene Datensatzgruppen-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Datensatzgruppen-Objekt in pd2frcg, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für das angegebene Datensatzgruppen-Objekt in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2frcggo_GetObjectProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt des angegebenen Datensatzgruppen-Objekts ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Datensatzgruppen-Objekt in pd2frcg, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2frcggp_GetBlobProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Datensatzgruppen-Objekt in pd2frcg, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2frcgsb_SetBoolProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des Booleschen Attributs des angegebenen Datensatzgruppen-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Datensatzgruppen-Objekt in pd2frcg, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2frcgsn_SetNumProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des Number-Attributs des angegebenen Datensatzgruppen-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Datensatzgruppen-Objekt in pd2frcg, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2frcgst_SetTextProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des Text-Attributs des angegebenen Datensatzgruppen-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Datensatzgruppen-Objekt in pd2frcg, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2frcgso_SetObjectProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Datensatzgruppen-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Datensatzgruppen-Objekt in pd2frcg, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2frcgsp_SetBlobProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Datensatzgruppen-Objekt in pd2frcg, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2frcghp_HasProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum );

Diese Funktion fragt das angegebene Datensatzgruppen-Objekt nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Datensatzgruppen-Objekt in pd2frcg und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2frcgip_InheritProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum );

Mit dieser Funktion kann das angegebene Datensatzgruppen-Objekt das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Datensatzgruppen-Objekt in pd2frcg und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2frcgii_IspropInherited( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts von dem übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Datensatzgruppen-Objekt in pd2frcg und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2frcgsc_SubClass( d2fctx *pd2fctx, d2frcg *pd2frcg, d2fob *parent, boolean keep_path);

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Datensatzgruppen-Objekt (pd2frcg) eine Unterklasse des angegebenen übergeordneten Objekts (parent) wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Datensatzgruppen-Objekt in pd2frcg, einen Zeiger zu dem übergeordneten Objekt in parent und ein Boolesches Flag zur Speicherung des Pfads zu dem übergeordneten Objekt in keep_path an.

Beachten Sie, daß Forms API das Boolesche Argument keep_path verwendet, um die konkreten Pfadinformationen zu speichern. Es wird davon abgeraten, daß Sie keep_path auf TRUE einstellen, da diese Informationen verloren gehen können, wenn Sie zu einem anderen Rechner wechseln. Wenn keep_path auf TRUE eingestellt ist, speichert Forms API den konkreten Pfad in der .fmb-Datei. Wenn die Form das nächste Mal geladen wird, sucht Forms API deshalb nach der übergeordneten Form in einem der angegebenen Verzeichnisse, wie von der Umgebungsvariablen definiert, je nachdem, wie der Pfad der Umgebungsvariablen in Forms 4.5 oder 5.0 definiert ist.

d2frcgis_IsSubclassed	( d2fctx *pd2fctx, d2frcg *pd2frcg );

Diese Funktion prüft, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem Datensatzgruppen-Objekt in pd2frcg an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Datensatzgruppen-Spaltenspezifikation

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Datensatzgruppen-Spaltenspezifikation von Form Builder beschrieben.

d2frcscr_Create( d2fctx *pd2fctx, d2fob *parent, d2frcs **ppd2frcs, text *name );

Diese Funktion erstellt eine Datensatzgruppen-Spaltenspezifikation. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Datensatzgruppen-Spaltenspezifikations-Objekts in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2frcs und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn eine neue Datensatzgruppen-Spaltenspezifikation in ppd2frcs erstellt werden kann.

d2frcsde_Destroy( d2fctx *pd2fctx, d2frcs *pd2frcs );

Diese Funktion zerstört die angegebene Datensatzgruppen-Spaltenspezifikation. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu der zu zerstörenden Datensatzgruppen-Spaltenspezifikation in pd2frcs an.

d2frcsdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2rcs *pd2frcs_src, d2frcs **ppd2frcs_dst, text *new_name );

Diese Funktion dupliziert die angegebene Datensatzgruppen-Spaltenspezifikation. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle der Datensatzgruppen-Spaltenspezifikation in pd2frcs_src, ein Handle zur Speicherung des Ziels in ppd2frcs_dst und einen Zeiger für den Namen der neuen Datensatzgruppen-Spaltenspezifikation (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn die angegebene Datensatzgruppen-Spaltenspezifikation dupliziert und in ppd2frcs_dst gespeichert werden kann.

d2frcsir_InsertRow( d2fctx *pd2fctx, d2frcs *pd2frcs, number index, text *dat );

Diese Funktion fügt eine Zeile in das angegebene Datensatzgruppen-Spaltenspezifikations-Objekt ein. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Datensatzgruppen-Spaltenspezifikations-Objekt in pd2frcs, den Index in die Zeilenliste, bei dem die Funktion die Zeile einfügen soll, in index und einen Zeiger zu den Daten in dat an.

Sie müssen zuerst ein Datensatzgruppen-Objekt erstellen, danach müssen Sie ein neues Datensatzgruppen-Spaltenobjekt erstellen, und dann können Sie Zeilen in diesen zugeordneten Spaltenwert einfügen.

Beachten Sie, daß ein Forms API-Attribut mit der Bezeichnung D2FP_COL_VALS_COUNT vorhanden ist, mit dem Sie die Anzahl aller Spalten für eine Datensatzgruppen-Spaltenspezifikation abrufen können.

d2frcsdr_DeleteRow( d2fctx *pd2fctx, d2frcs *pd2frcs, number index );

Diese Funktion löscht die angegebene Zeile aus dem angegebenen Datensatzgruppen-Spaltenspezifikations-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Datensatzgruppen-Spaltenspezifikations-Objekt in pd2frcs und den Index in die Zeilenliste, bei dem die Funktion die Zeile löschen soll, in index an.

Beachten Sie, daß ein Forms API-Attribut mit der Bezeichnung D2FP_COL_VALS_COUNT vorhanden ist, mit dem Sie die Anzahl aller Spalten für eine Datensatzgruppen-Spaltenspezifikation abrufen können.

d2frcsgr_GetRow( d2fctx *pd2fctx, d2frcs *pd2frcs, number index, text **dat );

Diese Funktion ruft eine Zeile aus dem angegebenen Datensatzgruppen-Spaltenspezifikations-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Datensatzgruppen-Spaltenspezifikations-Objekt in pd2frcs, den Index in die Zeilenliste, bei dem die Funktion die Zeile abrufen soll, in index und ein Handle zur Rückgabe der Zeile in dat an.

Beachten Sie, daß ein Forms API-Attribut mit der Bezeichnung D2FP_COL_VALS_COUNT vorhanden ist, mit dem Sie die Anzahl aller Spalten für eine Datensatzgruppen-Spaltenspezifikation abrufen können.

d2frcsgb_GetBoolProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für die angegebene Datensatzgruppen-Spaltenspezifikation ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Datensatzgruppen-Spaltenspezifikation in pd2frcs, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2frcsgn_GetNumProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für die angegebene Datensatzgruppen-Spaltenspezifikation ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Datensatzgruppen-Spaltenspezifikation in pd2frcs, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2frcsgt_GetTextProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für die angegebene Datensatzgruppen-Spaltenspezifikation ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Datensatzgruppen-Spaltenspezifikation in pd2frcs, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für die angegebene Datensatzgruppen-Spaltenspezifikation in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2frcsgo_GetObjectProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt der angegebenen Datensatzgruppen-Spaltenspezifikation ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Datensatzgruppen-Spaltenspezifikation in pd2frcs, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2frcsgp_GetBlobProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Datensatzgruppen-Spaltenspezifikations-Objekt in pd2frcs, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2frcssb_SetBoolProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des Booleschen Attributs der  angegebenen Datensatzgruppen-Spaltenspezifikation. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Datensatzgruppen-Spaltenspezifikation in pd2frcs, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2frcssn_SetNumProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des Number-Attributs der angegebenen Datensatzgruppen-Spaltenspezifikation. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Datensatzgruppen-Spaltenspezifikation in pd2frcs, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2frcsst_SetTextProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des Text-Attributs der angegebenen Datensatzgruppen-Spaltenspezifikation. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Datensatzgruppen-Spaltenspezifikation in pd2frcs, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2frcsso_SetObjectProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Datensatzgruppen-Spaltenspezifikations-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Datensatzgruppen-Spaltenspezifikation in pd2frcs, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2frcssp_SetBlobProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Datensatzgruppen-Spaltenspezifikations-Objekt in pd2frcs, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2frcshp_HasProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum );

Diese Funktion fragt die angegebene Datensatzgruppen-Spaltenspezifikation nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Datensatzgruppen-Spaltenspezifikation in pd2frcs und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2frcsip_InheritProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum );

Mit dieser Funktion kann die angegebene Datensatzgruppen-Spaltenspezifikation das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Datensatzgruppen-Spaltenspezifikations-Objekt in pd2frcs und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2frcsii_IspropInherited( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts von dem übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Datensatzgruppen-Spaltenspezifikations-Objekt in pd2frcs und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Beziehung

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Beziehung von Form Builder beschrieben.

d2frelcr_Create( d2fctx *pd2fctx, d2fob *parent, d2frel **ppd2frel, text *name );

Diese Funktion erstellt ein Beziehungsobjekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Beziehungsobjekts in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2frel und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn eine neue Beziehung in ppd2frel erstellt werden kann.

d2frelde_Destroy( d2fctx *pd2fctx, d2frel *pd2frel );

Diese Funktion zerstört die angegebene Beziehung. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Beziehungsobjekt in pd2frel an.

d2frelup_Update( d2fctx *pd2fctx, d2frel *pd2frel );

Diese Funktion aktualisiert das angegebene Beziehungsobjekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem Beziehungsobjekt in pd2frel an.

Bei konventionellen Forms-Objekten erstellen Sie zuerst ein Objekt und beginnen dann mit der Einstellung und dem Abrufen der Objektattribute. Bei Beziehungsobjekten ist ein zusätzlicher Schritt erforderlich, nachdem Sie das Objekt erstellt haben, um es zu "instantiieren". Sie erstellen also zuerst Beziehungsobjekte, danach legen Sie spezifische Attribute des Beziehungsobjekts fest, und schließlich rufen Sie diese Aktualisierungsfunktion auf. Wenn Sie diese Funktion nicht aufrufen, ist das Beziehungsobjekt nicht vollständig und das Verhalten undefiniert. Das Beziehungsobjekt befindet sich danach in einem "unstabilen" Status (wenn Sie versuchen, eine Funktion mit einem unstabilen Beziehungsobjekt auszuführen, gibt Forms API einen Fehler zurück).

d2freldu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2rel *pd2frel_src, d2frel **ppd2frel_dst, text *new_name );

Diese Funktion dupliziert die angegebene Beziehung. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Beziehungsquelle in pd2frel_src, ein Handle zur Speicherung des Ziels in ppd2frel_dst und einen Zeiger für den Namen der neuen Beziehung (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn die angegebene Beziehung dupliziert und in ppd2frel_dst gespeichert werden kann.

d2frelgb_GetBoolProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für die angegebene Beziehung ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Beziehung in pd2frel, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2frelgn_GetNumProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für die angegebene Beziehung ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Beziehung in pd2frel, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2frelgt_GetTextProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für die angegebene Beziehung ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Beziehung in pd2frel, die Attributnummer in pnum und einen Zeiger zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für die angegebene Beziehung in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2frelgo_GetObjectProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt der angegebenen Beziehung ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Beziehung in pd2frel, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2frelgp_GetBlobProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Beziehungsobjekt in pd2frel, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2frelsb_SetBoolProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des Booleschen Attributs der angegebenen Beziehung. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Beziehung in pd2frel, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2frelsn_SetNumProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des Number-Attributs der angegebenen Beziehung. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Beziehung in pd2frel, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2frelst_SetTextProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des Text-Attributs der angegebenen Beziehung. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Beziehung in pd2frel, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2frelso_SetObjectProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Beziehungs-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Beziehung in pd2frel, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2frelsp_SetBlobProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Beziehungsobjekt in pd2frel, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2frelhp_HasProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum );

Diese Funktion fragt die angegebene Beziehung nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, die Beziehung in pd2frel und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2frelip_InheritProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum );

Mit dieser Funktion kann die angegebene Beziehung das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Beziehungsobjekt in pd2frel und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2frelii_IspropInherited( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts vom übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Beziehungsobjekt in pd2frel und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Bericht

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Bericht von Form Builder beschrieben.

d2frptcr_Create( d2fctx *pd2fctx, d2fob *parent, d2frpt **ppd2frpt, text *name );

Diese Funktion erstellt ein Bericht-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Bericht-Objekts in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2frpt, und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein neues Bericht-Objekt in ppd2frpt erstellt werden kann.

d2frptde_Destroy( d2fctx *pd2fctx, d2frpt *pd2frpt );

Diese Funktion zerstört das angegebene Bericht-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Bericht-Objekt in pd2frpt an.

d2frptdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2rpt *pd2frpt_src, d2frpt **ppd2frpt_dst, text *new_name );

Diese Funktion dupliziert das angegebene Bericht-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle des Bericht-Objekts in pd2frpt_src, ein Handle zur Speicherung des Ziels in ppd2frpt_dst und einen Zeiger für den Namen des neuen Bericht-Objekts (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Bericht-Objekt dupliziert und in ppd2frpt_dst gespeichert werden kann.

d2frptgb_GetBoolProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für das angegebene Bericht-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Bericht-Objekt in pd2frpt, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2frptgn_GetNumProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für das angegebene Bericht-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Bericht-Objekt in pd2frpt, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2frptgt_GetTextProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für das angegebene Bericht-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Bericht-Objekt in pd2frpt, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für das angegebene Bericht-Objekt in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2frptgo_GetObjectProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt des angegebenen Bericht-Objekts ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Bericht-Objekt in pd2frpt, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2frptgp_GetBlobProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Bericht-Objekt in pd2frpt, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2frptsb_SetBoolProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des Booleschen Attributs des angegebenen Bericht-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Bericht-Objekt in pd2frpt, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2frptsn_SetNumProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des Number-Attributs des angegebenen Bericht-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Bericht-Objekt in pd2frpt, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2frptst_SetTextProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des Text-Attributs des angegebenen Bericht-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Bericht-Objekt in pd2frpt, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2frptso_SetObjectProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Berichtobjekt-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Bericht-Objekt in pd2frpt, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2frptsp_SetBlobProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Bericht-Objekt in pd2frpt, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2frpthp_HasProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum );

Diese Funktion fragt das angegebene Bericht-Objekt nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Bericht-Objekt in pd2frpt und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2frptip_InheritProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum );

Mit dieser Funktion kann das angegebene Bericht-Objekt das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Bericht-Objekt in pd2frpt und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2frptii_IspropInherited( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts vom übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Bericht-Objekt in pd2frpt und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2frptsc_SubClass( d2fctx *pd2fctx, d2frpt *pd2frpt, d2fob *parent, boolean keep_path);

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Bericht-Objekt (pd2frpt) eine Unterklasse des angegebenen übergeordneten Objekts (parent) wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Bericht in pd2frpt, einen Zeiger zu dem übergeordneten Objekt in parent und ein Boolesches Flag zur Speicherung des Pfads zu dem übergeordneten Objekt in keep_path an.

Beachten Sie, daß Forms API das Boolesche Argument keep_path verwendet, um die konkreten Pfadinformationen zu speichern. Es wird davon abgeraten, daß Sie keep_path auf TRUE einstellen, da diese Informationen verloren gehen können, wenn Sie zu einem anderen Rechner wechseln. Wenn keep_path auf TRUE eingestellt ist, speichert Forms API den konkreten Pfad in der .fmb-Datei. Wenn die Form das nächste Mal geladen wird, sucht Forms API deshalb nach der übergeordneten Form in einem der angegebenen Verzeichnisse, wie von der Umgebungsvariablen definiert, je nachdem, wie der Pfad der Umgebungsvariablen in Forms 4.5 oder 5.0 definiert ist.

d2frptis_IsSubclassed	( d2fctx *pd2fctx, d2frpt *pd2frpt );

Diese Funktion prüft, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem Bericht-Objekt in pd2frpt an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Registerseite

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Registerseite von Form Builder beschrieben.

d2ftbpcr_Create( d2fctx *pd2fctx, d2fob *parent, d2ftbp **ppd2ftbp, text *name );

Diese Funktion erstellt ein Registerseiten-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Registerseiten-Objekts in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2ftbp und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein neues Registerseiten-Objekt in ppd2ftbp erstellt werden kann.

d2ftbpde_Destroy( d2fctx *pd2fctx, d2ftbp *pd2ftbp );

Diese Funktion zerstört das angegebene Registerseiten-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Registerseiten-Objekt in pd2ftbpp an.

d2ftbpdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2tbp *pd2ftbpp_src, d2ftbp **ppd2ftbpp_dst, text *new_name );

Diese Funktion dupliziert das angegebene Registerseiten-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle des Registerseiten-Objekts in pd2ftbpp_src, ein Handle zur Speicherung des Ziels in ppd2ftbpp_dst und einen Zeiger für den Namen des neuen Registerseiten-Objekts (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Registerseiten-Objekt dupliziert und in ppd2ftbpp_dst gespeichert werden kann.

d2ftbpgb_GetBoolProp( d2fctx *pd2fctx, d2ftbp *pd2ftbpp, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für das angegebene Registerseiten-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Registerseiten-Objekt in pd2ftbpp, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2ftbpgn_GetNumProp( d2fctx *pd2fctx, d2ftbp *pd2ftbpp, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für das angegebene Registerseiten-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Registerseiten-Objekt in pd2ftbpp, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2ftbpgt_GetTextProp( d2fctx *pd2fctx, d2ftbp *pd2ftbpp, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für das angegebene Registerseiten-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Registerseiten-Objekt in pd2ftbpp, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für das angegebene Registerseiten-Objekt in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2ftbpgo_GetObjectProp( d2fctx *pd2fctx, d2ftbp *pd2ftbpp, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt des angegebenen Registerseiten-Objekts ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Registerseiten-Objekt in pd2ftbpp, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2ftbpgp_GetBlobProp( d2fctx *pd2fctx, d2ftbp *pd2ftbpp, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Registerseiten-Objekt in pd2ftbpp, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2ftbpsb_SetBoolProp( d2fctx *pd2fctx, d2ftbp *pd2ftbpp, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des Booleschen Attributs des angegebenen Registerseiten-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Registerseiten-Objekt in pd2ftbpp, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2ftbpsn_SetNumProp( d2fctx *pd2fctx, d2ftbp *pd2ftbpp, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des Number-Attributs des angegebenen Registerseiten-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Registerseiten-Objekt in pd2ftbpp, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2ftbpst_SetTextProp( d2fctx *pd2fctx, d2ftbp *pd2ftbpp, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des Text-Attributs des angegebenen Registerseiten-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Registerseiten-Objekt in pd2ftbpp, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2ftbpso_SetObjectProp( d2fctx *pd2fctx, d2ftbp *pd2ftbpp, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt für das angegebene Registerseiten-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Registerseiten-Objekt in pd2ftbpp, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2ftbpsp_SetBlobProp( d2fctx *pd2fctx, d2ftbp *pd2ftbpp, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Registerseiten-Objekt in pd2ftbpp, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2ftbphp_HasProp( d2fctx *pd2fctx, d2ftbp *pd2ftbpp, ub2 pnum );

Diese Funktion fragt das angegebene Registerseiten-Objekt nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Registerseiten-Objekt in pd2ftbpp und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2ftbpip_InheritProp( d2fctx *pd2fctx, d2ftbp *pd2ftbpp, ub2 pnum );

Mit dieser Funktion kann das angegebene Registerseiten-Objekt das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Registerseiten-Objekt in pd2ftbpp und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2ftbpii_IspropInherited( d2fctx *pd2fctx, d2ftbp *pd2ftbpp, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts vom übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Registerseiten-Objekt in pd2ftbpp und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2ftbpsc_SubClass( d2fctx *pd2fctx, d2ftbp *pd2ftbpp, d2fob *parent, boolean keep_path);

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Registerseiten-Objekt (pd2ftbpp) eine Unterklasse des angegebenen übergeordneten Objekts (parent) wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Registerseiten-Objekt in pd2ftbpp, einen Zeiger zu dem übergeordneten Objekt in parent und ein Boolesches Flag zur Speicherung des Pfads zu dem übergeordneten Objekt in keep_path an.

Beachten Sie, daß Forms API das Boolesche Argument keep_path verwendet, um die konkreten Pfadinformationen zu speichern. Es wird davon abgeraten, daß Sie keep_path auf TRUE einstellen, da diese Informationen verloren gehen können, wenn Sie zu einem anderen Rechner wechseln. Wenn keep_path auf TRUE eingestellt ist, speichert Forms API den konkreten Pfad in der .fmb-Datei. Wenn die Form das nächste Mal geladen wird, sucht Forms API deshalb nach der übergeordneten Form in einem der angegebenen Verzeichnisse, wie von der Umgebungsvariablen definiert, je nachdem, wie der Pfad der Umgebungsvariablen in Forms 4.5 oder 5.0 definiert ist.

d2ftbpis_IsSubclassed	( d2fctx *pd2fctx, d2ftbp *pd2ftbpp );

Diese Funktion prüft, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem Registerseiten-Objekt in pd2ftbpp an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Trigger

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Trigger von Form Builder beschrieben.

d2ftrgcr_Create( d2fctx *pd2fctx, d2fob *parent, d2ftrg **ppd2ftrg, text *name );

Diese Funktion erstellt ein Trigger-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Trigger-Objekts in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2ftrg und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein neues Trigger-Objekt in ppd2ftrg erstellt werden kann.

d2ftrgde_Destroy( d2fctx *pd2fctx, d2ftrg *pd2ftrg );

Diese Funktion zerstört das angegebene Trigger-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Trigger-Objekt in pd2ftrg an.

d2ftrgdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2trg *pd2ftrg_src, d2ftrg **ppd2ftrg_dst, text *new_name );

Diese Funktion dupliziert das angegebene Trigger-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle des Trigger-Objekts in pd2ftrg_src, ein Handle zur Speicherung des Ziels in ppd2ftrg_dst und einen Zeiger für den Namen des neuen Trigger-Objekts (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Trigger-Objekt dupliziert und in ppd2ftrg_dst gespeichert werden kann.

d2ftrgco_CompileObj( d2fctx *pd2fctx, d2ftrg *pdftrg);

Diese Funktion kompiliert den gesamten PL/SQL-Code, der mit dem angegebenen Trigger-Objekt verknüpft ist (pdftrg). Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu kompilierenden Objekt in pd2ftrg an.

d2ftrggb_GetBoolProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für das angegebene Trigger-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Trigger-Objekt in pd2ftrg, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2ftrggn_GetNumProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für das angegebene Trigger-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Trigger-Objekt in pd2ftrg, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2ftrggt_GetTextProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für das angegebene Trigger-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Trigger-Objekt in pd2ftrg, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für das angegebene Trigger-Objekt in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2ftrggo_GetObjectProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt des angegebenen Trigger-Objekts ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Trigger-Objekt in pd2ftrg, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2ftrggp_GetBlobProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Trigger-Objekt in pd2ftrg, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2ftrgsb_SetBoolProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des Booleschen Attributs des angegebenen Trigger-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Trigger-Objekt in pd2ftrg, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2ftrgsn_SetNumProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des Number-Attributs des angegebenen Trigger-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Trigger-Objekt in pd2ftrg, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2ftrgst_SetTextProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des Text-Attributs des angegebenen Trigger-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Trigger-Objekt in pd2ftrg, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2ftrgso_SetObjectProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Triggerobjekt-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Trigger-Objekt in pd2ftrg, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2ftrgsp_SetBlobProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Trigger-Objekt in pd2ftrg, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2ftrghp_HasProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum );

Diese Funktion fragt das angegebene Trigger-Objekt nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Trigger-Objekt in pd2ftrg und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2ftrgip_InheritProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum );

Mit dieser Funktion kann das angegebene Trigger-Objekt das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Trigger-Objekt in pd2ftrg und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2ftrgii_IspropInherited( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts vom übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Trigger-Objekt in pd2ftrg und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2ftrgsc_SubClass( d2fctx *pd2fctx, d2ftrg *pd2ftrg, d2fob *parent, boolean keep_path);

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Trigger-Objekt (pd2ftrg) eine Unterklasse des angegebenen übergeordneten Objekts (parent) wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Trigger-Objekt in pd2ftrg, einen Zeiger zu dem übergeordneten Objekt in parent und ein Boolesches Flag zur Speicherung des Pfads zu dem übergeordneten Objekt in keep_path an.

Beachten Sie, daß Forms API das Boolesche Argument keep_path verwendet, um die konkreten Pfadinformationen zu speichern. Es wird davon abgeraten, daß Sie keep_path auf TRUE einstellen, da diese Informationen verloren gehen können, wenn Sie zu einem anderen Rechner wechseln. Wenn keep_path auf TRUE eingestellt ist, speichert Forms API den konkreten Pfad in der .fmb-Datei. Wenn die Form das nächste Mal geladen wird, sucht Forms API deshalb nach der übergeordneten Form in einem der angegebenen Verzeichnisse, wie von der Umgebungsvariablen definiert, je nachdem, wie der Pfad der Umgebungsvariablen in Forms 4.5 oder 5.0 definiert ist.

d2ftrgis_IsSubclassed	( d2fctx *pd2fctx, d2ftrg *pd2ftrg );

Diese Funktion prüft, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem Trigger-Objekt in pd2ftrg an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Visuelles Attribut

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Visuelles Attribut von Form Builder beschrieben.

d2fvatcr_Create( d2fctx *pd2fctx, d2fob *parent, d2fvat **ppd2fvat, text *name );

Diese Funktion erstellt ein Visuelles Attribut-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Visuellen Attribut-Objekts in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2fvat und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das neue Visuelle Attribut-Objekt in ppd2fvat erstellt werden kann.

d2fvatde_Destroy( d2fctx *pd2fctx, d2fvat *pd2fvat );

Diese Funktion zerstört das angegebene Visuelle Attribut-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Visuellen Attribut-Objekt in pd2fvat an.

d2fvatdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2vat *pd2fvat_src, d2fvat **ppd2fvat_dst, text *new_name );

Diese Funktion dupliziert das angegebene Visuelle Attribut-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle des Visuellen Attribut-Objekts in pd2fvat_src, ein Handle zur Speicherung des Ziels in ppd2fvat_dst und einen Zeiger für den Namen des neuen Visuellen Attribut-Objekts (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Visuelle Attribut-Objekt dupliziert und in ppd2fvat_dst gespeichert werden kann.

d2fvatco_CompileObj( d2fctx *pd2fctx, d2fvat *pdfvat);

Diese Funktion kompiliert den gesamten PL/SQL-Code, der mit dem angegebenen Visuellen Attribut-Objekt verknüpft ist (pd2fvat). Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu kompilierenden Objekt in pd2fvat an.

d2fvatgb_GetBoolProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für das angegebene Visuelle Attribut-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Visuelle Attribut-Objekt in pd2fvat, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2fvatgn_GetNumProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für das angegebene Visuelle Attribut-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Visuelle Attribut-Objekt in pd2fvat, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2fvatgt_GetTextProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum, text **pprp );

Diese Funktion ruft ein Attribut vom Typ Text für das angegebene Visuelle Attribut-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Visuelle Attribut-Objekt in pd2fvat, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für das angegebene Visuelle Attribut-Objekt in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2fvatgo_GetObjectProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt des angegebenen Visuellen Attribut-Objekts ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Visuelle Attribut-Objekt in pd2fvat, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2fvatgp_GetBlobProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Visuellen Attribut-Objekt in pd2fvat, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2fvatsb_SetBoolProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des Booleschen Attributs des angegebenen Visuellen Attribut-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Visuelle Attribut-Objekt in pd2fvat, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fvatsn_SetNumProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des Number-Attributs des angegebenen Visuellen Attribut-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Visuelle Attribut-Objekt in pd2fvat, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fvatst_SetTextProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des Text-Attributs des angegebenen Visuellen Attribut-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Visuelle Attribut-Objekt in pd2fvat, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fvatso_SetObjectProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Visuellen Attribut-Objektattributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Visuelle Attribut-Objekt in pd2fvat, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fvatsp_SetBlobProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Visuellen Attribut-Objekt in pd2fvat, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2fvathp_HasProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum );

Diese Funktion ruft das angegebene Visuelle Attribut-Objekt für das angegebene Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Visuelle Attribut-Objekt in pd2fvat und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fvatip_InheritProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum );

Mit dieser Funktion kann das angegebene Visuelle Attribut-Objekt das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Visuellen Attribut-Objekt in pd2fvat und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fvatii_IspropInherited( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts vom übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Visuellen Attribut-Objekt in pd2fvat und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fvatsc_SubClass( d2fctx *pd2fctx, d2fvat *pd2fvat, d2fob *parent, boolean keep_path);

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Visuelle Attribut-Objekt (pd2fvat) eine Unterklasse des angegebenen übergeordneten Objekts (parent) wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Visuellen Attribut-Objekt in pd2fvat, einen Zeiger zu dem übergeordneten Objekt in parent und ein Boolesches Flag zur Speicherung des Pfads zu dem übergeordneten Objekt in keep_path an.

Beachten Sie, daß Forms API das Boolesche Argument keep_path verwendet, um die konkreten Pfadinformationen zu speichern. Es wird davon abgeraten, daß Sie keep_path auf TRUE einstellen, da diese Informationen verloren gehen können, wenn Sie zu einem anderen Rechner wechseln. Wenn keep_path auf TRUE eingestellt ist, speichert Forms API den konkreten Pfad in der .fmb-Datei. Wenn die Form das nächste Mal geladen wird, sucht Forms API deshalb nach der übergeordneten Form in einem der angegebenen Verzeichnisse, wie von der Umgebungsvariablen definiert, je nachdem, wie der Pfad der Umgebungsvariablen in Forms 4.5 oder 5.0 definiert ist.

d2fvatis_IsSubclassed	( d2fctx *pd2fctx, d2fvat *pd2fvat );

Diese Funktion prüft, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem Visuellen Attribut-Objekt in pd2fvat an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Funktionen des Objekts Fenster

  Verwandte Themen

In diesem Abschnitt werden die Funktionen des Open API-Objekts Fenster von Form Builder beschrieben.

d2fwincr_Create( d2fctx *pd2fctx, d2fob *parent, d2fwin **ppd2fwin, text *name );

Diese Funktion erstellt ein Fenster-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem übergeordneten Objekt des neuen Fenster-Objekts in parent, ein Handle zur Speicherung des neu erstellten Objekts in ppd2fwin und den Namen des neuen Objekts in name an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein neues Fenster-Objekt in ppd2fwin erstellt werden kann.

d2fwinde_Destroy( d2fctx *pd2fctx, d2fwin *pd2fwin );

Diese Funktion zerstört das angegebene Fenster-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu zerstörenden Fenster-Objekt in pd2fwin an.

d2fwindu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2win *pd2fwin_src, d2fwin **ppd2fwin_dst, text *new_name );

Diese Funktion dupliziert das angegebene Fenster-Objekt. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem neuen übergeordneten Objekt in new_parent, einen Zeiger zu der Quelle des Fenster-Objekts in pd2fwin_src, ein Handle zur Speicherung des Ziels in ppd2fwin_dst und einen Zeiger für den Namen des neuen Fenster-Objekts (new_name) an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Fenster-Objekt dupliziert und in ppd2fwin_dst gespeichert werden kann.

d2fwinco_CompileObj( d2fctx *pd2fctx, d2fwin *pdfwin);

Diese Funktion kompiliert den gesamten PL/SQL-Code, der mit dem angegebenen Fenster verknüpft ist (pd2fwin). Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem zu kompilierenden Objekt in pd2fwin an.

Mit dieser Funktion könnten Sie z.B. alle einem Fenster zugeordneten Trigger-Objekte und alle Trigger-Objekte kompilieren, die allen Objekten in einem Fenster zugeordnet sind.

d2fwingb_GetBoolProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum, boolean *pprp );

Diese Funktion ruft ein Boolesches Attribut für das angegebene Fenster-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Fenster-Objekt in pd2fwin, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des Booleschen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Booleschen Attributs in pprp gespeichert wird.

d2fwingn_GetNumProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum, number *pprp );

Diese Funktion ruft ein Attribut vom Typ Number (eine konkrete skalare Konstante) für das angegebene Fenster-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Fenster-Objekt in pd2fwin, die Attributnummer in pnum und einen Zeiger zu pprp zur Speicherung des numerischen Wertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn der Wert des Number-Attributs in pprp gespeichert wird.

d2fwingt_GetTextProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum, text **pprp );

Diese Funktion ruft das Attribut vom Typ Text für das angegebene Fenster-Objekt ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Fenster-Objekt in pd2fwin, die Attributnummer in pnum und ein Handle zu einem Array mit Zeichen in pprp zur Speicherung des Text-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Array mit einer Kopie des Text-Attributwertes für das angegebene Fenster-Objekt in pprp gefüllt wird.

Beachten Sie, daß der Client den von dieser Funktion zurückgegebenen Text freigeben muß.

d2fwingo_GetObjectProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum, dvoid **pprp );

Diese Funktion ruft ein Attribut vom Typ Objekt des angegebenen Fenster-Objekts ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Fenster-Objekt in pd2fwin, eine Attributnummer in pnum und ein Handle zu pprp zur Speicherung des Objekt-Attributwertes an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten Objekt-Attribut in pprp gespeichert wird.

d2fwingp_GetBlobProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum, dvoid **pprp );

Diese Funktion ruft den Wert aus dem vom Client angegebenen Handle ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Fenster-Objekt in pd2fwin, eine Attributnummer in pnum und ein Handle zu pprp an, damit die Funktion auf den vom Client angegebenen Wert zugreifen kann.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn ein Handle zu dem gewünschten, vom Client angegebenen Attribut in pprp gespeichert wird.

d2fwinsb_SetBoolProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum, boolean prp );

Diese Funktion bestimmt den Wert des Booleschen Attributs des angegebenen Fenster-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Fenster-Objekt in pd2fwin, die Attributnummer in pnum und den Booleschen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Boolesche Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fwinsn_SetNumProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum, number prp );

Diese Funktion bestimmt den Wert des Number-Attributs des angegebenen Fenster-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Fenster-Objekt in pd2fwin, die Attributnummer in pnum und den Number-Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das Number-Attribut mit dem in prp angegebenen Wert eingestellt wird.

d2fwinst_SetTextProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum, text *prp );

Diese Funktion bestimmt den Wert des Text-Attributs des angegebenen Fenster-Objekts. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Fenster-Objekt in pd2fwin, die Attributnummer in pnum und ein Handle zu dem Textwert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Text-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fwinso_SetObjectProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das Objekt des angegebenen Fensterobjekt-Attributs. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Fenster-Objekt in pd2fwin, eine Attributnummer in pnum und ein Handle zu dem Objekt-Attribut in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Objekt-Attribut mit dem in prp gespeicherten Wert eingestellt wird.

d2fwinsp_SetBlobProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum, dvoid *prp );

Diese Funktion bestimmt das vom Client angegebene Handle. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Fenster-Objekt in pd2fwin, eine Attributnummer in pnum und einen Zeiger zu dem vom Client angegebenen Wert in prp an.

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das vom Client angegebene Handle mit dem in prp gespeicherten Wert eingestellt wird.

d2fwinhp_HasProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum );

Diese Funktion fragt das angegebene Fenster-Objekt nach dem angegebenen Attribut ab. Sie geben einen Zeiger zu dem Kontext in pd2fctx, das Fenster-Objekt in pd2fwin und eine Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt über das angegebene Attribut verfügt. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fwinip_InheritProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum );

Mit dieser Funktion kann das angegebene Fenster-Objekt das angegebene Attribut erben. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Fenster-Objekt in pd2fwin und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Objekt so geändert wurde, daß das angegebene Attribut geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fwinii_IspropInherited( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum );

Diese Funktion prüft, ob das Attribut des angegebenen Objekts vom übergeordneten Objekt geerbt wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Fenster-Objekt in pd2fwin und die Attributnummer in pnum an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das Attribut von dem übergeordneten Objekt des angegebenen Objekts geerbt wird. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".

d2fwinsc_SubClass( d2fctx *pd2fctx, d2fwin *pd2fwin, d2fob *parent, boolean keep_path);

Diese Funktion gibt D2FS_SUCCESS zurück, wenn das angegebene Fenster-Objekt (pd2fwin) eine Unterklasse des angegebenen übergeordneten Objekts (parent) wird. Sie geben einen Zeiger zu dem Kontext in pd2fctx, einen Zeiger zu dem Fenster in pd2fwin, einen Zeiger zu dem übergeordneten Objekt in parent und ein Boolesches Flag zur Speicherung des Pfads zu dem übergeordneten Objekt in keep_path an.

Beachten Sie, daß Forms API das Boolesche Argument keep_path verwendet, um die konkreten Pfadinformationen zu speichern. Es wird davon abgeraten, daß Sie keep_path auf TRUE einstellen, da diese Informationen verloren gehen können, wenn Sie zu einem anderen Rechner wechseln. Wenn keep_path auf TRUE eingestellt ist, speichert Forms API den konkreten Pfad in der .fmb-Datei. Wenn die Form das nächste Mal geladen wird, sucht Forms API deshalb nach der übergeordneten Form in einem der angegebenen Verzeichnisse, wie von der Umgebungsvariablen definiert, je nachdem, wie der Pfad der Umgebungsvariablen in Forms 4.5 oder 5.0 definiert ist.

d2fwinis_IsSubclassed	( d2fctx *pd2fctx, d2fwin *pd2fwin );

Diese Funktion prüft, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sie geben einen Zeiger zu dem Kontext in pd2fctx und einen Zeiger zu dem Fenster-Objekt in pd2fwin an.

Wenn die Funktion erfolgreich ausgeführt wird, wird D2FS_YES oder D2FS_NO zurückgegeben, je nachdem, ob das angegebene Objekt eine Unterklasse eines anderen Objekts ist. Sonst kann die Funktion eine Reihe von möglichen Rückgabewerten zurückgeben, je nach Umständen. Eine vollständige Liste der gültigen Open-API-Rückgabewerte von Forms finden Sie unter "Über Rückgabecodes von Open API-Funktionen".


Über Rückgabecodes von Open API-Funktionen

  Verwandte Themen

In diesem Abschnitt werden die verschiedenen möglichen Rückgabecodes von Open API-Funktionen von Form Builder beschrieben.

D2FS_SUCCESS

Dieser Rückgabecode gibt an, daß der Vorgang erfolgreich war.

D2FS_FAIL

Dieser Rückgabecode gibt an, daß der Vorgang nicht erfolgreich war.

D2FS_YES

Dieser Rückgabecode gibt an, daß der Vorgang "YES" zurückgegeben hat.

D2FS_NO

Dieser Rückgabecode gibt an, daß der Vorgang "NO" zurückgegeben hat.

D2FS_BADARG

Dieser Rückgabecode gibt an, daß eines der Argumente fehlerhaft ist.

D2FS_BADCONTEXT

Dieser Rückgabecode gibt an, daß ein fehlerhafter Kontext angegeben wurde.

D2FS_BADPROP

Dieser Rückgabecode gibt an, daß das angegebene Attribut fehlerhaft ist.

D2FS_BADTYPE

Dieser Rückgabecode gibt an, daß der Objekttyp unbekannt ist.

D2FS_DONTHAVE

Dieser Rückgabecode gibt an, daß das Objekt nicht über das angegebene Attribut verfügt.

D2FS_GENFAILED

Dieser Rückgabecode gibt an, daß die Generierung nicht erfolgreich war.

D2FS_INVALIDDATA

Dieser Rückgabecode gibt an, daß die übergebenen Daten fehlerhaft sind.

D2FS_INVALIDINDEX

Dieser Rückgabecode gibt an, daß der Index ungültig ist.

D2FS_NOMEMORY

Dieser Rückgabecode gibt an, daß kein Speicherplatz mehr vorhanden ist.

D2FS_NOINSTANCEHANDLE

Dieser Rückgabecode gibt an, daß die Initialisierung nicht erfolgreich war, weil ein NULL-Instance-Handle empfangen wurde.

Beachten Sie, daß dieser Rückgabecode nur bei Microsoft Windows-Plattformen anwendbar ist.

D2FS_NOMSGFILE

Dieser Rückgabecode gibt an, daß die angegebene Meldungsdatei nicht gefunden wurde.

D2FS_NOTCONNECTED

Dieser Rückgabecode gibt an, daß Sie nicht bei einer Datenbank angemeldet sind.

D2FS_NOTIMPLEMENTED

Dieser Rückgabecode gibt an, daß der Vorgang momentan nicht verfügbar ist.

D2FS_NOTTRANSMODE

Dieser Rückgabecode gibt an, daß die Funktion nur im Übersetzungsmodus aufgerufen werden kann.

D2FS_NULLCONTAINER

Dieser Rückgabecode gibt an, daß der Vorgang einen NULL-Zeiger zu dem Objekt zurückgegeben hat.

D2FS_NULLDATA

Dieser Rückgabecode gibt an, daß NULL-Daten an die Funktion übergeben wurden.

D2FS_NULLOBJ

Dieser Rückgabecode gibt an, daß der Vorgang ein NULL-Objekt zurückgegeben hat.

D2FS_NULLPROPERTY

Dieser Rückgabecode gibt an, daß der Vorgang ein NULL-Attribut zurückgegeben hat.

D2FS_OBJNOTFOUND

Dieser Rückgabecode gibt an, daß das angegebene Objekt nicht gefunden wurde.

D2FS_OBJNOTUNIQUE

Dieser Rückgabecode gibt an, daß der Vorgang nicht erfolgreich war, weil das erstellte/gespeicherte Objekt nicht eindeutig war. Ein Objekt mit diesem Namen ist schon vorhanden.

D2FS_TYPEMISMATCH

Dieser Rückgabecode gibt an, daß der übergebene Typ nicht mit dem konkreten Objekt übereinstimmt.

D2FS_WARN

Dieser Rückgabecode gibt an, daß der Vorgang teilweise nicht erfolgreich war, der Fehler war jedoch kein Abbruchfehler.

D2FS_WRONGOBJ

Dieser Rückgabecode gibt an, daß Sie ein unerwartetes Objekt angegeben haben.

D2FS_WRONGPARENT

Dieser Rückgabecode gibt an, daß Sie ein unerwartetes übergeordnetes Objekt angegeben haben.


Open API-Makros nach Objekten

  Verwandte Themen

In diesem Abschnitt werden die Makros beschrieben, wie sie in den Header-Dateien von Open API von Form Builder angezeigt werden. Funktionen sind nach dem zugehörigen Open API-Objekt von Forms angeordnet. Jeder Makro umfaßt eine Argumentliste und eine Kurzbeschreibung.

API-Makros nach Objekten

Warnfenster

Zugeordnete Bibliotheken

Blöcke

Leinwand

Datenquellargumente

Datenquellspalten

Editoren

Formmodule

Formparameter

Grafiken

Objekte

Werteliste Spaltenzuordnung

Werteliste

Menüpunkte

Menümodule

Menüpunkte

Menüparameter

Objekte(Allgemeine Objekte)

Objektgruppen

Untergeordnete Objektgruppe

Objektbibliothek

Programmblock

Attributklassen

Optionsschaltflächen

Datensatzgruppen

Datensatzgruppen-Spaltenspezifikation

Beziehungsobjekte

Berichtobjekte

Registerseiten

Trigger

Visuelle Attribute

Fenster


Makros des Objekts Warnfenster

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Warnfenster von Form Builder beschrieben.

d2faltg_alt_msg( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_ALT_MSG des Objekts Warnfenster als Text zurück.

d2faltg_alt_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_ALT_STY des Objekts Warnfenster als Zahl zurück.

d2faltg_back_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Hintergrundfarbe des Objekts Warnfenster als Text zurück.

d2faltg_btn_1_lbl( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Beschriftung Schaltfläche 1 des Objekts Warnfenster als Text zurück.

d2faltg_btn_2_lbl( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Beschriftung Schaltfläche 2 des Objekts Warnfenster als Text zurück.

d2faltg_btn_3_lbl( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Beschriftung Schaltfläche 3 des Objekts Warnfenster als Text zurück.

d2faltg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Warnfenster als Zeiger dvoid zurück.

d2faltg_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Kommentare des Objekts Warnfenster als Text zurück.

d2faltg_dflt_alt_btn( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Standardschaltfläche für Warnfenster des Objekts Warnfenster als Zahl zurück.

d2faltg_fill_pat( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Füllmuster des Objekts Warnfenster als Text zurück.

d2faltg_font_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftartname des Objekts Warnfenster als Text zurück.

d2faltg_font_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftgrad des Objekts Warnfenster als Zahl zurück.

d2faltg_font_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Zeichenabstand des Objekts Warnfenster als Zahl zurück.

d2faltg_font_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftstil des Objekts Warnfenster als Zahl zurück.

d2faltg_font_wght( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftstärke des Objekts Warnfenster als Zahl zurück.

d2faltg_fore_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vordergrundfarbe des Objekts Warnfenster als Text zurück.

d2faltg_lang_dir( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Richtung des Objekts Warnfenster als Zahl zurück.

d2faltg_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts Warnfenster als Objekt zurück.

d2faltg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Name des Objekts Warnfenster als Text zurück.

d2faltg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Warnfenster als Objekt zurück.

d2faltg_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts Warnfenster als Objekt zurück.

d2faltg_par_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Warnfenster als Text zurück.

d2faltg_par_flpath( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Warnfenster als Text zurück.

d2faltg_par_modstr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Warnfenster als Zahl zurück.

d2faltg_par_modtyp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Warnfenster als Zahl zurück.

d2faltg_par_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODULE des Objekts Warnfenster als Text zurück.

d2faltg_par_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_NAM des Objekts Warnfenster als Text zurück.

d2faltg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Warnfenster als Objekt zurück.

d2faltg_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Warnfenster als Objekt zurück.

d2faltg_title( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Titel des Objekts Warnfenster als Text zurück.

d2faltg_vat_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Visuelle Attributgruppe des Objekts Warnfenster als Text zurück.

d2faltg_vat_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_VAT_OBJ des Objekts Warnfenster als Objekt zurück.

d2faltg_white_on_black( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_WHITE_ON_BLACK des Objekts Warnfenster als Booleschen Wert zurück.

d2falts_alt_msg( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Meldung des Objekts Warnfenster.

d2falts_alt_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Typ des Warnfensters des Objekts Warnfenster.

d2falts_back_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Hintergrundfarbe des Objekts Warnfenster.

d2falts_btn_1_lbl( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Beschriftung Schaltfläche 1 des Objekts Warnfenster.

d2falts_btn_2_lbl( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Beschriftung Schaltfläche 2 des Objekts Warnfenster.

d2falts_btn_3_lbl( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Beschriftung Schaltfläche 3 des Objekts Warnfenster.

d2falts_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Warnfenster.

d2falts_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Kommentare des Objekts Warnfenster.

d2falts_dflt_alt_btn( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Standard-Warnschaltfläche des Objekts Warnfenster.

d2falts_fill_pat( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Füllmuster des Objekts Warnfenster.

d2falts_font_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftartname des Objekts Warnfenster.

d2falts_font_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftgrad des Objekts Warnfenster.

d2falts_font_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Zeichenabstand des Objekts Warnfenster.

d2falts_font_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftstil des Objekts Warnfenster.

d2falts_font_wght( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftstärke des Objekts Warnfenster.

d2falts_fore_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vordergrundfarbe des Objekts Warnfenster.

d2falts_lang_dir( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Richtung des Objekts Warnfenster.

d2falts_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MODULE des Objekts Warnfenster.

d2falts_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Name des Objekts Warnfenster.

d2falts_next( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NEXT des Objekts Warnfenster.

d2falts_owner( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_OWNER des Objekts Warnfenster.

d2falts_par_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Warnfenster.

d2falts_par_flpath( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Warnfenster.

d2falts_par_modstr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Warnfenster.

d2falts_par_modtyp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Warnfenster.

d2falts_par_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODULE des Objekts Warnfenster.

d2falts_par_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_NAM des Objekts Warnfenster.

d2falts_previous( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PREVIOUS des Objekts Warnfenster.

d2falts_source( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SOURCE des Objekts Warnfenster.

d2falts_title( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Titel des Objekts Warnfenster.

d2falts_vat_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Visuelle Attributgruppe des Objekts Warnfenster.

d2falts_vat_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_VAT_OBJ des Objekts Warnfenster.

d2falts_white_on_black( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Weiß auf Schwarz des Objekts Warnfenster.


Makros des Objekts Zugeordnete Bibliothek

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Zugeordnete Bibliothek von Form Builder beschrieben.

d2falbg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Zugeordnete Bibliothek als Zeiger dvoid zurück.

d2falbg_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Kommentare des Objekts Zugeordnete Bibliothek als Text zurück.

d2falbg_lib_loc( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Speicherort von PL/SQL-Bibliothek des Objekts Zugeordnete Bibliothek als Text zurück.

d2falbg_lib_src( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Speicherort von PL/SQL-Quelle des Objekts Zugeordnete Bibliothek als Zahl zurück.

d2falbg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Name des Objekts Zugeordnete Bibliothek als Text zurück.

d2falbg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Zugeordnete Bibliothek als Objekt zurück.

d2falbg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Zugeordnete Bibliothek als Objekt zurück.

d2falbs_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Zugeordnete Bibliothek.

d2falbs_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Kommentare des Objekts Zugeordnete Bibliothek.


Makros des Objekts Block

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Block von Form Builder beschrieben.

d2fblkg_back_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Hintergrundfarbe des Objekts Block als Text zurück.

d2fblkg_blk_description( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datenblockbeschreibung des Objekts Block als Text zurück.

d2fblkg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Block als Zeiger dvoid zurück.

d2fblkg_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Kommentare des Objekts Block als Text zurück.

d2fblkg_db_blk( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datenbank-Datenblock des Objekts Block als Booleschen Wert zurück.

d2fblkg_del_allowed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Löschen zulässig des Objekts Block als Booleschen Wert zurück.

d2fblkg_del_dat_src_arg( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datenquellargument löschen des Objekts Block als Objekt zurück.

d2fblkg_del_dat_src_col( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datenquellspalte löschen des Objekts Block als Objekt zurück.

d2fblkg_del_proc_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prozedurname löschen des Objekts Block als Text zurück.

d2fblkg_dml_ary_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs DML-Array-Größe des Objekts Block als Zahl zurück.

d2fblkg_dml_dat_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs DML-Datenzielname des Objekts Block als Text zurück.

d2fblkg_dml_dat_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs DML-Datenzieltyp des Objekts Block als Zahl zurück.

d2fblkg_enfrc_col_security( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Spaltensicherheit durchsetzen des Objekts Block als Booleschen Wert zurück.

d2fblkg_enfrc_prmry_key( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Primärschlüssel durchsetzen des Objekts Block als Booleschen Wert zurück.

d2fblkg_fill_pat( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Füllmuster des Objekts Block als Text zurück.

d2fblkg_font_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftartname des Objekts Block als Text zurück.

d2fblkg_font_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftgrad des Objekts Block als Zahl zurück.

d2fblkg_font_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Zeichenabstand des Objekts Block als Zahl zurück.

d2fblkg_font_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftstil des Objekts Block als Zahl zurück.

d2fblkg_font_wght( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftstärke des Objekts Block als Zahl zurück.

d2fblkg_fore_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vordergrundfarbe des Objekts Block als Text zurück.

d2fblkg_ins_dat_src_arg( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_INS_DAT_SRC_ARG des Objekts Block als Objekt zurück.

d2fblkg_ins_dat_src_col( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_INS_DAT_SRC_COL des Objekts Block als Objekt zurück.

d2fblkg_insrt_allowed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Einsetzen zulässig des Objekts Block als Booleschen Wert zurück.

d2fblkg_insrt_proc_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prozedurname einfügen des Objekts Block als Text zurück.

d2fblkg_item( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_ITEM des Objekts Block als Objekt zurück.

d2fblkg_key_mode( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schlüsselmodus des Objekts Block als Zahl zurück.

d2fblkg_lang_dir( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Richtung des Objekts Block als Zahl zurück.

d2fblkg_lock_dat_src( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datenquelle sperren des Objekts Block als Objekt zurück.

d2fblkg_lock_dat_src_col( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datenquellspalte sperren des Objekts Block als Objekt zurück.

d2fblkg_lock_mode( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Sperrmodus des Objekts Block als Zahl zurück.

d2fblkg_lock_proc_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prozedurname sperren des Objekts Block als Text zurück.

d2fblkg_lst_in_blk_mnu( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs In Datenblockmenü aufgelistet des Objekts Block als Booleschen Wert zurück.

d2fblkg_max_qry_time( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Maximale Abfragezeit des Objekts Block als Zahl zurück.

d2fblkg_max_recs_fetched( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MAX_RECORDS_FETCHED des Objekts Block als Zahl zurück.

d2fblkg_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts Block als Objekt zurück.

d2fblkg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Name des Objekts Block als Text zurück.

d2fblkg_navigation_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Navigationsstil des Objekts Block als Zahl zurück.

d2fblkg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Block als Objekt zurück.

d2fblkg_nxt_navigation_blk_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NXT_NAVIGATION_BLK_OBJ des Objekts Block als Text zurück.

d2fblkg_nxt_navigation_blk_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Nächster Navigationsblock des Objekts Block als Objekt zurück.

d2fblkg_opt_hint( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Optimizer-Hinweis des Objekts Block als Text zurück.

d2fblkg_ordr_by_clause( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs ORDER BY-Klausel des Objekts Block als Text zurück.

d2fblkg_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts Block als Objekt zurück.

d2fblkg_par_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Block als Text zurück.

d2fblkg_par_flpath( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Block als Text zurück.

d2fblkg_par_modstr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Block als Zahl zurück.

d2fblkg_par_modtyp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODTYPE des Objekts Block als Zahl zurück.

d2fblkg_par_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODULE des Objekts Block als Text zurück.

d2fblkg_par_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_NAME des Objekts Block als Text zurück.

d2fblkg_precomp_summ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PRECOMP_SUMMNO des Objekts Block als Booleschen Wert zurück.

d2fblkg_prev_navigation_blk_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vorheriger Navigationsblock des Objekts Block als Text zurück.

d2fblkg_prev_navigation_blk_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREV_NAVIGATION_BLK_OBJ des Objekts Block als Objekt zurück.

d2fblkg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Block als Objekt zurück.

d2fblkg_qry_all_recs( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Alle Datensätze abfragen des Objekts Block als Booleschen Wert zurück.

d2fblkg_qry_allowed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abfrage zulässig des Objekts Block als Booleschen Wert zurück.

d2fblkg_qry_dat_src_arg( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abfrage-Datenquellname des Objekts Block als Objekt zurück.

d2fblkg_qry_dat_src_col( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abfrage-Datenquellspalte des Objekts Block als Objekt zurück.

d2fblkg_qry_dat_src_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abfrage-Datenquellname des Objekts Block als Text zurück.

d2fblkg_qry_dat_src_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abfrage-Datenquelltyp des Objekts Block als Zahl zurück.

d2fblkg_rec_ornt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datensatzdarstellung des Objekts Block als Zahl zurück.

d2fblkg_rec_vat_grp_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Visuelle Attributgruppe Aktueller Datensatz des Objekts Block als Text zurück.

d2fblkg_rec_vat_grp_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_REC_VAT_GRP_OBJ des Objekts Block als Objekt zurück.

d2fblkg_recs_buffered_count( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Anzahl gepufferter Datensätze des Objekts Block als Zahl zurück.

d2fblkg_recs_disp_count( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Anzahl angezeigter Datensätze des Objekts Block als Zahl zurück.

d2fblkg_recs_fetched_count( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_RECS_FETCHED_COUNT des Objekts Block als Zahl zurück.

d2fblkg_rel( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_REL des Objekts Block als Objekt zurück.

d2fblkg_rev_dir( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Umgekehrte Richtung des Objekts Block als Booleschen Wert zurück.

d2fblkg_scrlbr_cnv_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bildlaufleisten-Leinwand des Objekts Block als Text zurück.

d2fblkg_scrlbr_cnv_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SCRLBR_CNV_OBJ des Objekts Block als Objekt zurück.

d2fblkg_scrlbr_hgt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bildlaufleisten-Höhe des Objekts Block als Zahl zurück.

d2fblkg_srclbr_ornt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bildlaufleisten-Darstellung des Objekts Block als Zahl zurück.

d2fblkg_scrlbr_tbp_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bildlaufleiste Registerseite des Objekts Block als Text zurück.

d2fblkg_scrlbr_tbp_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SCRLBR_TSP_OBJ des Objekts Block als Objekt zurück.

d2fblkg_scrlbr_wid( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bildlaufleisten-Breite des Objekts Block als Zahl zurück.

d2fblkg_scrlbr_x_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bildlaufleiste X-Position des Objekts Block als Zahl zurück.

d2fblkg_scrlbr_y_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bildlaufleiste Y-Position des Objekts Block als Zahl zurück.

d2fblkg_show_scrlbr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bildlaufleiste anzeigen des Objekts Block als Booleschen Wert zurück.

d2fblkg_sngl_rec( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Einzelner Datensatz des Objekts Block als Booleschen Wert zurück.

d2fblkg_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Block als Objekt zurück.

d2fblkg_trigger( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_TRIGGER des Objekts Block als Objekt zurück.

d2fblkg_upd_dat_src_arg( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datenquellargument aktualisieren des Objekts Block als Objekt zurück.

d2fblkg_upd_dat_src_col( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datenquellspalte aktualisieren des Objekts Block als Objekt zurück.

d2fblkg_updt_allowed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Aktualisieren zulässig des Objekts Block als Booleschen Wert zurück.

d2fblkg_updt_changed_cols( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Nur geänderte Spalten aktualisieren des Objekts Block als Booleschen Wert zurück.

d2fblkg_updt_proc_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prozedurname aktualisieren des Objekts Block als Text zurück.

d2fblkg_vat_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Visuelle Attributgruppe des Objekts Block als Text zurück.

d2fblkg_vat_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_VAT_OBJ des Objekts Block als Objekt zurück.

d2fblkg_where_clause( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs WHERE-Klausel des Objekts Block als Text zurück.

d2fblkg_white_on_black( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Weiß auf Schwarz des Objekts Block als Booleschen Wert zurück.

d2fblks_back_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Hintergrundfarbe des Objekts Block.

d2fblks_blk_description( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datenblockbeschreibung des Objekts Block.

d2fblks_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Block.

d2fblks_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Kommentare des Objekts Block.

d2fblks_db_blk( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datenbank-Datenblock des Objekts Block.

d2fblks_del_allowed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Löschen zulässig des Objekts Block.

d2fblks_del_dat_src_arg( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datenquellargument löschen des Objekts Block.

d2fblks_del_dat_src_col( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datenquellspalte löschen des Objekts Block.

d2fblks_del_proc_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prozedurname löschen des Objekts Block.

d2fblks_dml_ary_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs DML-Array-Größe des Objekts Block.

d2fblks_dml_dat_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs DML-Datenzielname des Objekts Block.

d2fblks_dml_dat_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs DML-Datenzieltyp des Objekts Block.

d2fblks_enfrc_col_security( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Spaltensicherheit durchsetzen des Objekts Block.

d2fblks_enfrc_prmry_key( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Primärschlüssel durchsetzen des Objekts Block.

d2fblks_fill_pat( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Füllmuster des Objekts Block.

d2fblks_font_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftartname des Objekts Block.

d2fblks_font_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftgrad des Objekts Block.

d2fblks_font_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Zeichenabstand des Objekts Block.

d2fblks_font_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftstil des Objekts Block.

d2fblks_font_wght( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftstärke des Objekts Block.

d2fblks_fore_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vordergrundfarbe des Objekts Block.

d2fblks_ins_dat_src_arg( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_INS_DAT_SRC_ARG des Objekts Block.

d2fblks_ins_dat_src_col( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_INS_DAT_SRC_COL des Objekts Block.

d2fblks_insrt_allowed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Einsetzen zulässig des Objekts Block.

d2fblks_insrt_proc_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prozedurname einfügen des Objekts Block.

d2fblks_item( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_ITEM des Objekts Block.

d2fblks_key_mode( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schlüsselmodus des Objekts Block.

d2fblks_lang_dir( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Richtung des Objekts Block.

d2fblks_lock_dat_src( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datenquelle sperren des Objekts Block.

d2fblks_lock_dat_src_col( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datenquellspalte sperren des Objekts Block.

d2fblks_lock_mode( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Sperrmodus des Objekts Block.

d2fblks_lock_proc_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prozedurname sperren des Objekts Block.

d2fblks_lst_in_blk_mnu( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs In Datenblockmenü aufgelistet des Objekts Block.

d2fblks_max_qry_time( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Maximale Abfragezeit des Objekts Block.

d2fblks_max_recs_fetched( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Maximal abgerufene Datensätze des Objekts Block.

d2fblks_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MODULE des Objekts Block.

d2fblks_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Name des Objekts Block.

d2fblks_navigation_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Navigationsstil des Objekts Block.

d2fblks_next( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NEXT des Objekts Block.

d2fblks_nxt_navigation_blk_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NXT_NAVIGATION_BLK_OBJ des Objekts Block.

d2fblks_nxt_navigation_blk_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Nächster Navigationsblock des Objekts Block.

d2fblks_opt_hint( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Optimizer-Hinweis des Objekts Block.

d2fblks_ordr_by_clause( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs ORDER BY-Klausel des Objekts Block.

d2fblks_owner( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_OWNER des Objekts Block.

d2fblks_par_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Block.

d2fblks_par_flpath( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Block.

d2fblks_par_modstr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Block.

d2fblks_par_modtyp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MODTYPE des Objekts Block.

d2fblks_par_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODULE des Objekts Block.

d2fblks_par_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_NAME des Objekts Block.

d2fblks_precomp_summ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PRECOMP_SUMMNO des Objekts Block.

d2fblks_prev_navigation_blk_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vorheriger Navigationsblock des Objekts Block.

d2fblks_prev_navigation_blk_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PREV_NAVIGATION_BLK_OBJ des Objekts Block.

d2fblks_previous( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PREVIOUS des Objekts Block.

d2fblks_qry_all_recs( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Alle Datensätze abfragen des Objekts Block.

d2fblks_qry_allowed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abfrage zulässig des Objekts Block.

d2fblks_qry_dat_src_arg( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abfrage-Datenquellname des Objekts Block.

d2fblks_qry_dat_src_col( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abfrage-Datenquellspalte des Objekts Block.

d2fblks_qry_dat_src_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abfrage-Datenquellname des Objekts Block.

d2fblks_qry_dat_src_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abfrage-Datenquelltyp des Objekts Block.

d2fblks_rec_ornt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datensatzdarstellung des Objekts Block.

d2fblks_rec_vat_grp_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Visuelle Attributgruppe Aktueller Datensatz des Objekts Block.

d2fblks_rec_vat_grp_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_REC_VAT_GRP_OBJ des Objekts Block.

d2fblks_recs_buffered_count( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Anzahl gepufferter Datensätze des Objekts Block.

d2fblks_recs_disp_count( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Anzahl angezeigter Datensätze des Objekts Block.

d2fblks_recs_fetched_count( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_RECS_FETCHED_COUNT des Objekts Block.

d2fblks_rel( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_REL des Objekts Block.

d2fblks_rev_dir( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Umgekehrte Richtung des Objekts Block.

d2fblks_scrlbr_cnv_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bildlaufleisten-Leinwand des Objekts Block.

d2fblks_scrlbr_cnv_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SCRLBR_CNV_OBJ des Objekts Block.

d2fblks_scrlbr_hgt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bildlaufleisten-Höhe des Objekts Block.

d2fblks_srclbr_ornt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bildlaufleisten-Darstellung des Objekts Block.

d2fblks_scrlbr_tbp_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bildlaufleiste Registerseite des Objekts Block.

d2fblks_scrlbr_tbp_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SCRLBR_TSP_OBJ des Objekts Block.

d2fblks_scrlbr_wid( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bildlaufleisten-Breite des Objekts Block.

d2fblks_scrlbr_x_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bildlaufleiste X-Position des Objekts Block.

d2fblks_scrlbr_y_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bildlaufleiste Y-Position des Objekts Block.

d2fblks_show_scrlbr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bildlaufleiste anzeigen des Objekts Block.

d2fblks_sngl_rec( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Einzelner Datensatz des Objekts Block.

d2fblks_source( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SOURCE des Objekts Block.

d2fblks_trigger( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_TRIGGER des Objekts Block.

d2fblks_upd_dat_src_arg( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datenquellargument aktualisieren des Objekts Block.

d2fblks_upd_dat_src_col( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datenquellspalte aktualisieren des Objekts Block.

d2fblks_updt_allowed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Aktualisieren zulässig des Objekts Block.

d2fblks_updt_changed_cols( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Nur geänderte Spalten aktualisieren des Objekts Block.

d2fblks_updt_proc_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prozedurname aktualisieren des Objekts Block.

d2fblks_vat_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Visuelle Attributgruppe des Objekts Block.

d2fblks_vat_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_VAT_OBJ des Objekts Block.

d2fblks_where_clause( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs WHERE-Klausel des Objekts Block.

d2fblks_white_on_black( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Weiß auf Schwarz des Objekts Block.


Makros des Objekts Leinwand

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Leinwand von Form Builder beschrieben.

d2fcnvg_back_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Hintergrundfarbe des Objekts Leinwand als Text zurück.

d2fcnvg_bevel( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Umriß des Objekts Leinwand als Zahl zurück.

d2fcnvg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Leinwand als Zeiger dvoid zurück.

d2fcnvg_cnv_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Leinwandtyp des Objekts Leinwand als Zahl zurück.

d2fcnvg_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Kommentare des Objekts Leinwand als Text zurück.

d2fcnvg_fill_pat( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Füllmuster des Objekts Leinwand als Text zurück.

d2fcnvg_font_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftartname des Objekts Leinwand als Text zurück.

d2fcnvg_font_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftgrad des Objekts Leinwand als Zahl zurück.

d2fcnvg_font_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Zeichenabstand des Objekts Leinwand als Zahl zurück.

d2fcnvg_font_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftstil des Objekts Leinwand als Zahl zurück.

d2fcnvg_font_wght( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftstärke des Objekts Leinwand als Zahl zurück.

d2fcnvg_fore_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vordergrundfarbe des Objekts Leinwand als Text zurück.

d2fcnvg_graphic( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_GRAPHIC des Objekts Leinwand als Objekt zurück.

d2fcnvg_height( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Breite/Höhe des Objekts Leinwand als Zahl zurück.

d2fcnvg_lang_dir( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Richtung des Objekts Leinwand als Zahl zurück.

d2fcnvg_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts Leinwand als Objekt zurück.

d2fcnvg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Name des Objekts Leinwand als Text zurück.

d2fcnvg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Leinwand als Objekt zurück.

d2fcnvg_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts Leinwand als Objekt zurück.

d2fcnvg_par_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Leinwand als Text zurück.

d2fcnvg_par_flpath( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Leinwand als Text zurück.

d2fcnvg_par_modstr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Leinwand als Zahl zurück.

d2fcnvg_par_modtyp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODTYPE des Objekts Leinwand als Zahl zurück.

d2fcnvg_par_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODULE des Objekts Leinwand als Text zurück.

d2fcnvg_par_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_NAME des Objekts Leinwand als Text zurück.

d2fcnvg_popup_mnu_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Popup-Menü des Objekts Leinwand als Text zurück.

d2fcnvg_popup_mnu_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_POPUP_MNU_OBJ des Objekts Leinwand als Text zurück.

d2fcnvg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Leinwand als Objekt zurück.

d2fcnvg_raise_on_ent( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Automatisch anzeigen des Objekts Leinwand als Booleschen Wert zurück.

d2fcnvg_show_horz_scrlbr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Horizontale Bildlaufleiste anzeigen des Objekts Leinwand als Booleschen Wert zurück.

d2fcnvg_show_vert_scrlbr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vertikale Bildlaufleiste anzeigen des Objekts Leinwand als Booleschen Wert zurück.

d2fcnvg_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Leinwand als Objekt zurück.

d2fcnvg_tab_att_edge( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Register-Zuordnungskante des Objekts Leinwand als Zahl zurück.

d2fcnvg_tab_page( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Registerseite des Objekts Leinwand als Objekt zurück.

d2fcnvg_tab_style( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Registerstil des Objekts Leinwand als Zahl zurück.

d2fcnvg_vat_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Visuelle Attributgruppe des Objekts Leinwand als Text zurück.

d2fcnvg_vat_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_VAT_OBJ des Objekts Leinwand als Objekt zurück.

d2fcnvg_visible( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Sichtbar des Objekts Leinwand als Booleschen Wert zurück.

d2fcnvg_vprt_hgt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausschnitthöhe des Objekts Leinwand als Zahl zurück.

d2fcnvg_vprt_wid( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausschnittbreite des Objekts Leinwand als Zahl zurück.

d2fcnvg_vprt_x_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausschnitt X-Position des Objekts Leinwand als Zahl zurück.

d2fcnvg_vprt_x_pos_on_cnv( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausschnitt X-Position auf Leinwand des Objekts Leinwand als Zahl zurück.

d2fcnvg_vprt_y_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausschnitt Y-Position des Objekts Leinwand als Zahl zurück.

d2fcnvg_vprt_y_pos_on_cnv( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausschnitt Y-Position auf Leinwand des Objekts Leinwand als Zahl zurück.

d2fcnvg_white_on_black( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Weiß auf Schwarz des Objekts Leinwand als Booleschen Wert zurück.

d2fcnvg_width( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Breite/Höhe des Objekts Leinwand als Zahl zurück.

d2fcnvg_wnd_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Fenster des Objekts Leinwand als Text zurück.

d2fcnvg_wnd_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_WND_OBJ des Objekts Leinwand als Objekt zurück.

d2fcnvs_back_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Hintergrundfarbe des Objekts Leinwand.

d2fcnvs_bevel( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Umriß des Objekts Leinwand.

d2fcnvs_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Leinwand.

d2fcnvs_cnv_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Leinwandtyp des Objekts Leinwand.

d2fcnvs_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Kommentare des Objekts Leinwand.

d2fcnvs_fill_pat( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Füllmuster des Objekts Leinwand.

d2fcnvs_font_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftartname des Objekts Leinwand.

d2fcnvs_font_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftgrad des Objekts Leinwand.

d2fcnvs_font_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Zeichenabstand des Objekts Leinwand.

d2fcnvs_font_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftstil des Objekts Leinwand.

d2fcnvs_font_wght( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftstärke des Objekts Leinwand.

d2fcnvs_fore_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vordergrundfarbe des Objekts Leinwand.

d2fcnvs_graphic( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_GRAPHIC des Objekts Leinwand.

d2fcnvs_height( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Breite/Höhe des Objekts Leinwand.

d2fcnvs_lang_dir( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Richtung des Objekts Leinwand.

d2fcnvs_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MODULE des Objekts Leinwand.

d2fcnvs_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Name des Objekts Leinwand.

d2fcnvs_next( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NEXT des Objekts Leinwand.

d2fcnvs_owner( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_OWNER des Objekts Leinwand.

d2fcnvs_par_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Leinwand.

d2fcnvs_par_flpath( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Leinwand.

d2fcnvs_par_modstr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Leinwand.

d2fcnvs_par_modtyp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODTYPE des Objekts Leinwand.

d2fcnvs_par_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODULE des Objekts Leinwand.

d2fcnvs_par_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_NAME des Objekts Leinwand.

d2fcnvs_popup_mnu_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Popup-Menü des Objekts Leinwand.

d2fcnvs_popup_mnu_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_POPUP_MNU_OBJ des Objekts Leinwand.

d2fcnvs_previous( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PREVIOUS des Objekts Leinwand.

d2fcnvs_raise_on_ent( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Automatisch anzeigen des Objekts Leinwand.

d2fcnvs_show_horz_scrlbr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Horizontale Bildlaufleiste anzeigen des Objekts Leinwand.

d2fcnvs_show_vert_scrlbr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vertikale Bildlaufleiste anzeigen des Objekts Leinwand.

d2fcnvs_source( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SOURCE des Objekts Leinwand.

d2fcnvs_tab_att_edge( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Register-Zuordnungskante des Objekts Leinwand.

d2fcnvs_tab_page( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Registerseite des Objekts Leinwand.

d2fcnvs_tab_style( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Registerstil des Objekts Leinwand.

d2fcnvs_vat_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Visuelle Attributgruppe des Objekts Leinwand.

d2fcnvs_vat_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_VAT_OBJ des Objekts Leinwand.

d2fcnvs_visible( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Sichtbar des Objekts Leinwand.

d2fcnvs_vprt_hgt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausschnitthöhe des Objekts Leinwand.

d2fcnvs_vprt_wid( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausschnittbreite des Objekts Leinwand.

d2fcnvs_vprt_x_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausschnitt X-Position des Objekts Leinwand.

d2fcnvs_vprt_x_pos_on_cnv( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausschnitt X-Position auf Leinwand des Objekts Leinwand.

d2fcnvs_vprt_y_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausschnitt Y-Position des Objekts Leinwand.

d2fcnvs_vprt_y_pos_on_cnv( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausschnitt Y-Position auf Leinwand des Objekts Leinwand.

d2fcnvs_white_on_black( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Weiß auf Schwarz des Objekts Leinwand.

d2fcnvs_width( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Breite/Höhe des Objekts Leinwand.

d2fcnvs_wnd_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Fenster des Objekts Leinwand.

d2fcnvs_wnd_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_WND_OBJ des Objekts Leinwand.


Makros des Objekts Datenquellargument

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Datenquellargument von Form Builder beschrieben.

d2fdsag_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Datenquellargument als Zeiger dvoid zurück.

d2fdsag_dsa_mode( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DSA_MODE des Objekts Datenquellargument als Zahl zurück.

d2fdsag_dsa_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DSA_NAM des Objekts Datenquellargument als Text zurück.

d2fdsag_dsa_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DSA_TYP des Objekts Datenquellargument als Zahl zurück.

d2fdsag_dsa_typ_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DSA_TYP_NAM des Objekts Datenquellargument als Text zurück.

d2fdsag_dsa_val( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DSA_VAL des Objekts Datenquellargument als Text zurück.

d2fdsag_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Datenquellargument als Objekt zurück.

d2fdsag_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Datenquellargument als Objekt zurück.

d2fdsas_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Datenquellargument.

d2fdsas_dsa_mode( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DSA_MODE des Objekts Datenquellargument.

d2fdsas_dsa_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DSA_NAM des Objekts Datenquellargument.

d2fdsas_dsa_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DSA_TYP des Objekts Datenquellargument.

d2fdsas_dsa_typ_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DSA_TYP_NAM des Objekts Datenquellargument.

d2fdsas_dsa_val( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DSA_VAL des Objekts Datenquellargument.


Makros des Objekts Datenquellspalte

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Datenquellspalte von Form Builder beschrieben.

d2fdscg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Datenquellspalte als Zeiger dvoid zurück.

d2fdscg_dsc_len( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DSC_LEN des Objekts Datenquellspalte als Zahl zurück.

d2fdscg_dsc_mandatory( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DSC_MANDATORY des Objekts Datenquellspalte als Booleschen Wert zurück.

d2fdscg_dsc_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DSC_NAM des Objekts Datenquellspalte als Text zurück.

d2fdscg_dsc_precision( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DSC_PRECISION des Objekts Datenquellspalte als Zahl zurück.

d2fdscg_dsc_scale( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DSC_SCALE des Objekts Datenquellspalte als Zahl zurück.

d2fdscg_dsc_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DSC_TYP des Objekts Datenquellspalte als Zahl zurück.

d2fdscg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Datenquellspalte als Objekt zurück.

d2fdscg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Datenquellspalte als Objekt zurück.

d2fdscs_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Datenquellspalte.

d2fdscs_dsc_len( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DSC_LEN des Objekts Datenquellspalte.

d2fdscs_dsc_mandatory( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DSC_MANDATORY des Objekts Datenquellspalte.

d2fdscs_dsc_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DSC_NAM des Objekts Datenquellspalte.

d2fdscs_dsc_precision( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DSC_PRECISION des Objekts Datenquellspalte.

d2fdscs_dsc_scale( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DSC_SCALE des Objekts Datenquellspalte.

d2fdscs_dsc_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DSC_TYP des Objekts Datenquellspalte.


Makros des Objekts Editor

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Editor von Form Builder beschrieben.

d2fedtg_back_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Hintergrundfarbe des Objekts Editor als Text zurück.

d2fedtg_btm_ttl( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Fußnote des Objekts Editor als Text zurück.

d2fedtg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Editor als Zeiger dvoid zurück.

d2fedtg_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Kommentare des Objekts Editor als Text zurück.

d2fedtg_fill_pat( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Füllmuster des Objekts Editor als Text zurück.

d2fedtg_font_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftartname des Objekts Editor als Text zurück.

d2fedtg_font_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftgrad des Objekts Editor als Zahl zurück.

d2fedtg_font_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Zeichenabstand des Objekts Editor als Zahl zurück.

d2fedtg_font_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftstil des Objekts Editor als Zahl zurück.

d2fedtg_font_wght( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftstärke des Objekts Editor als Zahl zurück.

d2fedtg_fore_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vordergrundfarbe des Objekts Editor als Text zurück.

d2fedtg_height( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Höhe des Objekts Editor als Zahl zurück.

d2fedtg_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts Editor als Objekt zurück.

d2fedtg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Name des Objekts Editor als Text zurück.

d2fedtg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Editor als Objekt zurück.

d2fedtg_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts Editor als Objekt zurück.

d2fedtg_par_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Editor als Text zurück.

d2fedtg_par_flpath( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Editor als Text zurück.

d2fedtg_par_modstr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Editor als Zahl zurück.

d2fedtg_par_modtyp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Editor als Zahl zurück.

d2fedtg_par_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODULE des Objekts Editor als Text zurück.

d2fedtg_par_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_NAM des Objekts Editor als Text zurück.

d2fedtg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Editor als Objekt zurück.

d2fedtg_show_horz_scrlbr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Horizontale Bildlaufleiste anzeigen des Objekts Editor als Booleschen Wert zurück.

d2fedtg_show_vert_scrlbr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vertikale Bildlaufleiste anzeigen des Objekts Editor als Booleschen Wert zurück.

d2fedtg_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Editor als Objekt zurück.

d2fedtg_title( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Titel des Objekts Editor als Text zurück.

d2fedtg_vat_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Visuelle Attributgruppe des Objekts Editor als Text zurück.

d2fedtg_vat_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_VAT_OBJ des Objekts Editor als Objekt zurück.

d2fedtg_white_on_black( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Weiß auf Schwarz des Objekts Editor als Booleschen Wert zurück.

d2fedtg_width( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Breite des Objekts Editor als Zahl zurück.

d2fedtg_wrap_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Umbruchstil des Objekts Editor als Zahl zurück.

d2fedtg_x_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs X-Position/Y-Position des Objekts Editor als Zahl zurück.

d2fedtg_y_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs X-Position/Y-Position des Objekts Editor als Zahl zurück.

d2fedts_back_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Hintergrundfarbe des Objekts Editor.

d2fedts_btm_ttl( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Fußnote des Objekts Editor.

d2fedts_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Editor.

d2fedts_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Kommentare des Objekts Editor.

d2fedts_fill_pat( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Füllmuster des Objekts Editor.

d2fedts_font_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftartname des Objekts Editor.

d2fedts_font_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftgrad des Objekts Editor.

d2fedts_font_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Zeichenabstand des Objekts Editor.

d2fedts_font_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftstil des Objekts Editor.

d2fedts_font_wght( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftstärke des Objekts Editor.

d2fedts_fore_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vordergrundfarbe des Objekts Editor.

d2fedts_height( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Höhe des Objekts Editor.

d2fedts_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MODULE des Objekts Editor.

d2fedts_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Name des Objekts Editor.

d2fedts_next( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NEXT des Objekts Editor.

d2fedts_owner( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_OWNER des Objekts Editor.

d2fedts_par_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Editor.

d2fedts_par_flpath( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Editor.

d2fedts_par_modstr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Editor.

d2fedts_par_modtyp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Editor.

d2fedts_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MODULE des Objekts Editor.

d2fedts_par_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_NAM des Objekts Editor.

d2fedts_previous( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PREVIOUS des Objekts Editor.

d2fedts_show_horz_scrlbr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Horizontale Bildlaufleiste anzeigen des Objekts Editor.

d2fedts_show_vert_scrlbr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vertikale Bildlaufleiste anzeigen des Objekts Editor.

d2fedts_source( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SOURCE des Objekts Editor.

d2fedts_title( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Titel des Objekts Editor.

d2fedts_vat_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Visuelle Attributgruppe des Objekts Editor.

d2fedts_vat_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_VAT_OBJ des Objekts Editor.

d2fedts_white_on_black( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Weiß auf Schwarz des Objekts Editor.

d2fedts_width( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Breite des Objekts Editor.

d2fedts_wrap_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Umbruchstil des Objekts Editor.

d2fedts_x_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs X-Position/Y-Position des Objekts Editor.

d2fedts_y_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs X-Position/Y-Position des Objekts Editor.


Makros des Objekts Formmodul

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Formmodul von Form Builder beschrieben.

d2ffmdg_alert( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_ALERT des Objekts Formmodul als Objekt zurück.

d2ffmdg_att_lib( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_ATT_LIB des Objekts Formmodul als Objekt zurück.

d2ffmdg_block( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_BLOCK des Objekts Formmodul als Objekt zurück.

d2ffmdg_canvas( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CANVAS des Objekts Formmodul als Objekt zurück.

d2ffmdg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Formmodul als Zeiger dvoid zurück.

d2ffmdg_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Kommentare des Objekts Formmodul als Text zurück.

d2ffmdg_console_win( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Konsolfenster des Objekts Formmodul als Text zurück.

d2ffmdg_crsr_mode( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Cursor-Modus des Objekts Formmodul als Zahl zurück.

d2ffmdg_defer_req_enf( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DEFER_REQ_ENF des Objekts Formmodul als Booleschen Wert zurück.

d2ffmdg_editor( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Editor des Objekts Formmodul als Objekt zurück.

d2ffmdg_form_param( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FORM_PARAM des Objekts Formmodul als Objekt zurück.

d2ffmdg_frst_navigation_blk_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Erster Navigationsblock des Objekts Formmodul als Text zurück.

d2ffmdg_frst_navigation_blk_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FRST_NAVIGATION_BLK_OBJ des Objekts Formmodul als Objekt zurück.

d2ffmdg_horz_tlbr_cnv( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Horizontale Symbolleisten-Leinwand des Objekts Formmodul als Text zurück.

d2ffmdg_inhrt_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_INHRT_STY des Objekts Formmodul als Zahl zurück.

d2ffmdg_init_mnu( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausgangsmenü des Objekts Formmodul als Text zurück.

d2ffmdg_interaction_mode( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Interaktionsmodus des Objekts Formmodul als Zahl zurück.

d2ffmdg_isolation_mode( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Isolationsmodus des Objekts Formmodul als Zahl zurück.

d2ffmdg_lang_dir( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Richtung des Objekts Formmodul als Zahl zurück.

d2ffmdg_lov( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Werteliste des Objekts Formmodul als Objekt zurück.

d2ffmdg_max_qry_time( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Maximale Abfragezeit des Objekts Formmodul als Zahl zurück.

d2ffmdg_max_recs_fetched( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Maximal abgerufene Datensätze des Objekts Formmodul als Zahl zurück.

d2ffmdg_menu( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MENU des Objekts Formmodul als Objekt zurück.

d2ffmdg_mnu_mod( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menümodul des Objekts Formmodul zurück.

d2ffmdg_mnu_role( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menümodulrollen des Objekts Formmodul als Text zurück.

d2ffmdg_mnu_src( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menüquelle des Objekts Formmodul als Text zurück.

d2ffmdg_mnu_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menüstil des Objekts Formmodul als Zahl zurück.

d2ffmdg_mouse_navigation_lmt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Mausnavigationsbegrenzung des Objekts Formmodul als Zahl zurück.

d2ffmdg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Name des Objekts Formmodul als Text zurück.

d2ffmdg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Formmodul als Objekt zurück.

d2ffmdg_obj_grp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OBJ_GRP des Objekts Formmodul als Objekt zurück.

d2ffmdg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Formmodul als Objekt zurück.

d2ffmdg_prog_unit( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PROG_UNIT des Objekts Formmodul als Objekt zurück.

d2ffmdg_prop_class( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Attributklasse des Objekts Formmodul als Objekt zurück.

d2ffmdg_rec_grp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datensatzgruppe des Objekts Formmodul als Objekt zurück.

d2ffmdg_rec_vat_grp_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Visuelle Attributgruppe Aktueller Datensatz des Objekts Formmodul als Text zurück.

d2ffmdg_rec_vat_grp_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_REC_VAT_GRP_OBJ des Objekts Formmodul als Objekt zurück.

d2ffmdg_report( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_REPORT des Objekts Formmodul als Objekt zurück.

d2ffmdg_runtime_comp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_RUNTIME_COMP des Objekts Formmodul als Zahl zurück.

d2ffmdg_svpnt_mode( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Savepoint-Modus des Objekts Formmodul als Booleschen Wert zurück.

d2ffmdg_title( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Titel des Objekts Formmodul als Text zurück.

d2ffmdg_trigger( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_TRIGGER des Objekts Formmodul als Objekt zurück.

d2ffmdg_use_3D_cntrls( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs 3D-Steuerelemente verwenden des Objekts Formmodul als Booleschen Wert zurück.

d2ffmdg_validation_unit( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Validierungseinheit des Objekts Formmodul als Zahl zurück.

d2ffmdg_vert_tlbr_cnv( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vertikale Symbolleisten-Leinwand des Objekts Formmodul als Text zurück.

d2ffmdg_vis_attr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_VIS_ATTR des Objekts Formmodul als Objekt zurück.

d2ffmdg_window( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Fenster des Objekts Formmodul als Objekt zurück.

d2ffmds_alert( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_ALERT des Objekts Formmodul.

d2ffmds_att_lib( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_ATT_LIB des Objekts Formmodul.

d2ffmds_block( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_BLOCK des Objekts Formmodul.

d2ffmds_canvas( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CANVAS des Objekts Formmodul.

d2ffmds_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Formmodul.

d2ffmds_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Kommentare des Objekts Formmodul.

d2ffmds_console_win( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Konsolfenster des Objekts Formmodul.

d2ffmds_crsr_mode( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Cursor-Modus des Objekts Formmodul.

d2ffmds_defer_req_enf( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DEFER_REQ_ENF des Objekts Formmodul.

d2ffmds_editor( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Editor des Objekts Formmodul.

d2ffmds_form_param( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FORM_PARAM des Objekts Formmodul.

d2ffmds_frst_navigation_blk_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Erster Navigationsblock des Objekts Formmodul.

d2ffmds_frst_navigation_blk_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FRST_NAVIGATION_BLK_OBJ des Objekts Formmodul.

d2ffmds_horz_tlbr_cnv( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Horizontale Symbolleisten-Leinwand des Objekts Formmodul.

d2ffmds_inhrt_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_INHRT_STY des Objekts Formmodul.

d2ffmds_init_mnu( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausgangsmenü des Objekts Formmodul.

d2ffmds_interaction_mode( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Interaktionsmodus des Objekts Formmodul.

d2ffmds_isolation_mode( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Isolationsmodus des Objekts Formmodul.

d2ffmds_lang_dir( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Richtung des Objekts Formmodul.

d2ffmds_lov( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Werteliste des Objekts Formmodul.

d2ffmds_max_qry_time( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Maximale Abfragezeit des Objekts Formmodul.

d2ffmds_max_recs_fetched( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Maximal abgerufene Datensätze des Objekts Formmodul.

d2ffmds_menu( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MENU des Objekts Formmodul.

d2ffmds_mnu_mod( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menümodul des Objekts Formmodul.

d2ffmds_mnu_role( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menümodulrollen des Objekts Formmodul.

d2ffmds_mnu_src( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menüquelle des Objekts Formmodul.

d2ffmds_mnu_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menüstil des Objekts Formmodul.

d2ffmds_mouse_navigation_lmt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Mausnavigationsbegrenzung des Objekts Formmodul.

d2ffmds_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Name des Objekts Formmodul.

d2ffmds_next( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NEXT des Objekts Formmodul.

d2ffmds_obj_grp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_OBJ_GRP des Objekts Formmodul.

d2ffmds_previous( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PREVIOUS des Objekts Formmodul.

d2ffmds_prog_unit( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PROG_UNIT des Objekts Formmodul.

d2ffmds_prop_class( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Attributklasse des Objekts Formmodul.

d2ffmds_rec_grp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datensatzgruppe des Objekts Formmodul.

d2ffmds_rec_vat_grp_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Visuelle Attributgruppe Aktueller Datensatz des Objekts Formmodul.

d2ffmds_rec_vat_grp_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_REC_VAT_GRP_OBJ des Objekts Formmodul.

d2ffmds_report( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_REPORT des Objekts Formmodul.

d2ffmds_runtime_comp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_RUNTIME_COMP des Objekts Formmodul.

d2ffmds_svpnt_mode( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Savepoint-Modus des Objekts Formmodul.

d2ffmds_title( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Titel des Objekts Formmodul.

d2ffmds_trigger( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_TRIGGER des Objekts Formmodul.

d2ffmds_use_3D_cntrls( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs 3D-Steuerelemente verwenden des Objekts Formmodul.

d2ffmds_validation_unit( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Validierungseinheit des Objekts Formmodul.

d2ffmds_vert_tlbr_cnv( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vertikale Symbolleisten-Leinwand des Objekts Formmodul.


Makros des Objekts Formparameter

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Formparameter von Form Builder beschrieben.

d2ffpmg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Formparameter als Zeiger dvoid zurück.

d2ffpmg_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Kommentare des Objekts Formparameter als Text zurück.

d2ffpmg_max_len( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Maximale Länge des Objekts Formparameter als Zahl zurück.

d2ffpmg_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts Formparameter als Objekt zurück.

d2ffpmg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Name des Objekts Formparameter als Text zurück.

d2ffpmg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Formparameter als Objekt zurück.

d2ffpmg_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts Formparameter als Objekt zurück.

d2ffpmg_par_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Formparameter als Text zurück.

d2ffpmg_par_flpath( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Formparameter als Text zurück.

d2ffpmg_par_modstr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Formparameter als Zahl zurück.

d2ffpmg_par_modtyp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Formparameter als Zahl zurück.

d2ffpmg_par_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODULE des Objekts Formparameter als Text zurück.

d2ffpmg_par_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_NAM des Objekts Formparameter als Text zurück.

d2ffpmg_param_dat_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Parameter-Datentyp des Objekts Formparameter als Zahl zurück.

d2ffpmg_param_init_val( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Parameter-Ausgangswert des Objekts Formparameter als Text zurück.

d2ffpmg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Formparameter als Objekt zurück.

d2ffpmg_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Formparameter als Objekt zurück.

d2ffpms_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Formparameter.

d2ffpms_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Kommentare des Objekts Formparameter.

d2ffpms_max_len( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Maximale Länge des Objekts Formparameter.

d2ffpms_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MODULE des Objekts Formparameter.

d2ffpms_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Name des Objekts Formparameter.

d2ffpms_next( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NEXT des Objekts Formparameter.

d2ffpms_owner( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_OWNER des Objekts Formparameter.

d2ffpms_par_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Formparameter.

d2ffpms_par_flpath( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Formparameter.

d2ffpms_par_modstr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Formparameter.

d2ffpms_par_modtyp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Formparameter.

d2ffpms_par_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODULE des Objekts Formparameter.

d2ffpms_par_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_NAM des Objekts Formparameter.

d2ffpms_param_dat_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Parameter-Datentyp des Objekts Formparameter.

d2ffpms_param_init_val( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Parameter-Ausgangswert des Objekts Formparameter.


Makros des Objekts Grafik

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Grafik von Form Builder beschrieben.

d2fgrag_allow_expansion( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Erweitern zulassen des Objekts Grafik als Booleschen Wert zurück.

d2fgrag_allow_mlt_lin_prmpts( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Mehrzeilige Prompts zulassen des Objekts Grafik als Booleschen Wert zurück.

d2fgrag_allow_strt_att_prmpts( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Mit Start verknüpfte Prompts zulassen des Objekts Grafik als Booleschen Wert zurück.

d2fgrag_allow_top_att_prmpts( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Mit oberem Rand verknüpfte Prompts zulassen des Objekts Grafik als Booleschen Wert zurück.

d2fgrag_arrow_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Pfeilstil des Objekts Grafik als Zahl zurück.

d2fgrag_back_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Hintergrundfarbe des Objekts Grafik als Text zurück.

d2fgrag_bevel( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Umriß des Objekts Grafik als Zahl zurück.

d2fgrag_bounding_bx_scalable( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Skalierbare Umrandung des Objekts Grafik als Booleschen Wert zurück.

d2fgrag_cap_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Linienende des Objekts Grafik als Zahl zurück.

d2fgrag_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Grafik als Zeiger dvoid zurück.

d2fgrag_clip_hgt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Höhe Begrenzungsrechteck des Objekts Grafik als Zahl zurück.

d2fgrag_clip_wid( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Breite Begrenzungsrechteck des Objekts Grafik als Zahl zurück.

d2fgrag_clip_x_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs X-Ursprung Begrenzungsrechteck des Objekts Grafik als Zahl zurück.

d2fgrag_clip_y_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Y-Ursprung Begrenzungsrechteck des Objekts Grafik als Zahl zurück.

d2fgrag_closed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Polygon-Marke/Begrenzungslinie des Objekts Grafik als Booleschen Wert zurück.

d2fgrag_corner_radius_x( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs X-Winkelradius für Abgerundetes Rechteck des Objekts Grafik als Zahl zurück.

d2fgrag_corner_radius( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Y-Winkelradius für Abgerundetes Rechteck des Objekts Grafik als Zahl zurück.

d2fgrag_cstm_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Benutzerdefinierter Abstand für Textobjekt des Objekts Grafik als Zahl zurück.

d2fgrag_dash_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Strichart für Objektrand des Objekts Grafik als Zahl zurück.

d2fgrag_disp_qlty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Anzeigequalität des Objekts Grafik als Zahl zurück.

d2fgrag_dist_btwn_recs( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abstand zwischen Datensätzen des Objekts Grafik als Zahl zurück.

d2fgrag_dither( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bild-Dithering des Objekts Grafik als Booleschen Wert zurück.

d2fgrag_edge_back_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Hintergrundfarbe Objektrand des Objekts Grafik als Text zurück.

d2fgrag_edge_fore_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vordergrundfarbe Objektrand des Objekts Grafik als Text zurück.

d2fgrag_edge_pat( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_EDGE_PAT des Objekts Grafik als Text zurück.

d2fgrag_fill_pat( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Füllmuster des Objekts Grafik als Text zurück.

d2fgrag_fixed_bounding_bx( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FIXED_BOUNDING_BX des Objekts Grafik als Booleschen Wert zurück.

d2fgrag_font_scaleable( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Punktgröße skaliert mit Objekt des Objekts Grafik als Booleschen Wert zurück.

d2fgrag_fore_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vordergrundfarbe des Objekts Grafik als Text zurück.

d2fgrag_frame_align( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rahmenausrichtung des Objekts Grafik als Zahl zurück.

d2fgrag_frame_ttl( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rahmentitel des Objekts Grafik als Text zurück.

d2fgrag_frame_ttl_align( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausrichtung Rahmentitel des Objekts Grafik als Zahl zurück.

d2fgrag_frame_ttl_back_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rahmentitel Hintergrundfarbe des Objekts Grafik als Text zurück.

d2fgrag_frame_ttl_fill_pat( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rahmentitel Füllmuster des Objekts Grafik als Text zurück.

d2fgrag_frame_ttl_font_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rahmentitel Schriftartname des Objekts Grafik als Text zurück.

d2fgrag_frame_ttl_font_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rahmentitel Schriftgrad des Objekts Grafik als Zahl zurück.

d2fgrag_frame_ttl_font_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rahmentitel Zeichenabstand des Objekts Grafik als Zahl zurück.

d2fgrag_frame_ttl_font_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rahmentitel Schriftstil des Objekts Grafik als Zahl zurück.

d2fgrag_frame_ttl_font_weight( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rahmentitel Schriftstärke des Objekts Grafik als Zahl zurück.

d2fgrag_fram_ttl_fore_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rahmentitel Vordergrundfarbe des Objekts Grafik als Text zurück.

d2fgrag_frame_ttl_ofst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Versatz Rahmentitel des Objekts Grafik als Zahl zurück.

d2fgrag_frame_ttl_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abstand Rahmentitel des Objekts Grafik als Zahl zurück.

d2fgrag_frame_ttl_vat_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rahmentitel Visuelle Attributgruppe des Objekts Grafik als Text zurück.

d2fgrag_frame_ttl_vat_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FRAME_TTL_VAT_OBJ des Objekts Grafik als Objekt zurück.

d2fgrag_gra_font_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftartname des Objekts Grafik als Text zurück.

d2fgrag_gra_font_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftgrad des Objekts Grafik als Zahl zurück.

d2fgrag_gra_font_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftstil des Objekts Grafik als Zahl zurück.

d2fgrag_gra_text( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Text des Objekts Grafik als Text zurück.

d2fgrag_graphic( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_GRAPHIC des Objekts Grafik als Objekt zurück.

d2fgrag_graphics_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Objekttyp des Objekts Grafik als Zahl zurück.

d2fgrag_height( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Breite/Höhe des Objekts Grafik als Zahl zurück.

d2fgrag_horz_jst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Horizontale Justierung von Textobjekt des Objekts Grafik als Zahl zurück.

d2fgrag_horz_margn( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Horizontaler Rand des Objekts Grafik als Zahl zurück.

d2fgrag_horz_obj_ofst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Horizontaler Objektversatz des Objekts Grafik als Zahl zurück.

d2fgrag_horz_orgn( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Horizontalposition relativ zum Ursprung des Objekts Grafik als Zahl zurück.

d2fgrag_internal_end_angle( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_INTERNAL_END_ANGLE des Objekts Grafik als Zahl zurück.

d2fgrag_internal_lin_wid( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_INTERNAL_END_WID des Objekts Grafik als Zahl zurück.

d2fgrag_internal_rotation_angle( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_INTERNAL_ROTATION_ANGLE des Objekts Grafik als Zahl zurück.

d2fgrag_internal_strt_angle( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_INTERNAL_STRT_ANGLE des Objekts Grafik als Zahl zurück.

d2fgrag_join_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Verknüpfungsstil von Objektrand des Objekts Grafik als Zahl zurück.

d2fgrag_lang_dir( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Richtung des Objekts Grafik als Zahl zurück.

d2fgrag_laayout_data_blk_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Layout-Datenblock des Objekts Grafik als Text zurück.

d2fgrag_layout_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Layoutstil des Objekts Grafik als Zahl zurück.

d2fgrag_lin_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Zeilenabstand des Objekts Grafik als Zahl zurück.

d2fgrag_max_objs( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Max. Objekte pro Zeile des Objekts Grafik als Zahl zurück.

d2fgrag_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts Grafik als Objekt zurück.

d2fgrag_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Name des Objekts Grafik als Text zurück.

d2fgrag_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Grafik als Objekt zurück.

d2fgrag_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts Grafik als Objekt zurück.

d2fgrag_par_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Grafik als Text zurück.

d2fgrag_par_flpath( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Grafik als Text zurück.

d2fgrag_par_modstr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Grafik als Zahl zurück.

d2fgrag_par_modtyp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Grafik als Zahl zurück.

d2fgrag_par_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODULE des Objekts Grafik als Text zurück.

d2fgrag_par_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_NAM des Objekts Grafik als Text zurück.

d2fgrag_point( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftgrad des Objekts Grafik als Objekt zurück.

d2fgrag_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Grafik als Objekt zurück.

d2fgrag_recs_disp_count( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Anzahl angezeigter Datensätze des Objekts Grafik als Zahl zurück.

d2fgrag_scrlbr_align( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausrichtung Bildlaufleiste des Objekts Grafik als Zahl zurück.

d2fgrag_scrlbr_wid( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bildlaufleisten-Breite des Objekts Grafik als Zahl zurück.

d2fgrag_show_scrlbr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SHOW_SCRLBR des Objekts Grafik als Booleschen Wert zurück.

d2fgrag_shrinkwrap( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Shrinkwrap des Objekts Grafik als Booleschen Wert zurück.

d2fgrag_sngl_obj_align( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausrichtung einzelnes Objekt des Objekts Grafik als Zahl zurück.

d2fgrag_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Grafik als Objekt zurück.

d2fgrag_strt_prmpt_align( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Start Prompt-Ausrichtung des Objekts Grafik als Zahl zurück.

d2fgrag_strt_prmpt_ofst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Start Prompt-Versatz des Objekts Grafik als Zahl zurück.

d2fgrag_tbp_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_TBP_NAM des Objekts Grafik als Text zurück.

d2fgrag_tbp_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_TBP_OBJ des Objekts Grafik als Objekt zurück.

d2fgrag_top_prmpt_align( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausrichtung oberer Prompt des Objekts Grafik als Zahl zurück.

d2fgrag_top_prmpt_pfst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Versatz oberer Prompt des Objekts Grafik als Zahl zurück.

d2fgrag_ttl_reading_ordr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Lesereihenfolge für Titel des Objekts Grafik als Zahl zurück.

d2fgrag_updt_layout( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Layout aktualisieren des Objekts Grafik als Zahl zurück.

d2fgrag_vert_fill( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vertikales Füllen des Objekts Grafik als Booleschen Wert zurück.

d2fgrag_vert_jst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vertikale Justierung des Objekts Grafik als Zahl zurück.

d2fgrag_vert_margn( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vertikaler Rand des Objekts Grafik als Zahl zurück.

d2fgrag_vert_obj_ofst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vertikaler Objektversatz des Objekts Grafik als Zahl zurück.

d2fgrag_vert_orgn( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vertikalposition relativ zum Ursprung des Objekts Grafik als Zahl zurück.

d2fgrag_width( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Breite/Höhe des Objekts Grafik als Zahl zurück.

d2fgrag_wrap_txt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Textumbruch des Objekts Grafik als Booleschen Wert zurück.

d2fgrag_x_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs X-Position/Y-Position des Objekts Grafik als Zahl zurück.

d2fgrag_y_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs X-Position/Y-Position des Objekts Grafik als Zahl zurück.

d2fgras_allow_expansion( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Erweitern zulassen des Objekts Grafik.

d2fgras_allow_mlt_lin_prmpts( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Mehrzeilige Prompts zulassen des Objekts Grafik.

d2fgras_allow_strt_att_prmpts( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Mit Start verknüpfte Prompts zulassen des Objekts Grafik.

d2fgras_allow_top_att_prmpts( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Mit oberem Rand verknüpfte Prompts zulassen des Objekts Grafik.

d2fgras_arrow_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Pfeilstil des Objekts Grafik.

d2fgras_back_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Hintergrundfarbe des Objekts Grafik.

d2fgras_bevel( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Umriß des Objekts Grafik.

d2fgras_bounding_bx_scalable( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Skalierbare Umrandung des Objekts Grafik.

d2fgras_cap_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Linienende des Objekts Grafik.

d2fgras_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Grafik.

d2fgras_clip_hgt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Höhe Begrenzungsrechteck des Objekts Grafik.

d2fgras_clip_wid( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Breite Begrenzungsrechteck des Objekts Grafik.

d2fgras_clip_x_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs X-Ursprung Begrenzungsrechteck des Objekts Grafik.

d2fgras_clip_y_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Y-Ursprung Begrenzungsrechteck des Objekts Grafik.

d2fgras_closed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Polygon-Marke/Begrenzungslinie des Objekts Grafik.

d2fgras_corner_radius_x( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs X-Winkelradius für Abgerundetes Rechteck des Objekts Grafik.

d2fgras_corner_radius( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Y-Winkelradius für Abgerundetes Rechteck des Objekts Grafik.

d2fgras_cstm_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Benutzerdefinierter Abstand für Textobjekt des Objekts Grafik.

d2fgras_dash_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Strichart für Objektrand des Objekts Grafik.

d2fgras_disp_qlty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Anzeigequalität des Objekts Grafik.

d2fgras_dist_btwn_recs( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abstand zwischen Datensätzen des Objekts Grafik.

d2fgras_dither( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bild-Dithering des Objekts Grafik.

d2fgras_edge_back_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Hintergrundfarbe Objektrand des Objekts Grafik.

d2fgras_edge_fore_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vordergrundfarbe Objektrand des Objekts Grafik.

d2fgras_edge_pat( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_EDGE_PAT des Objekts Grafik.

d2fgras_fill_pat( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Füllmuster des Objekts Grafik.

d2fgras_fixed_bounding_bx( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FIXED_BOUNDING_BX des Objekts Grafik.

d2fgras_font_scaleable( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Punktgröße skaliert mit Objekt des Objekts Grafik.

d2fgras_fore_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vordergrundfarbe des Objekts Grafik.

d2fgras_frame_align( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rahmenausrichtung des Objekts Grafik.

d2fgras_frame_ttl( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rahmentitel des Objekts Grafik.

d2fgras_frame_ttl_align( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausrichtung Rahmentitel des Objekts Grafik.

d2fgras_frame_ttl_back_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rahmentitel Hintergrundfarbe des Objekts Grafik.

d2fgras_frame_ttl_fill_pat( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rahmentitel Füllmuster des Objekts Grafik.

d2fgras_frame_ttl_font_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rahmentitel Schriftartname des Objekts Grafik.

d2fgras_frame_ttl_font_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rahmentitel Schriftgrad des Objekts Grafik.

d2fgras_frame_ttl_font_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rahmentitel Zeichenabstand des Objekts Grafik.

d2fgras_frame_ttl_font_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rahmentitel Schriftstil des Objekts Grafik.

d2fgras_frame_ttl_font_weight( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rahmentitel Schriftstärke des Objekts Grafik.

d2fgras_fram_ttl_fore_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rahmentitel Vordergrundfarbe des Objekts Grafik.

d2fgras_frame_ttl_ofst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Versatz Rahmentitel des Objekts Grafik.

d2fgras_frame_ttl_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abstand Rahmentitel des Objekts Grafik.

d2fgras_frame_ttl_vat_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rahmentitel Visuelle Attributgruppe des Objekts Grafik.

d2fgras_frame_ttl_vat_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FRAME_TTL_VAT_OBJ des Objekts Grafik.

d2fgras_gra_font_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftartname des Objekts Grafik.

d2fgras_gra_font_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftgrad des Objekts Grafik.

d2fgras_gra_font_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftstil des Objekts Grafik.

d2fgras_gra_text( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Text des Objekts Grafik.

d2fgras_graphic( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_GRAPHIC des Objekts Grafik.

d2fgras_graphics_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Objekttyp des Objekts Grafik.

d2fgras_height( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Breite/Höhe des Objekts Grafik.

d2fgras_horz_jst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Horizontale Justierung von Textobjekt des Objekts Grafik.

d2fgras_horz_margn( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Horizontaler Rand des Objekts Grafik.

d2fgras_horz_obj_ofst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Horizontaler Objektversatz des Objekts Grafik.

d2fgras_horz_orgn( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Horizontalposition relativ zum Ursprung des Objekts Grafik.

d2fgras_internal_end_angle( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_INTERNAL_END_ANGLE des Objekts Grafik.

d2fgras_internal_lin_wid( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_INTERNAL_END_WID des Objekts Grafik.

d2fgras_internal_rotation_angle( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_INTERNAL_ROTATION_ANGLE des Objekts Grafik.

d2fgras_internal_strt_angle( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_INTERNAL_STRT_ANGLE des Objekts Grafik.

d2fgras_join_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Verknüpfungsstil von Objektrand des Objekts Grafik.

d2fgras_lang_dir( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Richtung des Objekts Grafik.

d2fgras_laayout_data_blk_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Layout-Datenblock des Objekts Grafik.

d2fgras_layout_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Layoutstil des Objekts Grafik.

d2fgras_lin_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Zeilenabstand des Objekts Grafik.

d2fgras_max_objs( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Max. Objekte pro Zeile des Objekts Grafik.

d2fgras_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MODULE des Objekts Grafik.

d2fgras_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Name des Objekts Grafik.

d2fgras_next( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NEXT des Objekts Grafik.

d2fgras_owner( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_OWNER des Objekts Grafik.

d2fgras_par_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Grafik.

d2fgras_par_flpath( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Grafik.

d2fgras_par_modstr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Grafik.

d2fgras_par_modtyp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Grafik.

d2fgras_par_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODULE des Objekts Grafik.

d2fgras_par_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_NAM des Objekts Grafik.

d2fgras_point( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftgrad des Objekts Grafik.

d2fgras_previous( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PREVIOUS des Objekts Grafik.

d2fgras_recs_disp_count( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Anzahl angezeigter Datensätze des Objekts Grafik.

d2fgras_scrlbr_align( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausrichtung Bildlaufleiste des Objekts Grafik.

d2fgras_scrlbr_wid( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bildlaufleisten-Breite des Objekts Grafik.

d2fgras_show_scrlbr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SHOW_SCRLBR des Objekts Grafik.

d2fgras_shrinkwrap( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Shrinkwrap des Objekts Grafik.

d2fgras_sngl_obj_align( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausrichtung einzelnes Objekt des Objekts Grafik.

d2fgras_source( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SOURCE des Objekts Grafik.

d2fgras_strt_prmpt_align( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Start Prompt-Ausrichtung des Objekts Grafik.

d2fgras_strt_prmpt_ofst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Start Prompt-Versatz des Objekts Grafik.

d2fgras_tbp_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_TBP_NAM des Objekts Grafik.

d2fgras_tbp_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_TBP_OBJ des Objekts Grafik.

d2fgras_top_prmpt_align( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausrichtung oberer Prompt des Objekts Grafik.

d2fgras_top_prmpt_pfst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Versatz oberer Prompt des Objekts Grafik.

d2fgras_ttl_reading_ordr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Lesereihenfolge für Titel des Objekts Grafik.

d2fgras_updt_layout( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Layout aktualisieren des Objekts Grafik.

d2fgras_vert_fill( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vertikales Füllen des Objekts Grafik.

d2fgras_vert_jst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vertikale Justierung des Objekts Grafik.

d2fgras_vert_margn( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vertikaler Rand des Objekts Grafik.

d2fgras_vert_obj_ofst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vertikaler Objektversatz des Objekts Grafik.

d2fgras_vert_orgn( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vertikalposition relativ zum Ursprung des Objekts Grafik.

d2fgras_width( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Breite/Höhe des Objekts Grafik.

d2fgras_wrap_txt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Textumbruch des Objekts Grafik.

d2fgras_x_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs X-Position/Y-Position des Objekts Grafik.

d2fgras_y_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs X-Position/Y-Position des Objekts Grafik.


Makros des Objekts Item

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Item von Form Builder beschrieben.

d2fitmg_access_key( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Zugriffstaste des Objekts Item als Text zurück.

d2fitmg_activex_class( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_ACTIVEX_CLASS des Objekts Item als Text zurück.

d2fitmg_activex_val_prop( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_ACTIVEX_VAL_PROP des Objekts Item als Text zurück.

d2fitmg_audio_chnnls( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Audio-Kanäle des Objekts Item als Zahl zurück.

d2fitmg_auto_hint( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Hinweis automatisch anzeigen des Objekts Item als Booleschen Wert zurück.

d2fitmg_auto_skip( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Automatisches Überspringen des Objekts Item als Booleschen Wert zurück.

d2fitmg_back_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Hintergrundfarbe des Objekts Item als Text zurück.

d2fitmg_bevel( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Umriß des Objekts Item als Zahl zurück.

d2fitmg_calc_mode( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Berechnungsmodus des Objekts Item als Zahl zurück.

d2fitmg_case_insensitive_qry( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abfrage ohne Berücksichtigung der Schreibweise des Objekts Item als Booleschen Wert zurück.

d2fitmg_case_rstrction( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Einschränkung Schreibweise des Objekts Item als Zahl zurück.

d2fitmg_chk_bx_other_vals( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Kontrollkästchenzuordnung anderer Werte des Objekts Item zurück.

d2fitmg_chked_val( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausgewählt des Objekts Item als Text zurück.

d2fitmg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Item als Zeiger dvoid zurück.

d2fitmg_cmprssion_qlty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CMPRSSION_QLTY des Objekts Item als Zahl zurück.

d2fitmg_cnv_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Leinwandtyp des Objekts Item als Text zurück.

d2fitmg_cnv_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CNV_OBJ des Objekts Item als Objekt zurück.

d2fitmg_col_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Spaltenname des Objekts Item als Text zurück.

d2fitmg_comm_mode( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Kommunikationsmodus des Objekts Item als Zahl zurück.

d2fitmg_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Kommentare des Objekts Item als Text zurück.

d2fitmg_compress( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Komprimieren des Objekts Item als Zahl zurück.

d2fitmg_conceal_data( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Daten verbergen des Objekts Item als Booleschen Wert zurück.

d2fitmg_copy_val_from_itm( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Wert aus Objekt kopieren des Objekts Item als Text zurück.

d2fitmg_dat_src_blk( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datenquellblock des Objekts Item als Text zurück.

d2fitmg_dat_src_x_axs( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datenquelle X-Achse des Objekts Item als Text zurück.

d2fitmg_dat_src_y_axs( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datenquelle Y-Achse des Objekts Item als Text zurück.

d2fitmg_dat_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datentyp des Objekts Item als Zahl zurück.

d2fitmg_db_itm( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datenbankobjekt des Objekts Item als Booleschen Wert zurück.

d2fitmg_dflt_btn( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Standardschaltfläche des Objekts Item als Booleschen Wert zurück.

d2fitmg_disp_qlty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Anzeigequalität des Objekts Item als Zahl zurück.

d2fitmg_dist_btwn_recs( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abstand zwischen Datensätzen des Objekts Item als Zahl zurück.

d2fitmg_edt_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Editor des Objekts Item als Text zurück.

d2fitmg_edt_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_EDT_OBJ des Objekts Item als Objekt zurück.

d2fitmg_edt_x_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Editor X-Position, Editor Y-Position des Objekts Item als Zahl zurück.

d2fitmg_edt_y_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Editor X-Position, Editor Y-Position des Objekts Item als Zahl zurück.

d2fitmg_enabled( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Aktiviert des Objekts Item als Booleschen Wert zurück.

d2fitmg_exec_mode( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausführungsmodus des Objekts Item als Zahl zurück.

d2fitmg_fill_pat( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Füllmuster des Objekts Item als Text zurück.

d2fitmg_fixed_len( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Feste Länge des Objekts Item als Booleschen Wert zurück.

d2fitmg_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Dateiname des Objekts Item als Text zurück.

d2fitmg_fmt_msk( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Formatmaske des Objekts Item als Text zurück.

d2fitmg_font_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftartname des Objekts Item als Text zurück.

d2fitmg_font_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftgrad des Objekts Item als Zahl zurück.

d2fitmg_font_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Zeichenabstand des Objekts Item als Zahl zurück.

d2fitmg_font_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftstil des Objekts Item als Zahl zurück.

d2fitmg_font_wgth( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftstärke des Objekts Item als Zahl zurück.

d2fitmg_fore_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vordergrundfarbe des Objekts Item als Text zurück.

d2fitmg_formula( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Formel des Objekts Item als Text zurück.

d2fitmg_height( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Breite/Höhe des Objekts Item als Zahl zurück.

d2fitmg_highest_allowed_val( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Höchster zulässiger Wert/Niedrigster zulässiger Wert des Objekts Item als Text zurück.

d2fitmg_hint( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Hinweis des Objekts Item als Text zurück.

d2fitmg_icon_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Symbol-Dateiname des Objekts Item als Text zurück.

d2fitmg_iconic( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Als Symbol des Objekts Item als Booleschen Wert zurück.

d2fitmg_img_dpth( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bildtiefe des Objekts Item als Zahl zurück.

d2fitmg_img_fmt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bildformat des Objekts Item als Zahl zurück.

d2fitmg_init_kbrd_dir( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Anfänglicher Tastaturstatus des Objekts Item als Zahl zurück.

d2fitmg_init_val( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausgangswert des Objekts Item als Text zurück.

d2fitmg_insrt_allowed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Einsetzen zulässig des Objekts Item als Booleschen Wert zurück.

d2fitmg_itm_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Objekttyp des Objekts Item als Zahl zurück.

d2fitmg_itms_disp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Anzahl angezeigter Objekte des Objekts Item als Zahl zurück.

d2fitmg_justification( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Justierung des Objekts Item als Zahl zurück.

d2fitmg_kbrd_navigable( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Tastatur-navigierbar des Objekts Item als Booleschen Wert zurück.

d2fitmg_kbrd_state( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_KBRD_STATE des Objekts Item als Zahl zurück.

d2fitmg_keep_crsr_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Cursor-Position beibehalten des Objekts Item als Booleschen Wert zurück.

d2fitmg_label( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Beschriftung des Objekts Item als Text zurück.

d2fitmg_lang_dir( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Richtung des Objekts Item als Zahl zurück.

d2fitmg_lock_rec( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datensatz sperren des Objekts Item als Booleschen Wert zurück.

d2fitmg_lov_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_LOV_NAM des Objekts Item als Text zurück.

d2fitmg_lov_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_LOV_OBJ des Objekts Item als Objekt zurück.

d2fitmg_lov_x_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs X-Position Liste des Objekts Item als Zahl zurück.

d2fitmg_lov_y_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Y-Position Liste des Objekts Item als Zahl zurück.

d2fitmg_lowest_allowed_val( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Höchster zulässiger Wert/Niedrigster zulässiger Wert des Objekts Item als Text zurück.

d2fitmg_lst_element_cnt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Anzahl von Listenelementobjekten des Objekts Item als Zahl zurück.

d2fitmg_lst_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Listenstil des Objekts Item als Zahl zurück.

d2fitmg_max_len( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Maximale Länge des Objekts Item als Zahl zurück.

d2fitmg_mlt_lin( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Mehrzeilig des Objekts Item als Booleschen Wert zurück.

d2fitmg_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts Item als Objekt zurück.

d2fitmg_mouse_navigate( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Mausnavigation des Objekts Item als Booleschen Wert zurück.

d2fitmg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Name des Objekts Item als Text zurück.

d2fitmg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Item als Objekt zurück.

d2fitmg_nxt_navigation_itm_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NAVIGATION_ITM_NAM des Objekts Item als Text zurück.

d2fitmg_nxt_navigation_itm_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NAVIGATION_ITM_OBJ des Objekts Item als Objekt zurück.

d2fitmg_ole_act_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs OLE-Aktivierungsstil des Objekts Item als Zahl zurück.

d2fitmg_ole_class( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs OLE-Klasse des Objekts Item als Text zurück.

d2fitmg_ole_in_place_act( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs OLE in Forms aktiviert des Objekts Item als Booleschen Wert zurück.

d2fitmg_ole_insd_out_support( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs OLE-Austauschunterstützung des Objekts Item als Booleschen Wert zurück.

d2fitmg_ole_popup_mnu_itms( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs OLE-Popup-Menüpunkte des Objekts Item als Zahl zurück.

d2fitmg_ole_resiz_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs OLE-Skalierungsstil des Objekts Item als Zahl zurück.

d2fitmg_ole_show_popup_menu( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs OLE-Popup-Menü anzeigen des Objekts Item als Booleschen Wert zurück.

d2fitmg_ole_show_tnnt_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs OLE-Bewohnertyp anzeigen des Objekts Item als Booleschen Wert zurück.

d2fitmg_ole_tnnt_aspct( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs OLE-Bewohnerdarstellung des Objekts Item als Zahl zurück.

d2fitmg_ole_tnnt_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs OLE-Bewohnertypen des Objekts Item als Zahl zurück.

d2fitmg_other_vals( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Zuordnung anderer Werte des Objekts Item als Text zurück.

d2fitmg_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts Item als Objekt zurück.

d2fitmg_par_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Item als Text zurück.

d2fitmg_par_flpath( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Item als Text zurück.

d2fitmg_par_modstr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_STR des Objekts Item als Zahl zurück.

d2fitmg_par_modtyp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Item als Zahl zurück.

d2fitmg_par_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODULE des Objekts Item als Text zurück.

d2fitmg_par_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_NAM des Objekts Item als Text zurück.

d2fitmg_popup_mnu_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Popup-Menü des Objekts Item als Text zurück.

d2fitmg_popup_mnu_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_POPUP_MNU_OBJ des Objekts Item als Text zurück.

d2fitmg_popup_va_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_POPUP_VA_OBJ des Objekts Item als Objekt zurück.

d2fitmg_prev_navigation_itm_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vorheriges Navigationsobjekt des Objekts Item als Text zurück.

d2fitmg_prev_navigation_itm_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREV_NAVIGATION_ITM_OBJ des Objekts Item als Objekt zurück.

d2fitmg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Item als Objekt zurück.

d2fitmg_prmpt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt des Objekts Item als Text zurück.

d2fitmg_prmpt_align( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Ausrichtung des Objekts Item als Zahl zurück.

d2fitmg_prmpt_align_ofst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Versatz Prompt-Ausrichtung des Objekts Item als Zahl zurück.

d2fitmg_prmpt_att_edge( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rand Prompt-Zuordnung des Objekts Item als Zahl zurück.

d2fitmg_prmpt_att_ofst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Versatz Prompt-Zuordnung des Objekts Item als Zahl zurück.

d2fitmg_prmpt_back_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Hintergrundfarbe des Objekts Item als Text zurück.

d2fitmg_prmpt_disp_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Anzeigestil des Objekts Item als Zahl zurück.

d2fitmg_prmpt_fill_pat( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Füllmuster des Objekts Item als Text zurück.

d2fitmg_prmpt_font_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Schriftartname des Objekts Item als Text zurück.

d2fitmg_prmpt_font_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Schriftgrad des Objekts Item als Zahl zurück.

d2fitmg_prmpt_font_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Zeichenabstand des Objekts Item als Zahl zurück.

d2fitmg_prmpt_font_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Schriftstil des Objekts Item als Zahl zurück.

d2fitmg_prmpt_font_wght( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Schriftstärke des Objekts Item als Zahl zurück.

d2fitmg_prmpt_fore_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Vordergrundfarbe des Objekts Item als Text zurück.

d2fitmg_prmpt_jst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Justierung des Objekts Item als Zahl zurück.

d2fitmg_prmpt_reading_ordr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Lesereihenfolge des Objekts Item als Zahl zurück.

d2fitmg_prmpt_vat_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt Visuelle Attributgruppe des Objekts Item als Text zurück.

d2fitmg_prmpt_vat_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PRMPT_VAT_OBJ des Objekts Item als Objekt zurück.

d2fitmg_prmry_key( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Primärschlüssel des Objekts Item als Booleschen Wert zurück.

d2fitmg_qry_allowed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abfrage zulässig des Objekts Item als Booleschen Wert zurück.

d2fitmg_qry_len( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abfragelänge des Objekts Item als Zahl zurück.

d2fitmg_qry_only( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Nur Abfrage des Objekts Item als Booleschen Wert zurück.

d2fitmg_rad_but( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_RAD_BUT des Objekts Item als Objekt zurück.

d2fitmg_reading_ordr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Lesereihenfolge des Objekts Item als Zahl zurück.

d2fitmg_rec_vat_grp_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Visuelle Attributgruppe Aktueller Datensatz des Objekts Item als Text zurück.

d2fitmg_rec_vat_grp_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_REC_VAT_GRP_OBJ des Objekts Item als Objekt zurück.

d2fitmg_rendered( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Gerendert des Objekts Item als Booleschen Wert zurück.

d2fitmg_required( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Erforderlich des Objekts Item als Booleschen Wert zurück.

d2fitmg_show_fast_fwd( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schnellvorlauf-Schaltfläche anzeigen des Objekts Item als Booleschen Wert zurück.

d2fitmg_show_horz_scrlbr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Horizontale Bildlaufleiste anzeigen des Objekts Item als Booleschen Wert zurück.

d2fitmg_show_palette( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Palette anzeigen des Objekts Item als Booleschen Wert zurück.

d2fitmg_show_play( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Wiedergabe-Schaltfläche anzeigen des Objekts Item als Booleschen Wert zurück.

d2fitmg_show_rec( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Aufzeichnen-Schaltfläche anzeigen des Objekts Item als Booleschen Wert zurück.

d2fitmg_show_rewind( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rückspul-Schaltfläche anzeigen des Objekts Item als Booleschen Wert zurück.

d2fitmg_show_slider( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schieberegler anzeigen des Objekts Item als Booleschen Wert zurück.

d2fitmg_show_time( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Zeitindikator anzeigen des Objekts Item als Booleschen Wert zurück.

d2fitmg_show_vert_scrlbr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vertikale Bildlaufleiste anzeigen des Objekts Item als Booleschen Wert zurück.

d2fitmg_show_volume( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Lautstärkeregler anzeigen des Objekts Item als Booleschen Wert zurück.

d2fitmg_sizing_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Skalierungsstil des Objekts Item als Zahl zurück.

d2fitmg_snd_fmt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Klangformat des Objekts Item als Zahl zurück.

d2fitmg_snd_qlty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Klangqualität des Objekts Item als Zahl zurück.

d2fitmg_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Item als Objekt zurück.

d2fitmg_summ_blk_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Summierter Block des Objekts Item als Text zurück.

d2fitmg_summ_func( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Summenfunktion des Objekts Item als Zahl zurück.

d2fitmg_summ_itm_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Summiertes Objekt des Objekts Item als Text zurück.

d2fitmg_sync_itm_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Mit Objekt synchronisieren des Objekts Item als Text zurück.

d2fitmg_sync_itm_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SYNC_ITM_OBJ des Objekts Item als Objekt zurück.

d2fitmg_tbp_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_TBP_NAM des Objekts Item als Text zurück.

d2fitmg_tbp_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_TBP_OBJ des Objekts Item als Objekt zurück.

d2fitmg_tooltip( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Tooltip des Objekts Item als Text zurück.

d2fitmg_tooltip_vat_grp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Tooltip Visuelle Attributgruppe des Objekts Item als Text zurück.

d2fitmg_trigger( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_TRIGGER des Objekts Item als Objekt zurück.

d2fitmg_unchked_val( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Wert, wenn nicht ausgewählt des Objekts Item als Text zurück.

d2fitmg_updt_allowed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Aktualisieren zulässig des Objekts Item als Booleschen Wert zurück.

d2fitmg_updt_commit( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Nach Festschreiben aktualisieren des Objekts Item als Booleschen Wert zurück.

d2fitmg_updt_if_null( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Nur aktualisieren, wenn NULL des Objekts Item als Booleschen Wert zurück.

d2fitmg_updt_qry( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abfrage aktualisieren des Objekts Item als Booleschen Wert zurück.

d2fitmg_validate_from_lst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Aus Liste validieren des Objekts Item als Booleschen Wert zurück.

d2fitmg_vat_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Visuelle Attributgruppe des Objekts Item als Text zurück.

d2fitmg_val_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_VAT_GRP des Objekts Item als Objekt zurück.

d2fitmg_visible( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Sichtbar des Objekts Item als Booleschen Wert zurück.

d2fitmg_while_on_black( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Weiß auf Schwarz des Objekts Item als Booleschen Wert zurück.

d2fitmg_width( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Breite/Höhe des Objekts Item als Zahl zurück.

d2fitmg_wrap_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Umbruchstil des Objekts Item als Zahl zurück.

d2fitmg_x_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs X-Position/Y-Position des Objekts Item als Zahl zurück.

d2fitmg_y_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs X-Position/Y-Position des Objekts Item als Zahl zurück.

d2fitms_access_key( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Zugriffstaste des Objekts Item.

d2fitms_activex_class( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_ACTIVEX_CLASS des Objekts Item.

d2fitms_activex_val_prop( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_ACTIVEX_VAL_PROP des Objekts Item.

d2fitms_audio_chnnls( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Audio-Kanäle des Objekts Item.

d2fitms_auto_hint( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Hinweis automatisch anzeigen des Objekts Item.

d2fitms_auto_skip( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Automatisches Überspringen des Objekts Item.

d2fitms_back_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Hintergrundfarbe des Objekts Item.

d2fitms_bevel( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Umriß des Objekts Item.

d2fitms_calc_mode( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Berechnungsmodus des Objekts Item.

d2fitms_case_insensitive_qry( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abfrage ohne Berücksichtigung der Schreibweise des Objekts Item.

d2fitms_case_rstrction( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Einschränkung Schreibweise des Objekts Item.

d2fitms_chk_bx_other_vals( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Kontrollkästchenzuordnung anderer Werte des Objekts Item.

d2fitms_chked_val( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausgewählt des Objekts Item.

d2fitms_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Item.

d2fitms_cmprssion_qlty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CMPRSSION_QLTY des Objekts Item.

d2fitms_cnv_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Leinwand des Objekts Item.

d2fitms_cnv_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CNV_OBJ des Objekts Item.

d2fitms_col_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Spaltenname des Objekts Item.

d2fitms_comm_mode( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Kommunikationsmodus des Objekts Item.

d2fitms_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Kommentare des Objekts Item.

d2fitms_compress( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Komprimieren des Objekts Item.

d2fitms_conceal_data( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Daten verbergen des Objekts Item.

d2fitms_copy_val_from_itm( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Wert aus Objekt kopieren des Objekts Item.

d2fitms_dat_src_blk( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datenquellblock des Objekts Item.

d2fitms_dat_src_x_axs( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datenquelle X-Achse des Objekts Item.

d2fitms_dat_src_y_axs( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datenquelle Y-Achse des Objekts Item.

d2fitms_dat_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datentyp des Objekts Item.

d2fitms_db_itm( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datenbankobjekt des Objekts Item.

d2fitms_dflt_btn( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Standardschaltfläche des Objekts Item.

d2fitms_disp_qlty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Anzeigequalität des Objekts Item.

d2fitms_dist_btwn_recs( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abstand zwischen Datensätzen des Objekts Item.

d2fitms_edt_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Editor des Objekts Item.

d2fitms_edt_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_EDT_OBJ des Objekts Item.

d2fitms_edt_x_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Editor X-Position, Editor Y-Position des Objekts Item.

d2fitms_edt_y_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Editor X-Position, Editor Y-Position des Objekts Item.

d2fitms_enabled( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Aktiviert des Objekts Item.

d2fitms_exec_mode( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausführungsmodus des Objekts Item.

d2fitms_fill_pat( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Füllmuster des Objekts Item.

d2fitms_fixed_len( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Feste Länge des Objekts Item.

d2fitms_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Dateiname des Objekts Item.

d2fitms_fmt_msk( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Formatmaske des Objekts Item.

d2fitms_font_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftartname des Objekts Item.

d2fitms_font_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftgrad des Objekts Item.

d2fitms_font_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Zeichenabstand des Objekts Item.

d2fitms_font_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftstil des Objekts Item.

d2fitms_font_wgth( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftstärke des Objekts Item.

d2fitms_fore_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vordergrundfarbe des Objekts Item.

d2fitms_formula( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Formel des Objekts Item.

d2fitms_height( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Breite/Höhe des Objekts Item.

d2fitms_highest_allowed_val( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Höchster zulässiger Wert/Niedrigster zulässiger Wert des Objekts Item.

d2fitms_hint( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Hinweis des Objekts Item.

d2fitms_icon_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Symbol-Dateiname des Objekts Item.

d2fitms_iconic( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Als Symbol des Objekts Item.

d2fitms_img_dpth( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bildtiefe des Objekts Item.

d2fitms_img_fmt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bildformat des Objekts Item.

d2fitms_init_kbrd_dir( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Anfänglicher Tastaturstatus des Objekts Item.

d2fitms_init_val( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausgangswert des Objekts Item.

d2fitms_insrt_allowed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Einsetzen zulässig des Objekts Item.

d2fitms_itm_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Objekttyp des Objekts Item.

d2fitms_itms_disp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Anzahl angezeigter Objekte des Objekts Item.

d2fitms_justification( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Justierung des Objekts Item.

d2fitms_kbrd_navigable( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Tastatur-navigierbar des Objekts Item.

d2fitms_kbrd_state( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_KBRD_STATE des Objekts Item.

d2fitms_keep_crsr_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Cursor-Position beibehalten des Objekts Item.

d2fitms_label( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Beschriftung des Objekts Item.

d2fitms_lang_dir( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Richtung des Objekts Item.

d2fitms_lock_rec( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datensatz sperren des Objekts Item.

d2fitms_lov_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_LOV_NAM des Objekts Item.

d2fitms_lov_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_LOV_OBJ des Objekts Item.

d2fitms_lov_x_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs X-Position Liste des Objekts Item.

d2fitms_lov_y_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Y-Position Liste des Objekts Item.

d2fitms_lowest_allowed_val( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Höchster zulässiger Wert/Niedrigster zulässiger Wert des Objekts Item.

d2fitms_lst_element_cnt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Anzahl von Listenelementobjekten des Objekts Item.

d2fitms_lst_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Listenstil des Objekts Item.

d2fitms_max_len( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Maximale Länge des Objekts Item.

d2fitms_mlt_lin( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Mehrzeilig des Objekts Item.

d2fitms_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MODULE des Objekts Item.

d2fitms_mouse_navigate( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Mausnavigation des Objekts Item.

d2fitms_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Name des Objekts Item.

d2fitms_next( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NEXT des Objekts Item.

d2fitms_nxt_navigation_itm_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NAVIGATION_ITM_NAM des Objekts Item.

d2fitms_nxt_navigation_itm_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NAVIGATION_ITM_OBJ des Objekts Item.

d2fitms_ole_act_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs OLE-Aktivierungsstil des Objekts Item.

d2fitms_ole_class( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs OLE-Klasse des Objekts Item.

d2fitms_ole_in_place_act( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs OLE in Forms aktiviert des Objekts Item.

d2fitms_ole_insd_out_support( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs OLE-Austauschunterstützung des Objekts Item.

d2fitms_ole_popup_mnu_itms( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs OLE-Popup-Menüpunkte des Objekts Item.

d2fitms_ole_resiz_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs OLE-Skalierungsstil des Objekts Item.

d2fitms_ole_show_popup_menu( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs OLE-Popup-Menü anzeigen des Objekts Item.

d2fitms_ole_show_tnnt_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs OLE-Bewohnertyp anzeigen des Objekts Item.

d2fitms_ole_tnnt_aspct( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs OLE-Bewohnerdarstellung des Objekts Item.

d2fitms_ole_tnnt_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs OLE-Bewohnertypen des Objekts Item.

d2fitms_other_vals( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Zuordnung anderer Werte des Objekts Item.

d2fitms_owner( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_OWNER des Objekts Item.

d2fitms_par_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Item.

d2fitms_par_flpath( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Item.

d2fitms_par_modstr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_STR des Objekts Item.

d2fitms_par_modtyp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Item.

d2fitms_par_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODULE des Objekts Item.

d2fitms_par_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_NAM des Objekts Item.

d2fitms_popup_mnu_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Popup-Menü des Objekts Item.

d2fitms_popup_mnu_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_POPUP_MNU_OBJ des Objekts Item.

d2fitms_popup_va_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_POPUP_VA_OBJ des Objekts Item.

d2fitms_prev_navigation_itm_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vorheriges Navigationsobjekt des Objekts Item.

d2fitms_prev_navigation_itm_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PREV_NAVIGATION_ITM_OBJ des Objekts Item.

d2fitms_previous( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PREVIOUS des Objekts Item.

d2fitms_prmpt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt des Objekts Item.

d2fitms_prmpt_align( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Ausrichtung des Objekts Item.

d2fitms_prmpt_align_ofst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Versatz Prompt-Ausrichtung des Objekts Item.

d2fitms_prmpt_att_edge( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rand Prompt-Zuordnung des Objekts Item.

d2fitms_prmpt_att_ofst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Versatz Prompt-Zuordnung des Objekts Item.

d2fitms_prmpt_back_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Hintergrundfarbe des Objekts Item.

d2fitms_prmpt_disp_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Anzeigestil des Objekts Item.

d2fitms_prmpt_fill_pat( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Füllmuster des Objekts Item.

d2fitms_prmpt_font_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Schriftartname des Objekts Item.

d2fitms_prmpt_font_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Schriftgrad des Objekts Item.

d2fitms_prmpt_font_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Zeichenabstand des Objekts Item.

d2fitms_prmpt_font_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Schriftstil des Objekts Item.

d2fitms_prmpt_font_wght( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Schriftstärke des Objekts Item.

d2fitms_prmpt_fore_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Vordergrundfarbe des Objekts Item.

d2fitms_prmpt_jst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Justierung des Objekts Item.

d2fitms_prmpt_reading_ordr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Lesereihenfolge des Objekts Item.

d2fitms_prmpt_vat_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt Visuelle Attributgruppe des Objekts Item.

d2fitms_prmpt_vat_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PRMPT_VAT_OBJ des Objekts Item.

d2fitms_prmry_key( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Primärschlüssel des Objekts Item.

d2fitms_qry_allowed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abfrage zulässig des Objekts Item.

d2fitms_qry_len( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abfragelänge des Objekts Item.

d2fitms_qry_only( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Nur Abfrage des Objekts Item.

d2fitms_rad_but( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_RAD_BUT des Objekts Item.

d2fitms_reading_ordr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Lesereihenfolge des Objekts Item.

d2fitms_rec_vat_grp_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Visuelle Attributgruppe Aktueller Datensatz des Objekts Item.

d2fitms_rec_vat_grp_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_REC_VAT_GRP_OBJ des Objekts Item.

d2fitms_rendered( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Gerendert des Objekts Item.

d2fitms_required( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Erforderlich des Objekts Item.

d2fitms_show_fast_fwd( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schnellvorlauf-Schaltfläche anzeigen des Objekts Item.

d2fitms_show_horz_scrlbr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Horizontale Bildlaufleiste anzeigen des Objekts Item.

d2fitms_show_palette( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Palette anzeigen des Objekts Item.

d2fitms_show_play( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Wiedergabe-Schaltfläche anzeigen des Objekts Item.

d2fitms_show_rec( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Aufzeichnen-Schaltfläche anzeigen des Objekts Item.

d2fitms_show_rewind( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rückspul-Schaltfläche anzeigen des Objekts Item.

d2fitms_show_slider( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schieberegler anzeigen des Objekts Item.

d2fitms_show_time( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Zeitindikator anzeigen des Objekts Item.

d2fitms_show_vert_scrlbr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vertikale Bildlaufleiste anzeigen des Objekts Item.

d2fitms_show_volume( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Lautstärkeregler anzeigen des Objekts Item.

d2fitms_sizing_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Skalierungsstil des Objekts Item.

d2fitms_snd_fmt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Klangformat des Objekts Item.

d2fitms_snd_qlty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Klangqualität des Objekts Item.

d2fitms_source( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SOURCE des Objekts Item.

d2fitms_summ_blk_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Summierter Block des Objekts Item.

d2fitms_summ_func( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Summenfunktion des Objekts Item.

d2fitms_summ_itm_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Summiertes Objekt des Objekts Item.

d2fitms_sync_itm_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Mit Objekt synchronisieren des Objekts Item.

d2fitms_sync_itm_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SYNC_ITM_OBJ des Objekts Item.

d2fitms_tbp_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_TBP_NAM des Objekts Item.

d2fitms_tbp_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_TBP_OBJ des Objekts Item.

d2fitms_tooltip( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Tooltip des Objekts Item.

d2fitms_tooltip_vat_grp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Tooltip Visuelle Attributgruppe des Objekts Item.

d2fitms_trigger( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_TRIGGER des Objekts Item.

d2fitms_unchked_val( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Wert, wenn nicht ausgewählt des Objekts Item.

d2fitms_updt_allowed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Aktualisieren zulässig des Objekts Item.

d2fitms_updt_commit( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Nach Festschreiben aktualisieren des Objekts Item.

d2fitms_updt_if_null( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Nur aktualisieren, wenn NULL des Objekts Item.

d2fitms_updt_qry( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abfrage aktualisieren des Objekts Item.

d2fitms_validate_from_lst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Aus Liste validieren des Objekts Item.

d2fitms_vat_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Visuelle Attributgruppe des Objekts Item.

d2fitms_val_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_VAT_GRP des Objekts Item.

d2fitms_visible( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Sichtbar des Objekts Item.

d2fitms_while_on_black( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Weiß auf Schwarz des Objekts Item.

d2fitms_width( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Breite/Höhe des Objekts Item.

d2fitms_wrap_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Umbruchstil des Objekts Item.

d2fitms_x_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs X-Position/Y-Position des Objekts Item.

d2fitms_y_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs X-Position/Y-Position des Objekts Item.


Makros des Objekts Wertelisten-Spaltenzuordnung

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Wertelisten-Spaltenzuordnung von Form Builder beschrieben.

d2flcmg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Wertelisten-Spaltenzuordnung als Zeiger dvoid zurück.

d2flcmg_disp_wid( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Anzeigebreite des Objekts Wertelisten-Spaltenzuordnung als Zahl zurück.

d2flcmg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Name des Objekts Wertelisten-Spaltenzuordnung als Text zurück.

d2flcmg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Wertelisten-Spaltenzuordnung als Objekt zurück.

d2flcmg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Wertelisten-Spaltenzuordnung als Objekt zurück.

d2flcmg_rtrn_itm( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rückgabeobjekt des Objekts Wertelisten-Spaltenzuordnung als Text zurück.

d2flcmg_title( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Titel des Objekts Wertelisten-Spaltenzuordnung als Text zurück.

d2flcms_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Wertelisten-Spaltenzuordnung.

d2flcms_disp_wid( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Anzeigebreite des Objekts Wertelisten-Spaltenzuordnung.

d2flcms_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Name des Objekts Wertelisten-Spaltenzuordnung.

d2flcms_rtrn_itm( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rückgabeobjekt des Objekts Wertelisten-Spaltenzuordnung.

d2flcms_title( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Titel des Objekts Wertelisten-Spaltenzuordnung.


Makros des Objekts Werteliste

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Werteliste von Form Builder beschrieben.

d2flovg_auto_col_wid( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Automatische Spaltenbreite des Objekts Werteliste als Booleschen Wert zurück.

d2flovg_auto_disp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Automatisch anzeigen des Objekts Werteliste als Booleschen Wert zurück.

d2flovg_auto_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Automatische Position des Objekts Werteliste als Booleschen Wert zurück.

d2flovg_auto_rfrsh( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Automatisches Auffrischen des Objekts Werteliste als Booleschen Wert zurück.

d2flovg_auto_skip( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Automatisches Überspringen des Objekts Werteliste als Booleschen Wert zurück.

d2flovg_auto_slct( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Automatische Auswahl des Objekts Werteliste als Booleschen Wert zurück.

d2flovg_back_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Hintergrundfarbe des Objekts Werteliste als Text zurück.

d2flovg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Werteliste als Zeiger dvoid zurück.

d2flovg_col_map( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Attribute Spaltenzuordnung des Objekts Werteliste als Objekt zurück.

d2flovg_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Kommentare des Objekts Werteliste als Text zurück.

d2flovg_fill_pat( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Füllmuster des Objekts Werteliste als Text zurück.

d2flovg_fltr_before_disp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vor Anzeige filtern des Objekts Werteliste als Booleschen Wert zurück.

d2flovg_font_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftartname des Objekts Werteliste als Text zurück.

d2flovg_font_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftgrad des Objekts Werteliste als Zahl zurück.

d2flovg_font_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Zeichenabstand des Objekts Werteliste als Zahl zurück.

d2flovg_font_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftstil des Objekts Werteliste als Zahl zurück.

d2flovg_font_wght( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftstärke des Objekts Werteliste als Zahl zurück.

d2flovg_fore_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vordergrundfarbe des Objekts Werteliste als Text zurück.

d2flovg_height( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Breite/Höhe des Objekts Werteliste als Zahl zurück.

d2flovg_lang_dir( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Richtung des Objekts Werteliste als Zahl zurück.

d2flovg_lst_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Listentyp des Objekts Werteliste als Zahl zurück.

d2flovg_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts Werteliste als Objekt zurück.

d2flovg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Name des Objekts Werteliste als Text zurück.

d2flovg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Werteliste als Objekt zurück.

d2flovg_old_lov_txt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Alter Wertelistentext des Objekts Werteliste als Text zurück.

d2flovg_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts Werteliste als Objekt zurück.

d2flovg_par_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Werteliste als Text zurück.

d2flovg_par_flpath( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Werteliste als Text zurück.

d2flovg_par_modstr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Werteliste als Zahl zurück.

d2flovg_par_modtyp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Werteliste als Zahl zurück.

d2flovg_par_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODULE des Objekts Werteliste als Text zurück.

d2flovg_par_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_NAM des Objekts Werteliste als Text zurück.

d2flovg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Werteliste als Objekt zurück.

d2flovg_rec_grp_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datensatzgruppe des Objekts Werteliste als Text zurück.

d2flovg_rec_grp_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_REC_GRP_OBJ des Objekts Werteliste als Objekt zurück.

d2flovg_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Werteliste als Objekt zurück.

d2flovg_title( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Titel des Objekts Werteliste als Text zurück.

d2flovg_vat_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Visuelle Attributgruppe des Objekts Werteliste als Text zurück.

d2flovg_vat_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_VAT_OBJ des Objekts Werteliste als Objekt zurück.

d2flovg_white_on_black( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Weiß auf Schwarz des Objekts Werteliste als Booleschen Wert zurück.

d2flovg_width( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Breite/Höhe des Objekts Werteliste als Zahl zurück.

d2flovg_x_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs X-Position/Y-Position des Objekts Werteliste als Zahl zurück.

d2flovg_y_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs X-Position/Y-Position des Objekts Werteliste als Zahl zurück.

d2flovs_auto_col_wid( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Automatische Spaltenbreite des Objekts Werteliste.

d2flovs_auto_disp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Automatisch anzeigen des Objekts Werteliste.

d2flovs_auto_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Automatische Position des Objekts Werteliste.

d2flovs_auto_rfrsh( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Automatisches Auffrischen des Objekts Werteliste.

d2flovs_auto_skip( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Automatisches Überspringen des Objekts Werteliste.

d2flovs_auto_slct( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Automatische Auswahl des Objekts Werteliste.

d2flovs_back_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Hintergrundfarbe des Objekts Werteliste.

d2flovs_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Werteliste.

d2flovs_col_map( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Attribute Spaltenzuordnung des Objekts Werteliste.

d2flovs_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Kommentare des Objekts Werteliste.

d2flovs_fill_pat( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Füllmuster des Objekts Werteliste.

d2flovs_fltr_before_disp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vor Anzeige filtern des Objekts Werteliste.

d2flovs_font_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftartname des Objekts Werteliste.

d2flovs_font_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftgrad des Objekts Werteliste.

d2flovs_font_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Zeichenabstand des Objekts Werteliste.

d2flovs_font_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftstil des Objekts Werteliste.

d2flovs_font_wght( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftstärke des Objekts Werteliste.

d2flovs_fore_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vordergrundfarbe des Objekts Werteliste.

d2flovs_height( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Breite/Höhe des Objekts Werteliste.

d2flovs_lang_dir( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Richtung des Objekts Werteliste.

d2flovs_lst_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Listentyp des Objekts Werteliste.

d2flovs_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MODULE des Objekts Werteliste.

d2flovs_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Name des Objekts Werteliste.

d2flovs_next( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NEXT des Objekts Werteliste.

d2flovs_old_lov_txt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Alter Wertelistentext des Objekts Werteliste.

d2flovs_owner( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_OWNER des Objekts Werteliste.

d2flovs_par_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Werteliste.

d2flovs_par_flpath( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Werteliste.

d2flovs_par_modstr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Werteliste.

d2flovs_par_modtyp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Werteliste.

d2flovs_par_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODULE des Objekts Werteliste.

d2flovs_par_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_NAM des Objekts Werteliste.

d2flovs_previous( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PREVIOUS des Objekts Werteliste.

d2flovs_rec_grp_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datensatzgruppe des Objekts Werteliste.

d2flovs_rec_grp_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_REC_GRP_OBJ des Objekts Werteliste.

d2flovs_source( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SOURCE des Objekts Werteliste.

d2flovs_title( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Titel des Objekts Werteliste.

d2flovs_vat_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Visuelle Attributgruppe des Objekts Werteliste.

d2flovs_xxx( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs XXX des Objekts Werteliste.

d2flovs_vat_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_VAT_OBJ des Objekts Werteliste.

d2flovs_white_on_black( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Weiß auf Schwarz des Objekts Werteliste.

d2flovs_width( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Breite/Höhe des Objekts Werteliste.

d2flovs_x_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs X-Position/Y-Position des Objekts Werteliste.

d2flovs_y_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs X-Position/Y-Position des Objekts Werteliste.


Makros des Objekts Menü

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Menü von Form Builder beschrieben.

d2fmnug_btm_ttl( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Fußnote des Objekts Menü als Text zurück.

d2fmnug_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Menü als Zeiger dvoid zurück.

d2fmnug_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Kommentare des Objekts Menü als Text zurück.

d2fmnug_mnu_itm( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menüpunkttyp des Objekts Menü als Objekt zurück.

d2fmnug_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts Menü als Objekt zurück.

d2fmnug_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Name des Objekts Menü als Text zurück.

d2fmnug_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Menü als Objekt zurück.

d2fmnug_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts Menü als Objekt zurück.

d2fmnug_par_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Menü als Text zurück.

d2fmnug_par_flpath( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Menü als Text zurück.

d2fmnug_par_modstr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Menü als Zahl zurück.

d2fmnug_par_modtyp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Menü als Zahl zurück.

d2fmnug_par_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODULE des Objekts Menü als Text zurück.

d2fmnug_par_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_NAM des Objekts Menü als Text zurück.

d2fmnug_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Menü als Objekt zurück.

d2fmnug_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Menü als Objekt zurück.

d2fmnug_sub_ttl( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Untertitel des Objekts Menü als Text zurück.

d2fmnug_tear_off_mnu( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abtrennbares Menü des Objekts Menü als Booleschen Wert zurück.

d2fmnug_title( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Titel des Objekts Menü als Text zurück.

d2fmnus_btm_ttl( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Fußnote des Objekts Menü.

d2fmnus_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Menü.

d2fmnus_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Kommentare des Objekts Menü.

d2fmnus_mnu_itm( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menüpunkttyp des Objekts Menü.

d2fmnus_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MODULE des Objekts Menü.

d2fmnus_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Name des Objekts Menü.

d2fmnus_next( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NEXT des Objekts Menü.

d2fmnus_owner( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_OWNER des Objekts Menü.

d2fmnus_par_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Menü.

d2fmnus_par_flpath( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Menü.

d2fmnus_par_modstr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Menü.

d2fmnus_par_modtyp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Menü.

d2fmnus_par_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODULE des Objekts Menü.

d2fmnus_par_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_NAM des Objekts Menü.

d2fmnus_previous( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PREVIOUS des Objekts Menü.

d2fmnus_source( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SOURCE des Objekts Menü.

d2fmnus_sub_ttl( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Untertitel des Objekts Menü.

d2fmnus_tear_off_mnu( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abtrennbares Menü des Objekts Menü.

d2fmnus_title( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Titel des Objekts Menü.


Makros des Objekts Menümodul

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Menümodul von Form Builder beschrieben.

d2fmmdg_att_lib( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_ATT_LIB des Objekts Menümodul als Objekt zurück.

d2fmmdg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Menümodul als Zeiger dvoid zurück.

d2fmmdg_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Kommentare des Objekts Menümodul als Text zurück.

d2fmmdg_inhrt_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_INHRT_STY des Objekts Menümodul als Zahl zurück.

d2fmmdg_main_mnu( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Hauptmenü des Objekts Menümodul als Text zurück.

d2fmmdg_menu( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MENU des Objekts Menümodul als Objekt zurück.

d2fmmdg_mnu_description( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menübeschreibung des Objekts Menümodul als Text zurück.

d2fmmdg_mnu_drctry( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menüordner des Objekts Menümodul als Text zurück.

d2fmmdg_mnu_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menüdateiname des Objekts Menümodul als Text zurück.

d2fmmdg_mnu_param( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MNU_PARAM des Objekts Menümodul als Objekt zurück.

d2fmmdg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Name des Objekts Menümodul als Text zurück.

d2fmmdg_mnu_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Menümodul als Objekt zurück.

d2fmmdg_obj_grp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OBJ_GRP des Objekts Menümodul als Objekt zurück.

d2fmmdg_par_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Menümodul als Text zurück.

d2fmmdg_par_flpath( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Menümodul als Text zurück.

d2fmmdg_par_modstr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Menümodul als Zahl zurück.

d2fmmdg_par_modtyp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Menümodul als Zahl zurück.

d2fmmdg_par_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODULE des Objekts Menümodul als Text zurück.

d2fmmdg_par_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_NAM des Objekts Menümodul als Text zurück.

d2fmmdg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Menümodul als Objekt zurück.

d2fmmdg_prog_unit( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PROG_UNIT des Objekts Menümodul als Objekt zurück.

d2fmmdg_prop_class( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Attributklasse des Objekts Menümodul als Objekt zurück.

d2fmmdg_role_count( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_ROLE_COUNT des Objekts Menümodul als Zahl zurück.

d2fmmdg_share_lib( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bibliothek mit Form gemeinsam benutzen des Objekts Menümodul als Booleschen Wert zurück.

d2fmmdg_short_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Kurzname des Objekts Menümodul als Text zurück.

d2fmmdg_strtup_code( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Startcode des Objekts Menümodul als Text zurück.

d2fmmdg_use_security( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Sicherheit verwenden des Objekts Menümodul als Booleschen Wert zurück.

d2fmmdg_vis_attr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_VIS_ATTR des Objekts Menümodul als Objekt zurück.

d2fmmds_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Menümodul.

d2fmmds_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Kommentare des Objekts Menümodul.

d2fmmds_inhrt_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_INHRT_STY des Objekts Menümodul.

d2fmmds_main_mnu( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Hauptmenü des Objekts Menümodul.

d2fmmds_menu( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MENU des Objekts Menümodul.

d2fmmds_mnu_description( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menübeschreibung des Objekts Menümodul.

d2fmmds_mnu_drctry( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menüordner des Objekts Menümodul.

d2fmmds_mnu_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menüdateiname des Objekts Menümodul.

d2fmmds_mnu_param( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MNU_PARAM des Objekts Menümodul.

d2fmmds_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Name des Objekts Menümodul.

d2fmmds_mnu_next( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NEXT des Objekts Menümodul.

d2fmmds_obj_grp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_OBJ_GRP des Objekts Menümodul.

d2fmmds_par_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Menümodul.

d2fmmds_par_flpath( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Menümodul.

d2fmmds_par_modstr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Menümodul.

d2fmmds_par_modtyp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Menümodul.

d2fmmds_par_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODULE des Objekts Menümodul.

d2fmmds_par_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_NAM des Objekts Menümodul.

d2fmmds_previous( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PREVIOUS des Objekts Menümodul.

d2fmmds_prog_unit( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PROG_UNIT des Objekts Menümodul.

d2fmmds_prop_class( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Attributklasse des Objekts Menümodul.

d2fmmds_role_count( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_ROLE_COUNT des Objekts Menümodul.

d2fmmds_share_lib( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bibliothek mit Form gemeinsam benutzen des Objekts Menümodul.

d2fmmds_short_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Kurzname des Objekts Menümodul.

d2fmmds_strtup_code( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Startcode des Objekts Menümodul.

d2fmmds_use_security( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Sicherheit verwenden des Objekts Menümodul.


Makros des Objekts Menüpunkt

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Menüpunkt von Form Builder beschrieben.

d2fmnig_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Menüpunkt als Zeiger dvoid zurück.

d2fmnig_com_txt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Befehlstext des Objekts Menüpunkt als Text zurück.

d2fmnig_com_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Befehlstyp des Objekts Menüpunkt als Zahl zurück.

d2fmnig_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Kommentare des Objekts Menüpunkt als Text zurück.

d2fmnig_disp_no_priv( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Anzeige ohne Berechtigung des Objekts Menüpunkt als Booleschen Wert zurück.

d2fmnig_enabled( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Aktiviert des Objekts Menüpunkt als Booleschen Wert zurück.

d2fmnig_font_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftartname des Objekts Menüpunkt als Text zurück.

d2fmnig_font_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftgrad des Objekts Menüpunkt als Zahl zurück.

d2fmnig_font_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Zeichenabstand des Objekts Menüpunkt als Zahl zurück.

d2fmnig_font_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftstil des Objekts Menüpunkt als Zahl zurück.

d2fmnig_font_wght( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftstärke des Objekts Menüpunkt als Zahl zurück.

d2fmnig_hint( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Hinweis des Objekts Menüpunkt als Text zurück.

d2fmnig_hlp_description( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Hilfe des Objekts Menüpunkt als Text zurück.

d2fmnig_icon_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Symbol-Dateiname des Objekts Menüpunkt als Text zurück.

d2fmnig_icon_in_mnu( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Als Symbol des Objekts Menüpunkt als Booleschen Wert zurück.

d2fmnig_kdrd_acc( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schnelltaste des Objekts Menüpunkt als Text zurück.

d2fmnig_label( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Beschriftung des Objekts Menüpunkt als Text zurück.

d2fmnig_magic_itm( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Magischer Menüpunkt des Objekts Menüpunkt als Zahl zurück.

d2fmnig_mnu_itm_code( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MNU_ITM_CODE des Objekts Menüpunkt als Text zurück.

d2fmnig_mnu_itm_rad_grp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menüpunkt Optionsgruppe des Objekts Menüpunkt als Text zurück.

d2fmnig_mnu_itm_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menüpunkttyp des Objekts Menüpunkt als Zahl zurück.

d2fmnig_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts Menüpunkt als Objekt zurück.

d2fmnig_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Name des Objekts Menüpunkt als Text zurück.

d2fmnig_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Menüpunkt als Objekt zurück.

d2fmnig_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts Menüpunkt als Objekt zurück.

d2fmnig_par_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Menüpunkt als Text zurück.

d2fmnig_par_flpath( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Menüpunkt als Text zurück.

d2fmnig_par_modstr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Menüpunkt als Zahl zurück.

d2fmnig_par_modtyp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Menüpunkt als Zahl zurück.

d2fmnig_par_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODULE des Objekts Menüpunkt als Text zurück.

d2fmnig_par_num( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_NUM des Objekts Menüpunkt als Text zurück.

d2fmnig_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Menüpunkt als Objekt zurück.

d2fmnig_role_count( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_ROLE_COUNT des Objekts Menüpunkt als Zahl zurück.

d2fmnig_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Menüpunkt als Objekt zurück.

d2fmnig_sub_mnu_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SUB_MNU_NAM des Objekts Menüpunkt als Text zurück.

d2fmnig_sub_mnu_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SUB_MNU_OBJ des Objekts Menüpunkt als Objekt zurück.

d2fmnig_vat_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Visuelle Attributgruppe des Objekts Menüpunkt als Text zurück.

d2fmnig_vat_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_VAT_OBJ des Objekts Menüpunkt als Objekt zurück.

d2fmnig_visible( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Sichtbar des Objekts Menüpunkt als Booleschen Wert zurück.

d2fmnig_vsbl_in_horz_mnu_tlbr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Sichtbar in horizontaler/vertikaler Menüsymbolleiste des Objekts Menüpunkt als Booleschen Wert zurück.

d2fmnig_vsbl_in_menu( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Sichtbar in Menü des Objekts Menüpunkt als Booleschen Wert zurück.

d2fmnig_vsbl_in_vert_mnu_tlbr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Sichtbar in horizontaler/vertikaler Menüsymbolleiste des Objekts Menüpunkt als Booleschen Wert zurück.

d2fmnis_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Menüpunkt.

d2fmnis_com_txt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Befehlstext des Objekts Menüpunkt.

d2fmnis_com_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Befehlstyp des Objekts Menüpunkt.

d2fmnis_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Kommentare des Objekts Menüpunkt.

d2fmnis_disp_no_priv( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Anzeige ohne Berechtigung des Objekts Menüpunkt.

d2fmnis_enabled( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Aktiviert des Objekts Menüpunkt.

d2fmnis_font_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftartname des Objekts Menüpunkt.

d2fmnis_font_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftgrad des Objekts Menüpunkt.

d2fmnis_font_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Zeichenabstand des Objekts Menüpunkt.

d2fmnis_font_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftstil des Objekts Menüpunkt.

d2fmnis_font_wght( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftstärke des Objekts Menüpunkt.

d2fmnis_hint( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Hinweis des Objekts Menüpunkt.

d2fmnis_hlp_description( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Hilfe des Objekts Menüpunkt.

d2fmnis_icon_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Symbol-Dateiname des Objekts Menüpunkt.

d2fmnis_icon_in_mnu( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Als Symbol des Objekts Menüpunkt.

d2fmnis_kdrd_acc( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schnelltaste des Objekts Menüpunkt.

d2fmnis_label( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Beschriftung des Objekts Menüpunkt.

d2fmnis_magic_itm( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Magischer Menüpunkt des Objekts Menüpunkt.

d2fmnis_mnu_itm_code( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MNU_ITM_CODE des Objekts Menüpunkt.

d2fmnis_mnu_itm_rad_grp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menüpunkt Optionsgruppe des Objekts Menüpunkt.

d2fmnis_mnu_itm_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menüpunkttyp des Objekts Menüpunkt.

d2fmnis_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MODULE des Objekts Menüpunkt.

d2fmnis_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Name des Objekts Menüpunkt.

d2fmnis_next( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NEXT des Objekts Menüpunkt.

d2fmnis_owner( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_OWNER des Objekts Menüpunkt.

d2fmnis_par_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Menüpunkt.

d2fmnis_par_flpath( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Menüpunkt.

d2fmnis_par_modstr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Menüpunkt.

d2fmnis_par_modtyp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Menüpunkt.

d2fmnis_par_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODULE des Objekts Menüpunkt.

d2fmnis_par_num( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_NUM des Objekts Menüpunkt.

d2fmnis_previous( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PREVIOUS des Objekts Menüpunkt.

d2fmnis_role_count( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_ROLE_COUNT des Objekts Menüpunkt.

d2fmnis_source( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SOURCE des Objekts Menüpunkt.

d2fmnis_sub_mnu_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SUB_MNU_NAM des Objekts Menüpunkt.

d2fmnis_sub_mnu_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SUB_MNU_OBJ des Objekts Menüpunkt.

d2fmnis_vat_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Visuelle Attributgruppe des Objekts Menüpunkt.

d2fmnis_vat_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_VAT_OBJ des Objekts Menüpunkt.

d2fmnis_visible( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Sichtbar des Objekts Menüpunkt.

d2fmnis_vsbl_in_horz_mnu_tlbr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Sichtbar in horizontaler/vertikaler Menüsymbolleiste des Objekts Menüpunkt.

d2fmnis_vsbl_in_menu( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Sichtbar in Menü des Objekts Menüpunkt.

d2fmnis_vsbl_in_vert_mnu_tlbr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Sichtbar in horizontaler/vertikaler Menüsymbolleiste des Objekts Menüpunkt.


Makros des Objekts Menüparameter

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Menüparameter von Form Builder beschrieben.

d2fmpmg_assoc_menus_count( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_ASSOC_MENUS_COUNT des Objekts Menüparameter als Zahl zurück.

d2fmpmg_assoc_mnus( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Verknüpfte Menüs des Objekts Menüparameter als Objekt zurück.

d2fmpmg_case_rstrction( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Einschränkung Schreibweise des Objekts Menüparameter als Zahl zurück.

d2fmpmg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Menüparameter als Zeiger dvoid zurück.

d2fmpmg_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Kommentare des Objekts Menüparameter als Text zurück.

d2fmpmg_conceal_data( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Daten verbergen des Objekts Menüparameter als Booleschen Wert zurück.

d2fmpmg_fixed_len( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Feste Länge des Objekts Menüparameter als Booleschen Wert zurück.

d2fmpmg_hint( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Hinweis des Objekts Menüparameter als Text zurück.

d2fmpmg_label( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Beschriftung des Objekts Menüparameter als Text zurück.

d2fmpmg_max_len( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Maximale Länge des Objekts Menüparameter als Zahl zurück.

d2fmpmg_mnu_param_init_val( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menüparameter-Ausgangswert des Objekts Menüparameter als Text zurück.

d2fmpmg_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts Menüparameter als Objekt zurück.

d2fmpmg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Name des Objekts Menüparameter als Text zurück.

d2fmpmg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Menüparameter als Objekt zurück.

d2fmpmg_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts Menüparameter als Objekt zurück.

d2fmpmg_par_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Menüparameter als Text zurück.

d2fmpmg_par_flpath( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Menüparameter als Text zurück.

d2fmpmg_par_modstr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Menüparameter als Zahl zurück.

d2fmpmg_par_modtyp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Menüparameter als Zahl zurück.

d2fmpmg_par_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODULE des Objekts Menüparameter als Text zurück.

d2fmpmg_par_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_NAM des Objekts Menüparameter als Text zurück.

d2fmpmg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Menüparameter als Objekt zurück.

d2fmpmg_required( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_REQUIRED des Objekts Menüparameter als Booleschen Wert zurück.

d2fmpmg_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Menüparameter als Objekt zurück.

d2fmpms_assoc_mnus( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Verknüpfte Menüs des Objekts Menüparameter.

d2fmpms_case_rstrction( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Einschränkung Schreibweise des Objekts Menüparameter.

d2fmpms_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Menüparameter.

d2fmpms_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Kommentare des Objekts Menüparameter.

d2fmpms_conceal_data( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Daten verbergen des Objekts Menüparameter.

d2fmpms_fixed_len( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Feste Länge des Objekts Menüparameter.

d2fmpms_hint( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Hinweis des Objekts Menüparameter.

d2fmpms_label( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Beschriftung des Objekts Menüparameter.

d2fmpms_max_len( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Maximale Länge des Objekts Menüparameter.

d2fmpms_mnu_param_init_val( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menüparameter-Ausgangswert des Objekts Menüparameter.

d2fmpms_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MODULE des Objekts Menüparameter.

d2fmpms_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Name des Objekts Menüparameter.

d2fmpms_next( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NEXT des Objekts Menüparameter.

d2fmpms_owner( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_OWNER des Objekts Menüparameter.

d2fmpms_par_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Menüparameter.

d2fmpms_par_flpath( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Menüparameter.

d2fmpms_par_modstr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Menüparameter.

d2fmpms_par_modtyp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Menüparameter.

d2fmpms_par_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODULE des Objekts Menüparameter.

d2fmpms_par_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_NAM des Objekts Menüparameter.

d2fmpms_previous( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PREVIOUS des Objekts Menüparameter.

d2fmpms_required( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_REQUIRED des Objekts Menüparameter.


Objektmakros (Allgemeine Makros)

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts (Allgemeines Objekt) von Form Builder beschrieben

d2fobg_access_key( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Zugriffstaste des Objekts als Text zurück.

d2fobg_activex_class( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_ACTIVEX_CLASS des Objekts als Text zurück.

d2fobg_acitvex_val_prop( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_ACTIVEX_VAL_PROP des Objekts als Text zurück.

d2fobg_alert( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_ALERT des Objekts als Objekt zurück.

d2fobg_allow_expansion( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Erweitern zulassen des Objekts als Booleschen Wert zurück.

d2fobg_allow_mlt_lin_prmpts( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Mehrzeilige Prompts zulassen des Objekts als Booleschen Wert zurück.

d2fobg_allow_strt_att_prmpts( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Mit Start verknüpfte Prompts zulassen des Objekts als Booleschen Wert zurück.

d2fobg_allow_top_att_prpmts( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Mit oberem Rand verknüpfte Prompts zulassen des Objekts als Booleschen Wert zurück.

d2fobg_alt_msg( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Meldung des Objekts als Text zurück.

d2fobg_alt_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Typ des Warnfensters des Objekts als Zahl zurück.

d2fobg_arrow_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Pfeilstil des Objekts als Zahl zurück.

d2fobg_menus_count( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MENUS_COUNT des Objekts als Zahl zurück.

d2fobg_assoc_mnus( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Verknüpfte Menüs des Objekts als Objekt zurück.

d2fobg_att_lib( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_ATT_LIB des Objekts als Objekt zurück.

d2fobg_audio_chnnls( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Audio-Kanäle des Objekts als Zahl zurück.

d2fobg_auto_col_wid( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Automatische Spaltenbreite des Objekts als Booleschen Wert zurück.

d2fobg_auto_disp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Automatisch anzeigen des Objekts als Booleschen Wert zurück.

d2fobg_auto_hint( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Hinweis automatisch anzeigen des Objekts als Booleschen Wert zurück.

d2fobg_auto_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Automatische Position des Objekts als Booleschen Wert zurück.

d2fobg_auto_qry( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Automatische Abfrage des Objekts als Booleschen Wert zurück.

d2fobg_auto_rfrsh( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Automatisches Auffrischen des Objekts als Booleschen Wert zurück.

d2fobg_auto_skp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Automatisches Überspringen des Objekts als Booleschen Wert zurück.

d2fobg_auto_slct( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Automatische Auswahl des Objekts als Booleschen Wert zurück.

d2fobg_back_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Hintergrundfarbe des Objekts als Text zurück.

d2fobg_xxx( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftstärke des Objekts als Zahl zurück.

d2fobg_bevel( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Umriß des Objekts als Zahl zurück.

d2fobg_blk_description( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_BLK_DESCRIPTION des Objekts als Text zurück.

d2fobg_block( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_BLOCK des Objekts als Objekt zurück.

d2fobg_bounding_bx_scalable( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_BOUNDING_BX_SCALABLE des Objekts als Booleschen Wert zurück.

d2fobg_btm_ttl( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_BTM_TTL des Objekts als Text zurück.

d2fobg_btn_1_lbl( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Beschriftung Schaltfläche 1 des Objekts als Text zurück.

d2fobg_btn_2_lbl( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Beschriftung Schaltfläche 2 des Objekts als Text zurück.

d2fobg_btn_3_lbl( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Beschriftung Schaltfläche 3 des Objekts als Text zurück.

d2fobg_calc_mode( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Berechnungsmodus des Objekts als Zahl zurück.

d2fobg_canvas( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CANVAS des Objekts als Objekt zurück.

d2fobg_cap_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Linienende Objektrand des Objekts als Zahl zurück.

d2fobg_case_insensitive_qry( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abfrage ohne Berücksichtigung der Schreibweise des Objekts als Booleschen Wert zurück.

d2fobg_case_restriction( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Einschränkung Schreibweise des Objekts als Zahl zurück.

d2fobg_chk_bx_other_vals( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Kontrollkästchenzuordnung anderer Werte des Objekts als Zahl zurück.

d2fobg_chked_val( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausgewählt des Objekts als Text zurück.

d2fobg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts als Zeiger dvoid zurück.

d2fobg_clip_hgt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Höhe Begrenzungsrechteck des Objekts als Zahl zurück.

d2fobg_clip_wid( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Breite Begrenzungsrechteck des Objekts als Zahl zurück.

d2fobg_clip_x_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs X-Ursprung Begrenzungsrechteck des Objekts als Zahl zurück.

d2fobg_clip_y_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Y-Ursprung Begrenzungsrechteck des Objekts als Zahl zurück.

d2fobg_closed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Polygon-Marke/Begrenzungslinie des Objekts als Booleschen Wert zurück.

d2fobg_cls_allowed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schließen zulässig des Objekts als Booleschen Wert zurück.

d2fobg_cmprssion_qlty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CMPRSSION_QLTY des Objekts als Zahl zurück.

d2fobg_cnv_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Leinwand des Objekts als Text zurück.

d2fobg_cnv_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CNV_OBJ des Objekts als Objekt zurück.

d2fobg_cnv_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Leinwandtyp des Objekts als Zahl zurück.

d2fobg_col_dat_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_COL_DAT_TYP des Objekts als Zahl zurück.

d2fobg_col_map( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Attribute Spaltenzuordnung des Objekts als Objekt zurück.

d2fobg_col_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Spaltenname des Objekts als Text zurück.

d2fobg_col_spec( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Spaltenspezifikation des Objekts als Objekt zurück.

d2fobg_col_vals_count( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_COL_VALS_COUNT des Objekts als Zahl zurück.

d2fobg_com_txt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Befehlstext des Objekts als Text zurück.

d2fobg_com_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_COM_TYP des Objekts als Zahl zurück.

d2fobg_comm_mode( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Kommunikationsmodus des Objekts als Zahl zurück.

d2fobg_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Kommentare des Objekts als Text zurück.

d2fobg_compress( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Komprimieren des Objekts als Zahl zurück.

d2fobg_conceal_data( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Daten verbergen des Objekts als Booleschen Wert zurück.

d2fobg_console_win( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Konsolfenster des Objekts als Text zurück.

d2fobg_copy_val_from_itm( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Wert aus Objekt kopieren des Objekts als Text zurück.

d2fobg_corner_radius_x( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs X-Winkelradius für Abgerundetes Rechteck des Objekts als Zahl zurück.

d2fobg_corner_radius_y( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Y-Winkelradius für Abgerundetes Rechteck des Objekts als Zahl zurück.

d2fobg_crsr_mode( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Cursor-Modus des Objekts als Zahl zurück.

d2fobg_cstm_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Benutzerdefinierter Abstand für Textobjekt des Objekts als Zahl zurück.

d2fobg_dash_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Strichart für Objektrand des Objekts als Zahl zurück.

d2fobg_dat_src_blk( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datenquellblock des Objekts als Text zurück.

d2fobg_dat_src_x_axs( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datenquelle X-Achse des Objekts als Text zurück.

d2fobg_dat_src_y_axs( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datenquelle Y-Achse des Objekts als Text zurück.

d2fobg_dat_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datentyp des Objekts als Zahl zurück.

d2fobg_db_blk( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datenbank-Datenblock des Objekts als Booleschen Wert zurück.

d2fobg_db_itm( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datenbankobjekt des Objekts als Booleschen Wert zurück.

d2fobg_defer_req_enf( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DEFER_REQ_ENF des Objekts als Booleschen Wert zurück.

d2fobg_deferred( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Verzögert des Objekts als Booleschen Wert zurück.

d2fobg_del_allowed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Löschen zulässig des Objekts als Booleschen Wert zurück.

d2fobg_del_proc_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prozedurname löschen des Objekts als Text zurück.

d2fobg_del_rec( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Verhalten bei Datensatz löschen des Objekts als Zahl zurück.

d2fobg_detail_blk( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Detail-Block des Objekts als Text zurück.

d2fobg_dflt_alt_btn( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Standard-Warnschaltfläche des Objekts als Zahl zurück.

d2fobg_dflt_btn( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Standardschaltfläche des Objekts als Booleschen Wert zurück.

d2fobg_disp_in_kbrd_hlp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Anzeige in Tastenbelegung des Objekts als Booleschen Wert zurück.

d2fobg_disp_no_priv( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Anzeige ohne Berechtigung des Objekts als Booleschen Wert zurück.

d2fobg_disp_qlty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Anzeigequalität des Objekts als Zahl zurück.

d2fobg_disp_wid( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Anzeigebreite des Objekts als Zahl zurück.

d2fobg_dist_bwwn_recs( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abstand zwischen Datensätzen des Objekts als Zahl zurück.

d2fobg_dither( ctx, obj, val );

Dieser Makro gibt den Wert des Grafik-Attributs Bild-Dithering des Objekts als Booleschen Wert zurück.

d2fobg_dml_ary_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs DML-Array-Größe des Objekts als Zahl zurück.

d2fobg_dml_dat_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs DML-Datenzielname des Objekts als Text zurück.

d2fobg_dml_dat_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs DML-Datenzieltyp des Objekts als Zahl zurück.

d2fobg_dsa_mode( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DSA_MODE des Objekts als Zahl zurück.

d2fobg_dsa_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DSA_NAM des Objekts als Text zurück.

d2fobg_dsa_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DSA_TYPE des Objekts als Zahl zurück.

d2fobg_dsa_typ_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DSA_TYP_NAM des Objekts als Text zurück.

d2fobg_dsa_val( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DSA_VAL des Objekts als Text zurück.

d2fobg_dsc_len( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DSC_LEN des Objekts als Zahl zurück.

d2fobg_dsc_mandatory( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DSC_MANDATORY des Objekts als Booleschen Wert zurück.

d2fobg_dsc_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DSC_NAM des Objekts als Text zurück.

d2fobg_dsc_precision( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DSC_PRECISION des Objekts als Zahl zurück.

d2fobg_dsc_scale( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DSC_SCALE des Objekts als Zahl zurück.

d2fobg_dsc_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DSC_TYP des Objekts als Zahl zurück.

d2fobg_edge_back_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Hintergrundfarbe Objektrand des Objekts als Text zurück.

d2fobg_edge_fore_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vordergrundfarbe Objektrand des Objekts als Text zurück.

d2fobg_editor( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Editor des Objekts als Objekt zurück.

d2fobg_edt_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Editorname des Objekts als Text zurück.

d2fobg_edt_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_EDT_OBJ des Objekts als Objekt zurück.

d2fobg_edt_x_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Editor X-Position/Editor Y-Position des Objekts als Zahl zurück.

d2fobg_edt_y_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Editor X-Position/Editor Y-Position des Objekts als Zahl zurück.

d2fobg_enabled( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Aktiviert des Objekts als Booleschen Wert zurück.

d2fobg_enfrc_col_security( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Spaltensicherheit durchsetzen des Objekts als Booleschen Wert zurück.

d2fobg_enfrc_prmry_key( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Primärschlüssel durchsetzen des Objekts als Booleschen Wert zurück.

d2fobg_exec_hierarchy( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausführungsstil des Objekts als Zahl zurück.

d2fobg_exec_mode( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausführungsmodus des Objekts als Zahl zurück.

d2fobg_fill_pat( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Füllmuster des Objekts als Text zurück.

d2fobg_fire_in_qry( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs In Abfragemodus auslösen des Objekts als Booleschen Wert zurück.

d2fobg_fixed_bounding_bx( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Feste Größe von Objektumrandung des Objekts als Booleschen Wert zurück.

d2fobg_fixed_len( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Feste Länge des Objekts als Booleschen Wert zurück.

d2fobg_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Dateiname des Objekts als Text zurück.

d2fobg_fltr_before_disp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vor Anzeige filtern des Objekts als Booleschen Wert zurück.

d2fobg_fmt_msk( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Formatmaske des Objekts als Text zurück.

d2fobg_font_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftartname des Objekts als Text zurück.

d2fobg_font_scaleable( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Punktgröße skaliert mit Objekt des Objekts als Booleschen Wert zurück.

d2fobg_font_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftgrad des Objekts als Zahl zurück.

d2fobg_font_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Zeichenabstand des Objekts als Zahl zurück.

d2fobg_font_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftstil des Objekts als Zahl zurück.

d2fobg_font_wght( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftstärke des Objekts als Zahl zurück.

d2fobg_fore_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vordergrundfarbe des Objekts als Text zurück.

d2fobg_form_param( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FORM_PARAM des Objekts als Objekt zurück.

d2fobg_formula( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Formel des Objekts als Text zurück.

d2fobg_frame_align( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rahmenausrichtung des Objekts als Zahl zurück.

d2fobg_frame_ttl( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rahmentitel des Objekts als Text zurück.

d2fobg_frame_ttl_align( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausrichtung Rahmentitel des Objekts als Zahl zurück.

d2fobg_frame_ttl_back_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rahmentitel Hintergrundfarbe des Objekts als Text zurück.

d2fobg_frame_ttl_fill_pat( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rahmentitel Füllmuster des Objekts als Text zurück.

d2fobg_frame_ttl_font_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rahmentitel Schriftartname des Objekts als Text zurück.

d2fobg_frame_ttl_font_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rahmentitel Schriftgrad des Objekts als Zahl zurück.

d2fobg_frame_ttl_font_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rahmentitel Zeichenabstand des Objekts als Zahl zurück.

d2fobg_frame_ttl_font_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rahmentitel Schriftstil des Objekts als Zahl zurück.

d2fobg_frame_ttl_font_wght( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rahmentitel Schriftstärke des Objekts als Zahl zurück.

d2fobg_frame_ttl_fore_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rahmentitel Vordergrundfarbe des Objekts als Text zurück.

d2fobg_frame_ttl_ofst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Versatz Rahmentitel des Objekts als Zahl zurück.

d2fobg_frame_ttl_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abstand Rahmentitel des Objekts als Zahl zurück.

d2fobg_frame_ttl_vat_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rahmentitel Visuelle Attributgruppe des Objekts als Text zurück.

d2fobg_frame_ttl_val_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FRAME_TTL_VAL_OBJ des Objekts als Objekt zurück.

d2fobg_frst_navigation_blk_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Erster Navigationsblock des Objekts als Text zurück.

d2fobg_frst_navigation_blk_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FRST_NAVIGATION_BLK_OBJ des Objekts als Objekt zurück.

d2fobg_gra_font_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Grafik-Attributs Schriftartname des Objekts als Text zurück.

d2fobg_gra_font_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Grafik-Attributs Schriftgrad des Objekts als Zahl zurück.

d2fobg_gra_font_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Grafik-Attributs Schriftstil des Objekts als Zahl zurück.

d2fobg_gra_text( ctx, obj, val );

Dieser Makro gibt den Wert des Grafik-Attributs Text des Objekts als Text zurück.

d2fobg_graphic( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_GRAPHIC des Objekts als Objekt zurück.

d2fobg_graphics_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Grafik-Attributs Objekttyp des Objekts als Zahl zurück.

d2fobg_height( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Breite/Höhe des Objekts als Zahl zurück.

d2fobg_hide_on_exit( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Beim Beenden verbergen des Objekts als Zahl zurück.

d2fobg_highest_allowed_val( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Höchster zulässiger Wert/Niedrigster zulässiger Wert des Objekts als Text zurück.

d2fobg_hint( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Hinweis des Objekts als Text zurück.

d2fobg_hlp_description( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Hilfe des Objekts als Text zurück.

d2fobg_horz_jst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Horizontale Justierung von Textobjekt des Objekts als Zahl zurück.

d2fobg_horz_margn( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Horizontaler Rand des Objekts als Zahl zurück.

d2fobg_horz_obj_ofst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Horizontaler Objektversatz des Objekts als Zahl zurück.

d2fobg_horz_orgn( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Horizontalposition relativ zum Ursprung des Objekts als Zahl zurück.

d2fobg_horz_tlbr_cnv( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Horizontale Symbolleisten-Leinwand des Objekts als Text zurück.

d2fobg_htb_cnv_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_HTB_CNV_NAME des Objekts als Text zurück.

d2fobg_icon_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Symbol-Dateiname des Objekts als Text zurück.

d2fobg_icon_in_mnu( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FO_ICON_IN_MNU des Objekts als Booleschen Wert zurück.

d2fobg_iconic( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Als Symbol des Objekts als Booleschen Wert zurück.

d2fobg_img_dpth( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bildtiefe des Objekts als Zahl zurück.

d2fobg_img_fmt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bildformat des Objekts als Zahl zurück.

d2fobg_inhrt_mnu( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menü vererben des Objekts als Booleschen Wert zurück.

d2fobg_inhrt_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Stil vererben des Objekts als Zahl zurück.

d2fobg_init_kgrd_dir( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Anfänglicher Tastaturstatus des Objekts als Zahl zurück.

d2fobg_init_menu( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausgangsmenü des Objekts als Text zurück.

d2fobg_init_val( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausgangswert des Objekts als Text zurück.

d2fobg_insrt_allowed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Einsetzen zulässig des Objekts als Booleschen Wert zurück.

d2fobg_insrt_proc_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prozedurname einfügen des Objekts als Text zurück.

d2fobg_interaction_mode( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Interaktionsmodus des Objekts als Zahl zurück.

d2fobg_internal_end_angle( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_INTERNAL_END_ANGLE des Objekts als Zahl zurück.

d2fobg_internal_lin_wid( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_INTERNAL_LIN_WID des Objekts als Zahl zurück.

d2fobg_internal_rotation_angle( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_INTERNAL_ROTATION_ANGLE des Objekts als Zahl zurück.

d2fobg_internal_strt_angle( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_INTERNAL_STRT_ANGLE des Objekts als Zahl zurück.

d2fobg_isolation_mode( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Isolationsmodus des Objekts als Zahl zurück.

d2fobg_item( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_ITEM des Objekts als Objekt zurück.

d2fobg_itm_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Objekttyp des Objekts als Zahl zurück.

d2fobg_itms_disp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Anzahl angezeigter Objekte des Objekts als Zahl zurück.

d2fobg_join_cond( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Join-Bedingung des Objekts als Text zurück.

d2fobg_join_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Verknüpfungsstil von Objektrand des Objekts als Zahl zurück.

d2fobg_justification( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Justierung des Objekts als Zahl zurück.

d2fobg_kbrd_acc( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schnelltaste des Objekts als Text zurück.

d2fobg_kbrd_hlp_txt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Tastenbelegung-Hilfetext des Objekts als Text zurück.

d2fobg_kbrd_navigable( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Tastatur-navigierbar des Objekts als Booleschen Wert zurück.

d2fobg_kbrd_state( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Tastaturstatus des Objekts als Zahl zurück.

d2fobg_keep_crsr_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Cursor-Position beibehalten des Objekts als Booleschen Wert zurück.

d2fobg_key_mode( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schlüsselmodus des Objekts als Zahl zurück.

d2fobg_label( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Beschriftung des Objekts als Text zurück.

d2fobg_lang_dir( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Richtung des Objekts als Zahl zurück.

d2fobg_layout_data_blk_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Layout-Datenblock des Objekts als Text zurück.

d2fobg_layout_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Layoutstil des Objekts als Zahl zurück.

d2fobg_lib_loc( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Speicherort von PL/SQL-Bibliothek des Objekts als Text zurück.

d2fobg_lib_src( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Speicherort von PL/SQL-Quelle des Objekts als Zahl zurück.

d2fobg_lin_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Zeilenabstand des Objekts als Zahl zurück.

d2fobg_lock_mode( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Sperrmodus des Objekts als Zahl zurück.

d2fobg_lock_proc_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prozedurname sperren des Objekts als Text zurück.

d2fobg_lock_rec( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datensatz sperren des Objekts als Booleschen Wert zurück.

d2fobg_lov( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Werteliste des Objekts als Objekt zurück.

d2fobg_lov_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_LOV_NAM des Objekts als Text zurück.

d2fobg_lov_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_LOV_OBJ des Objekts als Objekt zurück.

d2fobg_lov_x_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs X-Position Liste des Objekts als Zahl zurück.

d2fobg_lov_y_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Y-Position Liste des Objekts als Zahl zurück.

d2fobg_lowest_allowed_val( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Höchster zulässiger Wert/Niedrigster zulässiger Wert des Objekts als Text zurück.

d2fobg_lst_element_count( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Anzahl von Listenelementobjekten des Objekts als Zahl zurück.

d2fobg_lst_in_blk_mnu( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs In Datenblockmenü aufgelistet des Objekts als Booleschen Wert zurück.

d2fobg_lst_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Listenstil des Objekts als Zahl zurück.

d2fobg_lst_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Listentyp des Objekts als Zahl zurück.

d2fobg_magic_itm( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Magischer Menüpunkt des Objekts als Zahl zurück.

d2fobg_main_mnu( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Hauptmenü des Objekts als Text zurück.

d2fobg_max_len( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Maximale Länge des Objekts als Zahl zurück.

d2fobg_max_objs( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Max. Objekte pro Zeile des Objekts als Zahl zurück.

d2fobg_max_qry_time( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Maximale Abfragezeit des Objekts als Zahl zurück.

d2fobg_max_recs_fetched( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Maximal abgerufene Datensätze des Objekts als Zahl zurück.

d2fobg_maximize_allowed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Maximieren zulässig des Objekts als Booleschen Wert zurück.

d2fobg_menu( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MENU des Objekts als Objekt zurück.

d2fobg_minimize_allowed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Minimieren zulässig des Objekts als Booleschen Wert zurück.

d2fobg_minimize_ttl( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Minimierter Titel des Objekts als Text zurück.

d2fobg_mlt_lin( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Mehrzeilig des Objekts als Booleschen Wert zurück.

d2fobg_mnu_description( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menübeschreibung des Objekts als Text zurück.

d2fobg_mnu_drctry( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menüordner des Objekts als Text zurück.

d2fobg_mnu_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menüdateiname des Objekts als Text zurück.

d2fobg_mnu_itm( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menüpunkttyp des Objekts als Objekt zurück.

d2fobg_mnu_itm_code( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MNU_ITM_CODE des Objekts als Text zurück.

d2fobg_mnu_itm_rad_grp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menüpunkt Optionsgruppe des Objekts als Text zurück.

d2fobg_mnu_itm_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menüpunkttyp des Objekts als Zahl zurück.

d2fobg_mnu_mod( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menümodul des Objekts als Text zurück.

d2fobg_mnu_param( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MNU_PARAM des Objekts als Objekt zurück.

d2fobg_mnu_param_init_val( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menüparameter-Ausgangswert des Objekts als Text zurück.

d2fobg_mnu_role( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menümodulrolle des Objekts als Text zurück.

d2fobg_mnu_src( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menüquelle des Objekts als Zahl zurück.

d2fobg_mnu_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Menüstil des Objekts als Zahl zurück.

d2fobg_modal( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Modal des Objekts als Booleschen Wert zurück.

d2fobg_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts als Objekt zurück.

d2fobg_mouse_navigate( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Mausnavigation des Objekts als Booleschen Wert zurück.

d2fobg_mouse_navigation_lmt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Mausnavigationsbegrenzung des Objekts als Zahl zurück.

d2fobg_mv_allowed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Verschieben zulässig des Objekts als Booleschen Wert zurück.

d2fobg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Name des Objekts als Text zurück.

d2fobg_navigation_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Navigationsstil des Objekts als Zahl zurück.

d2fobg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts als Objekt zurück.

d2fobg_nxt_navigation_blk_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NXT_NAVIGATION_BLK_NAM des Objekts als Text zurück.

d2fobg_nxt_navigation_blk_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NXT_NAVIGATION_BLK_OBJ des Objekts als Objekt zurück.

d2fobg_nxt_navigation_itm_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NXT_NAVIGATION_ITM_NAM des Objekts als Text zurück.

d2fobg_nxt_navigation_itm_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NXT_NAVIGATION_ITM_OBJ des Objekts als Objekt zurück.

d2fobg_obj_grp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OBJ_GRP des Objekts als Objekt zurück.

d2fobg_obj_grp_child_real_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OBJ_GRP_CHILD_REAL_OBJ des Objekts als Objekt zurück.

d2fobg_og_child( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OG_CHILD des Objekts als Objekt zurück.

d2fobg_old_lov_txt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Alter Wertelistentext des Objekts als Text zurück.

d2fobg_ole_act_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs OLE-Aktivierungsstil des Objekts als Zahl zurück.

d2fobg_ole_class( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs OLE-Klasse des Objekts als Text zurück.

d2fobg_ole_in_place_act( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs OLE in Forms aktiviert des Objekts als Booleschen Wert zurück.

d2fobg_ole_insd_out_support( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs OLE-Austauschunterstützung des Objekts als Booleschen Wert zurück.

d2fobg_ole_popup_mnu_itms( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs OLE-Popup-Menüpunkte des Objekts als Zahl zurück.

d2fobg_ole_resiz_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs OLE-Skalierungsstil des Objekts als Zahl zurück.

d2fobg_ole_show_popup_mnu( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs OLE-Popup-Menü anzeigen des Objekts als Booleschen Wert zurück.

d2fobg_ole_show_tnnt_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs OLE-Bewohnertyp anzeigen des Objekts als Booleschen Wert zurück.

d2fobg_ole_tnnt_aspct( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs OLE-Bewohnerdarstellung des Objekts als Zahl zurück.

d2fobg_ole_tnnt_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs OLE-Bewohnertypen des Objekts als Zahl zurück.

d2fobg_opt_hint( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Optimizer-Hinweis des Objekts als Text zurück.

d2fobg_ordr_by_clause( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Order By-Klausel des Objekts als Text zurück.

d2fobg_other_vals( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Zuordnung anderer Werte des Objekts als Text zurück.

d2fobg_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts als Objekt zurück.

d2fobg_par_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLNAM des Objekts als Text zurück.

d2fobg_par_flpath( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLPATH des Objekts als Text zurück.

d2fobg_par_modstr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODSTR des Objekts als Zahl zurück.

d2fobg_par_modtyp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODTYP des Objekts als Zahl zurück.

d2fobg_par_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODULE des Objekts als Text zurück.

d2fobg_par_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_NAM des Objekts als Text zurück.

d2fobg_param_dat_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Parameter-Datentyp des Objekts als Zahl zurück.

d2fobg_param_init_val( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Parameter-Ausgangswert des Objekts als Text zurück.

d2fobg_pgu_txt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PGU_TEXT des Objekts als Text zurück.

d2fobg_popup_mnu_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_POPUP_MNU_NAM des Objekts als Text zurück.

d2fobg_popup_mnu_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_POPUP_MNU_OBJ des Objekts als Text zurück.

d2fobg_popup_va_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_POPUP_VA_OBJ des Objekts als Objekt zurück.

d2fobg_precomp_summ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PRECOMP_SUMM des Objekts als Booleschen Wert zurück.

d2fobg_prev_navigation_blk_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vorheriger Navigationsblock des Objekts als Text zurück.

d2fobg_prev_navigation_blk_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREV_NAVIGATION_BLK_OBJ des Objekts als Objekt zurück.

d2fobg_prev_navigation_itm_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vorheriges Navigationsobjekt des Objekts als Text zurück.

d2fobg_prev_navigation_itm_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREV_NAVIGATION_ITM_OBJ des Objekts als Objekt zurück.

d2fobg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts als Objekt zurück.

d2fobg_prmpt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt des Objekts als Text zurück.

d2fobg_prmpt_align( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Ausrichtung des Objekts als Zahl zurück.

d2fobg_prmpt_align_ofst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Versatz Prompt-Ausrichtung des Objekts als Zahl zurück.

d2fobg_prmpt_att_edge( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rand Prompt-Zuordnung des Objekts als Zahl zurück.

d2fobg_prmpt_att_ofst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Versatz Prompt-Zuordnung des Objekts als Zahl zurück.

d2fobg_prmpt_back_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Hintergrundfarbe des Objekts als Text zurück.

d2fobg_prmpt_disp_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Anzeigestil des Objekts als Zahl zurück.

d2fobg_prmpt_fill_pat( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Füllmuster des Objekts als Text zurück.

d2fobg_prmpt_font_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Schriftartname des Objekts als Text zurück.

d2fobg_prmpt_font_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Schriftgrad des Objekts als Zahl zurück.

d2fobg_prmpt_font_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Zeichenabstand des Objekts als Zahl zurück.

d2fobg_prompt_font_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Schriftstil des Objekts als Zahl zurück.

d2fobg_prmpt_font_wght( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Schriftstärke des Objekts als Zahl zurück.

d2fobg_prmpt_fore_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Vordergrundfarbe des Objekts als Text zurück.

d2fobg_prmpt_jst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Justierung des Objekts als Zahl zurück.

d2fobg_prmpt_reading_ordr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Lesereihenfolge des Objekts als Zahl zurück.

d2fobg_prmpt_vat_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt Visuelle Attributgruppe des Objekts als Text zurück.

d2fobg_prmpt_vat_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PRMPT_VAT_OBJ des Objekts als Objekt zurück.

d2fobg_prmry_cnv( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Primäre Leinwand des Objekts als Text zurück.

d2fobg_prmry_key( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Primärschlüssel des Objekts als Booleschen Wert zurück.

d2fobg_prog_unit( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PROG_UNIT des Objekts als Objekt zurück.

d2fobg_prop_class( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Attributklasse des Objekts als Objekt zurück.

d2fobg_prvnt_mstrless_ops( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Masterlose Vorgänge verhindern des Objekts als Booleschen Wert zurück.

d2fobg_qry_all_recs( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Alle Datensätze abfragen des Objekts als Booleschen Wert zurück.

d2fobg_qry_allowed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abfrage zulässig des Objekts als Booleschen Wert zurück.

d2fobg_qry_dat_src_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abfrage-Datenquellname des Objekts als Text zurück.

d2fobg_qry_dat_src_type( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abfrage-Datenquelltyp des Objekts als Zahl zurück.

d2fobg_qry_len( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abfragelänge des Objekts als Zahl zurück.

d2fobg_qry_only( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Nur Abfrage des Objekts als Booleschen Wert zurück.

d2fobg_rad_but( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_RAD_BUT des Objekts als Objekt zurück.

d2fobg_raise_on_entry( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Automatisch anzeigen des Objekts als Booleschen Wert zurück.

d2fobg_rdb_val( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Optionsschaltflächenwert des Objekts als Text zurück.

d2fobg_reading_ordr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Lesereihenfolge des Objekts als Zahl zurück.

d2fobg_rec_grp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datensatzgruppe des Objekts als Objekt zurück.

d2fobg_rec_grp_fetch_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_REC_GRP_FETCH_SIZ des Objekts als Zahl zurück.

d2fobg_rec_grp_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datensatzgruppe des Objekts als Text zurück.

d2fobg_rec_grp_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_REC_GRP_OBJ des Objekts als Objekt zurück.

d2fobg_rec_grp_qry( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datensatzgruppenabfrage des Objekts als Text zurück.

d2fobg_rec_grp_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datensatzgruppentyp des Objekts als Zahl zurück.

d2fobg_rec_ornt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Datensatzdarstellung des Objekts als Zahl zurück.

d2fobg_rec_vat_grp_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Visuelle Attributgruppe Aktueller Datensatz des Objekts als Text zurück.

d2fobg_rec_vat_grp_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_REC_VAT_GRP_OBJ des Objekts als Objekt zurück.

d2fobg_recs_buffered_count( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Anzahl gepufferter Datensätze des Objekts als Zahl zurück.

d2fobg_recs_disp_count( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Anzahl angezeigter Datensätze des Objekts als Zahl zurück.

d2fobg_recs_fetched_count( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abzurufende Datensätze des Objekts als Zahl zurück.

d2fobg_rel( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_REL des Objekts als Objekt zurück.

d2fobg_rendered( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Gerendert des Objekts als Booleschen Wert zurück.

d2fobg_report( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_REPORT des Objekts als Objekt zurück.

d2fobg_required( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Erforderlich des Objekts als Booleschen Wert zurück.

d2fobg_resize_allowed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Skalieren zulässig des Objekts als Booleschen Wert zurück.

d2fobg_rev_dir( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Umgekehrte Richtung des Objekts als Booleschen Wert zurück.

d2fobg_rpt_destination_fmt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Berichtzielformat des Objekts als Text zurück.

d2fobg_rpt_destination_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Berichtzielname des Objekts als Text zurück.

d2fobg_rpt_destination_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Berichtzieltyp des Objekts als Zahl zurück.

d2fobg_rpt_params( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Andere Reports-Parameter des Objekts als Text zurück.

d2fobg_rpt_srvr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Reports Server des Objekts als Text zurück.

d2fobg_rtrn_itm( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rückgabeobjekt des Objekts als Text zurück.

d2fobg_runtime_comp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_RUNTIME_COMP des Objekts als Zahl zurück.

d2fobg_scrlbr_align( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausrichtung Bildlaufleiste des Objekts als Zahl zurück.

d2fobg_scrlbr_cnv_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bildlaufleisten-Leinwand des Objekts als Text zurück.

d2fobg_scrlbr_cnv_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SCRLBR_CNV_OBJ des Objekts als Objekt zurück.

d2fobg_scrlbr_hgt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bildlaufleisten-Höhe des Objekts als Zahl zurück.

d2fobg_scrlbr_ornt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bildlaufleisten-Darstellung des Objekts als Zahl zurück.

d2fobg_scrlbr_tbp_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bildlaufleiste Registerseite des Objekts als Text zurück.

d2fobg_scrlbr_tbp_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SCRLBR_TBP_OBJ des Objekts als Objekt zurück.

d2fobg_scrlbr_wid( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bildlaufleisten-Breite des Objekts als Zahl zurück.

d2fobg_scrlbr_x_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bildlaufleiste X-Position des Objekts als Zahl zurück.

d2fobg_scrlbr_y_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bildlaufleiste Y-Position des Objekts als Zahl zurück.

d2fobg_share_lib( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bibliothek mit Form gemeinsam benutzen des Objekts als Booleschen Wert zurück.

d2fobg_short_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Kurzname des Objekts als Text zurück.

d2fobg_show_fast_fwd( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schnellvorlauf-Schaltfläche anzeigen des Objekts als Booleschen Wert zurück.

d2fobg_show_horz_scrlbr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Horizontale Bildlaufleiste anzeigen des Objekts als Booleschen Wert zurück.

d2fobg_show_palette( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Palette anzeigen des Objekts als Booleschen Wert zurück.

d2fobg_show_play( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Wiedergabe-Schaltfläche anzeigen des Objekts als Booleschen Wert zurück.

d2fobg_show_rec( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Aufzeichnen-Schaltfläche anzeigen des Objekts als Booleschen Wert zurück.

d2fobg_show_rewind( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rückspul-Schaltfläche anzeigen des Objekts als Booleschen Wert zurück.

d2fobg_show_scrlbr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Bildlaufleiste anzeigen des Objekts als Booleschen Wert zurück.

d2fobg_show_slider( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schieberegler anzeigen des Objekts als Booleschen Wert zurück.

d2fobg_show_time( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Zeitindikator anzeigen des Objekts als Booleschen Wert zurück.

d2fobg_show_vert_scrlbr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vertikale Bildlaufleiste anzeigen des Objekts als Booleschen Wert zurück.

d2fobg_show_volumn( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Lautstärkeregler anzeigen des Objekts als Booleschen Wert zurück.

d2fobg_shrinkwrap( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Shrinkwrap des Objekts als Booleschen Wert zurück.

d2fobg_sizing_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Skalierungsstil des Objekts als Zahl zurück.

d2fobg_snd_fmt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Klangformat des Objekts als Zahl zurück.

d2fobg_snd_qlty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Klangqualität des Objekts als Zahl zurück.

d2fobg_sngl_obj_align( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausrichtung einzelnes Objekt des Objekts als Zahl zurück.

d2fobg_sngl_rec( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Einzelner Datensatz des Objekts als Booleschen Wert zurück.

d2fobg_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts als Objekt zurück.

d2fobg_strt_prmpt_align( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Start Prompt-Ausrichtung des Objekts als Zahl zurück.

d2fobg_strt_prmpt_ofst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Start Prompt-Versatz des Objekts als Zahl zurück.

d2fobg_strtup_code( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Startcode des Objekts als Text zurück.

d2fobg_sub_mnu_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SUB_MNU_NAM des Objekts als Text zurück.

d2fobg_sub_mnu_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SUB_MNU_OBJ des Objekts als Objekt zurück.

d2fobg_sub_ttl( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Untertitel des Objekts als Text zurück.

d2fobg_summ_blk_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Summierter Block des Objekts als Text zurück.

d2fobg_summ_func( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Summenfunktion des Objekts als Zahl zurück.

d2fobg_summ_itm_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Summiertes Objekt des Objekts als Text zurück.

d2fobg_svpnt_mode( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Savepoint-Modus des Objekts als Booleschen Wert zurück.

d2fobg_sync_itm_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Mit Objekt synchronisieren des Objekts als Text zurück.

d2fobg_sync_itm_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SYNC_ITM_OBJ des Objekts als Objekt zurück.

d2fobg_tab_att_edge( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Register-Zuordnungskante des Objekts als Zahl zurück.

d2fobg_tab_page( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Registerseite des Objekts als Objekt zurück.

d2fobg_tab_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Registerstil des Objekts als Zahl zurück.

d2fobg_tbp_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_TBP_NAM des Objekts als Text zurück.

d2fobg_tbp_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_TBP_OBJ des Objekts als Objekt zurück.

d2fobg_tear_off_mnu( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abtrennbares Menü des Objekts als Booleschen Wert zurück.

d2fobg_title( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Titel des Objekts als Text zurück.

d2fobg_tooltip( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Tooltip des Objekts als Text zurück.

d2fobg_tooltip_vat_grp, val );

Dieser Makro gibt den Wert des Attributs Tooltip Visuelle Attributgruppe des Objekts als Text zurück.

d2fobg_top_prmpt_align( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausrichtung oberer Prompt des Objekts als Zahl zurück.

d2fobg_top_prmpt_ofst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Versatz oberer Prompt des Objekts als Zahl zurück.

d2fobg_trg_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Triggerstil des Objekts als Zahl zurück.

d2fobg_trg_txt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Triggertext des Objekts als Text zurück.

d2fobg_trg_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Triggertyp des Objekts als Zahl zurück.

d2fobg_trigger( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_TRIGGER des Objekts als Objekt zurück.

d2fobg_ttl_reading_ordr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Lesereihenfolge für Titel des Objekts als Zahl zurück.

d2fobg_unchked_val( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Wert, wenn nicht ausgewählt des Objekts als Text zurück.

d2fobg_updt_allowed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Aktualisieren zulässig des Objekts als Booleschen Wert zurück.

d2fobg_updt_changed_cols( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Nur geänderte Spalten aktualisieren des Objekts als Booleschen Wert zurück.

d2fobg_updt_commit( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Nach Festschreiben aktualisieren des Objekts als Booleschen Wert zurück.

d2fobg_updt_if_null( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Nur aktualisieren, wenn NULL des Objekts als Booleschen Wert zurück.

d2fobg_updt_layout( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Layout aktualisieren des Objekts als Zahl zurück.

d2fobg_updt_proc_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prozedurname aktualisieren des Objekts als Text zurück.

d2fobg_updt_qry( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abfrage aktualisieren des Objekts als Booleschen Wert zurück.

d2fobg_use_3D_cntrls( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs 3D-Steuerelemente verwenden des Objekts als Booleschen Wert zurück.

d2fobg_use_security( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Sicherheit verwenden des Objekts als Booleschen Wert zurück.

d2fobg_validate_from_list( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Aus Liste validieren des Objekts als Booleschen Wert zurück.

d2fobg_validation unit( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Validierungseinheit des Objekts als Zahl zurück.

d2fobg_vat_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Visuelle Attributgruppe des Objekts als Text zurück.

d2fobg_vat_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_VAT_OBJ des Objekts als Objekt zurück.

d2fobg_vat_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_VAT_TYPE des Objekts als Zahl zurück.

d2fobg_vert_fill( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vertikales Füllen des Objekts als Booleschen Wert zurück.

d2fobg_vert_jst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vertikale Justierung des Objekts als Zahl zurück.

d2fobg_vert_margn( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vertikaler Rand des Objekts als Zahl zurück.

d2fobg_vert_obj_ofst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vertikaler Objektversatz des Objekts als Zahl zurück.

d2fobg_vert_orgn( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vertikalposition relativ zum Ursprung des Objekts als Zahl zurück.

d2fobg_vert_tlbr_cnv( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vertikale Symbolleisten-Leinwand des Objekts als Text zurück.

d2fobg_vis_attr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_VIS_ATTR des Objekts als Objekt zurück.

d2fobg_visible( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Sichtbar des Objekts als Booleschen Wert zurück.

d2fobg_vprt_hgt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausschnitthöhe des Objekts als Zahl zurück.

d2fobg_vrpt_wid( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausschnittbreite des Objekts als Zahl zurück.

d2fobg_vprt_x_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausschnitt X-Position des Objekts als Zahl zurück.

d2fobg_vrpt_x_pos_on_cnv( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausschnitt X-Position auf Leinwand des Objekts als Zahl zurück.

d2fobg_vrpt_y_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausschnitt Y-Position des Objekts als Zahl zurück.

d2fobg_vrpt_y_pos_on_cnv( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Ausschnitt Y-Position auf Leinwand des Objekts as number.

d2fobg_vsbl_in_horz_mnu_tlbr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Sichtbar in horizontaler/vertikaler Menüsymbolleiste des Objekts als Booleschen Wert zurück.

d2fobg_vsbl_in_menu( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Sichtbar in Menü des Objekts als Booleschen Wert zurück.

d2fobg_vsbl_in_vert_mnu_tlbr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Sichtbar in horizontaler/vertikaler Menüsymbolleiste des Objekts als Booleschen Wert zurück.

d2fobg_vtb_cnv_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vertikale Symbolleisten-Leinwand des Objekts als Text zurück.

d2fobg_where_clause( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs WHERE-Klausel des Objekts als Text zurück.

d2fobg_white_on_black( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Weiß auf Schwarz des Objekts als Booleschen Wert zurück.

d2fobg_width( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Breite/Höhe des Objekts als Zahl zurück.

d2fobg_win_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Fensterstil des Objekts als Zahl zurück.

d2fobg_window( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Fenster des Objekts als Objekt zurück.

d2fobg_wnd_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_WND_NAM des Objekts als Text zurück.

d2fobg_wnd_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_WND_OBJ des Objekts als Objekt zurück.

d2fobg_wrap_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Umbruchstil des Objekts als Zahl zurück.

d2fobg_wrap_txt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Textumbruch des Objekts als Booleschen Wert zurück.

d2fobg_x_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_X_POSITION des Objekts als Zahl zurück.

d2fobg_y_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_Y _POSITION des Objekts als Zahl zurück.

d2fobs_access_key( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Zugriffstaste des Objekts.

d2fobs_activex_class( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_ACTIVEX_CLASS des Objekts.

d2fobs_acitvex_val_prop( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_ACTIVEX_VAL_PROP des Objekts.

d2fobs_alert( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_ALERT des Objekts.

d2fobs_allow_expansion( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Erweitern zulassen des Objekts.

d2fobs_allow_mlt_lin_prmpts( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Mehrzeilige Prompts zulassen des Objekts.

d2fobs_allow_strt_att_prmpts( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Mit Start verknüpfte Prompts zulassen des Objekts.

d2fobs_allow_top_att_prpmts( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Mit oberem Rand verknüpfte Prompts zulassen des Objekts.

d2fobs_alt_msg( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Meldung des Objekts.

d2fobs_alt_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Typ des Warnfensters des Objekts.

d2fobs_arrow_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Pfeilstil des Objekts.

d2fobs_menus_count( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MENUS_COUNT des Objekts.

d2fobs_assoc_mnus( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Verknüpfte Menüs des Objekts.

d2fobs_att_lib( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_ATT_LIB des Objekts.

d2fobs_audio_chnnls( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Audio-Kanäle des Objekts.

d2fobs_auto_col_wid( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Automatische Spaltenbreite des Objekts.

d2fobs_auto_disp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Automatisch anzeigen des Objekts.

d2fobs_auto_hint( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Hinweis automatisch anzeigen des Objekts.

d2fobs_auto_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Automatische Position des Objekts.

d2fobs_auto_qry( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Automatische Abfrage des Objekts.

d2fobs_auto_rfrsh( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Automatisches Auffrischen des Objekts.

d2fobs_auto_skp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Automatisches Überspringen des Objekts.

d2fobs_auto_slct( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Automatische Auswahl des Objekts.

d2fobs_back_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Hintergrundfarbe des Objekts.

d2fobs_xxx( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Sichtbar in horizontaler/vertikaler Menüsymbolleiste des Objekts.

d2fobs_bevel( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Umriß des Objekts.

d2fobs_blk_description( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_BLK_DESCRIPTION des Objekts.

d2fobs_block( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_BLOCK des Objekts.

d2fobs_bounding_bx_scalable( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_BOUNDING_BX_SCALABLE des Objekts.

d2fobs_btm_ttl( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_BTM_TTL des Objekts.

d2fobs_btn_1_lbl( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Beschriftung Schaltfläche 1 des Objekts.

d2fobs_btn_2_lbl( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Beschriftung Schaltfläche 2 des Objekts.

d2fobs_btn_3_lbl( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Beschriftung Schaltfläche 3 des Objekts.

d2fobs_calc_mode( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Berechnungsmodus des Objekts.

d2fobs_canvas( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CANVAS des Objekts.

d2fobs_cap_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Linienende Objektrand des Objekts.

d2fobs_case_insensitive_qry( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abfrage ohne Berücksichtigung der Schreibweise des Objekts.

d2fobs_case_restriction( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Einschränkung Schreibweise des Objekts.

d2fobs_chk_bx_other_vals( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Kontrollkästchenzuordnung anderer Werte des Objekts.

d2fobs_chked_val( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausgewählt des Objekts.

d2fobs_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts.

d2fobs_clip_hgt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Höhe Begrenzungsrechteck des Objekts.

d2fobs_clip_wid( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Breite Begrenzungsrechteck des Objekts.

d2fobs_clip_x_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs X-Ursprung Begrenzungsrechteck des Objekts.

d2fobs_clip_y_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Y-Ursprung Begrenzungsrechteck des Objekts.

d2fobs_closed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Polygon-Marke/Begrenzungslinie des Objekts.

d2fobs_cls_allowed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schließen zulässig des Objekts.

d2fobs_cmprssion_qlty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CMPRSSION_QLTY des Objekts.

d2fobs_cnv_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Leinwand des Objekts.

d2fobs_cnv_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CNV_OBJ des Objekts.

d2fobs_cnv_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Leinwandtyp des Objekts.

d2fobs_col_dat_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_COL_DAT_TYP des Objekts.

d2fobs_col_map( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Attribute Spaltenzuordnung des Objekts.

d2fobs_col_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Spaltenname des Objekts.

d2fobs_col_spec( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Spaltenspezifikation des Objekts.

d2fobs_col_vals_count( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_COL_VALS_COUNT des Objekts.

d2fobs_com_txt(ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Befehlstext des Objekts.

d2fobs_xxx( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Sichtbar in horizontaler/vertikaler Menüsymbolleiste des Objekts.

d2fobs_comm_mode( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Kommunikationsmodus des Objekts.

d2fobs_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Kommentare des Objekts.

d2fobs_compress( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Komprimieren des Objekts.

d2fobs_conceal_data( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Daten verbergen des Objekts.

d2fobs_console_win( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Konsolfenster des Objekts.

d2fobs_copy_val_from_itm( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Wert aus Objekt kopieren des Objekts.

d2fobs_corner_radius_x( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs X-Winkelradius für Abgerundetes Rechteck des Objekts.

d2fobs_corner_radius_y( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Y-Winkelradius für Abgerundetes Rechteck des Objekts.

d2fobs_crsr_mode( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Cursor-Modus des Objekts.

d2fobs_cstm_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Benutzerdefinierter Abstand für Textobjekt des Objekts.

d2fobs_dash_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Strichart für Objektrand des Objekts.

d2fobs_dat_src_blk( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datenquellblock des Objekts.

d2fobs_dat_src_x_axs( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datenquelle X-Achse des Objekts.

d2fobs_dat_src_y_axs( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datenquelle Y-Achse des Objekts.

d2fobs_dat_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datentyp des Objekts.

d2fobs_db_blk( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datenbank-Datenblock des Objekts.

d2fobs_db_itm( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datenbankobjekt des Objekts.

d2fobs_defer_req_enf( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DEFER_REQ_ENF des Objekts.

d2fobs_deferred( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Verzögert des Objekts.

d2fobs_del_allowed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Löschen zulässig des Objekts.

d2fobs_del_proc_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prozedurname löschen des Objekts.

d2fobs_del_rec( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Verhalten bei Datensatz löschen des Objekts.

d2fobs_detail_blk( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Detail-Block des Objekts.

d2fobs_dflt_alt_btn( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Standard-Warnschaltfläche des Objekts.

d2fobs_dflt_btn( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Standardschaltfläche des Objekts.

d2fobs_disp_in_kbrd_hlp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Anzeige in Tastenbelegung des Objekts.

d2fobs_xxxdisp_no_priv ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Anzeige ohne Berechtigung des Objekts.

d2fobs_disp_qlty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Anzeigequalität des Objekts.

d2fobs_disp_wid( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Anzeigebreite des Objekts.

d2fobs_dist_bwwn_recs( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abstand zwischen Datensätzen des Objekts.

d2fobs_dither( ctx, obj, val );

Dieser Makro bestimmt den Wert des Grafik-Attributs Bild-Dithering des Objekts.

d2fobs_dml_ary_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs DML-Array-Größe des Objekts.

d2fobs_dml_dat_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs DML-Datenzielname des Objekts.

d2fobs_dml_dat_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs DML-Datenzieltyp des Objekts.

d2fobs_dsa_mode( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DSA_MODE des Objekts.

d2fobs_dsa_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DSA_NAM des Objekts.

d2fobs_dsa_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DSA_TYPE des Objekts.

d2fobs_dsa_typ_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DSA_TYP_NAM des Objekts.

d2fobs_dsa_val( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DSA_VAL des Objekts.

d2fobs_dsc_len( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DSC_LEN des Objekts.

d2fobs_dsc_mandatory( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DSC_MANDATORY des Objekts.

d2fobs_dsc_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DSC_NAM des Objekts.

d2fobs_dsc_precision( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DSC_PRECISION des Objekts.

d2fobs_dsc_scale( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DSC_SCALE des Objekts.

d2fobs_dsc_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DSC_TYP des Objekts.

d2fobs_edge_back_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Hintergrundfarbe Objektrand des Objekts.

d2fobs_edge_fore_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vordergrundfarbe Objektrand des Objekts.

d2fobs_editor( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Editor des Objekts.

d2fobs_edt_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Editorname des Objekts.

d2fobs_edt_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_EDT_OBJ des Objekts.

d2fobs_edt_x_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Editor X-Position/Editor Y-Position des Objekts.

d2fobs_edt_y_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Editor X-Position/Editor Y-Position des Objekts.

d2fobs_enabled( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Aktiviert des Objekts.

d2fobs_enfrc_col_security( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Spaltensicherheit durchsetzen des Objekts.

d2fobs_enfrc_prmry_key( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Primärschlüssel durchsetzen des Objekts.

d2fobs_exec_hierarchy( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausführungsstil des Objekts.

d2fobs_exec_mode( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausführungsmodus des Objekts.

d2fobs_fill_pat( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Füllmuster des Objekts.

d2fobs_fire_in_qry( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs In Abfragemodus auslösen des Objekts.

d2fobs_fixed_bounding_bx( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Feste Größe von Objektumrandung des Objekts.

d2fobs_fixed_len( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Feste Länge des Objekts.

d2fobs_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Dateiname des Objekts.

d2fobs_fltr_before_disp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vor Anzeige filtern des Objekts.

d2fobs_fmt_msk( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Formatmaske des Objekts.

d2fobs_font_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftartname des Objekts.

d2fobs_font_scaleable( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Punktgröße skaliert mit Objekt des Objekts.

d2fobs_font_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftgrad des Objekts.

d2fobs_font_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Zeichenabstand des Objekts.

d2fobs_font_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftstil des Objekts.

d2fobs_font_wght( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Sichtbar in horizontaler/vertikaler Menüsymbolleiste des Objekts.

d2fobs_font_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vordergrundfarbe des Objekts.

d2fobs_form_param( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FORM_PARAM des Objekts.

d2fobs_formula( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Formel des Objekts.

d2fobs_frame_align( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rahmenausrichtung des Objekts.

d2fobs_frame_ttl( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rahmentitel des Objekts.

d2fobs_frame_ttl_align( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausrichtung Rahmentitel des Objekts.

d2fobs_frame_ttl_back_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rahmentitel Hintergrundfarbe des Objekts.

d2fobs_frame_ttl_fill_pat( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rahmentitel Füllmuster des Objekts.

d2fobs_frame_ttl_font_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rahmentitel Schriftartname des Objekts.

d2fobs_frame_ttl_font_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rahmentitel Schriftgrad des Objekts.

d2fobs_frame_ttl_font_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rahmentitel Zeichenabstand des Objekts.

d2fobs_frame_ttl_font_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rahmentitel Schriftstil des Objekts.

d2fobs_frame_ttl_font_wght( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rahmentitel Schriftstärke des Objekts.

d2fobs_frame_ttl_fore_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rahmentitel Vordergrundfarbe des Objekts.

d2fobs_frame_ttl_ofst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Versatz Rahmentitel des Objekts.

d2fobs_frame_ttl_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abstand Rahmentitel des Objekts.

d2fobs_frame_ttl_vat_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rahmentitel Visuelle Attributgruppe des Objekts.

d2fobs_frame_ttl_val_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FRAME_TTL_VAL_OBJ des Objekts.

d2fobs_frst_navigation_blk_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Erster Navigationsblock des Objekts.

d2fobs_frst_navigation_blk_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FRST_NAVIGATION_BLK_OBJ des Objekts.

d2fobs_gra_font_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Grafik-Attributs Schriftartname des Objekts.

d2fobs_gra_font_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Grafik-Attributs Schriftgrad des Objekts.

d2fobs_gra_font_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Grafik-Attributs Schriftstil des Objekts.

d2fobs_gra_text( ctx, obj, val );

Dieser Makro bestimmt den Wert des Grafik-Attributs Text des Objekts.

d2fobs_graphic( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_GRAPHIC des Objekts.

d2fobs_graphics_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Grafik-Attributs Objekttyp des Objekts.

d2fobs_height( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Breite/Höhe des Objekts.

d2fobs_hide_on_exit( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Beim Beenden verbergen des Objekts.

d2fobs_highest_allowed_val( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Höchster zulässiger Wert/Niedrigster zulässiger Wert des Objekts.

d2fobs_hint( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Hinweis des Objekts.

d2fobs_hlp_description( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Hilfe des Objekts.

d2fobs_horz_jst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Horizontale Justierung von Textobjekt des Objekts.

d2fobs_horz_margn( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Horizontaler Rand des Objekts.

d2fobs_horz_obj_ofst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Horizontaler Objektversatz des Objekts.

d2fobs_horz_orgn( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Horizontalposition relativ zum Ursprung des Objekts.

d2fobs_horz_tlbr_cnv( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Horizontale Symbolleisten-Leinwand des Objekts.

d2fobs_htb_cnv_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_HTB_CNV_NAME des Objekts.

d2fobs_icon_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Symbol-Dateiname des Objekts.

d2fobs_icon_in_mnu( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FO_ICON_IN_MNU des Objekts.

d2fobs_iconic( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Als Symbol des Objekts.

d2fobs_img_dpth( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bildtiefe des Objekts.

d2fobs_img_fmt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bildformat des Objekts.

d2fobs_inhrt_mnu( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menü vererben des Objekts.

d2fobs_inhrt_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Stil vererben des Objekts.

d2fobs_init_kgrd_dir( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Anfänglicher Tastaturstatus des Objekts.

d2fobs_init_menu( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausgangsmenü des Objekts.

d2fobs_init_val( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausgangswert des Objekts.

d2fobs_insrt_allowed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Einsetzen zulässig des Objekts.

d2fobs_insrt_proc_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prozedurname einfügen des Objekts.

d2fobs_interaction_mode( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Interaktionsmodus des Objekts.

d2fobs_internal_end_angle( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_INTERNAL_END_ANGLE des Objekts.

d2fobs_internal_lin_wid( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_INTERNAL_LIN_WID des Objekts.

d2fobs_internal_rotation_angle( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_INTERNAL_ROTATION_ANGLE des Objekts.

d2fobs_internal_strt_angle( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_INTERNAL_STRT_ANGLE des Objekts.

d2fobs_isolation_mode( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Isolationsmodus des Objekts.

d2fobs_item( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_ITEM des Objekts.

d2fobs_itm_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Objekttyp des Objekts.

d2fobs_itms_disp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Anzahl angezeigter Objekte des Objekts.

d2fobs_join_cond( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Join-Bedingung des Objekts.

d2fobs_join_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Verknüpfungsstil von Objektrand des Objekts.

d2fobs_justification( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Justierung des Objekts.

d2fobs_kbrd_acc( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schnelltaste des Objekts.

d2fobs_kbrd_hlp_txt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Tastenbelegung-Hilfetext des Objekts.

d2fobs_kbrd_navigable( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Tastatur-navigierbar des Objekts.

d2fobs_kbrd_state( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Tastaturstatus des Objekts.

d2fobs_keep_crsr_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Cursor-Position beibehalten des Objekts.

d2fobs_key_mode( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schlüsselmodus des Objekts.

d2fobs_label( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Beschriftung des Objekts.

d2fobs_lang_dir( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Richtung des Objekts.

d2fobs_layout_data_blk_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Layout-Datenblock des Objekts.

d2fobs_layout_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Layoutstil des Objekts.

d2fobs_lib_loc( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Speicherort von PL/SQL-Bibliothek des Objekts.

d2fobs_lib_src( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Speicherort von PL/SQL-Quelle des Objekts.

d2fobs_lin_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Zeilenabstand des Objekts.

d2fobs_lock_mode( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Sperrmodus des Objekts.

d2fobs_lock_proc_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prozedurname sperren des Objekts.

d2fobs_lock_rec( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datensatz sperren des Objekts.

d2fobs_lov( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Werteliste des Objekts.

d2fobs_lov_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_LOV_NAM des Objekts.

d2fobs_lov_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_LOV_OBJ des Objekts.

d2fobs_lov_x_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs X-Position Liste des Objekts.

d2fobs_lov_y_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Y-Position Liste des Objekts.

d2fobs_lowest_allowed_val( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Höchster zulässiger Wert/Niedrigster zulässiger Wert des Objekts.

d2fobs_lst_element_count( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Anzahl von Listenelementobjekten des Objekts.

d2fobs_lst_in_blk_mnu( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs In Datenblockmenü aufgelistet des Objekts.

d2fobs_lst_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Listenstil des Objekts.

d2fobs_lst_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Listentyp des Objekts.

d2fobs_magic_itm( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Magischer Menüpunkt des Objekts.

d2fobs_main_mnu( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Hauptmenü des Objekts.

d2fobs_max_len( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Maximale Länge des Objekts.

d2fobs_max_objs( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Max. Objekte pro Zeile des Objekts.

d2fobs_max_qry_time( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Maximale Abfragezeit des Objekts.

d2fobs_max_recs_fetched( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Maximal abgerufene Datensätze des Objekts.

d2fobs_maximize_allowed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Maximieren zulässig des Objekts.

d2fobs_menu( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MENU des Objekts.

d2fobs_minimize_allowed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Minimieren zulässig des Objekts.

d2fobs_minimize_ttl( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Minimierter Titel des Objekts.

d2fobs_mlt_lin( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Mehrzeilig des Objekts.

d2fobs_mnu_description( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menübeschreibung des Objekts.

d2fobs_mnu_drctry( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menüordner des Objekts.

d2fobs_mnu_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menüdateiname des Objekts.

d2fobs_mnu_itm( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menüpunkttyp des Objekts.

d2fobs_mnu_itm_code( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MNU_ITM_CODE des Objekts.

d2fobs_mnu_itm_rad_grp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menüpunkt Optionsgruppe des Objekts.

d2fobs_mnu_itm_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menüpunkttyp des Objekts.

d2fobs_mnu_mod( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menümodul des Objekts.

d2fobs_mnu_param( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MNU_PARAM des Objekts.

d2fobs_mnu_param_init_val( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menüparameter-Ausgangswert des Objekts.

d2fobs_mnu_role( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menümodulrolle des Objekts.

d2fobs_mnu_src( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menüquelle des Objekts.

d2fobs_mnu_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Menüstil des Objekts.

d2fobs_modal( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Modal des Objekts.

d2fobs_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MODULE des Objekts.

d2fobs_mouse_navigate( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Mausnavigation des Objekts.

d2fobs_mouse_navigation_lmt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Mausnavigationsbegrenzung des Objekts.

d2fobs_mv_allowed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Verschieben zulässig des Objekts.

d2fobs_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Name des Objekts.

d2fobs_navigation_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Navigationsstil des Objekts.

d2fobs_next( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NEXT des Objekts.

d2fobs_nxt_navigation_blk_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NXT_NAVIGATION_BLK_NAM des Objekts.

d2fobs_nxt_navigation_blk_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NXT_NAVIGATION_BLK_OBJ des Objekts.

d2fobs_nxt_navigation_itm_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NXT_NAVIGATION_ITM_NAM des Objekts.

d2fobs_nxt_navigation_itm_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NXT_NAVIGATION_ITM_OBJ des Objekts.

d2fobs_obj_grp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_OBJ_GRP des Objekts.

d2fobs_obj_grp_child_real_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_OBJ_GRP_CHILD_REAL_OBJ des Objekts.

d2fobs_og_child( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_OG_CHILD des Objekts.

d2fobs_old_lov_txt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Alter Wertelistentext des Objekts.

d2fobs_ole_act_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs OLE-Aktivierungsstil des Objekts.

d2fobs_ole_class( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs OLE-Klasse des Objekts.

d2fobs_ole_in_place_act( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs OLE in Forms aktiviert des Objekts.

d2fobs_ole_insd_out_support( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs OLE-Austauschunterstützung des Objekts.

d2fobs_ole_popup_mnu_itms( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs OLE-Popup-Menüpunkte des Objekts.

d2fobs_ole_resiz_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs OLE-Skalierungsstil des Objekts.

d2fobs_ole_show_popup_mnu( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs OLE-Popup-Menü anzeigen des Objekts.

d2fobs_ole_show_tnnt_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs OLE-Bewohnertyp anzeigen des Objekts.

d2fobs_ole_tnnt_aspct( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs OLE-Bewohnerdarstellung des Objekts.

d2fobs_ole_tnnt_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs OLE-Bewohnertypen des Objekts.

d2fobs_opt_hint( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Optimizer-Hinweis des Objekts.

d2fobs_ordr_by_clause( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs ORDER BY-Klausel des Objekts.

d2fobs_other_vals( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Zuordnung anderer Werte des Objekts.

d2fobs_owner( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_OWNER des Objekts.

d2fobs_par_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLNAM des Objekts.

d2fobs_par_flpath( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLPATH des Objekts.

d2fobs_par_modstr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODSTR des Objekts.

d2fobs_par_modtyp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODTYP des Objekts.

d2fobs_par_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODULE des Objekts.

d2fobs_par_num( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_NUM des Objekts.

d2fobs_param_dat_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Parameter-Datentyp des Objekts.

d2fobs_param_init_val( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Parameter-Ausgangswert des Objekts.

d2fobs_pgu_txt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PGU_TEXT des Objekts.

d2fobs_popup_mnu_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_POPUP_MNU_NAM des Objekts.

d2fobs_popup_mnu_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_POPUP_MNU_OBJ des Objekts.

d2fobs_popup_va_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_POPUP_VA_OBJ des Objekts.

d2fobs_precomp_summ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PRECOMP_SUMM des Objekts.

d2fobs_prev_navigation_blk_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vorheriger Navigationsblock des Objekts.

d2fobs_prev_navigation_blk_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PREV_NAVIGATION_BLK_OBJ des Objekts.

d2fobs_prev_navigation_itm_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vorheriges Navigationsobjekt des Objekts.

d2fobs_prev_navigation_itm_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PREV_NAVIGATION_ITM_OBJ des Objekts.

d2fobs_previous( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PREVIOUS des Objekts.

d2fobs_prmpt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt des Objekts.

d2fobs_prmpt_align( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Ausrichtung des Objekts.

d2fobs_prmpt_align_ofst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Versatz Prompt-Ausrichtung des Objekts.

d2fobs_prmpt_att_edge( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rand Prompt-Zuordnung des Objekts.

d2fobs_prmpt_att_ofst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Versatz Prompt-Zuordnung des Objekts.

d2fobs_prmpt_back_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Hintergrundfarbe des Objekts.

d2fobs_prmpt_disp_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Anzeigestil des Objekts.

d2fobs_prmpt_fill_pat( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Füllmuster des Objekts.

d2fobs_prmpt_font_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Schriftartname des Objekts.

d2fobs_prmpt_font_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Schriftgrad des Objekts.

d2fobs_prmpt_font_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Zeichenabstand des Objekts.

d2fobs_prompt_font_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Schriftstil des Objekts.

d2fobs_prmpt_font_wght( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Schriftstärke des Objekts.

d2fobs_prmpt_fore_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Vordergrundfarbe des Objekts.

d2fobs_prmpt_jst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Justierung des Objekts.

d2fobs_prmpt_reading_ordr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Lesereihenfolge des Objekts.

d2fobs_prmpt_vat_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt Visuelle Attributgruppe des Objekts.

d2fobs_prmpt_vat_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PRMPT_VAT_OBJ des Objekts.

d2fobs_prmry_cnv( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Primäre Leinwand des Objekts.

d2fobs_prmry_key( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Primärschlüssel des Objekts.

d2fobs_prog_unit( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PROG_UNIT des Objekts.

d2fobs_prop_class( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Attributklasse des Objekts.

d2fobs_prvnt_mstrless_ops( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Masterlose Vorgänge verhindern des Objekts.

d2fobs_qry_all_recs( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Alle Datensätze abfragen des Objekts.

d2fobs_qry_allowed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abfrage zulässig des Objekts.

d2fobs_qry_dat_src_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abfrage-Datenquellname des Objekts.

d2fobs_qry_dat_src_type( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abfrage-Datenquelltyp des Objekts.

d2fobs_qry_len( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abfragelänge des Objekts.

d2fobs_qry_only( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Nur Abfrage des Objekts.

d2fobs_rad_but( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_RAD_BUT des Objekts.

d2fobs_raise_on_entry( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Automatisch anzeigen des Objekts.

d2fobs_rdb_val( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Optionsschaltflächenwert des Objekts.

d2fobs_reading_ordr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Lesereihenfolge des Objekts.

d2fobs_rec_grp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datensatzgruppe des Objekts.

d2fobs_rec_grp_fetch_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_REC_GRP_FETCH_SIZ des Objekts.

d2fobs_rec_grp_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datensatzgruppe des Objekts.

d2fobs_rec_grp_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_REC_GRP_OBJ des Objekts.

d2fobs_rec_grp_qry( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datensatzgruppenabfrage des Objekts.

d2fobs_rec_grp_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datensatzgruppentyp des Objekts.

d2fobs_rec_ornt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Datensatzdarstellung des Objekts.

d2fobs_rec_vat_grp_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Visuelle Attributgruppe Aktueller Datensatz des Objekts.

d2fobs_rec_vat_grp_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_REC_VAT_GRP_OBJ des Objekts.

d2fobs_recs_buffered_count( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Anzahl gepufferter Datensätze des Objekts.

d2fobs_recs_disp_count( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Anzahl angezeigter Datensätze des Objekts.

d2fobs_recs_fetched_count( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abzurufende Datensätze des Objekts.

d2fobs_rel( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_REL des Objekts.

d2fobs_rendered( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Gerendert des Objekts.

d2fobs_report( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_REPORT des Objekts.

d2fobs_required( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Erforderlich des Objekts.

d2fobs_resize_allowed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Skalieren zulässig des Objekts.

d2fobs_rev_dir( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Umgekehrte Richtung des Objekts.

d2fobs_rpt_destination_fmt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Berichtzielformat des Objekts.

d2fobs_rpt_destination_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Berichtzielname des Objekts.

d2fobs_rpt_destination_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Berichtzieltyp des Objekts.

d2fobs_rpt_params( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Andere Reports-Parameter des Objekts.

d2fobs_rpt_srvr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Reports Server des Objekts.

d2fobs_rtrn_itm( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rückgabeobjekt des Objekts.

d2fobs_runtime_comp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_RUNTIME_COMP des Objekts.

d2fobs_scrlbr_align( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausrichtung Bildlaufleiste des Objekts.

d2fobs_scrlbr_cnv_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bildlaufleisten-Leinwand des Objekts.

d2fobs_scrlbr_cnv_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SCRLBR_CNV_OBJ des Objekts.

d2fobs_scrlbr_hgt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bildlaufleisten-Höhe des Objekts.

d2fobs_scrlbr_ornt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bildlaufleisten-Darstellung des Objekts.

d2fobs_scrlbr_tbp_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bildlaufleiste Registerseite des Objekts.

d2fobs_scrlbr_tbp_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SCRLBR_TBP_OBJ des Objekts.

d2fobs_scrlbr_wid( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bildlaufleisten-Breite des Objekts.

d2fobs_scrlbr_x_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bildlaufleiste X-Position des Objekts.

d2fobs_scrlbr_y_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bildlaufleiste Y-Position des Objekts.

d2fobs_share_lib( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bibliothek mit Form gemeinsam benutzen des Objekts.

d2fobs_short_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Kurzname des Objekts.

d2fobs_show_fast_fwd( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schnellvorlauf-Schaltfläche anzeigen des Objekts.

d2fobs_show_horz_scrlbr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Horizontale Bildlaufleiste anzeigen des Objekts.

d2fobs_show_palette( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Palette anzeigen des Objekts.

d2fobs_show_play( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Wiedergabe-Schaltfläche anzeigen des Objekts.

d2fobs_show_rec( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Aufzeichnen-Schaltfläche anzeigen des Objekts.

d2fobs_show_rewind( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rückspul-Schaltfläche anzeigen des Objekts.

d2fobs_show_scrlbr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Bildlaufleiste anzeigen des Objekts.

d2fobs_show_slider( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schieberegler anzeigen des Objekts.

d2fobs_show_time( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Zeitindikator anzeigen des Objekts.

d2fobs_show_vert_scrlbr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vertikale Bildlaufleiste anzeigen des Objekts.

d2fobs_show_volumn( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Lautstärkeregler anzeigen des Objekts.

d2fobs_shrinkwrap( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Shrinkwrap des Objekts.

d2fobs_sizing_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Skalierungsstil des Objekts.

d2fobs_snd_fmt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Klangformat des Objekts.

d2fobs_snd_qlty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Klangqualität des Objekts.

d2fobs_sngl_obj_align( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausrichtung einzelnes Objekt des Objekts.

d2fobs_sngl_rec( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Einzelner Datensatz des Objekts.

d2fobs_source( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SOURCE des Objekts.

d2fobs_strt_prmpt_align( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Start Prompt-Ausrichtung des Objekts.

d2fobs_strt_prmpt_ofst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Start Prompt-Versatz des Objekts.

d2fobs_strtup_code( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Startcode des Objekts.

d2fobs_sub_mnu_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SUB_MNU_NAM des Objekts.

d2fobs_sub_mnu_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SUB_MNU_OBJ des Objekts.

d2fobs_sub_ttl( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Untertitel des Objekts.

d2fobs_summ_blk_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Summierter Block des Objekts.

d2fobs_summ_func( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Summenfunktion des Objekts.

d2fobs_summ_itm_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Summiertes Objekt des Objekts.

d2fobs_svpnt_mode( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Savepoint-Modus des Objekts.

d2fobs_sync_itm_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Mit Objekt synchronisieren des Objekts.

d2fobs_sync_itm_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SYNC_ITM_OBJ des Objekts.

d2fobs_tab_att_edge( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Register-Zuordnungskante des Objekts.

d2fobs_tab_page( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Registerseite des Objekts.

d2fobs_tab_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Registerstil des Objekts.

d2fobs_tbp_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_TBP_NAM des Objekts.

d2fobs_tbp_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_TBP_OBJ des Objekts.

d2fobs_tear_off_mnu( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abtrennbares Menü des Objekts.

d2fobs_title( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Titel des Objekts.

d2fobs_tooltip( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Tooltip des Objekts.

d2fobs_tooltip_vat_grp, val );

Dieser Makro bestimmt den Wert des Attributs Tooltip Visuelle Attributgruppe des Objekts.

d2fobs_top_prmpt_align( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausrichtung oberer Prompt des Objekts.

d2fobs_top_prmpt_ofst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Versatz oberer Prompt des Objekts.

d2fobs_trg_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Triggerstil des Objekts.

d2fobs_trg_txt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Triggertext des Objekts.

d2fobs_trg_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Triggertyp des Objekts.

d2fobs_trigger( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_TRIGGER des Objekts.

d2fobs_ttl_reading_ordr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Lesereihenfolge für Titel des Objekts.

d2fobs_unchked_val( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Wert, wenn nicht ausgewählt des Objekts.

d2fobs_updt_allowed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Aktualisieren zulässig des Objekts.

d2fobs_updt_changed_cols( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Nur geänderte Spalten aktualisieren des Objekts.

d2fobs_updt_commit( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Nach Festschreiben aktualisieren des Objekts.

d2fobs_updt_if_null( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Nur aktualisieren, wenn NULL des Objekts.

d2fobs_updt_layout( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Layout aktualisieren des Objekts.

d2fobs_updt_proc_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prozedurname aktualisieren des Objekts.

d2fobs_updt_qry( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abfrage aktualisieren des Objekts.

d2fobs_use_3D_cntrls( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs 3D-Steuerelemente verwenden des Objekts.

d2fobs_use_security( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Sicherheit verwenden des Objekts.

d2fobs_validate_from_list( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Aus Liste validieren des Objekts.

d2fobs_validation unit( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Validierungseinheit des Objekts.

d2fobs_vat_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Visuelle Attributgruppe des Objekts.

d2fobs_vat_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_VAT_OBJ des Objekts.

d2fobs_vat_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_VAT_TYPE des Objekts.

d2fobs_vert_fill( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vertikales Füllen des Objekts.

d2fobs_vert_jst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vertikale Justierung des Objekts.

d2fobs_vert_margn( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vertikaler Rand des Objekts.

d2fobs_vert_obj_ofst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vertikaler Objektversatz des Objekts.

d2fobs_vert_orgn( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vertikalposition relativ zum Ursprung des Objekts.

d2fobs_vert_tlbr_cnv( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vertikale Symbolleisten-Leinwand des Objekts.

d2fobs_vis_attr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_VIS_ATTR des Objekts.

d2fobs_visible( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Sichtbar des Objekts.

d2fobs_vprt_hgt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausschnitthöhe des Objekts.

d2fobs_vrpt_wid( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausschnittbreite des Objekts.

d2fobs_vprt_x_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausschnitt X-Position des Objekts.

d2fobs_vrpt_x_pos_on_cnv( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausschnitt X-Position auf Leinwand des Objekts.

d2fobs_vrpt_y_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausschnitt Y-Position des Objekts.

d2fobs_vrpt_y_pos_on_cnv( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Ausschnitt Y-Position auf Leinwand des Objekts.

d2fobs_vsbl_in_horz_mnu_tlbr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Sichtbar in horizontaler/vertikaler Menüsymbolleiste des Objekts.

d2fobs_vsbl_in_menu( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Sichtbar in Menü des Objekts.

d2fobs_vsbl_in_vert_mnu_tlbr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Sichtbar in horizontaler/vertikaler Menüsymbolleiste des Objekts.

d2fobs_vtb_cnv_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vertikale Symbolleisten-Leinwand des Objekts.

d2fobs_where_clause( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs WHERE-Klausel des Objekts.

d2fobs_white_on_black( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Weiß auf Schwarz des Objekts.

d2fobs_width( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Breite/Höhe des Objekts.

d2fobs_win_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Fensterstil des Objekts.

d2fobs_window( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Fenster des Objekts.

d2fobs_wnd_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_WND_NAM des Objekts.

d2fobs_wnd_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_WND_OBJ des Objekts.

d2fobs_wrap_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Umbruchstil des Objekts.

d2fobs_wrap_txt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Textumbruch des Objekts.

d2fobs_x_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_X_POSITION des Objekts.

d2fobs_y_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_Y _POSITION des Objekts.


Makros des Objekts Objektgruppe

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Objektgruppe von Form Builder beschrieben.

d2fobgg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Objektgruppe als Zeiger dvoid zurück.

d2fobgg_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_COMMENT des Objekts Objektgruppe als Text zurück.

d2fobgg_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts Objektgruppe als Objekt zurück.

d2fobgg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NAME des Objekts Objektgruppe als Text zurück.

d2fobgg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Objektgruppe als Objekt zurück.

d2fobgg_og_child( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OG_CHILD des Objekts Objektgruppe als Objekt zurück.

d2fobgg_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts Objektgruppe als Objekt zurück.

d2fobgg_par_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Objektgruppe als Text zurück.

d2fobgg_par_flpath( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Objektgruppe als Text zurück.

d2fobgg_par_modstr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Objektgruppe als Zahl zurück.

d2fobgg_par_modtyp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Objektgruppe als Zahl zurück.

d2fobgg_par_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODULE des Objekts Objektgruppe als Text zurück.

d2fobgg_par_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_NAM des Objekts Objektgruppe als Text zurück.

d2fobgg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Objektgruppe als Objekt zurück.

d2fobgg_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Objektgruppe als Objekt zurück.

d2fobgs_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Objektgruppe.

d2fobgs_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_COMMENT des Objekts Objektgruppe.

d2fobgs_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NAME des Objekts Objektgruppe.

d2fobgs_par_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Objektgruppe.

d2fobgs_par_flpath( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Objektgruppe.

d2fobgs_par_modstr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Objektgruppe.

d2fobgs_par_modtyp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Objektgruppe.

d2fobgs_par_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODULE des Objekts Objektgruppe.

d2fobgs_par_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_NAM des Objekts Objektgruppe.


Makros des Objekts Untergeordnete Objektgruppe

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Untergeordnete Objektgruppe von Form Builder beschrieben.

d2fogcg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Untergeordnete Objektgruppe als Zeiger dvoid zurück.

d2fogcg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NAME des Objekts Untergeordnete Objektgruppe als Text zurück.

d2fogcg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Untergeordnete Objektgruppe als Objekt zurück.

d2fogcg_obj_grp_child_real_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OBJ_GRP_CHILD_REAL_OBJ des Objekts Untergeordnete Objektgruppe als Objekt zurück.

d2fogcg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Untergeordnete Objektgruppe als Objekt zurück.

d2fogcg_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Untergeordnete Objektgruppe als Objekt zurück.

d2fogcs_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Untergeordnete Objektgruppe.

d2fogcs_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NAME des Objekts Untergeordnete Objektgruppe.

d2fogcs_obj_grp_child_real_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_ OBJ_GRP_CHILD_REAL_OBJ des Objekts Untergeordnete Objektgruppe.


Makros des Objekts Objektbibliothek

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Objektbibliothek von Form Builder beschrieben.

d2folbg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Objektbibliothek als Zeiger dvoid zurück.

d2folbg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NAME des Objekts Objektbibliothek als Text zurück.

d2folbg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Objektbibliothek als Objekt zurück.

d2folbg_obj_count( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OBJ_COUNT des Objekts Objektbibliothek als Zahl zurück.

d2folbg_obj_lib_tab( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OBJ_LIB_TAB des Objekts Objektbibliothek als Objekt zurück.

d2folbg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Objektbibliothek als Objekt zurück.

d2folbs_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Objektbibliothek.

d2folbs_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NAME des Objekts Objektbibliothek.


Makros des Objekts Programmblock

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Programmblock von Form Builder beschrieben.

d2fpgug_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Programmblock als Zeiger dvoid zurück.

d2fpgug_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Kommentare des Objekts Programmblock als Text zurück.

d2fpgug_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts Programmblock als Objekt zurück.

d2fpgug_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Name des Objekts Programmblock als Text zurück.

d2fpgug_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Programmblock als Objekt zurück.

d2fpgug_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts Programmblock als Objekt zurück.

d2fpgug_par_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Programmblock als Text zurück.

d2fpgug_par_flpath( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Programmblock als Text zurück.

d2fpgug_par_modstr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Programmblock als Zahl zurück.

d2fpgug_par_modtyp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Programmblock als Zahl zurück.

d2fpgug_par_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODULE des Objekts Programmblock als Text zurück.

d2fpgug_par_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_NAM des Objekts Programmblock als Text zurück.

d2fpgug_pgu_txt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PGU_TXT des Objekts Programmblock als Text zurück.

d2fpgug_pgu_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PGU_TYP des Objekts Programmblock als Zahl zurück.

d2fpgug_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Programmblock als Objekt zurück.

d2fpgug_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Programmblock als Objekt zurück.

d2fpgus_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Programmblock.

d2fpgus_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Kommentare des Objekts Programmblock.

d2fpgus_par_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Programmblock.

d2fpgus_par_flpath( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Programmblock.

d2fpgus_par_modstr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Programmblock.

d2fpgus_par_modtyp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Programmblock.

d2fpgus_par_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODULE des Objekts Programmblock.

d2fpgus_par_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_NAM des Objekts Programmblock.

d2fpgus_pgu_txt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PGU_TXT des Objekts Programmblock.


Makros des Objekts Attributklasse

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Attributklasse von Form Builder beschrieben.

d2fppcg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Attributklasse als Zeiger dvoid zurück.

d2fppcg_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_COMMENT des Objekts Attributklasse als Text zurück.

d2fppcg_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts Attributklasse als Objekt zurück.

d2fppcg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NAME des Objekts Attributklasse als Text zurück.

d2fppcg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Attributklasse als Objekt zurück.

d2fppcg_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts Attributklasse als Objekt zurück.

d2fppcg_par_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Attributklasse als Text zurück.

d2fppcg_par_flpath( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Attributklasse als Text zurück.

d2fppcg_par_modstr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Attributklasse als Zahl zurück.

d2fppcg_par_modtyp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Attributklasse als Zahl zurück.

d2fppcg_par_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODULE des Objekts Attributklasse als Text zurück.

d2fppcg_par_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_NAM des Objekts Attributklasse als Text zurück.

d2fppcg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Attributklasse als Objekt zurück.

d2fppcg_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Attributklasse als Objekt zurück.

d2fppcg_trigger( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_TRIGGER des Objekts Attributklasse als Objekt zurück.

d2fppcs_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Attributklasse.

d2fppcs_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_COMMENT des Objekts Attributklasse.

d2fppcs_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NAME des Objekts Attributklasse.

d2fppcs_par_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Attributklasse.

d2fppcs_par_flpath( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Attributklasse.

d2fppcs_par_modstr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Attributklasse.

d2fppcs_par_modtyp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Attributklasse.

d2fppcs_par_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODULE des Objekts Attributklasse.

d2fppcs_par_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_NAM des Objekts Attributklasse.


Makros des Objekts Optionsschaltfläche

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Optionsschaltfläche von Form Builder beschrieben.

d2frdbg_access_key( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Zugriffstaste des Objekts Optionsschaltfläche als Text zurück.

d2frdbg_back_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Hintergrundfarbe des Objekts Optionsschaltfläche als Text zurück.

d2frdbg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Optionsschaltfläche als Zeiger dvoid zurück.

d2frdbg_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Kommentare des Objekts Optionsschaltfläche als Text zurück.

d2frdbg_dist_btwn_recs( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Abstand zwischen Datensätzen des Objekts Optionsschaltfläche als Zahl zurück.

d2frdbg_enabled( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Aktiviert des Objekts Optionsschaltfläche als Booleschen Wert zurück.

d2frdbg_fill_pat( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Füllmuster des Objekts Optionsschaltfläche als Text zurück.

d2frdbg_font_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftartname des Objekts Optionsschaltfläche als Text zurück.

d2frdbg_font_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftgrad des Objekts Optionsschaltfläche als Zahl zurück.

d2frdbg_font_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Zeichenabstand des Objekts Optionsschaltfläche als Zahl zurück.

d2frdbg_font_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftstil des Objekts Optionsschaltfläche als Zahl zurück.

d2frdbg_font_weight( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Schriftstärke des Objekts Optionsschaltfläche als Zahl zurück.

d2frdbg_fore_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Vordergrundfarbe des Objekts Optionsschaltfläche als Text zurück.

d2frdbg_height( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Breite/Höhe des Objekts Optionsschaltfläche als Zahl zurück.

d2frdbg_label( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Beschriftung des Objekts Optionsschaltfläche als Text zurück.

d2frdbg_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts Optionsschaltfläche als Objekt zurück.

d2frdbg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Name des Objekts Optionsschaltfläche als Text zurück.

d2frdbg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Optionsschaltfläche als Objekt zurück.

d2frdbg_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts Optionsschaltfläche als Objekt zurück.

d2frdbg_par_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Optionsschaltfläche als Text zurück.

d2frdbg_par_flpath( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Optionsschaltfläche als Text zurück.

d2frdbg_par_modstr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Optionsschaltfläche als Zahl zurück.

d2frdbg_par_modtyp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Optionsschaltfläche als Zahl zurück.

d2frdbg_par_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODULE des Objekts Optionsschaltfläche als Text zurück.

d2frdbg_par_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_NAM des Objekts Optionsschaltfläche als Text zurück.

d2frdbg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Optionsschaltfläche als Objekt zurück.

d2frdbg_prmpt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt des Objekts Optionsschaltfläche als Text zurück.

d2frdbg_prmpt_align( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Ausrichtung des Objekts Optionsschaltfläche als Zahl zurück.

d2frdbg_prmpt_align_ofst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Versatz Prompt-Ausrichtung des Objekts Optionsschaltfläche als Zahl zurück.

d2frdbg_prmpt_att_edge( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Rand Prompt-Zuordnung des Objekts Optionsschaltfläche als Zahl zurück.

d2frdbg_prmpt_att_ofst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Versatz Prompt-Zuordnung des Objekts Optionsschaltfläche als Zahl zurück.

d2frdbg_prmpt_back_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Hintergrundfarbe des Objekts Optionsschaltfläche als Text zurück.

d2frdbg_prmpt_disp_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Anzeigestil des Objekts Optionsschaltfläche als Zahl zurück.

d2frdbg_prmpt_fill_pat( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Füllmuster des Objekts Optionsschaltfläche als Text zurück.

d2frdbg_prmpt_font_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Schriftartname des Objekts Optionsschaltfläche als Text zurück.

d2frdbg_prmpt_font_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Schriftgrad des Objekts Optionsschaltfläche als Zahl zurück.

d2frdbg_prmpt_font_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Zeichenabstand des Objekts Optionsschaltfläche als Zahl zurück.

d2frdbg_prmpt_font_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Schriftstil des Objekts Optionsschaltfläche als Zahl zurück.

d2frdbg_prmpt_font_wght( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Schriftstärke des Objekts Optionsschaltfläche als Zahl zurück.

d2frdbg_prmpt_fore_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Vordergrundfarbe des Objekts Optionsschaltfläche als Text zurück.

d2frdbg_prmpt_jst( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Justierung des Objekts Optionsschaltfläche als Zahl zurück.

d2frdbg_prmpt_reading_ordr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Prompt-Lesereihenfolge des Objekts Optionsschaltfläche als Zahl zurück.

d2frdbg_prmpt_vat_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PRMPT_VAT_NAM des Objekts Optionsschaltfläche als Text zurück.

d2frdbg_prmpt_vat_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PRMPT_VAT_OBJ des Objekts Optionsschaltfläche als Objekt zurück.

d2frdbg_rdb_val( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Optionsschaltflächenwert des Objekts Optionsschaltfläche als Text zurück.

d2frdbg_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Optionsschaltfläche als Objekt zurück.

d2frdbg_vat_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Visuelle Attributgruppe des Objekts Optionsschaltfläche als Text zurück.

d2frdbg_vat_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_VAT_OBJ des Objekts Optionsschaltfläche als Objekt zurück.

d2frdbg_visible( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Sichtbar des Objekts Optionsschaltfläche als Booleschen Wert zurück.

d2frdbg_white_on_black( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Weiß auf Schwarz des Objekts Optionsschaltfläche als Booleschen Wert zurück.

d2frdbg_width( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs Breite/Höhe des Objekts Optionsschaltfläche als Zahl zurück.

d2frdbg_x_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs X-Position/Y-Position des Objekts Optionsschaltfläche als Zahl zurück.

d2frdbg_y_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs X-Position/Y-Position des Objekts Optionsschaltfläche als Zahl zurück.

d2frdbs_access_key( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Zugriffstaste des Objekts Optionsschaltfläche.

d2frdbs_back_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Hintergrundfarbe des Objekts Optionsschaltfläche.

d2frdbs_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Optionsschaltfläche.

d2frdbs_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Kommentare des Objekts Optionsschaltfläche.

d2frdbs_dist_btwn_recs( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Abstand zwischen Datensätzen des Objekts Optionsschaltfläche.

d2frdbs_enabled( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Aktiviert des Objekts Optionsschaltfläche.

d2frdbs_fill_pat( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Füllmuster des Objekts Optionsschaltfläche.

d2frdbs_font_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftartname des Objekts Optionsschaltfläche.

d2frdbs_font_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftgrad des Objekts Optionsschaltfläche.

d2frdbs_font_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Zeichenabstand des Objekts Optionsschaltfläche.

d2frdbs_font_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftstil des Objekts Optionsschaltfläche.

d2frdbs_font_weight( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Schriftstärke des Objekts Optionsschaltfläche.

d2frdbs_fore_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Vordergrundfarbe des Objekts Optionsschaltfläche.

d2frdbs_height( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Breite/Höhe des Objekts Optionsschaltfläche.

d2frdbs_label( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Beschriftung des Objekts Optionsschaltfläche.

d2frdbs_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MODULE des Objekts Optionsschaltfläche.

d2frdbs_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Name des Objekts Optionsschaltfläche.

d2frdbs_next( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NEXT des Objekts Optionsschaltfläche.

d2frdbs_owner( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_OWNER des Objekts Optionsschaltfläche.

d2frdbs_par_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Optionsschaltfläche.

d2frdbs_par_flpath( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Optionsschaltfläche.

d2frdbs_par_modstr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Optionsschaltfläche.

d2frdbs_par_modtyp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Optionsschaltfläche.

d2frdbs_par_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODULE des Objekts Optionsschaltfläche.

d2frdbs_par_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_NAM des Objekts Optionsschaltfläche.

d2frdbs_previous( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PREVIOUS des Objekts Optionsschaltfläche.

d2frdbs_prmpt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt des Objekts Optionsschaltfläche.

d2frdbs_prmpt_align( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Ausrichtung des Objekts Optionsschaltfläche.

d2frdbs_prmpt_align_ofst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Versatz Prompt-Ausrichtung des Objekts Optionsschaltfläche.

d2frdbs_prmpt_att_edge( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Rand Prompt-Zuordnung des Objekts Optionsschaltfläche.

d2frdbs_prmpt_att_ofst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Versatz Prompt-Zuordnung des Objekts Optionsschaltfläche.

d2frdbs_prmpt_back_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Hintergrundfarbe des Objekts Optionsschaltfläche.

d2frdbs_prmpt_disp_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Anzeigestil des Objekts Optionsschaltfläche.

d2frdbs_prmpt_fill_pat( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Füllmuster des Objekts Optionsschaltfläche.

d2frdbs_prmpt_font_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Schriftartname des Objekts Optionsschaltfläche.

d2frdbs_prmpt_font_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Schriftgrad des Objekts Optionsschaltfläche.

d2frdbs_prmpt_font_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Zeichenabstand des Objekts Optionsschaltfläche.

d2frdbs_prmpt_font_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Schriftstil des Objekts Optionsschaltfläche.

d2frdbs_prmpt_font_wght( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Schriftstärke des Objekts Optionsschaltfläche.

d2frdbs_prmpt_fore_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Vordergrundfarbe des Objekts Optionsschaltfläche.

d2frdbs_prmpt_jst( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Justierung des Objekts Optionsschaltfläche.

d2frdbs_prmpt_reading_ordr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Prompt-Lesereihenfolge des Objekts Optionsschaltfläche.

d2frdbs_prmpt_vat_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PRMPT_VAT_NAM des Objekts Optionsschaltfläche.

d2frdbs_prmpt_vat_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PRMPT_VAT_OBJ des Objekts Optionsschaltfläche.

d2frdbs_rdb_val( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Optionsschaltflächenwert des Objekts Optionsschaltfläche.

d2frdbs_source( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SOURCE des Objekts Optionsschaltfläche.

d2frdbs_vat_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Visuelle Attributgruppe des Objekts Optionsschaltfläche.

d2frdbs_vat_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_VAT_OBJ des Objekts Optionsschaltfläche.

d2frdbs_visible( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Sichtbar des Objekts Optionsschaltfläche.

d2frdbs_white_on_black( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Weiß auf Schwarz des Objekts Optionsschaltfläche.

d2frdbs_width( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs Breite/Höhe des Objekts Optionsschaltfläche.

d2frdbs_x_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs X-Position/Y-Position des Objekts Optionsschaltfläche.

d2frdbs_y_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs X-Position/Y-Position des Objekts Optionsschaltfläche.


Makros des Objekts Datensatzgruppe

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Datensatzgruppe von Form Builder beschrieben.

d2frcgg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Datensatzgruppe als Zeiger dvoid zurück.

d2frcgg_col_spec( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_COL_SPEC des Objekts Datensatzgruppe als Objekt zurück.

d2frcgg_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_COMMENT des Objekts Datensatzgruppe als Text zurück.

d2frcgg_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts Datensatzgruppe als Objekt zurück.

d2frcgg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NAME des Objekts Datensatzgruppe als Text zurück.

d2frcgg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Datensatzgruppe als Objekt zurück.

d2frcgg_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts Datensatzgruppe als Objekt zurück.

d2frcgg_par_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Datensatzgruppe als Text zurück.

d2frcgg_par_flpath( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Datensatzgruppe als Text zurück.

d2frcgg_par_modstr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Datensatzgruppe als Zahl zurück.

d2frcgg_par_modtyp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Datensatzgruppe als Zahl zurück.

d2frcgg_par_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODULE des Objekts Datensatzgruppe als Text zurück.

d2frcgg_par_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_NAM des Objekts Datensatzgruppe als Text zurück.

d2frcgg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Datensatzgruppe als Objekt zurück.

d2frcgg_rec_grp_fetch_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_REC_GRP_FETCH_SIZ des Objekts Datensatzgruppe als Zahl zurück.

d2frcgg_rec_grp_qry( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_REC_GRP_QRY des Objekts Datensatzgruppe als Text zurück.

d2frcgg_rec_grp_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Datensatzgruppe als Zahl zurück.

d2frcgg_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Datensatzgruppe als Objekt zurück.

d2frcgs_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Datensatzgruppe.

d2frcgs_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_COMMENT des Objekts Datensatzgruppe.

d2frcgs_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NAME des Objekts Datensatzgruppe.

d2frcgs_par_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Datensatzgruppe.

d2frcgs_par_flpath( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Datensatzgruppe.

d2frcgs_par_modstr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Datensatzgruppe.

d2frcgs_par_modtyp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Datensatzgruppe.

d2frcgs_par_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODULE des Objekts Datensatzgruppe.

d2frcgs_par_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_NAM des Objekts Datensatzgruppe.

d2frcgs_rec_grp_fetch_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_REC_GRP_FETCH_SIZ des Objekts Datensatzgruppe.

d2frcgs_rec_grp_qry( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_REC_GRP_QRY des Objekts Datensatzgruppe.

d2frcgs_rec_grp_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_REC_GRP_TYP des Objekts Datensatzgruppe.


Makros des Objekts Datensatzgruppen-Spaltenspezifikation

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Datensatzgruppen-Spaltenspezifikation von Form Builder beschrieben.

d2frcsg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Datensatzgruppen-Spaltenspezifikation als Zeiger dvoid zurück.

d2frcsg_col_dat_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_COL_DAT_TYP des Objekts Datensatzgruppen-Spaltenspezifikation als Zahl zurück.

d2frcsg_col_vals_count( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_COL_VALS_COUNT des Objekts Datensatzgruppen-Spaltenspezifikation als Zahl zurück.

d2frcsg_max_len( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MAX_LEN des Objekts Datensatzgruppen-Spaltenspezifikation als Zahl zurück.

d2frcsg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NAME des Objekts Datensatzgruppen-Spaltenspezifikation als Text zurück.

d2frcsg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Datensatzgruppen-Spaltenspezifikation als Objekt zurück.

d2frcsg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Datensatzgruppen-Spaltenspezifikation als Objekt zurück.

d2frcss_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Datensatzgruppen-Spaltenspezifikation.

d2frcss_col_dat_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_COL_DAT_TYP des Objekts Datensatzgruppen-Spaltenspezifikation.

d2frcss_max_len( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MAX_LEN des Objekts Datensatzgruppen-Spaltenspezifikation.

d2frcss_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NAME des Objekts Datensatzgruppen-Spaltenspezifikation.


Makros des Objekts Beziehung

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Beziehung von Form Builder beschrieben.

d2frelg_auto_qry( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_AUTO_QRY des Objekts Beziehung als Booleschen Wert zurück.

d2frelg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Beziehung als Zeiger dvoid zurück.

d2frelg_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_COMMENT des Objekts Beziehung als Text zurück.

d2frelg_deferred( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DEFERRED des Objekts Beziehung als Booleschen Wert zurück.

d2frelg_del_rec( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DEL_REC des Objekts Beziehung als Zahl zurück.

d2frelg_detail_blk( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DETAIL_BLK des Objekts Beziehung als Text zurück.

d2frelg_join_cond( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_JOIN_COND des Objekts Beziehung als Text zurück.

d2frelg_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts Beziehung als Objekt zurück.

d2frelg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NAME des Objekts Beziehung als Text zurück.

d2frelg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Beziehung als Objekt zurück.

d2frelg_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts Beziehung als Objekt zurück.

d2frelg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Beziehung als Objekt zurück.

d2frelg_prvnt_mstrless_ops( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PRVNT_MSTRLESS_OPS des Objekts Beziehung als Booleschen Wert zurück.

d2frelg_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Beziehung als Objekt zurück.

d2frels_auto_qry( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_AUTO_QRY des Objekts Beziehung.

d2frels_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Beziehung.

d2frels_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_COMMENT des Objekts Beziehung.

d2frels_deferred( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DEFERRED des Objekts Beziehung.

d2frels_del_rec( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DEL_REC des Objekts Beziehung.

d2frels_detail_blk( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DETAIL_BLK des Objekts Beziehung.

d2frels_join_cond( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_JOIN_COND des Objekts Beziehung.

d2frels_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NAME des Objekts Beziehung.

d2frels_prvnt_mstrless_ops( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PRVNT_MSTRLESS_OPS des Objekts Beziehung.


Makros des Objekts Bericht

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Bericht von Form Builder beschrieben.

d2frptg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Bericht als Zeiger dvoid zurück.

d2frptg_comm_mode( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_COMM_MODE des Objekts Bericht als Zahl zurück.

d2frptg_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_COMMENT des Objekts Bericht als Text zurück.

d2frptg_dat_src_blk( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DAT_SRC_BLK des Objekts Bericht als Text zurück.

d2frptg_exec_mode( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_EXEC_MODE des Objekts Bericht als Zahl zurück.

d2frptg_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FLNAM des Objekts Bericht als Text zurück.

d2frptg_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts Bericht als Objekt zurück.

d2frptg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NAME des Objekts Bericht als Text zurück.

d2frptg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Bericht als Objekt zurück.

d2frptg_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts Bericht als Objekt zurück.

d2frptg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Bericht als Objekt zurück.

d2frptg_rpt_destination_fmt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_RPT_DESTINATION_FMT des Objekts Bericht als Text zurück.

d2frptg_rpt_destination_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_ RPT_DESTINATION_NAM des Objekts Bericht als Text zurück.

d2frptg_rpt_destination_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_ RPT_DESTINATION_TYP des Objekts Bericht als Zahl zurück.

d2frptg_rpt_params( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_RPT_PARAMS des Objekts Bericht als Text zurück.

d2frptg_rpt_srvr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_RPT_SRVR des Objekts Bericht als Text zurück.

d2frptg_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Bericht als Objekt zurück.

d2frpts_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Bericht.

d2frpts_comm_mode( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_COMM_MODE des Objekts Bericht.

d2frpts_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_COMMENT des Objekts Bericht.

d2frpts_dat_src_blk( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DAT_SRC_BLK des Objekts Bericht.

d2frpts_exec_mode( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_EXEC_MODE des Objekts Bericht.

d2frpts_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FLNAM des Objekts Bericht.

d2frpts_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NAME des Objekts Bericht.

d2frpts_rpt_destination_fmt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_RPT_DESTINATION_FMT des Objekts Bericht.

d2frpts_rpt_destination_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_RPT_DESTINATION_NAM des Objekts Bericht.

d2frpts_rpt_destination_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_RPT_DESTINATION_TYP des Objekts Bericht.

d2frpts_rpt_params( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_RPT_PARAMS des Objekts Bericht.

d2frpts_rpt_srvr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_RPT_SRVR des Objekts Bericht.


Makros des Objekts Registerseite

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Registerseite von Form Builder beschrieben.

d2ftbpg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Registerseite als Zeiger dvoid zurück.

d2ftbpg_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_COMMENT des Objekts Registerseite als Text zurück.

d2ftbpg_enabled( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_ENABLED des Objekts Registerseite als Booleschen Wert zurück.

d2ftbpg_graphic( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_GRAPHIC des Objekts Registerseite als Objekt zurück.

d2ftbpg_label( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_LABEL des Objekts Registerseite als Text zurück.

d2ftbpg_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts Registerseite als Objekt zurück.

d2ftbpg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NAME des Objekts Registerseite als Text zurück.

d2ftbpg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Registerseite als Objekt zurück.

d2ftbpg_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts Registerseite als Objekt zurück.

d2ftbpg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Registerseite als Objekt zurück.

d2ftbpg_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Registerseite als Objekt zurück.

d2ftbpg_visible( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_VISIBLE des Objekts Registerseite als Booleschen Wert zurück.

d2ftbps_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Registerseite.

d2ftbps_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_COMMENT des Objekts Registerseite.

d2ftbps_enabled( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_ENABLED des Objekts Registerseite.

d2ftbps_label( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_LABEL des Objekts Registerseite.

d2ftbps_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NAME des Objekts Registerseite.

d2ftbps_visible( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_VISIBLE des Objekts Registerseite.


Makros des Objekts Trigger

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Trigger von Form Builder beschrieben.

d2ftrgg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Trigger als Zeiger dvoid zurück.

d2ftrgg_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_COMMENT des Objekts Trigger als Text zurück.

d2ftrgg_disp_in_kbrd_hlp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_DISP_IN_KBRD_HLP des Objekts Trigger als Booleschen Wert zurück.

d2ftrgg_exec_hierarchy( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_EXEC_HIERARCHY des Objekts Trigger als Zahl zurück.

d2ftrgg_fire_in_qry( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FIRE_IN_QRY des Objekts Trigger als Booleschen Wert zurück.

d2ftrgg_kbrd_hlp_txt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_KBRD_HLP_TXT des Objekts Trigger als Text zurück.

d2ftrgg_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts Trigger als Objekt zurück.

d2ftrgg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NAME des Objekts Trigger als Text zurück.

d2ftrgg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Trigger als Objekt zurück.

d2ftrgg_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts Trigger als Objekt zurück.

d2ftrgg_par_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Trigger als Text zurück.

d2ftrgg_par_flpath( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Trigger als Text zurück.

d2ftrgg_par_modstr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Trigger als Zahl zurück.

d2ftrgg_par_modtyp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAT_MODTYP des Objekts Trigger als Zahl zurück.

d2ftrgg_par_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODULE des Objekts Trigger als Text zurück.

d2ftrgg_par_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_NAM des Objekts Trigger als Text zurück.

d2ftrgg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Trigger als Objekt zurück.

d2ftrgg_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Trigger als Objekt zurück.

d2ftrgg_trg_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_TRG_STY des Objekts Trigger als Zahl zurück.

d2ftrgg_trg_txt( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_TRG_TXT des Objekts Trigger als Text zurück.

d2ftrgg_trg_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_TRG_TYP des Objekts Trigger als Zahl zurück.

d2ftrgs_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Trigger.

d2ftrgs_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_COMMENT des Objekts Trigger.

d2ftrgs_disp_in_kbrd_hlp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_DISP_IN_KBRD_HLP des Objekts Trigger.

d2ftrgs_exec_hierarchy( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_EXEC_HIERARCHY des Objekts Trigger.

d2ftrgs_fire_in_qry( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FIRE_IN_QRY des Objekts Trigger.

d2ftrgs_kbrd_hlp_txt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_KBRD_HLP_TXT des Objekts Trigger.

d2ftrgs_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NAME des Objekts Trigger.

d2ftrgs_par_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Trigger.

d2ftrgs_par_flpath( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Trigger.

d2ftrgs_par_modstr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Trigger.

d2ftrgs_par_modtyp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Trigger.

d2ftrgs_par_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODULE des Objekts Trigger.

d2ftrgs_par_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_NAM des Objekts Trigger.

d2ftrgs_trg_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_TRG_STY des Objekts Trigger.

d2ftrgs_trg_txt( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_TRG_TXT des Objekts Trigger.

d2ftrgs_trg_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_TRG_TYP des Objekts Trigger.


Makros des Objekts Visuelles Attribut

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Visuelles Attribut von Form Builder beschrieben.

d2fvatg_back_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_BACK_COLOR des Objekts Visuelles Attribut als Text zurück.

d2fvatg_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Visuelles Attribut als Zeiger dvoid zurück.

d2fvatg_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_COMMENT des Objekts Visuelles Attribut als Text zurück.

d2fvatg_fill_pat( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FILL_PAT des Objekts Visuelles Attribut als Text zurück.

d2fvatg_font_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FONT_NAM des Objekts Visuelles Attribut als Text zurück.

d2fvatg_font_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FONT_SIZ des Objekts Visuelles Attribut als Zahl zurück.

d2fvatg_font_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FONT_SPCING des Objekts Visuelles Attribut als Zahl zurück.

d2fvatg_font_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FONT_STY des Objekts Visuelles Attribut als Zahl zurück.

d2fvatg_font_wgth( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FONT_WGHT des Objekts Visuelles Attribut als Zahl zurück.

d2fvatg_fore_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FORE_COLOR des Objekts Visuelles Attribut als Text zurück.

d2fvatg_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts Visuelles Attribut als Objekt zurück.

d2fvatg_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NAME des Objekts Visuelles Attribut als Text zurück.

d2fvatg_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Visuelles Attribut als Objekt zurück.

d2fvatg_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts Visuelles Attribut als Objekt zurück.

d2fvatg_par_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Visuelles Attribut als Text zurück.

d2fvatg_par_flpath( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Visuelles Attribut als Text zurück.

d2fvatg_par_modstr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Visuelles Attribut als Zahl zurück.

d2fvatg_par_modtyp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Visuelles Attribut als Zahl zurück.

d2fvatg_par_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODULE des Objekts Visuelles Attribut als Text zurück.

d2fvatg_par_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_NAM des Objekts Visuelles Attribut als Text zurück.

d2fvatg_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Visuelles Attribut als Objekt zurück.

d2fvatg_prmpt_back_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PRMPT_BACK_COLOR des Objekts Visuelles Attribut als Text zurück.

d2fvatg_prmpt_fill_pat( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PRMPT_FILL_PAT des Objekts Visuelles Attribut als Text zurück.

d2fvatg_prmpt_font_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PRMPT_FONT_NAM des Objekts Visuelles Attribut als Text zurück.

d2fvatg_prmpt_font_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PRMPT_FONT_SIZ des Objekts Visuelles Attribut als Zahl zurück.

d2fvatg_prmpt_font_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PRMPT_FONT_SPCING des Objekts Visuelles Attribut als Zahl zurück.

d2fvatg_prmpt_font_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PRMPT_FONT_STY des Objekts Visuelles Attribut als Zahl zurück.

d2fvatg_prmpt_font_wght( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PRMPT_FONT_WGHT des Objekts Visuelles Attribut als Zahl zurück.

d2fvatg_prmpt_fore_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PRMPT_FORE_COLOR des Objekts Visuelles Attribut als Text zurück.

d2fvatg_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Visuelles Attribut als Objekt zurück.

d2fvatg_vat_typ( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_VAT_TYP des Objekts Visuelles Attribut als Zahl zurück.

d2fvatg_white_on_black( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_WHITE_ON_BLACK des Objekts Visuelles Attribut als Booleschen Wert zurück.

d2fvats_back_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_BACK_COLOR des Objekts Visuelles Attribut.

d2fvats_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Visuelles Attribut.

d2fvats_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_COMMENT des Objekts Visuelles Attribut.

d2fvats_fill_pat( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FILL_PAT des Objekts Visuelles Attribut.

d2fvats_font_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FONT_NAM des Objekts Visuelles Attribut.

d2fvats_font_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FONT_SIZ des Objekts Visuelles Attribut.

d2fvats_font_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FONT_SPCING des Objekts Visuelles Attribut.

d2fvats_font_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FONT_STY des Objekts Visuelles Attribut.

d2fvats_font_wght( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FONT_WGHT des Objekts Visuelles Attribut.

d2fvats_fore_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FORE_COLOR des Objekts Visuelles Attribut.

d2fvats_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NAME des Objekts Visuelles Attribut.

d2fvats_par_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Visuelles Attribut.

d2fvats_par_flpath( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Visuelles Attribut.

d2fvats_par_modstr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Visuelles Attribut.

d2fvats_par_modtyp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Visuelles Attribut.

d2fvats_par_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODULE des Objekts Visuelles Attribut.

d2fvats_par_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_NAM des Objekts Visuelles Attribut.

d2fvats_prmpt_back_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PROMPT_BACK_COLOR des Objekts Visuelles Attribut.

d2fvats_prmpt_fill_pat( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PROMPT_FILL_PAT des Objekts Visuelles Attribut.

d2fvats_prmpt_font_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PROMPT_FONT_NAM des Objekts Visuelles Attribut.

d2fvats_prmpt_font_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PROMPT_FONT_SIZ des Objekts Visuelles Attribut.

d2fvats_prmpt_font_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PROMPT_FONT_SPCING des Objekts Visuelles Attribut.

d2fvats_prmpt_font_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PROMPT_FONT_STY des Objekts Visuelles Attribut.

d2fvats_prmpt_font_wght( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PROMPT_FONT_WGHT des Objekts Visuelles Attribut.

d2fvats_prmpt_fore_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PROMPT_FORE_COLOR des Objekts Visuelles Attribut.

d2fvats_vat_typ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_VAT_TYP des Objekts Visuelles Attribut.

d2fvats_white_on_black( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_WHITE_ON_BLACK des Objekts Visuelles Attribut.


Makros des Objekts Fenster

  Verwandte Themen

In diesem Abschnitt werden die Makros des Open API-Objekts Fenster von Form Builder beschrieben.

d2fwing_back_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_BACK_COLOR des Objekts Fenster als Text zurück.

d2fwing_bevel( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_BEVEL des Objekts Fenster als Zahl zurück.

d2fwing_client_info( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Fenster als Zeiger dvoid zurück.

d2fwing_cls_allowed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_CLS_ALLOWED des Objekts Fenster als Booleschen Wert zurück.

d2fwing_comment( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_COMMENT des Objekts Fenster als Text zurück.

d2fwing_fill_pat( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FILL_PAT des Objekts Fenster als Text zurück.

d2fwing_font_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FONT_NAM des Objekts Fenster als Text zurück.

d2fwing_font_siz( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FONT_SIZ des Objekts Fenster als Zahl zurück.

d2fwing_font_spcing( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FONT_SPCING des Objekts Fenster als Zahl zurück.

d2fwing_font_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FONT_STY des Objekts Fenster als Zahl zurück.

d2fwing_font_wgth( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FONT_WGHT des Objekts Fenster als Zahl zurück.

d2fwing_fore_color( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_FORE_COLOR des Objekts Fenster als Text zurück.

d2fwing_height( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_HEIGHT des Objekts Fenster als Zahl zurück.

d2fwing_hide_on_exit( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_HIDE_ON_EXIT des Objekts Fenster als Booleschen Wert zurück.

d2fwing_htb_cnv_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_HTB_CNV_NAME des Objekts Fenster als Text zurück.

d2fwing_icon_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_ICON_FLNAM des Objekts Fenster als Text zurück.

d2fwing_inhrt_mnu( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_INHRT_MNU des Objekts Fenster als Booleschen Wert zurück.

d2fwing_lang_dir( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_LANG_DIR des Objekts Fenster als Zahl zurück.

d2fwing_maximize_allowed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MAXIMIZE_ALLOWED des Objekts Fenster als Booleschen Wert zurück.

d2fwing_minimize_allowed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MINIMIZE_ALLOWED des Objekts Fenster als Booleschen Wert zurück.

d2fwing_minimize_ttl( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MINIMIZE_TTL des Objekts Fenster als Text zurück.

d2fwing_modal( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODAL des Objekts Fenster als Booleschen Wert zurück.

d2fwing_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MODULE des Objekts Fenster als Objekt zurück.

d2fwing_mv_allowed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_MV_ALLOWED des Objekts Fenster als Booleschen Wert zurück.

d2fwing_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NAME des Objekts Fenster als Text zurück.

d2fwing_next( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_NEXT des Objekts Fenster als Objekt zurück.

d2fwing_owner( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_OWNER des Objekts Fenster als Objekt zurück.

d2fwing_par_flnam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Fenster als Text zurück.

d2fwing_par_flpath( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Fenster als Text zurück.

d2fwing_par_modstr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Fenster als Zahl zurück.

d2fwing_par_modtyp( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Fenster als Zahl zurück.

d2fwing_par_module( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_MODULE des Objekts Fenster als Text zurück.

d2fwing_par_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PAR_NAM des Objekts Fenster als Text zurück.

d2fwing_previous( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PREVIOUS des Objekts Fenster als Objekt zurück.

d2fwing_prmry_cnv( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_PRMRY_CNV des Objekts Fenster als Text zurück.

d2fwing_resize_allowed( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_RESIZE_ALLOWED des Objekts Fenster als Booleschen Wert zurück.

d2fwing_show_horz_scrlbr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SHOW_HORZ_SCRLBR des Objekts Fenster als Booleschen Wert zurück.

d2fwing_show_vert_scrlbr( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SHOW_VERT_SCRLBR des Objekts Fenster als Booleschen Wert zurück.

d2fwing_source( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_SOURCE des Objekts Fenster als Objekt zurück.

d2fwing_title( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_TITLE des Objekts Fenster als Text zurück.

d2fwing_vat_nam( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_VAT_NAM des Objekts Fenster als Text zurück.

d2fwing_vat_obj( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_VAT_OBJ des Objekts Fenster als Objekt zurück.

d2fwing_vtb_cnv_name( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_VTB_CNV_NAME des Objekts Fenster als Text zurück.

d2fwing_white_on_black( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_WHITE_ON_BLACK des Objekts Fenster als Booleschen Wert zurück.

d2fwing_width( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_WIDTH des Objekts Fenster als Zahl zurück.

d2fwing_win_sty( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_WIN_STY des Objekts Fenster als Zahl zurück.

d2fwing_x_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_X_POS des Objekts Fenster als Zahl zurück.

d2fwing_y_pos( ctx, obj, val );

Dieser Makro gibt den Wert des Attributs D2FP_Y_POS des Objekts Fenster als Zahl zurück.

d2fwins_back_color ( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_BACK_COLOR des Objekts Fenster.

d2fwins_bevel( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_BEVEL des Objekts Fenster.

d2fwins_client_info( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLIENT_INFO des Objekts Fenster.

d2fwins_cls_allowed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_CLS_ALLOWED des Objekts Fenster.

d2fwins_comment( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_COMMENT des Objekts Fenster.

d2fwins_fill_pat( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FILL_PAT des Objekts Fenster.

d2fwins_font_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FONT_NAM des Objekts Fenster.

d2fwins_font_siz( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FONT_SIZ des Objekts Fenster.

d2fwins_font_spcing( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FONT_SPCING des Objekts Fenster.

d2fwins_font_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FONT_STY des Objekts Fenster.

d2fwins_font_wght( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FONT_WGHT des Objekts Fenster.

d2fwins_fore_color( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_FORE_COLOR des Objekts Fenster.

d2fwins_height( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_HEIGHT des Objekts Fenster.

d2fwins_hide_on_exit( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_HIDE_ON_EXIT des Objekts Fenster.

d2fwins_htb_cnv_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_HTB_CNV_NAME des Objekts Fenster.

d2fwins_icon_flname( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_ICON_FLNAME des Objekts Fenster.

d2fwins_inhrt_mnu( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_INHRT_MNU des Objekts Fenster.

d2fwins_lang_dir( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_LANG_DIR des Objekts Fenster.

d2fwins_maximize_allowed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MAXIMIZE_ALLOWED des Objekts Fenster.

d2fwins_minimize_allowed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MINIMIZE_ALLOWED des Objekts Fenster.

d2fwins_minimize_ttl( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MINIMIZE_TTL des Objekts Fenster.

d2fwins_modal( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MODAL des Objekts Fenster.

d2fwins_mv_allowed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_MV_ALLOWED des Objekts Fenster.

d2fwins_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_NAME des Objekts Fenster.

d2fwins_par_flnam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLNAM des Objekts Fenster.

d2fwins_par_flpath( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_FLPATH des Objekts Fenster.

d2fwins_par_modstr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODSTR des Objekts Fenster.

d2fwins_par_modtyp( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODTYP des Objekts Fenster.

d2fwins_par_module( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_MODULE des Objekts Fenster.

d2fwins_par_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PAR_NAM des Objekts Fenster.

d2fwins_prmry_cnv( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_PRMRY_CNV des Objekts Fenster.

d2fwins_resize_allowed( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_RESIZE_ALLOWED des Objekts Fenster.

d2fwins_show_horz_scrlbr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SHOW_HORZ_SCRLBR des Objekts Fenster.

d2fwins_show_vert_scrlbr( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_SHOW_VERT_SCRLBR des Objekts Fenster.

d2fwins_title( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_TITLE des Objekts Fenster.

d2fwins_vat_nam( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_VAT_NAM des Objekts Fenster.

d2fwins_vat_obj( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_VAT_OBJ des Objekts Fenster.

d2fwins_vtb_cnv_name( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_VTB_CNV_NAME des Objekts Fenster.

d2fwins_white_on_black( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_WHITE_ON_BLACK des Objekts Fenster.

d2fwins_width( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_WIDTH des Objekts Fenster.

d2fwins_win_sty( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_WIN_STY des Objekts Fenster.

d2fwins_x_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_X_POS des Objekts Fenster.

d2fwins_y_pos( ctx, obj, val );

Dieser Makro bestimmt den Wert des Attributs D2FP_Y_POS des Objekts Fenster.


Module mit Open API erstellen

 Beispiele	     Verwandte Themen

So erstellen Sie ein Grundmodul von Form Builder:

1	Nehmen Sie die entsprechenden C-Header-Dateien in dem C-Quellcode auf.

2	Rufen Sie die gewünschten Open API-Funktionen in dem C-Quellcode auf.

A. 	Initialisieren Sie die Kontextstruktur.

B. 	Nehmen Sie "create"- oder "load"-Funktionsaufrufe vor, um ein neues Formmodul, Menümodul oder eine neue Objektbibliothek zu erstellen bzw. ein bestehendes Formmodul, Menümodul oder eine bestehende Objektbibliothek zu öffnen.

C. 	Nehmen Sie die erforderlichen Open API-Funktionsaufrufe vor, um die gewünschten Vorgänge auszuführen, gegebenenfalls einschließlich der Anmeldung bei einer bestehenden Datenbank.

D. 	Generieren Sie eine kompilierte .fmx- oder .mmx-Form mit der entsprechenden Funktion "CompileFile()".

E. 	Nehmen Sie die erforderlichen Funktionsaufrufe vor, um das verknüpfte Modul zu speichern (z.B. d2ffmdsv_Save() bei einem Formmodul, d2fmmdsv_Save() bei einem Menümodul oder d2folbsv_Save() bei einer Objektbibliothek).

F. 	Schließlich rufen Sie die Kontext-Funktion Destroy, d2fctxde_Destroy(), auf, um den Open API-Kontext zu zerstören. Beachten Sie, daß dieser Funktionsaufruf der letzte sein muß.

3	Verknüpfen Sie die Quelldateien mit der Open API-Bibliothek (f50d2f32.lib).

4	Kompilieren Sie die Dateien, um eine ausführbare Routine zu erstellen.

5	Führen Sie die ausführbare Routine aus, um ein Form Builder-Modul zu erstellen.


Beispiele für das Erstellen von Modulen mit Open API

Beispiel

/*

This example creates a master-detail form based on the dept and emp database tables owned by the user scott.  The master contains the following fields: empno, ename, job, sal, and deptno.  The detail contains the following fields deptno, dname, and loc.  The join condition is deptno.
*/
#include<stdio.h>
#include<string.h>
#include<windows.h>
#include<d2fctx.h>
#include<d2ffmd.h>
#include<d2ffpr.h>
#include<d2fob.h>
#include<d2fcnv.h>
#include<d2ftrg.h>
#include<d2blk.h>
#include<d2fitm.h>
#include<d2fwin.h>
#include<d2frel.h>

#define D2FS_SUCCESS 0
#define FAIL 1
#define BUFSIZE 128
#define WBP_TXT "null;\n"

int WINAPI WinMain(HANDLE hInstance,
                   HANDLE hPrevInstance,
                   LPSTR lpszCommandLine,
                   int cmdShow)
{
d2fctx  *pd2fctx;
d2ffmd  *pd2ffmd;
d2fcnv  *pd2fcnv;
d2fwin  *pd2fwin;

d2fblk  *pempblk;
d2fblk  *pdeptblk;
d2frel  *pd2frel;

d2fitm  *pEempnoitm;
d2fitm  *pEenameitm;
d2fitm  *pEjobitm;
d2fitm  *pEsalitm;

d2fitm  *pEdeptnoitm;
d2fitm  *pDdeptnoitm;
d2fitm  *pDdnameitm;
d2fitm  *pDlocitm;

text  *name = (text *)0;
text  *form_name = (text *)0;
d2fctxa  d2fctx_attr;
d2fstatus retval;
char buf[BUFSIZE];

/* Get form name */
strncpy(buf, "empdept", BUFSIZE);
form_name = (text*)strtok(buf, ".");

/* Initialize the attribute mask */
d2fctx_attr.mask_d2fctxa = 0;

/* for MS Windows-only attributes */
d2fctx_attr.d2fihnd_d2fctxa = hInstance;
d2fctx_attr.d2fphnd_d2fctxa = hPrevInstance;
d2fctx_attr.d2fcmsh_d2fctxa = cmdShow;

/* Create the API context */
status = d2fctxcr_Create(&pd2fctx, &d2fctx_attr);

/* Create the context */
d2fctxcn_Connect(pd2fctx, (text*)"scott/tiger@test");

/* Create the form */
d2ffmdcr_Create(pd2fctx, &pd2ffmd, form_name);

/* Create a window */
d2fwincr_Create(pd2fctx,pd2ffmd,&pd2fwin,(text*)"MYWIN");

/*** Create Canvas and set canvas-related properties ***/
/* Create a canvas */
d2fcnvcr_Create(pd2fctx, pd2ffmd, &pd2fcnv, (text*)"MYCANVAS");

/* Set viewport width */
d2fcnvs_vprt_wid(pd2fctx, pd2fcnv, 512);

/* Set viewport height */
d2fcnvs_vprt_hgt(pd2fctx, pd2fcnv, 403);

/* Set window */
dwfcnvs_wnd_obj(pd2fctx, pd2fcnv, pd2fwin);

/* Set viewport X-position */
d2fcnvs_vprt_x_pos(pd2fctx, pd2fcnv, 0);

/* Set viewport Y-position */
d2fcnvs_vprt_y_pos(pd2fctx, pd2fcnv, 0);

/* Set width */
d2fcnvs_width(pd2fctx, pd2fcnv, 538)

/* Set height */
d2fcnvs_height(pd2fctx, pd2fcnv, 403)

/*** Create Emp block and set block-related properties ***/
/* Create block */
d2fblkcr_Create(pd2fctx, pd2ffmd, &pempblk, (text*)"EMP");

/* Set to database block */
d2fblks_db_blk(pd2fctx, pempblk, TRUE);

/* Set query data source to Table */
d2fblks_qry_dat_src_typ(pd2fctx, pempblk, D2FC_QRDA_TABLE);

/* Set query data source name to EMP table */
d2fblks_qry_dat_src_nam(pd2fctx, pempblk, "EMP");

/* Set DML data source type to Table */
d2fblks_dml_dat_typ(Pd2fctx, pempblk, D2FC_DMDA_TABLE);

/* Set DML data source name to EMP table */
d2fblks_dml_dat_nam(pd2fctx, pempblk, (text*)"EMP");

/*** Create Dept block and set block-related properties ***/
/* Create block */
d2fblkcr_Create(pd2fctx, pd2ffmd, &pdeptblk, (text*)"DEPT");

/* Set to database block */
d2fblks_db_blk(pd2fctx, pdeptblk, TRUE);

/* Set query data source to Table */
d2fblks_qry_dat_src_typ(pd2fctx, pdeptblk, D2FC_QRDA_TABLE);

/* Set query data source name to EMP table */
d2fblks_qry_dat_src_nam(pd2fctx, pdeptblk, "DEPT");

/* Set DML data source type to Table */
d2fblks_dml_dat_typ(Pd2fctx, pdeptblk, D2FC_DMDA_TABLE);

/* Set DML data source name to EMP table */
d2fblks_dml_dat_nam(pd2fctx, pdeptblk, (text*)"DEPT");

/*** Create empno item and item-related properties ***/
/* Create item */
d2fitmcr_Create(pd2fctx, pempblk, &pEempnoitm, (text*)"EMPNO");

/* Set item type */
d2fitms_itm_type(pd2fctx, pEempnoitm, D2FC_ITTY_TI);

/* Set Enable property */
d2fitms_enabled(pd2fctx, pEempnoitm, TRUE);

/* Set item (keyboard) navigable property */
d2fitms_kbrd_navigable(pd2fctx, pEempnoitm, TRUE);

/* Set item Data Type property */
d2fitms_dat_typ(pd2fctx, pEempnoitm, D2FC_DATY_NUMBER);

/* Set item Max Length property */
d2fitms_max_len(pd2fctx, pEempnoitm, 6);

/* Set item Required property */
d2fitms_required(pd2fctx, pEempnoitm, TRUE);

/* Set Distance Between Records property */
d2fitms_dist_btwn_recs(pd2fctx, pEempnoitm, 0);

/* Set Database block(Database Item) property */
d2fitms_db_itm(pd2fctx, pEempnoitm, TRUE);

/* Set Query Allowed */
d2fitms_qry_allowed(pd2fctx, pEempnoitm, TRUE);

/* Set Query Length */
d2fitms_qry_len(pd2fctx, pEempnoitm, 6);

/* Set Update Allowed */
d2fitms_updt_allowed(pd2fctx, pEempnoitm, TRUE);

/* Set Item Displayed (Visible) */
d2fitms_visible(pd2fctx, pEempnoitm, TRUE);

/* Set Item Canvas property */
d2fitms_cnv_obj(pd2fctx, pEempnoitm, pd2fcnv);

/* Set Item X-position */
d2fitms_x_pos(pd2fctx, pEempnoitm, 32);

/* Set Item Y-position */
d2fitms_y_pos(pd2fctx, pEempnoitm, 50);

/* Set Item Width */
d2fitms_width(pd2fctx, pEempnoitm, 51);

/* Set Item Height */
d2fitms_height(pd2fctx, pEempnoitm, 17);

/* Set Item Bevel */
d2fitms_bevel(pd2fctx, pEempnoitm, D2FC_BEST_LOWERED);

/* Set item Hint */
d2fitms_hint(pd2fctx, PEempnoitm, (text*)"Enter value for :EMPNO");

/*** Create Ename item and item-related properties ***/
/* Create item */
d2fitmcr_Create(pd2fctx, pempblk, &pEenameitm, (text*)"ENAME");

/* Set item type */
d2fitms_itm_type(pd2fctx, pEenameitm, D2FC_ITTY_TI);

/* Set Enable property */
d2fitms_enabled(pd2fctx, pEenameitm, TRUE);

/* Set item (keyboard) navigable property */
d2fitms_kbrd_navigable(pd2fctx, pEenameitm, TRUE);

/* Set item Data Type property */
d2fitms_dat_typ(pd2fctx, pEenameitm, D2FC_DATY_CHAR);

/* Set item Max Length property */
d2fitms_max_len(pd2fctx, pEenameitm, 10);

/* Set Distance Between Records property */
d2fitms_dist_btwn_recs(pd2fctx, pEenameitm, 0);

/* Set Database block(Database Item) property */
d2fitms_db_itm(pd2fctx, pEenameitm, TRUE);

/* Set Query Allowed */
d2fitms_qry_allowed(pd2fctx, pEenameitm, TRUE);

/* Set Query Length */
d2fitms_qry_len(pd2fctx, pEenameitm, 10);

/* Set Update Allowed */
d2fitms_updt_allowed(pd2fctx, pEenameitm, TRUE);

/* Set Item Displayed (Visible) */
d2fitms_visible(pd2fctx, pEenameitm, TRUE);

/* Set Item Canvas property */
d2fitms_cnv_obj(pd2fctx, pEenameitm, pd2fcnv);

/* Set Item X-position */
d2fitms_x_pos(pd2fctx, pEenameitm, 83);

/* Set Item Y-position */
d2fitms_y_pos(pd2fctx, pEenameitm, 50);

/* Set Item Width */
d2fitms_width(pd2fctx, pEenameitm, 77);

/* Set Item Height */
d2fitms_height(pd2fctx, pEenameitm, 17);

/* Set Item Bevel */
d2fitms_bevel(pd2fctx, pEenameitm, D2FC_BEST_LOWERED);

/* Set item Hint */
d2fitms_hint(pd2fctx, PEenameitm, (text*)"Enter value for :ENAME");

/*** Create JOB item and item-related properties ***/
/* Create item */
d2fitmcr_Create(pd2fctx, pempblk, &pEjobitm, (text*)"JOB");

/* Set item type */
d2fitms_itm_type(pd2fctx, pEjobitm, D2FC_ITTY_TI);

/* Set Enable property */
d2fitms_enabled(pd2fctx, pEjobitm, TRUE);

/* Set item (keyboard) navigable property */
d2fitms_kbrd_navigable(pd2fctx, pEjobitm, TRUE);

/* Set item Data Type property */
d2fitms_dat_typ(pd2fctx, pEjobitm, D2FC_DATY_CHAR);

/* Set item Max Length property */
d2fitms_max_len(pd2fctx, pEjobitm, 9);

/* Set Distance Between Records property */
d2fitms_dist_btwn_recs(pd2fctx, pEjobitm, 0);

/* Set Database block(Database Item) property */
d2fitms_db_itm(pd2fctx, pEjobitm, TRUE);

/* Set Query Allowed */
d2fitms_qry_allowed(pd2fctx, pEjobitm, TRUE);

/* Set Query Length */
d2fitms_qry_len(pd2fctx, pEjobitm, 9);

/* Set Update Allowed */
d2fitms_updt_allowed(pd2fctx, pEjobitm, TRUE);

/* Set Item Displayed (Visible) */
d2fitms_visible(pd2fctx, pEjobitm, TRUE);

/* Set Item Canvas property */
d2fitms_cnv_obj(pd2fctx, pEjobitm, pd2fcnv);

/* Set Item X-position */
d2fitms_x_pos(pd2fctx, pEjobitm, 160);

/* Set Item Y-position */
d2fitms_y_pos(pd2fctx, pEjobitm, 50);

/* Set Item Width */
d2fitms_width(pd2fctx, pEjobitm, 70);

/* Set Item Height */
d2fitms_height(pd2fctx, pEjobitm, 17);

/* Set Item Bevel */
d2fitms_bevel(pd2fctx, pEjobitm, D2FC_BEST_LOWERED);

/* Set item Hint */
d2fitms_hint(pd2fctx, PEjobitm, (text*)"Enter value for :JOB");

/*** Create SALARY item and item-related properties ***/
/* Create item */
d2fitmcr_Create(pd2fctx, pempblk, &pEsalitm, (text*)"SAL");

/* Set item type */
d2fitms_itm_type(pd2fctx, pEsalitm, D2FC_ITTY_TI);

/* Set Enable property */
d2fitms_enabled(pd2fctx, pEsalitm, TRUE);

/* Set item (keyboard) navigable property */
d2fitms_kbrd_navigable(pd2fctx, pEsalitm, TRUE);

/* Set item Data Type property */
d2fitms_dat_typ(pd2fctx, pEsalitm, D2FC_DATY_NUMBER);

/* Set item Max Length property */
d2fitms_max_len(pd2fctx, pEsalitm, 9);

/* Set Distance Between Records property */
d2fitms_dist_btwn_recs(pd2fctx, pEsalitm, 0);

/* Set Database block(Database Item) property */
d2fitms_db_itm(pd2fctx, pEsalitm, TRUE);

/* Set Query Allowed */
d2fitms_qry_allowed(pd2fctx, pEsalitm, TRUE);

/* Set Query Length */
d2fitms_qry_len(pd2fctx, pEsalitm, 9);

/* Set Update Allowed */
d2fitms_updt_allowed(pd2fctx, pEsalitm, TRUE);

/* Set Item Displayed (Visible) */
d2fitms_visible(pd2fctx, pEsalitm, TRUE);

/* Set Item Canvas property */
d2fitms_cnv_obj(pd2fctx, pEsalitm, pd2fcnv);

/* Set Item X-position */
d2fitms_x_pos(pd2fctx, pEsalitm, 352);

/* Set Item Y-position */
d2fitms_y_pos(pd2fctx, pEsalitm, 50);

/* Set Item Width */
d2fitms_width(pd2fctx, pEsalitm, 70);

/* Set Item Height */
d2fitms_height(pd2fctx, pEsalitm, 17);

/* Set Item Bevel */
d2fitms_bevel(pd2fctx, pEsalitm, D2FC_BEST_LOWERED);

/* Set item Hint */
d2fitms_hint(pd2fctx, PEsalitm, (text*)"Enter value for :SAL");

/*** Create DEPTNO item and item-related properties ***/
/* Create item */
d2fitmcr_Create(pd2fctx, pempblk, &pEdeptnoitm, (text*)"DEPTNO");

/* Set item type */
d2fitms_itm_type(pd2fctx, pEdeptnoitm, D2FC_ITTY_TI);

/* Set Enable property */
d2fitms_enabled(pd2fctx, pEdeptnoitm, TRUE);

/* Set item (keyboard) navigable property */
d2fitms_kbrd_navigable(pd2fctx, pEdeptnoitm, TRUE);

/* Set item Data Type property */
d2fitms_dat_typ(pd2fctx, pEdeptnoitm, D2FC_DATY_NUMBER);

/* Set item Max Length property */
d2fitms_max_len(pd2fctx, pEdeptnoitm, 4);

/*Set item Required property */
d2fitms_required(pd2fctx, pEdeptnoitm, TRUE);

/* Set Distance Between Records property */
d2fitms_dist_btwn_recs(pd2fctx, pEdeptnoitm, 0);

/* Set Database block(Database Item) property */
d2fitms_db_itm(pd2fctx, pEdeptnoitm, TRUE);

/* Set Query Allowed */
d2fitms_qry_allowed(pd2fctx, pEdeptnoitm, TRUE);

/* Set Query Length */
d2fitms_qry_len(pd2fctx, pEdeptnoitm, 4);

/* Set Update Allowed */
d2fitms_updt_allowed(pd2fctx, pEdeptnoitm, TRUE);

/* Set Item Displayed (Visible) */
d2fitms_visible(pd2fctx, pEdeptnoitm, TRUE);

/* Set Item Canvas property */
d2fitms_cnv_obj(pd2fctx, pEdeptnoitm, pd2fcnv);

/* Set Item X-position */
d2fitms_x_pos(pd2fctx, pEdeptnoitm, 493);

/* Set Item Y-position */
d2fitms_y_pos(pd2fctx, pEdeptnoitm, 50);

/* Set Item Width */
d2fitms_width(pd2fctx, pEdeptnoitm, 30);

/* Set Item Height */
d2fitms_height(pd2fctx, pEdeptnoitm, 17);

/* Set Item Bevel */
d2fitms_bevel(pd2fctx, pEdeptnoitm, D2FC_BEST_LOWERED);

/* Set item Hint */
d2fitms_hint(pd2fctx, PEdeptnoitm, (text*)"Enter value for :DEPTNO");

/*** Create DEPTNO item and item-related properties ***/
/* Create item */
d2fitmcr_Create(pd2fctx, pdeptblk, &pDdeptnoitm, (text*)"DEPTNO");

/* Set item type */
d2fitms_itm_type(pd2fctx, pDdeptnoitm, D2FC_ITTY_TI);

/* Set Enable property */
d2fitms_enabled(pd2fctx, pDdeptnoitm, TRUE);

/* Set item (keyboard) navigable property */
d2fitms_kbrd_navigable(pd2fctx, pDdeptnoitm, TRUE);

/* Set item Data Type property */
d2fitms_dat_typ(pd2fctx, pDdeptnoitm, D2FC_DATY_NUMBER);

/* Set item Max Length property */
d2fitms_max_len(pd2fctx, pDdeptnoitm, 4);

/*Set item Required property */
d2fitms_required(pd2fctx, pDdeptnoitm, TRUE);

/* Set Distance Between Records property */
d2fitms_dist_btwn_recs(pd2fctx, pDdeptnoitm, 0);

/* Set Database block(Database Item) property */
d2fitms_db_itm(pd2fctx, pDdeptnoitm, TRUE);

/* Set Query Allowed */
d2fitms_qry_allowed(pd2fctx, pDdeptnoitm, TRUE);

/* Set Query Length */
d2fitms_qry_len(pd2fctx, pDdeptnoitm, 4);

/* Set Update Allowed */
d2fitms_updt_allowed(pd2fctx, pDdeptnoitm, TRUE);

/* Set Item Displayed (Visible) */
d2fitms_visible(pd2fctx, pDdeptnoitm, TRUE);

/* Set Item Canvas property */
d2fitms_cnv_obj(pd2fctx, pDdeptnoitm, pd2fcnv);

/* Set Item X-position */
d2fitms_x_pos(pd2fctx, pDdeptnoitm, 32);

/* Set Item Y-position */
d2fitms_y_pos(pd2fctx, pDdeptnoitm, 151);

/* Set Item Width */
d2fitms_width(pd2fctx, pDdeptnoitm, 38);

/* Set Item Height */
d2fitms_height(pd2fctx, pDdeptnoitm, 17);

/* Set Item Bevel */
d2fitms_bevel(pd2fctx, pDdeptnoitm, D2FC_BEST_LOWERED);

/* Set item Hint */
d2fitms_hint(pd2fctx, PDdeptnoitm, (text*)"Enter value for :DEPTNO");

/*** Create DNAME item and item-related properties ***/
/* Create item */
d2fitmcr_Create(pd2fctx, pdeptblk, &pDdnameitm, (text*)"DNAME");

/* Set item type */
d2fitms_itm_type(pd2fctx, pDdnameitm, D2FC_ITTY_TI);

/* Set Enable property */
d2fitms_enabled(pd2fctx, pDdnameitm, TRUE);

/* Set item (keyboard) navigable property */
d2fitms_kbrd_navigable(pd2fctx, pDdnameitm, TRUE);

/* Set item Data Type property */
d2fitms_dat_typ(pd2fctx, pDdnameitm, D2FC_DATY_CHAR);

/* Set item Max Length property */
d2fitms_max_len(pd2fctx, pDdnameitm, 14);

/* Set Distance Between Records property */
d2fitms_dist_btwn_recs(pd2fctx, pDdnameitm, 0);

/* Set Database block(Database Item) property */
d2fitms_db_itm(pd2fctx, pDdnameitm, TRUE);

/* Set Query Allowed */
d2fitms_qry_allowed(pd2fctx, pDdnameitm, TRUE);

/* Set Query Length */
d2fitms_qry_len(pd2fctx, pDdnameitm, 14);

/* Set Update Allowed */
d2fitms_updt_allowed(pd2fctx, pDdnameitm, TRUE);

/* Set Item Displayed (Visible) */
d2fitms_visible(pd2fctx, pDdnameitm, TRUE);

/* Set Item Canvas property */
d2fitms_cnv_obj(pd2fctx, pDdnameitm, pd2fcnv);

/* Set Item X-position */
d2fitms_x_pos(pd2fctx, pDdnameitm, 70);

/* Set Item Y-position */
d2fitms_y_pos(pd2fctx, pDdnameitm, 151);

/* Set Item Width */
d2fitms_width(pd2fctx, pDdnameitm, 102);

/* Set Item Height */
d2fitms_height(pd2fctx, pDdnameitm, 17);

/* Set Item Bevel */
d2fitms_bevel(pd2fctx, pDdnameitm, D2FC_BEST_LOWERED);

/* Set item Hint */
d2fitms_hint(pd2fctx, PDdnameitm, (text*)"Enter value for :DNAME");

/*** Create LOC item and item-related properties ***/
/* Create item */
d2fitmcr_Create(pd2fctx, pdeptblk, &pDlocitm, (text*)"LOC");

/* Set item type */
d2fitms_itm_type(pd2fctx, pDlocitm, D2FC_ITTY_TI);

/* Set Enable property */
d2fitms_enabled(pd2fctx, pDlocitm, TRUE);

/* Set item (keyboard) navigable property */
d2fitms_kbrd_navigable(pd2fctx, pDlocitm, TRUE);

/* Set item Data Type property */
d2fitms_dat_typ(pd2fctx, pDlocitm, D2FC_DATY_CHAR);

/* Set item Max Length property */
d2fitms_max_len(pd2fctx, pDlocitm, 13);

/* Set Distance Between Records property */
d2fitms_dist_btwn_recs(pd2fctx, pDlocitm, 0);

/* Set Database block(Database Item) property */
d2fitms_db_itm(pd2fctx, pDlocitm, TRUE);

/* Set Query Allowed */
d2fitms_qry_allowed(pd2fctx, pDlocitm, TRUE);

/* Set Query Length */
d2fitms_qry_len(pd2fctx, pDlocitm, 13);

/* Set Update Allowed */
d2fitms_updt_allowed(pd2fctx, pDlocitm, TRUE);

/* Set Item Displayed (Visible) */
d2fitms_visible(pd2fctx, pDlocitm, TRUE);

/* Set Item Canvas property */
d2fitms_cnv_obj(pd2fctx, pDlocitm, pd2fcnv);

/* Set Item X-position */
d2fitms_x_pos(pd2fctx, pDlocitm, 173);

/* Set Item Y-position */
d2fitms_y_pos(pd2fctx, pDlocitm, 151);

/* Set Item Width */
d2fitms_width(pd2fctx, pDlocitm, 96);

/* Set Item Height */
d2fitms_height(pd2fctx, pDlocitm, 17);

/* Set Item Bevel */
d2fitms_bevel(pd2fctx, pDlocitm, D2FC_BEST_LOWERED);

/* Set item Hint */
d2fitms_hint(pd2fctx, PDlocitm, (text*)"Enter value for :LOC");

/*** Create Relations and relations-related properties ***/
/* Create Relation */
d2frelcr_Create(pd2fctx, (d2fob *)pdeptblk, &pd2frel, (text*)"DEPT_EMP");

/* Set Relation Detail block */
d2frels_detail_blk(pd2fctx, pd2frel, (text *)"EMP");

/* Set Master Deletes property */
d2frels_del_rec([pd2fctx, pd2frel, D2FC_DERE_NON_ISOLATED);

/* Set Deferred property */
d2frels_deferred(pd2ctx, pd2frel, FALSE);

/* Set Auto Query property */
d2frels_auto_qry(pd2ctx, pd2frel, FALSE);

/* Set Prevent Masterless property */
d2frels_prvnt_mstrless_ops(pd2ctx, pd2frel, FALSE);

/* Set Join Condition property */
d2frels_join_cond(pd2ctx, pd2frel, (text*)"DEPTNO");

/* Instantiate Relation: creates master-detail triggers */
d2frelup_Update(pd2fctx, pd2frel);

/* Save Form */
d2ffmdsv_Save(pd2fctx, pd2ffmd, (text*)0, FALSE, TRUE);

/* Compile Form */
d2ffmdcf_CompileFile(pd2fctx, pd2ffmd);

/* Destroy Context */
d2fctxde_Destroy(pd2fctx);
}


Module mit Open API ändern

 Beispiele	     Verwandte Themen

So ändern Sie ein Grundmodul von Form Builder:

1	Nehmen Sie die entsprechenden C-Header-Dateien in dem C-Quellcode auf.

2	Rufen Sie die gewünschten APIs in Ihrem C-Quellcode auf.

A. 	Initialisieren Sie die Kontextstruktur.

B. 	Nehmen Sie "load"-Funktionsaufrufe vor, um bestehende Formmodule, Menümodule oder Objektbibliotheken zu öffnen.

C. 	Nehmen Sie die erforderlichen Open API-Funktionsaufrufe vor, um die gewünschten Vorgänge auszuführen, gegebenenfalls einschließlich der Anmeldung bei einer bestehenden Datenbank.

D. 	Generieren Sie eine kompilierte .fmx- oder .mmx-Form mit der entsprechenden Funktion "CompileFile()".

E. 	Nehmen Sie die erforderlichen Funktionsaufrufe vor, um das verknüpfte Modul zu speichern (z.B. d2ffmdsv_Save() bei einem Formmodul, d2fmmdsv_Save() bei einem Menümodul oder d2folbsv_Save() bei einer Objektbibliothek).

F. 	Schließlich rufen Sie die Kontext-Funktion Destroy, d2fctxde_Destroy(), auf, um den Open API-Kontext zu zerstören. Beachten Sie, daß dieser Funktionsaufruf der letzte sein muß.

3	Verknüpfen Sie Ihre Quelldateien mit der Open API-Bibliothek (f50d2f32.lib).

4	Kompilieren Sie die Dateien, um eine ausführbare Routine (.exe-Datei) zu erstellen.

5	Führen Sie die ausführbare Routine aus, um ein oder mehrere Formmodule (.fmb) zu ändern.


Beispiele für das Ändern von Modulen mit Open API

Beispiel

/*

This example determines if the Form Builder object is a subclassed object and returns the file path of the parent to NULL if the object is subclassed. This sample only processes the following object types:  form level triggers, alerts, blocks, items, item level triggers, radio buttons, and block level triggers.  Use a similar method to process other object types.
*/
#include <stdio.h>
#include <string.h>
#include <windows.h>

#include <d2ferr.h>
#include <d2fctx.h>
#include <d2ffmd.h>
#include <d2fblk.h>
#include <d2fitm.h>
#include <d2falt.h>
#include <d2ftrg.h>
#include <d2frdb.h>

#define BUFSIZE 128

int WINAPI WinMain(HANDLE hInstance,
                   HANDLE hPrevInstance,
                   LPSTR lpszCommandLine,
                   int cmdShow)
{
    d2fctx*   pd2fctx;
    d2ffmd*   pd2ffmd;
    d2fblk*   pd2fblk;
    d2fitm*   pd2fitm;
    d2fctxa   d2fctx_attr;
    d2fstatus status;
    d2falt*   pd2falt;
    d2ftrg*   pd2ftrg;
    d2frdb*   pd2frdb;

    int counter;

    char buf[BUFSIZE];
    char* form_name=(char*)0;

    /* Get the form name from the command line */
    strncpy(buf, lpszCommandLine, BUFSIZE);
    form_name = strtok(buf, ".");

    /* Initialize the attribute mask */
    d2fctx_attr.mask_d2fctxa = 0;

    /* Create the API context */
    status = d2fctxcr_Create(&pd2fctx, &d2fctx_attr);

    /* Load the form */
    status = d2ffmdld_Load(pd2fctx, &pd2ffmd, form_name, FALSE) ;

    if (status == D2FS_SUCCESS)
    {
      /*** Process Form Level Trigger Objects ***/
      for(status = d2ffmdg_trigger(pd2fctx,pd2ffmd,&pd2ftrg);
          pd2ftrg != NULL;
          status = d2ftrgg_next(pd2fctx,pd2ftrg,&pd2ftrg))
      {
        if (d2ftrgis_IsSubclassed(pd2fctx,pd2ftrg) == D2FS_YES)
            d2ftrgs_par_flpath(pd2fctx,pd2ftrg,NULL);
      }

      /*** Process Alert Objects ***/
      for(status = d2ffmdg_alert(pd2fctx,pd2ffmd,&pd2falt);
          pd2falt != NULL;
          status = d2faltg_next(pd2fctx,pd2falt,&pd2falt))
      {
        if (d2faltis_IsSubclassed(pd2fctx,pd2falt) == D2FS_YES)
            d2falts_par_flpath(pd2fctx,pd2falt,NULL);
      }

      /*** Process Block Objects ***/
      for(status = d2ffmdg_block(pd2fctx,pd2ffmd,&pd2fblk);
          pd2fblk != NULL;
          status = d2fblkg_next(pd2fctx,pd2fblk,&pd2fblk))
      {
        if (d2fblkis_IsSubclassed(pd2fctx,pd2fblk) == D2FS_YES)
           d2fblks_par_flpath(pd2fctx,pd2fblk,NULL);
      }

      /* Process Item Objects */
      for(status = d2fblkg_item(pd2fctx,pd2fblk,&pd2fitm);
          pd2fitm != NULL;
          status = d2fitmg_next(pd2fctx,pd2fitm,&pd2fitm))
      {
        if (d2fitmis_IsSubclassed(pd2fctx,pd2fitm) == D2FS_YES)
           d2fitms_par_flpath(pd2fctx,pd2fitm,NULL);

        /* Process Item Level Trigger Objects */
         for(status = d2fitmg_trigger(pd2fctx,pd2fitm,&pd2ftrg);
             pd2ftrg != NULL;
             status = d2ftrgg_next(pd2fctx,pd2ftrg,&pd2ftrg))
         {
             if (d2ftrgis_IsSubclassed(pd2fctx,pd2ftrg)==D2FS_YES)
             {
               d2ftrgs_par_flpath(pd2fctx,pd2ftrg,NULL);
               printf("item trigger is Subclassed\n"
             }
             else if  (d2ftrgis_IsSubclassed(pd2fctx,
                                            pd2ftrg)==D2FS_NO)
             printf("item trigger is NOT Subclassed\n");
         }

      /* Process Radio Button Objects *
        for(status = d2fitmg_rad_but(pd2fctx,pd2fitm,&pd2frdb);
            pd2frdb != NULL;
            status = d2frdbs_next(pd2fctx,pd2frdb,&pd2frdb))
        {
            if (d2frdbis_IsSubclassed(pd2fctx,pd2frdb)==D2FS_YES
            {
              d2frdbs_par_flpath(pd2fctx,pd2frdb,NULL);
              printf("radio button is Subclassed\n");
            }
            else if (d2frdbis_IsSubclassed(pd2fctx,
                                         pd2frdb)==D2FS_NO)
            printf("radio button is NOT Subclassed\n");
       }
      }

      /* Process Block Level Trigger Objects */
      for(status = d2fblkg_trigger(pd2fctx,pd2fblk,&pd2ftrg);
          pd2ftrg != NULL;
          status = d2ftrgg_next(pd2fctx,pd2ftrg,&pd2ftrg))
      {
          if (d2ftrgis_IsSubclassed(pd2fctx,pd2ftrg) == D2FS_YES)
          {
            d2ftrgs_par_flpath(pd2fctx,pd2ftrg,NULL);
            printf("block trigger is Subclassed\n");
          }
          else if (d2ftrgis_IsSubclassed(pd2fctx,
                                          pd2ftrg)==D2FS_NO)
          printf("block trigger is NOT Subclassed\n");
      }

     /* Save out the form */
     d2ffmdsv_Save(pd2fctx, pd2ffmd, (text *)0, FALSE) ;

     /* Generate the forms executable (fmx) */
     d2ffmdcf_CompileFile(pd2fctx, pd2ffmd ) ;

     /* Destroy the API Context */
     d2fctxde_Destroy(pd2fctx) ;

    }
}


Beispiele für Open API

Dieser Abschnitt enthält einige Beispiele, in denen die Benutzung von Open API beschrieben wird.

Module mit Open API ändern:

/*

This example determines if the Form Builder object is a subclassed object and returns the file path of the parent to NULL if the object is subclassed. This sample only processes the following object types:  form level triggers, alerts, blocks, items, item level triggers, radio buttons, and block level triggers.  Use a similar method to process other object types.

*/

#include <stdio.h>

#include <string.h>

#include <windows.h>

#include <d2ferr.h>

#include <d2fctx.h>

#include <d2ffmd.h>

#include <d2fblk.h>

#include <d2fitm.h>

#include <d2falt.h>

#include <d2ftrg.h>

#include <d2frdb.h>

#define BUFSIZE 128

int WINAPI WinMain(HANDLE hInstance,

                   HANDLE hPrevInstance,

                   LPSTR lpszCommandLine,

                   int cmdShow)

{

    d2fctx  *pd2fctx;

    d2ffmd  *pd2ffmd;

    d2fblk*   pd2fblk;

    d2fitm*   pd2fitm;

    d2fctxa  d2fctx_attr;

    d2fstatus status;

    d2falt*   pd2falt;

    d2ftrg*   pd2ftrg;

    d2frdb*   pd2frdb;

    int counter;

    char buf[BUFSIZE];

    char* form_name=(char*)0;

    /* Get the form name from the command line */

    strncpy(buf, lpszCommandLine, BUFSIZE);

    form_name = strtok(buf, ".");

    /* Initialize the attribute mask */

    d2fctx_attr.mask_d2fctxa = 0;

    /* for MS Windows-only attributes */

    d2fctx_attr.d2fihnd_d2fctxa = hInstance;

    d2fctx_attr.d2fphnd_d2fctxa = hPrevInstance;

    d2fctx_attr.d2fcmsh_d2fctxa = cmdShow;

    /* Create the API context */

    status = d2fctxcr_Create(&pd2fctx, &d2fctx_attr);

    /* Load the form */

    status = d2ffmdld_Load(pd2fctx, &pd2ffmd, form_name, FALSE) ;

    if (status == D2FS_D2FS_SUCCESS)

    {

      /*** Process Form Level Trigger Objects ***/

      for(status = d2ffmdg_trigger(pd2fctx,pd2ffmd,&pd2ftrg);

          pd2ftrg != NULL;

          status = d2ftrgg_next(pd2fctx,pd2ftrg,&pd2ftrg))

      {

        if (d2ftrgis_IsSubclassed(pd2fctx,pd2ftrg) == D2FS_YES)

            d2ftrgs_par_flpath(pd2fctx,pd2ftrg,NULL);

      }

      /*** Process Alert Objects ***/

      for(status = d2ffmdg_alert(pd2fctx,pd2ffmd,&pd2falt);

          pd2falt != NULL;

          status = d2faltg_next(pd2fctx,pd2falt,&pd2falt))

      {

        if (d2faltis_IsSubclassed(pd2fctx,pd2falt) == D2FS_YES)

            d2falts_par_flpath(pd2fctx,pd2falt,NULL);

      }

      /*** Process Block Objects ***/

      for(status = d2ffmdg_block(pd2fctx,pd2ffmd,&pd2fblk);

          pd2fblk != NULL;

          status = d2fblkg_next(pd2fctx,pd2fblk,&pd2fblk))

      {

        if (d2fblkis_IsSubclassed(pd2fctx,pd2fblk) == D2FS_YES)

           d2fblks_par_flpath(pd2fctx,pd2fblk,NULL);

      }

      /* Process Item Objects */

      for(status = d2fblkg_item(pd2fctx,pd2fblk,&pd2fitm);

          pd2fitm != NULL;

          status = d2fitmg_next(pd2fctx,pd2fitm,&pd2fitm))

      {

        if (d2fitmis_IsSubclassed(pd2fctx,pd2fitm) == D2FS_YES)

           d2fitms_par_flpath(pd2fctx,pd2fitm,NULL);

        /* Process Item Level Trigger Objects */

         for(status = d2fitmg_trigger(pd2fctx,pd2fitm,&pd2ftrg);

             pd2ftrg != NULL;

             status = d2ftrgg_next(pd2fctx,pd2ftrg,&pd2ftrg))

         {

             if (d2ftrgis_IsSubclassed(pd2fctx,pd2ftrg)==D2FS_YES)

             {

               d2ftrgs_par_flpath(pd2fctx,pd2ftrg,NULL);

               printf("item trigger is Subclassed\n"

             }

             else if (d2ftrgis_IsSubclassed(pd2fctx,

                                            pd2ftrg)==D2FS_NO)

             printf("item trigger is NOT Subclassed\n");

         }

      /* Process Radio Button Objects *

        for(status = d2fitmg_rad_but(pd2fctx,pd2fitm,&pd2frdb);

            pd2frdb != NULL;

            status = d2frdbs_next(pd2fctx,pd2frdb,&pd2frdb))

        {

            if (d2frdbis_IsSubclassed(pd2fctx,pd2frdb)==D2FS_YES

            {

              d2frdbs_par_flpath(pd2fctx,pd2frdb,NULL);

              printf("radio button is Subclassed\n");

            }

            else if (d2frdbis_IsSubclassed(pd2fctx,

                                         pd2frdb)==D2FS_NO)

            printf("radio button is NOT Subclassed\n");

       }

      }

      /* Process Block Level Trigger Objects */

      for(status = d2fblkg_trigger(pd2fctx,pd2fblk,&pd2ftrg);

          pd2ftrg != NULL;

          status = d2ftrgg_next(pd2fctx,pd2ftrg,&pd2ftrg))

      {

          if (d2ftrgis_IsSubclassed(pd2fctx,pd2ftrg) == D2FS_YES)

          {

            d2ftrgs_par_flpath(pd2fctx,pd2ftrg,NULL);

            printf("block trigger is Subclassed\n");

          }

          else if (d2ftrgis_IsSubclassed(pd2fctx,

                                          pd2ftrg)==D2FS_NO)

          printf("block trigger is NOT Subclassed\n");

      }

     /* Save out the form */

     d2ffmdsv_Save(pd2fctx, pd2ffmd, (text *)0, FALSE) ;

     /* Generate the forms executable (fmx) */

     d2ffmdcf_CompileFile(pd2fctx, pd2ffmd);

     /* Destroy the API Context */

     d2fctxde_Destroy(pd2fctx);

    }

}

Module mit Open API erstellen:

/*

This example creates a master-detail form based on the dept and emp database tables owned by the user scott.  The master contains the following fields: empno, ename, job, sal, and deptno.  The detail contains the following fields deptno, dname, and loc.  The join condition is deptno.

*/

#include<stdio.h>

#include<string.h>

#include<windows.h>

#include<d2fctx.h>

#include<d2ffmd.h>

#include<d2ffpr.h>

#include<d2fob.h>

#include<d2fcnv.h>

#include<d2ftrg.h>

#include<d2blk.h>

#include<d2fitm.h>

#include<d2fwin.h>

#include<d2frel.h>

#define D2FS_SUCCESS 0

#define FAIL 1

#define BUFSIZE 128

#define WBP_TXT "null;\n"

int WINAPI WinMain(HANDLE hInstance,

                   HANDLE hPrevInstance,

                   LPSTR lpszCommandLine,

                   int cmdShow)

{

d2fctx  *pd2fctx;

d2ffmd  *pd2ffmd;

d2fcnv  *pd2fcnv;

d2fwin  *pd2fwin;

d2fblk  *pempblk;

d2fblk  *pdeptblk;

d2frel  *pd2frel;

d2fitm  *pEempnoitm;

d2fitm  *pEenameitm;

d2fitm  *pEjobitm;

d2fitm  *pEsalitm;

d2fitm  *pEdeptnoitm;

d2fitm  *pDdeptnoitm;

d2fitm  *pDdnameitm;

d2fitm  *pDlocitm;

text  *name = (text *)0;

text  *form_name = (text *)0;

d2fctxa  d2fctx_attr;

d2fstatus retval;

char buf[BUFSIZE];

/* Get form name */

strncpy(buf, "empdept", BUFSIZE);

form_name = (text*)strtok(buf, ".");

/* Initialize the attribute mask */

d2fctx_attr.mask_d2fctxa = 0;

/* for MS Windows-only attributes */

d2fctx_attr.d2fihnd_d2fctxa = hInstance;

d2fctx_attr.d2fphnd_d2fctxa = hPrevInstance;

d2fctx_attr.d2fcmsh_d2fctxa = cmdShow;

/* Create the API context */

status = d2fctxcr_Create(&pd2fctx, &d2fctx_attr);

/* Create the context */

d2fctxcn_Connect(pd2fctx, (text*)"scott/tiger@test");

/* Create the form */

d2ffmdcr_Create(pd2fctx, &pd2ffmd, form_name);

/* Create a window */

d2fwincr_Create(pd2fctx,pd2ffmd,&pd2fwin,(text*)"MYWIN");

/*** Create Canvas and set canvas-related properties ***/

/* Create a canvas */

d2fcnvcr_Create(pd2fctx, pd2ffmd, &pd2fcnv, (text*)"MYCANVAS");

/* Set viewport width */

d2fcnvs_vprt_wid(pd2fctx, pd2fcnv, 512);

/* Set viewport height */

d2fcnvs_vprt_hgt(pd2fctx, pd2fcnv, 403);

/* Set window */

dwfcnvs_wnd_obj(pd2fctx, pd2fcnv, pd2fwin);

/* Set viewport X-position */

d2fcnvs_vprt_x_pos(pd2fctx, pd2fcnv, 0);

/* Set viewport Y-position */

d2fcnvs_vprt_y_pos(pd2fctx, pd2fcnv, 0);

/* Set width */

d2fcnvs_width(pd2fctx, pd2fcnv, 538)

/* Set height */

d2fcnvs_height(pd2fctx, pd2fcnv, 403)

/*** Create Emp block and set block-related properties ***/

/* Create block */

d2fblkcr_Create(pd2fctx, pd2ffmd, &pempblk, (text*)"EMP");

/* Set to database block */

d2fblks_db_blk(pd2fctx, pempblk, TRUE);

/* Set query data source to Table */

d2fblks_qry_dat_src_typ(pd2fctx, pempblk, D2FC_QRDA_TABLE);

/* Set query data source name to EMP table */

d2fblks_qry_dat_src_nam(pd2fctx, pempblk, "EMP");

/* Set DML data source type to Table */

d2fblks_dml_dat_typ(Pd2fctx, pempblk, D2FC_DMDA_TABLE);

/* Set DML data source name to EMP table */

d2fblks_dml_dat_nam(pd2fctx, pempblk, (text*)"EMP");

/*** Create Dept block and set block-related properties ***/

/* Create block */

d2fblkcr_Create(pd2fctx, pd2ffmd, &pdeptblk, (text*)"DEPT");

/* Set to database block */

d2fblks_db_blk(pd2fctx, pdeptblk, TRUE);

/* Set query data source to Table */

d2fblks_qry_dat_src_typ(pd2fctx, pdeptblk, D2FC_QRDA_TABLE);

/* Set query data source name to EMP table */

d2fblks_qry_dat_src_nam(pd2fctx, pdeptblk, "DEPT");

/* Set DML data source type to Table */

d2fblks_dml_dat_typ(Pd2fctx, pdeptblk, D2FC_DMDA_TABLE);

/* Set DML data source name to EMP table */

d2fblks_dml_dat_nam(pd2fctx, pdeptblk, (text*)"DEPT");

/*** Create empno item and item-related properties ***/

/* Create item */

d2fitmcr_Create(pd2fctx, pempblk, &pEempnoitm, (text*)"EMPNO");

/* Set item type */

d2fitms_itm_type(pd2fctx, pEempnoitm, D2FC_ITTY_TI);

/* Set Enable property */

d2fitms_enabled(pd2fctx, pEempnoitm, TRUE);

/* Set item (keyboard) navigable property */

d2fitms_kbrd_navigable(pd2fctx, pEempnoitm, TRUE);

/* Set item Data Type property */

d2fitms_dat_typ(pd2fctx, pEempnoitm, D2FC_DATY_NUMBER);

/* Set item Max Length property */

d2fitms_max_len(pd2fctx, pEempnoitm, 6);

/*Set item Required property */

d2fitms_required(pd2fctx, pEempnoitm, TRUE);

/* Set Distance Between Records property */

d2fitms_dist_btwn_recs(pd2fctx, pEempnoitm, 0);

/* Set Database block(Database Item) property */

d2fitms_db_itm(pd2fctx, pEempnoitm, TRUE);

/* Set Query Allowed */

d2fitms_qry_allowed(pd2fctx, pEempnoitm, TRUE);

/* Set Query Length */

d2fitms_qry_len(pd2fctx, pEempnoitm, 6);

/* Set Update Allowed */

d2fitms_updt_allowed(pd2fctx, pEempnoitm, TRUE);

/* Set Item Displayed (Visible) */

d2fitms_visible(pd2fctx, pEempnoitm, TRUE);

/* Set Item Canvas property */

d2fitms_cnv_obj(pd2fctx, pEempnoitm, pd2fcnv);

/* Set Item X-position */

d2fitms_x_pos(pd2fctx, pEempnoitm, 32);

/* Set Item Y-position */

d2fitms_y_pos(pd2fctx, pEempnoitm, 50);

/* Set Item Width */

d2fitms_width(pd2fctx, pEempnoitm, 51);

/* Set Item Height */

d2fitms_height(pd2fctx, pEempnoitm, 17);

/* Set Item Bevel */

d2fitms_bevel(pd2fctx, pEempnoitm, D2FC_BEST_LOWERED);

/* Set item Hint */

d2fitms_hint(pd2fctx, PEempnoitm, (text*)"Enter value for :EMPNO");

/*** Create Ename item and item-related properties ***/

/* Create item */

d2fitmcr_Create(pd2fctx, pempblk, &pEenameitm, (text*)"ENAME");

/* Set item type */

d2fitms_itm_type(pd2fctx, pEenameitm, D2FC_ITTY_TI);

/* Set Enable property */

d2fitms_enabled(pd2fctx, pEenameitm, TRUE);

/* Set item (keyboard) navigable property */

d2fitms_kbrd_navigable(pd2fctx, pEenameitm, TRUE);

/* Set item Data Type property */

d2fitms_dat_typ(pd2fctx, pEenameitm, D2FC_DATY_CHAR);

/* Set item Max Length property */

d2fitms_max_len(pd2fctx, pEenameitm, 10);

/* Set Distance Between Records property */

d2fitms_dist_btwn_recs(pd2fctx, pEenameitm, 0);

/* Set Database block(Database Item) property */

d2fitms_db_itm(pd2fctx, pEenameitm, TRUE);

/* Set Query Allowed */

d2fitms_qry_allowed(pd2fctx, pEenameitm, TRUE);

/* Set Query Length */

d2fitms_qry_len(pd2fctx, pEenameitm, 10);

/* Set Update Allowed */

d2fitms_updt_allowed(pd2fctx, pEenameitm, TRUE);

/* Set Item Displayed (Visible) */

d2fitms_visible(pd2fctx, pEenameitm, TRUE);

/* Set Item Canvas property */

d2fitms_cnv_obj(pd2fctx, pEenameitm, pd2fcnv);

/* Set Item X-position */

d2fitms_x_pos(pd2fctx, pEenameitm, 83);

/* Set Item Y-position */

d2fitms_y_pos(pd2fctx, pEenameitm, 50);

/* Set Item Width */

d2fitms_width(pd2fctx, pEenameitm, 77);

/* Set Item Height */

d2fitms_height(pd2fctx, pEenameitm, 17);

/* Set Item Bevel */

d2fitms_bevel(pd2fctx, pEenameitm, D2FC_BEST_LOWERED);

/* Set item Hint */

d2fitms_hint(pd2fctx, PEenameitm, (text*)"Enter value for :ENAME");

/*** Create JOB item and item-related properties ***/

/* Create item */

d2fitmcr_Create(pd2fctx, pempblk, &pEjobitm, (text*)"JOB");

/* Set item type */

d2fitms_itm_type(pd2fctx, pEjobitm, D2FC_ITTY_TI);

/* Set Enable property */

d2fitms_enabled(pd2fctx, pEjobitm, TRUE);

/* Set item (keyboard) navigable property */

d2fitms_kbrd_navigable(pd2fctx, pEjobitm, TRUE);

/* Set item Data Type property */

d2fitms_dat_typ(pd2fctx, pEjobitm, D2FC_DATY_CHAR);

/* Set item Max Length property */

d2fitms_max_len(pd2fctx, pEjobitm, 9);

/* Set Distance Between Records property */

d2fitms_dist_btwn_recs(pd2fctx, pEjobitm, 0);

/* Set Database block(Database Item) property */

d2fitms_db_itm(pd2fctx, pEjobitm, TRUE);

/* Set Query Allowed */

d2fitms_qry_allowed(pd2fctx, pEjobitm, TRUE);

/* Set Query Length */

d2fitms_qry_len(pd2fctx, pEjobitm, 9);

/* Set Update Allowed */

d2fitms_updt_allowed(pd2fctx, pEjobitm, TRUE);

/* Set Item Displayed (Visible) */

d2fitms_visible(pd2fctx, pEjobitm, TRUE);

/* Set Item Canvas property */

d2fitms_cnv_obj(pd2fctx, pEjobitm, pd2fcnv);

/* Set Item X-position */

d2fitms_x_pos(pd2fctx, pEjobitm, 160);

/* Set Item Y-position */

d2fitms_y_pos(pd2fctx, pEjobitm, 50);

/* Set Item Width */

d2fitms_width(pd2fctx, pEjobitm, 70);

/* Set Item Height */

d2fitms_height(pd2fctx, pEjobitm, 17);

/* Set Item Bevel */

d2fitms_bevel(pd2fctx, pEjobitm, D2FC_BEST_LOWERED);

/* Set item Hint */

d2fitms_hint(pd2fctx, PEjobitm, (text*)"Enter value for :JOB");

/*** Create SALARY item and item-related properties ***/

/* Create item */

d2fitmcr_Create(pd2fctx, pempblk, &pEsalitm, (text*)"SAL");

/* Set item type */

d2fitms_itm_type(pd2fctx, pEsalitm, D2FC_ITTY_TI);

/* Set Enable property */

d2fitms_enabled(pd2fctx, pEsalitm, TRUE);

/* Set item (keyboard) navigable property */

d2fitms_kbrd_navigable(pd2fctx, pEsalitm, TRUE);

/* Set item Data Type property */

d2fitms_dat_typ(pd2fctx, pEsalitm, D2FC_DATY_NUMBER);

/* Set item Max Length property */

d2fitms_max_len(pd2fctx, pEsalitm, 9);

/* Set Distance Between Records property */

d2fitms_dist_btwn_recs(pd2fctx, pEsalitm, 0);

/* Set Database block(Database Item) property */

d2fitms_db_itm(pd2fctx, pEsalitm, TRUE);

/* Set Query Allowed */

d2fitms_qry_allowed(pd2fctx, pEsalitm, TRUE);

/* Set Query Length */

d2fitms_qry_len(pd2fctx, pEsalitm, 9);

/* Set Update Allowed */

d2fitms_updt_allowed(pd2fctx, pEsalitm, TRUE);

/* Set Item Displayed (Visible) */

d2fitms_visible(pd2fctx, pEsalitm, TRUE);

/* Set Item Canvas property */

d2fitms_cnv_obj(pd2fctx, pEsalitm, pd2fcnv);

/* Set Item X-position */

d2fitms_x_pos(pd2fctx, pEsalitm, 352);

/* Set Item Y-position */

d2fitms_y_pos(pd2fctx, pEsalitm, 50);

/* Set Item Width */

d2fitms_width(pd2fctx, pEsalitm, 70);

/* Set Item Height */

d2fitms_height(pd2fctx, pEsalitm, 17);

/* Set Item Bevel */

d2fitms_bevel(pd2fctx, pEsalitm, D2FC_BEST_LOWERED);

/* Set item Hint */

d2fitms_hint(pd2fctx, PEsalitm, (text*)"Enter value for :SAL");

/*** Create DEPTNO item and item-related properties ***/

/* Create item */

d2fitmcr_Create(pd2fctx, pempblk, &pEdeptnoitm, (text*)"DEPTNO");

/* Set item type */

d2fitms_itm_type(pd2fctx, pEdeptnoitm, D2FC_ITTY_TI);

/* Set Enable property */

d2fitms_enabled(pd2fctx, pEdeptnoitm, TRUE);

/* Set item (keyboard) navigable property */

d2fitms_kbrd_navigable(pd2fctx, pEdeptnoitm, TRUE);

/* Set item Data Type property */

d2fitms_dat_typ(pd2fctx, pEdeptnoitm, D2FC_DATY_NUMBER);

/* Set item Max Length property */

d2fitms_max_len(pd2fctx, pEdeptnoitm, 4);

/*Set item Required property */

d2fitms_required(pd2fctx, pEdeptnoitm, TRUE);

/* Set Distance Between Records property */

d2fitms_dist_btwn_recs(pd2fctx, pEdeptnoitm, 0);

/* Set Database block(Database Item) property */

d2fitms_db_itm(pd2fctx, pEdeptnoitm, TRUE);

/* Set Query Allowed */

d2fitms_qry_allowed(pd2fctx, pEdeptnoitm, TRUE);

/* Set Query Length */

d2fitms_qry_len(pd2fctx, pEdeptnoitm, 4);

/* Set Update Allowed */

d2fitms_updt_allowed(pd2fctx, pEdeptnoitm, TRUE);

/* Set Item Displayed (Visible) */

d2fitms_visible(pd2fctx, pEdeptnoitm, TRUE);

/* Set Item Canvas property */

d2fitms_cnv_obj(pd2fctx, pEdeptnoitm, pd2fcnv);

/* Set Item X-position */

d2fitms_x_pos(pd2fctx, pEdeptnoitm, 493);

/* Set Item Y-position */

d2fitms_y_pos(pd2fctx, pEdeptnoitm, 50);

/* Set Item Width */

d2fitms_width(pd2fctx, pEdeptnoitm, 30);

/* Set Item Height */

d2fitms_height(pd2fctx, pEdeptnoitm, 17);

/* Set Item Bevel */

d2fitms_bevel(pd2fctx, pEdeptnoitm, D2FC_BEST_LOWERED);

/* Set item Hint */

d2fitms_hint(pd2fctx, PEdeptnoitm, (text*)"Enter value for :DEPTNO");

/*** Create DEPTNO item and item-related properties ***/

/* Create item */

d2fitmcr_Create(pd2fctx, pdeptblk, &pDdeptnoitm, (text*)"DEPTNO");

/* Set item type */

d2fitms_itm_type(pd2fctx, pDdeptnoitm, D2FC_ITTY_TI);

/* Set Enable property */

d2fitms_enabled(pd2fctx, pDdeptnoitm, TRUE);

/* Set item (keyboard) navigable property */

d2fitms_kbrd_navigable(pd2fctx, pDdeptnoitm, TRUE);

/* Set item Data Type property */

d2fitms_dat_typ(pd2fctx, pDdeptnoitm, D2FC_DATY_NUMBER);

/* Set item Max Length property */

d2fitms_max_len(pd2fctx, pDdeptnoitm, 4);

/*Set item Required property */

d2fitms_required(pd2fctx, pDdeptnoitm, TRUE);

/* Set Distance Between Records property */

d2fitms_dist_btwn_recs(pd2fctx, pDdeptnoitm, 0);

/* Set Database block(Database Item) property */

d2fitms_db_itm(pd2fctx, pDdeptnoitm, TRUE);

/* Set Query Allowed */

d2fitms_qry_allowed(pd2fctx, pDdeptnoitm, TRUE);

/* Set Query Length */

d2fitms_qry_len(pd2fctx, pDdeptnoitm, 4);

/* Set Update Allowed */

d2fitms_updt_allowed(pd2fctx, pDdeptnoitm, TRUE);

/* Set Item Displayed (Visible) */

d2fitms_visible(pd2fctx, pDdeptnoitm, TRUE);

/* Set Item Canvas property */

d2fitms_cnv_obj(pd2fctx, pDdeptnoitm, pd2fcnv);

/* Set Item X-position */

d2fitms_x_pos(pd2fctx, pDdeptnoitm, 32);

/* Set Item Y-position */

d2fitms_y_pos(pd2fctx, pDdeptnoitm, 151);

/* Set Item Width */

d2fitms_width(pd2fctx, pDdeptnoitm, 38);

/* Set Item Height */

d2fitms_height(pd2fctx, pDdeptnoitm, 17);

/* Set Item Bevel */

d2fitms_bevel(pd2fctx, pDdeptnoitm, D2FC_BEST_LOWERED);

/* Set item Hint */

d2fitms_hint(pd2fctx, PDdeptnoitm, (text*)"Enter value for :DEPTNO");

/*** Create DNAME item and item-related properties ***/

/* Create item */

d2fitmcr_Create(pd2fctx, pdeptblk, &pDdnameitm, (text*)"DNAME");

/* Set item type */

d2fitms_itm_type(pd2fctx, pDdnameitm, D2FC_ITTY_TI);

/* Set Enable property */

d2fitms_enabled(pd2fctx, pDdnameitm, TRUE);

/* Set item (keyboard) navigable property */

d2fitms_kbrd_navigable(pd2fctx, pDdnameitm, TRUE);

/* Set item Data Type property */

d2fitms_dat_typ(pd2fctx, pDdnameitm, D2FC_DATY_CHAR);

/* Set item Max Length property */

d2fitms_max_len(pd2fctx, pDdnameitm, 14);

/* Set Distance Between Records property */

d2fitms_dist_btwn_recs(pd2fctx, pDdnameitm, 0);

/* Set Database block(Database Item) property */

d2fitms_db_itm(pd2fctx, pDdnameitm, TRUE);

/* Set Query Allowed */

d2fitms_qry_allowed(pd2fctx, pDdnameitm, TRUE);

/* Set Query Length */

d2fitms_qry_len(pd2fctx, pDdnameitm, 14);

/* Set Update Allowed */

d2fitms_updt_allowed(pd2fctx, pDdnameitm, TRUE);

/* Set Item Displayed (Visible) */

d2fitms_visible(pd2fctx, pDdnameitm, TRUE);

/* Set Item Canvas property */

d2fitms_cnv_obj(pd2fctx, pDdnameitm, pd2fcnv);

/* Set Item X-position */

d2fitms_x_pos(pd2fctx, pDdnameitm, 70);

/* Set Item Y-position */

d2fitms_y_pos(pd2fctx, pDdnameitm, 151);

/* Set Item Width */

d2fitms_width(pd2fctx, pDdnameitm, 102);

/* Set Item Height */

d2fitms_height(pd2fctx, pDdnameitm, 17);

/* Set Item Bevel */

d2fitms_bevel(pd2fctx, pDdnameitm, D2FC_BEST_LOWERED);

/* Set item Hint */

d2fitms_hint(pd2fctx, PDdnameitm, (text*)"Enter value for :DNAME");

/*** Create LOC item and item-related properties ***/

/* Create item */

d2fitmcr_Create(pd2fctx, pdeptblk, &pDlocitm, (text*)"LOC");

/* Set item type */

d2fitms_itm_type(pd2fctx, pDlocitm, D2FC_ITTY_TI);

/* Set Enable property */

d2fitms_enabled(pd2fctx, pDlocitm, TRUE);

/* Set item (keyboard) navigable property */

d2fitms_kbrd_navigable(pd2fctx, pDlocitm, TRUE);

/* Set item Data Type property */

d2fitms_dat_typ(pd2fctx, pDlocitm, D2FC_DATY_CHAR);

/* Set item Max Length property */

d2fitms_max_len(pd2fctx, pDlocitm, 13);

/* Set Distance Between Records property */

d2fitms_dist_btwn_recs(pd2fctx, pDlocitm, 0);

/* Set Database block(Database Item) property */

d2fitms_db_itm(pd2fctx, pDlocitm, TRUE);

/* Set Query Allowed */

d2fitms_qry_allowed(pd2fctx, pDlocitm, TRUE);

/* Set Query Length */

d2fitms_qry_len(pd2fctx, pDlocitm, 13);

/* Set Update Allowed */

d2fitms_updt_allowed(pd2fctx, pDlocitm, TRUE);

/* Set Item Displayed (Visible) */

d2fitms_visible(pd2fctx, pDlocitm, TRUE);

/* Set Item Canvas property */

d2fitms_cnv_obj(pd2fctx, pDlocitm, pd2fcnv);

/* Set Item X-position */

d2fitms_x_pos(pd2fctx, pDlocitm, 173);

/* Set Item Y-position */

d2fitms_y_pos(pd2fctx, pDlocitm, 151);

/* Set Item Width */

d2fitms_width(pd2fctx, pDlocitm, 96);

/* Set Item Height */

d2fitms_height(pd2fctx, pDlocitm, 17);

/* Set Item Bevel */

d2fitms_bevel(pd2fctx, pDlocitm, D2FC_BEST_LOWERED);

/* Set item Hint */

d2fitms_hint(pd2fctx, PDlocitm, (text*)"Enter value for :LOC");

/*** Create Relations and relations-related properties ***/

/* Create Relation */

d2frelcr_Create(pd2fctx, (d2fob *)pdeptblk, &pd2frel, (text*)"DEPT_EMP");

/* Set Relation Detail block */

d2frels_detail_blk(pd2fctx, pd2frel, (text *)"EMP");

/* Set Master Deletes property */

d2frels_del_rec([pd2fctx, pd2frel, D2FC_DERE_NON_ISOLATED);

/* Set Deferred property */

d2frels_deferred(pd2ctx, pd2frel, FALSE);

/* Set Auto Query property */

d2frels_auto_qry(pd2ctx, pd2frel, FALSE);

/* Set Prevent Masterless property */

d2frels_prvnt_mstrless_ops(pd2ctx, pd2frel, FALSE);

/* Set Join Condition property */

d2frels_join_cond(pd2ctx, pd2frel, (text*)"DEPTNO");

/* Instantiate Relation: creates master-detail triggers */

d2frelup_Update(pd2fctx, pd2frel);

/* Save Form */

d2ffmdsv_Save(pd2fctx, pd2ffmd, (text*)0, FALSE, TRUE);

/* Compile Form */

d2ffmdcf_CompileFile(pd2fctx, pd2ffmd);

/* Destroy Context */

d2fctxde_Destroy(pd2fctx);

}


Über Komponenten von Form Builder

  Verwandte Themen

Form Builder besteht aus den folgenden Programmen oder Komponenten, die Sie unabhängig aus der Befehlszeile oder durch Klicken auf ein Symbol ausführen können.

Form Builder	Form Builder ist die Entwurfskomponente, mit der Sie Form Builder-Anwendungen erstellen, kompilieren und ausführen können. Mit Form Builder können Sie drei Arten von Modulen erstellen: Forms, Menüs und Bibliotheken.
Forms Runtime	Form-Operatoren führen die fertige Anwendung mit Forms Runtime aus. Als Anwendungsentwickler können Sie Forms Runtime benutzen, um Forms beim Entwurf zu testen und zu debuggen. Forms Runtime liest die maschinenlesbare Datei, die mit Form Compiler erstellt wurde, und führt die Form aus.
Web-Vorschau	Anwendungsentwickler benutzen die Web-Vorschau, um Forms lokal so zu testen, als würden sie aus Forms Server in einem Browser oder in dem Appletviewer ausgeführt. Wie Forms Runtime liest die Web-Vorschau die von Form Compiler erstellte maschinenlesbare Datei und führt die Form aus.
Form Compiler	In den meisten Fällen benutzen Sie Form Compiler, um eine maschinenlesbare Datei zu erstellen, die Forms Runtime ausführen kann. Mit Form Compiler können Sie außerdem verschiedene Darstellungen einer Form konvertieren. Mit Form Compiler können Sie: • Dateien zwischen den Binär-, Text- und Datenbankmodul-Speicherformaten konvertieren. • Moduldefinitionen in Datenbanktabellen einfügen. • Moduldefinitionen aus der Datenbank löschen. • Anwendungsmodule neu kompilieren, wenn diese auf andere Plattformen portiert werden. • mit vorherigen Versionen von Form Builder, SQL*Forms und SQL*Menu erstellte Anwendungen umstellen.


Komponenten von Form Builder starten

  Verwandte Themen

Einige Plattformen unterstützen Symbole, während andere Befehlszeilen unterstützen. Sie können die Komponenten Form Builder, Form Compiler, Web-Vorschau oder Forms Runtime je nach Plattform auf zwei verschiedene Arten starten:

Symbol	Für jede Komponente wird ein anderes Symbol angezeigt: Form Builder, Forms Runtime und Form Compiler. Um eine Komponente zu starten, doppelklicken Sie auf die Komponente.
Befehlszeile	Wenn Sie eine Komponente starten, indem Sie einen Befehl in der Befehlszeile eingeben, können Sie die Optionen angeben, die für diese Sitzung benutzt werden sollen, indem Sie die Schlüsselwortparameter in der Befehlszeile eingeben.
Weitere Informationen über das Starten von Form Builder-Komponenten finden Sie in der Form Builder-Dokumentation für Ihr Betriebssystem.


Komponenten von Form Builder aus der Befehlszeile starten

  Verwandte Themen	 Beispiele

Um eine Form Builder-Komponente aus der Befehlszeile zu starten, geben Sie die folgende Anweisung bei dem System-Prompt ein:

Komponentenname [Modulname] [Benutzer-ID/Kennwort] [Parameter]

wobei:

Komponentenname	die Form Builder-Komponente angibt, die benutzt werden soll:

•	Form Builder - ifbld60

•	Forms Runtime - ifrun60

•	Web Previewer - ifweb60

•	Form Compiler - ifcmp60


Beispiele für das Starten der Komponenten von Form Builder

ifrun60	Startet die Forms Runtime-Komponente bei Microsoft Windows ohne Aufrufe an die User Exit-Schnittstelle.

Um anzugeben, daß Fremdfunktionen, auf die über die User Exit-Schnittstelle zugegriffen werden kann, mit der ausführbaren Datei verknüpft wurden, fügen Sie ein x zu Komponentenname hinzu.

Weitere Informationen über gültige Komponentennamen finden Sie in der Form Builder-Dokumentation für Ihr Betriebssystem.

Modulname	Gibt das zu ladende Modul an: ein Form-, Menü- oder Bibliotheksname. Wenn Sie den Modulnamen weglassen, zeigt Form Builder ein Dialogfeld an, in dem Sie das zu öffnende Modul wählen können.

Benutzer-ID/Kennwort	Gibt Ihren Oracle-Benutzernamen und das Kennwort an.

Parameter	Gibt wahlweise Befehlszeilenparameter an, die Sie für diese Sitzung aktivieren möchten. Optionale Parameter werden in folgendem Format eingegeben: Schlüsselwort1=Wert1 Schlüsselwort2=Wert2...

ifrun60 custform scott/tiger statistics=yes

Hinweis:  Bei den Beispielen wird davon ausgegangen, daß Sie Form Builder auf Microsoft Windows ohne Aufrufe der User Exit-Schnittstelle ausführen, so daß der Name der Forms Runtime-Komponente als "ifrun60" dargestellt wird. Sie müssen den richtigen Wert für Komponentenname für Ihre Plattform und Anwendung angeben.

Benutzung von Schlüsselwörtern

In Form Builder gibt es drei Kategorien von Parametern:

•	MODULE und USERID

•	Optionen (Befehlszeilenparameter für das Einstellen von Optionen)

•	Formparameter

Die ersten beiden Parameter, MODULE und USERID, sind eindeutig, da Sie entweder die Positions- oder Schlüsselwort-Schreibweise zur Eingabe dieser Parameter benutzen können. Benutzen Sie die Schlüsselwort-Schreibweise, um optionale Parameter in der Befehlszeile einzugeben. (Viele optionale Parameter können auch mit Dialogfeldern festgelegt werden.) Formparameter sind optionale Eingabevariablen, die beim Entwurf für eine bestimmte Form definiert werden.

MODULE und USERID

Wenn Sie die ersten beiden Parameter, MODULE und USERID, in der angegebenen Reihenfolge eingeben, können Sie die Schlüsselwörter weglassen und nur Werte eingeben, wie im folgenden Beispiel dargestellt:

ifrun60 custform scott/tiger

Ungültiges Beispiel:

ifrun60 scott/tiger

Diese Folge ist ungültig, da der Wert für Benutzername/Kennwort nicht folgerichtig ist, da vor ihm das Schlüsselwort USERID stehen muß. Um die Positions-Schreibweise anstelle von Schlüsselwörtern zu benutzen, müssen Sie den Wert des Parameters MODULE unmittelbar im Anschluß an den Komponentennamen eingeben, wie im vorherigen Beispiel.

Gültige Beispiele:

ifrun60 module=custform userid=scott/tiger
ifrun60 userid=scott/tiger
ifrun60

Wenn Sie nur den Modulnamen angeben, fordert Form Builder Sie zur Eingabe von Modulname und Benutzername/Kennwort auf.

Optionen

Benutzen Sie die Schlüsselwort-Schreibweise, um Optionen in der Befehlszeile einzustellen. Für weitere Informationen über Optionen wird auf die folgenden Hilfethemen verwiesen:

•	Forms Runtime-Optionen einstellen

•	Form Compiler-Optionen einstellen

•	Form Builder-Optionen einstellen

Die folgenden Syntaxregeln gelten für alle Schlüsselwortparameter, einschließlich Optionen und Formparametern:

•	Vor oder hinter dem Gleichheitszeichen eines Arguments dürfen keine Leerzeichen stehen.

•	Argumente müssen mit einem oder mehreren Leerzeichen voneinander getrennt werden; benutzen Sie keine Kommas als Argumenttrennzeichen.

Ungültiges Beispiel:

ifrun60 custform scott/tiger statistics = yes
ifrun60 custform scott/tiger statistics=yes,debug=yes

Gültige Beispiele:

ifrun60 custform scott/tiger statistics=yes
ifrun60 custform scott/tiger statistics=yes debug=yes

Formparameter

Formparameter sind Variablen, die Sie beim Entwurf definieren. Formparameter bieten eine einfache Möglichkeit zur Definition und Einstellung des Wertes von Eingaben, die von einer Form beim Starten benötigt werden. Operatoren können Werte für Formparameter angeben, indem sie diese mit der Standard-Befehlszeilensyntax über die Befehlszeile eingeben.

Der Standardwert für einen Formparameter stammt aus dem Feld Standardwert des Fensters Attribute. Der Operator kann den Standardwert beim Starten von Forms Runtime außer Kraft setzen, indem ein neuer Wert für den Formparameter in der Befehlszeile angegeben wird.

Im folgenden Beispiel ist myname_param ein benutzerdefinierter Formparameter, der in Form Builder definiert wurde.

Hinweis:  Wenn der Wert eines Formparameters ein Leerzeichen oder ein Satzzeichen enthält, setzen Sie den Wert in doppelte Anführungszeichen.

Beispiel

ifrun60 empform scott/tiger myname_param="Msr. Dubois"

Hinweistext zu Befehlszeilenoptionen anzeigen

Wenn Sie einen Hilfetext für Syntax und Parameter anzeigen möchten, geben Sie den Komponentennamen gefolgt von "help=yes" bei der Eingabeaufforderung ein.

Beispiel

ifrun60 help=yes


Bei der Datenbank anmelden

 Beispiele

Wenn Sie sich explizit bei der Datenbank anmelden, benutzen Sie das Befehlszeilen-Schlüsselwort USERID, oder wählen Sie in Form Builder Datei [image] Anmelden.

USERID

USERID ist Ihr ORACLE-Benutzername und Kennwort mit einer optionalen SQL*Net DB-Adresse. Die maximale Länge für die DB-Adresse beläuft sich auf 255 Zeichen.

Benutzen Sie eine der folgenden Formen, um sich anzumelden:

username/password
username/password@node

Abgelaufenes Kennwort

Der Oracle8 Datenbank-Server bietet eine Funktion des Kennwortablaufs an, mit der Datenbankadministratoren Benutzer zwingen können, ihr Kennwort in regelmäßigen Abständen zu aktualisieren.

Wenn Ihr Kennwort abgelaufen ist, bietet Forms Ihnen die Möglichkeit, bei der Anmeldung ein neues Kennwort einzugeben. (Sie können auch das Start-Dialogfeld von Forms benutzen, um Ihr Kennwort zu ändern, bevor es abläuft.)


Beispiele für das Anmelden bei der Datenbank

Sie könnten den folgenden Befehl angeben, um die Form ORDER_ENTRY in der Standarddatenbank des Knotens LONDON auszuführen:

ifrun60 order_entry scott/tiger@D:london

Weitere Informationen über SQL*Net finden Sie im SQL*Net User's Guide. Falls Sie Hilfe zu Ihrem ORACLE-Benutzernamen benötigen, fragen Sie Ihren Datenbankadministrator.


Forms Runtime-Optionen

Mit Forms Runtime-Optionen wird das Standardverhalten von Form Builder während einer Forms Runtime-Sitzung angegeben. Sie können Forms Runtime-Optionen auf zwei verschiedene Arten festlegen:

•	Legen Sie die Optionen im Dialogfeld Forms Runtime-Optionen fest.

•	Übergeben Sie Parameter auf der Befehlszeile an Form Builder, wenn Sie Forms Runtime aufrufen.

Darüber hinaus können Sie Forms Runtime-Optionen zur Angabe von Standardwerten für Forms, die Sie aus Form Builder ausführen, im Dialogfeld Voreinstellungen angeben. Um das Dialogfeld Voreinstellungen anzuzeigen, wählen Sie Werkzeuge [image] Voreinstellungen.

Hinweis:  In Form Builder festgelegte Forms Runtime-Voreinstellungen gelten nur für Forms, die aus Form Builder ausgeführt werden.

Außerdem können Optionen für die Web-Vorschau in dem Parameter serverargs einer HTML-Basisdatei festgelegt werden. Sie können diesen HTML-Dateinamen im Register Laufzeit des Dialogfeldes Voreinstellungen oder über die Befehlszeile angeben. Weitere Informationen über das Erstellen einer HTML-Basisdatei finden Sie in dem Abschnitt "Forms Server konfigurieren" in Forms-Anwendungen im Web einsetzen.

In der folgenden Aufstellung werden die Forms Runtime-Optionen aus dem Fenster Optionen und die entsprechenden Schlüsselwort-Parameter aufgeführt.

Wenn Sie diese Schlüsselwortparameter als Befehlszeilenoptionen eingeben, können Sie mehrere Parameter in beliebiger Reihenfolge gleichzeitig eingeben:

ifrun60 module=myform userid=scott/tiger debug=YES statistics=YES

Optionsname	Schlüsselwortparameter	Standardwert
Oracle Terminal-Resource-Datei	Term
Im Debug-Modus ausführen	Debug	Nein
Debug-Meldungen	Debug_Messages *	Nein
Eingabe-Tastenanschläge in Datei schreiben	Keyout
Eingabe-Tastenanschläge aus Datei lesen	Keyin
In Ausgabedatei schreiben	Output_File
Ausgabe auf dem Bildschirm anzeigen	Interactive	Ja
Array-Verarbeitung	Array	Ja
Datensätze in temporärer Datei puffern	Buffer_Records	Nein
Bildschirm zur Angabe der Anmeldung anzeigen	Logon_Screen	Nein
Blockmenü beim Starten anzeigen	Block_Menu	Nein
Schrittweise SQL-Verarbeitung mit V2-Trigger optimieren	OptimizeSQL	Ja
Transaktionsverarbeitung optimieren	OptimizeTP	Ja
Im Ton-aus-Modus ausführen	Quiet	Nein
Statistik anzeigen	Statistics	Nein
Im Abfragemodus ausführen	Query_Only	Nein
Hilfeinformationen anzeigen	Hilfe	Nein
Fenster-Status	Window_State	NORMAL
PECS-Daten erfassen?	PECS	OFF
Optionen-Bildschirm	Options_Screen *	Nein
SDI-Modus benutzen	USESDI	Nein
Pfad für HTML-Datei (nur Web Runtime)	HTML
 * Kann nur aus der Befehlszeile benutzt werden; ist im Forms Runtime-Dialogfeld Optionen nicht verfügbar.


Array (Forms Runtime)

 Beispiele	 Alle Optionen

Beschreibung

Benutzt die Array-Verarbeitung während einer Forms Runtime-Sitzung.

Wenn Sie die Array-Verarbeitung unterdrücken, fordert Forms, daß die Datenbank jeweils nur eine Zeile mit Abfrageergebnissen vom Server zum Client zurückgibt. Gleichermaßen fordert Forms, daß die Datenbank bei einem INSERT-, UPDATE- oder DELETE-Vorgang jeweils nur eine einzelne Zeile vom Client zum Server sendet, wenn die Array-Verarbeitung unterdrückt wird.

Das Unterdrücken der Array-Verarbeitung führt im allgemeinen dazu, daß der erste abgerufene Datensatz schneller angezeigt wird, als dies der Fall wäre, wenn Sie eine Reihe von Datensätzen mit der Array-Verarbeitung abrufen würden. Die Gesamtzeit, die für das Abrufen und die Anzeige einer Reihe von Datensätzen erforderlich ist, ist jedoch bei der Array-Verarbeitung kürzer, da die Netzwerkbelastung reduziert werden kann.

Optionsname  Array-Verarbeitung

Standardwert YES


Beispiele für Array (Forms Runtime)

ifrun60 module=myform userid=scott/tiger array=NO


Block_Menu (Forms Runtime)

 Beispiele	 Alle Optionen

Beschreibung

Zeigt automatisch das Blockmenü als ersten Bildschirm (im Anschluß an den Anmelde-Bildschirm, sofern dieser angezeigt wird) anstelle der Form an.

Optionsname  Blockmenü anzeigen

Standardwert NO


Beispiele für Block_Menu (Forms Runtime)

ifrun60 module=myform userid=scott/tiger block_menu=YES


Buffer_Records (Forms Runtime)

 Beispiele	 Alle Optionen

Beschreibung

Stellt die Anzahl von Datensätzen, die im Speicher gepuffert werden können, auf die minimal zulässige Anzahl von angezeigten Zeilen plus 3 (für jeden Block) ein. Wenn ein Block Datensätze über diesen Mindestwert hinaus durch eine Abfrage abruft, puffert Form Builder diese zusätzlichen Datensätze in einer temporären Datei auf der Festplatte.

Wenn Sie diese Option einstellen, wird Forms Runtime-Speicher gespart, die Verarbeitung jedoch aufgrund der Platten-E/A vermindert.

Buffer_Records=NO weist Form Builder an, den Mindestwert auf die Anzahl zu setzen, die mit dem Attribut Gepuffert für jeden Block angegeben wird.

Optionsname  Datensätze in temporärer Datei puffern

Standardwert NO


Beispiele für Buffer_Records (Forms Runtime)

ifrun60 module=myform userid=scott/tiger buffer_records=YES


Debug (Forms Runtime)

 Beispiele	 Alle Optionen

Beschreibung

Ruft den Debug-Modus für die Forms Runtime-Sitzung auf. Der Debug-Modus ruft die Verarbeitung von Programmstops auf, wenn die vordefinierte Prozedur BREAK in einem Trigger benutzt wird oder wenn Sie den Befehl ?Debuggen aus dem Form Builder-Menü aufrufen.

Um den Debug-Modus bei anderen Plattformen als der Windows-Plattform aufzurufen, müssen Sie die ausführbare Debug-Datei benutzen:

ifdbg60 module=myform userid=scott/tiger debug=YES

Optionsname  Im Debug-Modus ausführen

Standardwert NO


Beispiele für Debug (Forms Runtime)

ifdbg60 module=myform userid=scott/tiger debug=YES


Debug_Messages (Forms Runtime)

 Beispiele	 Alle Optionen

Beschreibung

Mit Debug_Messages werden fortlaufende Meldungen über die Triggerausführung angezeigt, während die Form ausgeführt wird.

Standardwert NO


Beispiele für Debug_Messages (Forms Runtime)

ifrun60 module=myform userid=scott/tiger debug_messages=YES


Help (Forms Runtime)

 Beispiele	 Alle Optionen

Beschreibung

Ruft den Hilfebildschirm von Form Builder auf.

Optionsname  Hilfeinformation anzeigen

Standardwert NO


Beispiele für Help (Forms Runtime)

ifrun60 help=YES


Interactive (Forms Runtime)

 Beispiele	 Alle Optionen

Beschreibung

Mit Interactive wird angegeben, daß Form Builder die Ausgabe auf dem Terminalbildschirm anzeigt (d.h. interaktiv ausführt) und die Ausgabe in eine Datei druckt, wenn Sie eine Tastenbelegungsdatei als Eingabe benutzen. Verwenden Sie Interactive=NO, um die Bildschirmausgabe zu unterdrücken, wenn Sie Forms im Stapelmodus ausführen.

Dieser Parameter gilt nur für Terminals im Zeichenmodus.

Hinweis:  Sie müssen die Parameter Keyin und Output_File verwenden, wenn Sie Interactive benutzen. Mit der Keyin-Datei wird die Eingabe- oder Tastenbelegungsdatei angegeben, während mit Output_File die Ausgabe- bzw. Log-Datei angegeben wird.

Optionsname  Ausgabe auf dem Bildschirm anzeigen

Standardwert YES


Beispiele für Interactive (Forms Runtime)

ifrun60 module=myform userid=scott/tiger keyin=myfile.key

output_file=mydisplay.out interactive=NO


Keyin (Forms Runtime)

 Beispiele	 Alle Optionen

Beschreibung

Mit dieser Option können Sie eine Tastenbelegungsdatei als Eingabe in eine Form einlesen. Mit der Tastenbelegungsdatei wird die Forms Runtime-Sitzung gestartet, ausgeführt und beendet.

Der angegebene Dateiname entspricht der Eingabe- bzw. Tastenbelegungsdatei.

Standardmäßig führt Form Builder alle Aktionen auf dem Terminal-Bildschirm aus. Wenn Sie die Bildschirmausgabe unterdrücken möchten, geben Sie Interactive=NO an, und verwenden Sie Output_File, um die Ausgabedatei anzugeben.

Dieser Parameter gilt nur für Terminals im Zeichenmodus.

Optionsname  Eingabe-Tastenanschläge aus Datei lesen


Beispiele für Keyin (Forms Runtime)

ifrun60 module=myform userid=scott/tiger keyin=myfile.key


Keyout (Forms Runtime)

 Beispiele	 Alle Optionen

Beschreibung

Protokolliert die Tastenanschläge, die während einer Forms Runtime-Sitzung getätigt werden, in einer Tastenbelegungsdatei. Die Tastenbelegungsdatei umfaßt die Tastenanschläge, die beim Navigieren innerhalb einer Form, beim Aufrufen von Funktionen und bei der Durchführung von Transaktionen verwendet werden.

Der Dateiname entspricht der Ausgabe- oder Tastenbelegungsdatei.

Dieser Parameter gilt nur für Terminals im Zeichenmodus.

Optionsname  Eingabe-Tastenanschläge in Datei schreiben


Beispiele für Keyout (Forms Runtime)

ifrun60 module=myform userid=scott/tiger keyout=newfile.key


Logon_Screen (Forms Runtime)

 Beispiele	 Alle Optionen

Beschreibung

Erzwingt, daß der Anmelde-Bildschirm angezeigt wird, wenn Sie kein Kennwort eingegeben haben. Geben Sie keinen Benutzernamen und kein Kennwort an, wenn Sie Logon_Screen verwenden (Form Builder ignoriert diese Angaben, wenn Sie sie dennoch machen).

Benutzen Sie Logon_Screen, wenn Sie das Kennwort nicht über die Befehlszeile eingeben möchten (wo es sichtbar ist).

Optionsname  Bildschirm zur Angabe der Anmeldung anzeigen

Standardwert NO


Beispiele für Logon_Screen (Forms Runtime)

ifrun60 module=myform userid=scott/tiger logon_screen=YES


SQL-Verarbeitung optimieren (Forms Runtime)

 Beispiele	 Alle Optionen

Beschreibung

Gibt an, daß Form Builder die Verarbeitung von SQL-Anweisungen in V2-Triggern optimieren soll, indem Datenbankcursor gemeinsam benutzt werden.

Standardmäßig weist Form Builder für jede SQL-Anweisung einen separaten Datenbankcursor zu, den eine Form explizit in einem V2-Trigger ausführt. Durch dieses Verhalten wird die Verarbeitung verbessert, da die Anweisungen in jedem Cursor nur beim ersten Mal analysiert werden müssen, wenn sie in einer Forms Runtime-Sitzung ausgeführt werden - und nicht jedesmal.

Wenn Sie OptimizeSQL=NO angeben, weist Form Builder einen einzelnen Cursor für alle SQL-Anweisungen in V2-Triggern zu. Diese Anweisungen benutzen diesen Cursor gemeinsam bzw. verwenden ihn erneut. Durch dieses Verhalten wird Speicherplatz gespart, die Verarbeitung jedoch verlangsamt, da die SQL-Anweisungen jedesmal analysiert werden müssen, wenn sie ausgeführt werden.

Sie können dieses Verhalten mit der Eigenschaft Neuer Cursor-Bereich für Triggerschritte optimieren. Wenn diese Eigenschaft für einen Triggerschritt, der eine SQL-Anweisung enthält, eingeschaltet ist, weist Form Builder der Anweisung einen separaten Cursor zu und setzt somit den Parameter OptimizeSQL für diese Anweisung außer Kraft.

Hinweis:  OptimizeSQL ist bei Anweisungen in PL/SQL-Triggern wirkungslos.

Optionsname  Schrittweise SQL-Verarbeitung mit V2-Trigger optimieren   optimizesql

Standardwert YES


Beispiele für SQL-Verarbeitung optimieren (Forms Runtime)

ifrun60 module=myform userid=scott/tiger optimizesql=NO


Transaktionsverarbeitung optimieren (Forms Runtime)

 Beispiele	   Einschränkungen	 Alle Optionen

Beschreibung

Optimiert die Transaktionsverarbeitung.

Standardmäßig weist Form Builder für jede SQL-Anweisung, die eine Form implizit beim Abschicken oder Abfragen von Daten ausführt, einen separaten Cursor zu. Dieses Verhalten verbessert die Verarbeitungsleistung, da die Anweisungen in jedem Cursor nur beim ersten Mal analysiert werden, wenn eine Forms Runtime-Sitzung ausgeführt wird, und nicht jedesmal.

Beachten Sie, daß die Cursor, die SELECT-Abfrageanweisungen zugewiesen sind, bei jeder Ausführung analysiert werden müssen. Diese Ausnahme ist erforderlich, weil Abfragen von Ausführung zu Ausführung variieren können.

Wenn Sie OptimizeTP=NO angeben, weist Form Builder nur für jede SELECT-Abfrageanweisung einen separaten Cursor zu. Alle anderen impliziten SQL-Anweisungen verwenden die Cursor gemeinsam bzw. verwenden sie erneut. Durch dieses Verhalten wird Speicherplatz gespart, allerdings wird die Verarbeitung verlangsamt, da alle INSERT-, UPDATE-, DELETE- und SELECT FOR UPDATE-Anweisungen bei jeder Ausführung analysiert werden müssen.

Optionsname  Transaktionsverarbeitung optimieren   optimizetp

Standardwert YES


Einschränkungen bei Transaktionsverarbeitung optimieren (Forms Runtime)

Der Parameter OptimizeTP bleibt wirkungslos, wenn Sie die Standardverarbeitung von Form Builder durch On-Insert-, On-Update- und On-Delete-Trigger ersetzen, da diese Trigger die implizite Ausgabe von INSERT-, UPDATE- und DELETE-Anweisungen ersetzen.


Beispiele für Transaktionsverarbeitung optimieren (Forms Runtime)

ifrun60 module=myform userid=scott/tiger optimizetp=NO


Options_Screen (Forms Runtime)

 Beispiele	 Alle Optionen

Beschreibung

Zeigt das Fenster Optionen an.

Dieser Parameter gilt nur bei GUI-Oberflächen.

Standardwert NO


Beispiele für Options_Screen (Forms Runtime)

ifrun60 module=myform userid=scott/tiger options_screen=YES


Output_File (Forms Runtime)

 Beispiele	 Alle Optionen

Beschreibung

Protokolliert die Terminalausgabe für eine Form in einer Log-Datei und zeigt die Ausgabe auf dem Bildschirm an. Wenn die Bildschirmausgabe unterdrückt werden soll, benutzen Sie Interactive=NO und geben dann eine Ausgabedatei an.

Dieser Parameter gilt nur für Terminals im Zeichenmodus.

Hinweis:  Sie müssen den Parameter Keyin benutzen, wenn Sie Output_File verwenden. Mit der Keyin-Datei wird die Eingabe- bzw. Tastenbelegungsdatei angegeben; mit Output_File wird die Ausgabe- bzw. Log-Datei angegeben.

Optionsname  Ausgabe in Datei schreiben


Beispiele für Output_File (Forms Runtime)

ifrun60 module=myform userid=scott/tiger keyin=myfile.key output_file=mydisplay.out


PECS (Forms Runtime)

 Beispiele	 Alle Optionen

Beschreibung

Führt eine Form mit aktivierten Performance Event Collection Services (PECS) aus.

PECS ist ein Werkzeug zur Leistungsüberwachung, mit dem Sie folgende Aufgaben ausführen können:

•	Messen der Ressourcenbelegung (CPU-Zeit pro Ereignis oder Transaktionen, die pro Stunde verarbeitet werden) von Form Builder oder anwendungsspezifischen Ereignissen

•	Ermitteln von Leistungsproblemen (abgelaufene Zeit pro Ereignis)

•	Messen des Objektgeltungsbereichs (ob ein bestimmtes Objekt, wie z.B. ein Trigger, ein Warnfenster oder ein Fenster während der Ausführung des Tests berücksichtigt werden)

•	Zeilenweise Messung des Geltungsbereichs (bei PL/SQL-Code in Triggern und Prozeduren)

Die PECS-Option kann auf ON, OFF oder FULL eingestellt werden:

•	Bei dem Objekt-Geltungsbereich stellen Sie  PECS=ON ein.

•	Bei dem Objekt-Geltungsbereich und zeilenweisen Geltungsbereich:

•	Kompilieren mit Debug=ON

•	Ausführen mit PECS=FULL

•	Der Standardwert ist PECS=OFF

Um PECS bei Nicht-Windows-Plattformen zu benutzen, müssen Sie die ausführbare Debug-Datei verwenden:

ifdbg60 module=myform userid=scott/tiger PECS=ON

Standardwert:   OFF


Beispiele für PECS (Forms Runtime)

ifdbg60 module=myform userid=scott/tiger PECS=ON


Query_Only (Forms Runtime)

 Beispiele	 Alle Optionen

Beschreibung

Ruft die Form im Abfragemodus auf. Wenn Sie diese Option einschalten, ist dies gleichbedeutend mit der Benutzung der vordefinierten Prozedur CALL_FORM(query_only).

Optionsname  Abfragemodus

Standardwert NO


Beispiele für Query_Only (Forms Runtime)

ifrun60 module=myform userid=scott/tiger query_only=YES


Quiet (Forms Runtime)

 Beispiele	 Alle Optionen

Beschreibung

Ruft den Ton-aus-Modus für die Forms Runtime-Sitzung auf. Im Ton-aus-Modus erzeugen Meldungen kein Akustiksignal. Sie können das Akustiksignal explizit aus einem Trigger auslösen, indem Sie die vordefinierte Prozedur BELL aufrufen. Der Standardwert von quiet=NO bedeutet, daß das Akustiksignal ausgelöst wird. Um das Akustiksignal auszuschalten, stellen Sie quiet=YES ein.

Optionsname  Im Ton-aus-Modus ausführen

Standardwert NO


Beispiele für Quiet (Forms Runtime)

ifrun60 module=myform userid=scott/tiger quiet=YES


Statistics (Forms Runtime)

 Beispiele	 Alle Optionen

Beschreibung

Zeigt eine Meldung am Ende der Sitzung an, mit der die maximale Anzahl von gleichzeitigen Cursorn angegeben wird, die während der Sitzung benutzt wurden. Diese Meldung wird auf dem Terminal-Bildschirm ausgegeben und nicht in der Meldungszeile.

Außerdem gibt diese Option den folgenden Befehl an die Datenbank aus:

ALTER SESSION SET SQL_TRACE TRUE

Dieser Befehl aktiviert die SQL Trace-Funktion für die aktuelle Sitzung, wobei der Ordner der Trace-Datei auf dem Server angezeigt wird. Weitere Informationen über diese Funktion, mit der Daten über die Datenbankleistung erfaßt werden, finden Sie in Oracle RDBMS Performance Tuning Guide.

Wenn Sie eine Form in Form Builder ausführen und diese Funktion benutzen möchten, aktivieren Sie die Forms Runtime-Option Statistics.

Optionsname  Statistik anzeigen

Standardwert NO


Beispiele für Statistics (Forms Runtime)

ifrun60 module=myform userid=scott/tiger statistics=YES


Term (Forms Runtime)

 Beispiele	 Alle Optionen

Beschreibung

Gibt eine andere Zuordnung als die Standardzuordnung für das aktuelle Gerät und Produkt an:

resfile	Der angegebene Dateiname ist der Name der Resource-Datei von Oracle Terminal. Wenn Sie resfile nicht angeben, benutzt Form Builder standardmäßig einen plattformspezifischen Dateinamen, der bei den meisten Plattformen mit "FMR" beginnt. So ist z.B. die Standarddatei von Microsoft Windows FMRUSW.

mymapping	Der angegebene Zuordnungsname entspricht der Zuordnung, die Sie für diese Form Builder-Sitzung benutzen möchten.

Hinweis:  Sie oder der DBA definieren Zuordnungen mit Oracle Terminal. Für weitere Informationen über Resource-Dateien wird auf die Form Builder-Dokumentation für Ihr Betriebssystem verwiesen.

Wenn Sie Forms im Web ausführen, geben Sie den vollständigen Pfad der zu verwendenden Resource-Datei nur mit dem Argument resfile an.

Optionsname  Oracle Terminal-Resource-Datei


Beispiele für Term (Forms Runtime)

ifrun60 module=myform userid=scott/tiger@<alias> term=resfile:mymapping

Verwenden Sie folgende Syntax, wenn Sie eine Form im Web ausführen:

serverargs="myform.fmx scott/tiger@<alias> term=c:\formdir\resfile.res"


Window_State (Forms Runtime)

 Beispiele	   Einschränkungen	 Alle Optionen

Beschreibung

Bestimmt die Größe des MDI-Anwendungsfensters beim Beginn von Forms Runtime.

Wenn diese Option auf MAXIMIZE eingestellt ist, wird das MDI-Fenster beim Beginn einer Forms Runtime-Sitzung maximiert. Wenn diese Option auf MINIMIZE eingestellt ist, wird das MDI-Anwendungsfenster bei Beginn einer Forms Runtime-Sitzung minimiert. Mit der Einstellung NORMAL wird ein MDI-Anwendungsfenster in Normalgröße gestartet.

Optionsname  Fenster-Status

Standardwert NORMAL


Einschränkungen bei Window_State (Forms Runtime)

Nur bei Microsoft Windows gültig. Keine Unterstützung bei Forms, die aus dem Web ausgeführt werden.


Beispiele für Window_State (Forms Runtime)

ifrun60 module=myform userid=scott/tiger window_state=MAXIMIZE


Form Compiler-Optionen festlegen

 Alle Optionen

Mit Form Compiler-Optionen wird das Standardverhalten von Form Builder während einer Form Compiler-Sitzung angegeben. Einige dieser Optionen gelten für die Generierung von Dateien während der Entwicklung sowie für das Ausführen und Testen von Forms. Andere Optionen werden nur angewendet, wenn Sie Dateien von früheren Versionen zu Version 6.0 konvertieren.

Sie können die Form Compiler-Optionen auf zwei verschiedene Arten festlegen:

•	Stellen Sie die Optionen im Dialogfeld Form Compiler-Optionen ein.

•	Übergeben Sie die Parameter auf der Befehlszeile, wenn Sie Form Compiler aufrufen.

In der folgenden Aufstellung werden die Form Compiler-Optionen aus dem Dialogfeld Form Compiler-Optionen mit den entsprechenden Schlüsselwortparametern dargestellt. Weitere Informationen über eine bestimmte Form Compiler-Option finden Sie in der Beschreibung des entsprechenden Parameters in der alphabetischen Liste im Anschluß an die Abbildung.

In der alphabetischen Aufstellung der Form Compiler-Parameter werden folgende Informationen für jeden Parameter dargestellt:

•	Beispiel, in dem der Parameter auf einen anderen Wert als den Standardwert eingestellt wird

•	Relevanter Modultyp: Form, Menü, Bibliothek oder Alle

•	Beschreibung

•	Standardwert

Wenn Sie diese Schlüsselwortparameter als Befehlszeilenoptionen eingeben, können Sie mehrere Parameter in beliebiger Reihenfolge gleichzeitig eingeben:

ifcmp60 module=myform userid=scott/tiger batch=YES statistics=YES

Optionsname	Schlüsselwortparameter
Datei	Module
Benutzer-ID/Kennwort	Userid
Modultyp ist Form, Menü oder Bibliothek	Module_Type
Modulzugriff ist Datei oder Datenbank	Module_Access
Im Debug-Modus kompilieren	Debug
Statistik anzeigen	Statistics
Bei Datenbank anmelden	Logon
In Ausgabedatei schreiben	Output_File
Skriptdatei schreiben	Script
Modul aus Datenbank löschen	Delete
Modul in Datenbank einfügen	Insert
Modul aus Datenbank in Datei extrahieren	Extract
3.0 Form oder 5.0 Menü auf aktuelle Version 4.5 umstellen	Upgrade
SQL*Menu 5.0-Tabellenberechtigungen umstellen	Upgrade_Roles
Umzustellende Version	Version
CRT-Datei für Umstellung	CRT_File
Forms Runtime/Runmenu-Datei beim Umstellen kompilieren	Build
Hinzufügen von Key-Up und Key-Down-Triggern beim Umstellen	Add_Triggers
Hinzufügen von NOFAIL zu exemacro-Schritten beim Umstellen	Nofail
Hilfeinformationen anzeigen	Help
Options_Screen	Options_Screen*
Stapel	Batch*

*Kann nur auf der Befehlszeile benutzt werden; ist im Dialogfeld Form Compiler-Optionen nicht verfügbar.


Add_Triggers (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Gibt an, ob Key-Up- und Key-Down-Trigger beim Umstellen von Forms 2.0 oder 2.3 auf 4.0 dort hinzugefügt werden sollen, wo KEY-PRVREC- und KEY-NXTREC-Trigger vorhanden waren.

Modul:  Form

Standardwert NO


Beispiele für Add_Triggers (Form Compiler)

ifcmp60 module=myform userid=scott/tiger upgrade=yes version=23 add_triggers=YES


Batch (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Unterdrückt interaktive Meldungen; wird bei einer Batch-Generierung benutzt.

Modul:  Form

Standardwert NO


Beispiele für Batch (Form Compiler)

ifcmp60 module=myform userid=scott/tiger batch=YES


Build (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Benutzen Sie die Option Build in Verbindung mit Upgrade. Form Builder erstellt zwei Dateien, wenn Sie upgrade=YES angeben und build weglassen und somit den Standardwert build=YES: akzeptieren:

•	Ein auf die neueste Version umgestelltes binäres Entwurfsmodell (.FMB- oder .MMB-Datei)

•	Ein auf die neueste Version umgestelltes Forms Runtime-Modul (.FMX- oder .MMX-Datei)

Wenn Sie das Forms Runtime-Modul nicht automatisch erstellen möchten, geben Sie build=NO an.

Modul:  Form, Menü

Standardwert YES


Beispiele für Build (Form Compiler)

ifcmp60 module=myform userid=scott/tiger upgrade=YES build=NO


Compile_All (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Kompiliert die Programmblöcke innerhalb des angegebenen Moduls.

Hinweis:  Die Ausgabedatei wird im aktuellen Verzeichnis gespeichert, es sei denn, Sie geben einen anderen Speicherort mit Output_File an.

Modul:  Form, Menü, Bibliothek

Standardwert NO


Beispiele für Compile_All (Form Compiler)

ifcmp60 module=myform userid=scott/tiger compile_all=YES


CRT_File (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Gibt die CRT-Datei an, die beim Umstellen von SQL*Forms Version 2.0 oder 2.3 benutzt werden soll.

Modul:  Form


Beispiele für CRT_File (Form Compiler)

ifcmp60 module=myform userid=scott/tiger upgrade=yes version=20 crt_file=myfile.crt


Debug (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Erstellt eine debug-fähige Form.

Mit der Debug-Option von Form Compiler werden Einträge in der .FMX-Datei erstellt, die von dem Laufzeit-Debugger auf Quellebene benutzt wird. Deshalb stellen Sie für Form Compiler immer debug=yes ein, wenn zur Laufzeit debug=yes eingestellt werden soll.

Optionsname  Im Debug-Modus kompilieren

Standardwert NO


Beispiele für Debug (Form Compiler)

ifcmp60 module=myform userid=scott/tiger debug=yes


Delete (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Löscht das Modul direkt aus der Datenbank.

Modul:  Alle

Standardwert NO


Beispiele für Delete (Form Compiler)

ifcmp60 module=myform userid=scott/tiger delete=YES


Extract (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Extrahiert das Modul aus der Datenbank in eine Datei mit demselben Modulnamen.

Modul:  Alle

Standardwert NO


Beispiele für Extract (Form Compiler)

ifcmp60 module=myform userid=scott/tiger extract=YES


Help (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Ruft den Hilfebildschirm von Form Builder auf.

Modul:  Alle

Standardwert NO


Beispiele für Help (Form Compiler)

ifcmp60 help=YES


Insert (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Fügt ein Modul direkt aus der Form Compiler-Befehlszeile in die Datenbank ein.

Modul:  Alle

Standardwert NO

Verwendungshinweise

Die Option Insert kann nicht in Verbindung mit der Option Upgrade benutzt werden.


Beispiele für Insert (Form Compiler)

ifcmp60 module=myform userid=scott/tiger insert=YES


Logon (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Gibt an, ob sich Form Compiler bei der Datenbank anmelden soll. Wenn das Modul einen PL/SQL-Code mit Tabellenreferenzen enthält, ist eine Anmeldung bei der Datenbank zur Generierung erforderlich.

Modul:  Form

Standardwert YES


Beispiele für Logon (Form Compiler)

ifcmp60 module=myform userid=scott/tiger logon=NO


Module_Access (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Gibt an, ob Module im Dateisystem oder der Datenbank geöffnet und gespeichert werden sollen.

Modul:  Alle

Standardwert FILE


Beispiele für Module_Access (Form Compiler)

ifcmp60 module=myform userid=scott/tiger module_access=database


Module_Type (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Gibt den Modultyp für das aktuelle Modul an. Durch Angabe von Module_Type können Form-, Menü- und Bibliotheksmodule denselben Namen haben.

Modul:  Alle

Standardwert FORM


Beispiele für Module_Type (Form Compiler)

ifcmp60 module=orders userid=scott/tiger module_type=menu


Nofail (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Gibt an, ob das Schlüsselwort NOFAIL zu exemacro-Schritten hinzugefügt werden soll, wenn nur von Forms 2.0 umgestellt wird.

Modul:  Form

Standardwert NO


Beispiele für Nofail (Form Compiler)

ifcmp60 module=myform userid=scott/tiger upgrade=yes version=20 nofail=YES


Options_Screen (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Ruft das Fenster Optionen auf.

Dieser Parameter gilt nur für GUI-Oberflächen.

Modul:  Alle

Standardwert NO


Beispiele für Options_Screen (Form Compiler)

ifcmp60 module=myform userid=scott/tiger options_screen=YES


Output_File (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Gibt den Dateinamen für die generierte Datei an.

Wenn diese Option mit upgrade=yes benutzt wird, gibt output_file folgendes an:

•	Den vollständigen Namen des umgestellten Binär-Entwurfsmoduls (.FMB-, .MMB- oder .PLL-Datei)

Hinweis:  Um den Namen der generierten Bibliotheksdatei anzugeben, müssen Sie Strip_Source in Verbindung mit Output_File benutzen.

•	Den Hauptnamen (ohne Erweiterung) des umgestellten ausführbaren Forms Runtime-Moduls (.FMX- oder .MMX-Datei)

Wenn diese Option mit upgrade=yes und build=no benutzt wird, wird die Dateinamenerweiterung ignoriert.

Modul:  Alle


Beispiele für Output_File (Form Compiler)

ifcmp60 module=myform userid=scott/tiger upgrade=yes output_file=myform.fmb


Parse (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Konvertiert das Format der Textdatei eines Moduls (.FMT, .MMT, .PLD) in ein Binärformat (.FMB, .MMB, .PLL).

Dieser Vorgang kann auch aus Form Builder selbst mit dem Befehl Konvertieren ausgeführt werden.

Modul:  Alle

Standardwert NO


Beispiele für Parse (Form Compiler)

ifcmp60 module=myform parse=YES


Script (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Konvertiert ein binäres Dateiformat (.FMB, .MMB oder .PLL) in ein Textformat (.FMT, .MMT oder .PLD).

Dieser Vorgang kann auch aus Form Builder mit dem Befehl Konvertieren ausgeführt werden.

Modul:  Alle

Standardwert NO


Beispiele für Script (Form Compiler)

ifcmp60 module=myform script=YES


Statistics (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Zeigt eine Meldung am Ende der Sitzung an, in der die Anzahl der folgenden Objekte in der kompilierten Form aufgeführt wird:

•	Objektstatistiken: Anzahl von Warnfenstern, Editoren, Wertelisten, Prozeduren, Datensatzgruppen, Leinwänden, visuellen Attributen, Fenstern und Gesamtanzahl von Objekten.

•	Trigger-Statistiken: Anzahl von Form-Triggern, Block-Triggern, Objekt-Triggern und Gesamtanzahl von Triggern.

•	Blockstatistiken: Anzahl von Blöcken mit Array Fetch ON, durchschnittliche Größe des Array-Abrufs und Gesamtanzahl von Blöcken.

•	Objektstatistiken: Anzahl von Schaltflächen, Kontrollkästchen, Anzeigeobjekten, Bildobjekten, Listenobjekten, Optionsgruppen, Textobjekten, Benutzerbereichen und Gesamtanzahl von Objekten.

Modul:  Form

Standardwert NO


Beispiele für Statistics (Form Compiler)

ifcmp60 module=myform userid=scott/tiger statistics=YES


Option Strip_Source (Form Compiler)
Strip_Source (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Entfernt den Quellcode aus der Bibliotheksdatei und generiert eine Bibliotheksdatei, die nur pcode enthält. Die Ergebnisdatei kann für den endgültigen Einsatz verwendet werden, kann jedoch später in Form Builder nicht editiert werden.

Wenn Sie Strip_Source verwenden, müssen Sie eine Ausgabedatei mit dem Parameter Output_File (Forms Runtime) angeben.

Modul:  Bibliothek

Standardwert NO


Beispiele für Strip_Source (Form Compiler)

ifcmp60 module=old_lib.pll userid=scott/tiger strip_source=YES output_file=new_lib.pll


Upgrade (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Stellt Module von SQL*Forms 2.0, 2.3 oder 3.0 auf Form Builder 4.5 oder von SQL*Menu 5.0 auf ein Form Builder 4.5 Menümodul um:

•	Um von SQL*Forms 3.0 oder SQL*Menu 5.0 auf Form Builder 4.5 umzustellen, geben Sie upgrade=yes an und lassen version weg.

•	Um von SQL*Forms 2.0 umzustellen, geben Sie upgrade=yes und version=20 an.

•	Um von SQL*Forms 2.3 umzustellen, geben Sie upgrade=yes und  version=23 an.

Modul:  Form, Menü

Standardwert NO

Verwendungshinweise

Die Option Upgrade kann nicht in Verbindung mit der Option Insert benutzt werden.


Beispiele für Upgrade (Form Compiler)

ifcmp60 module=myform userid=scott/tiger upgrade=YES


Upgrade_Roles (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Stellt SQL*Menu 5.0 Tabellenberechtigungen auf Oracle8-Datenbankrollen um.

Hinweis:  Menürollen sind von der jeweiligen Menüanwendung unabhängig (kein Modulname wird angegeben). Sie können upgrade=yes und upgrade_roles=yes nicht in einem Durchgang angeben.

Modul:  Keines

Standardwert NO


Beispiele für Upgrade_Roles (Form Compiler)

ifcmp60 userid=system/manager upgrade_roles=YES


Version (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Gibt die Version an, von der umgestellt werden soll. Benutzen Sie diese Option in Verbindung mit upgrade=yes, um von Version 2.3 (version=23) oder Version 2.0 (version=20) umzustellen.

Um von Version 3.0 umzustellen, geben Sie upgrade=yes an und lassen den Parameter version weg.

Modul:  Form

Standardwert version=30


Beispiele für Version (Form Compiler)

ifcmp60 module=myform userid=scott/tiger upgrade=yes version=23


Widen_Fields (Form Compiler)

 Beispiele	 Alle Optionen

Beschreibung

Benutzen Sie die Option Widen_Fields in Verbindung mit Upgrade. Wenn Sie auf Version 4.5 umstellen, können die Umrisse bei jedem Feld zu einem Verlust von maximal einem Zeichen pro Feld führen. Geben Sie diese Option bei der Umstellung an, um automatisch ein Zeichen zu der Anzeigebreite jedes Feldes hinzuzufügen. Hinweis:  Dies hat keine Auswirkung auf die maximal zulässige Datenmenge.

Diese Option wird besonders benutzt, um Zeichenmodus-Anwendungen von Form Builder 3.0 mit einer großen Anzahl von Feldern mit 1-6 Zeichen umzustellen. Die Auswirkungen von Widen_Fields hängen von der Oberfläche ab und müssen sorgfältig getestet werden. Es kann zu folgenden Auswirkungen kommen:

•	Textobjekte können Boilerplate-Text überlagern, wenn der Abstand zwischen den Feldern begrenzt ist.

•	Wenn zwei Felder momentan aneinander ausgerichtet sind, führt die Option Widen_Fields dazu, daß sich die Felder überlagern.

Modul:  Form

Standardwert NO


Beispiele für Widen_Fields (Form Compiler)

ifcmp60 module=myform userid=scott/tiger upgrade=yes widen_fields=YES


Form Builder-Voreinstellungen festlegen

 Beispiele	 Alle Optionen

Mit Form Builder-Voreinstellungen wird das Standardverhalten während einer Form Builder-Sitzung angegeben. Wählen Sie Werkzeuge [image] Voreinstellungen in Form Builder, um das Dialogfeld Voreinstellungen aufzurufen. Um die Voreinstellungen festzulegen, klicken Sie auf die entsprechenden Kontrollkästchen oder füllen Dateinamen für die ausgewählten Optionen aus.

Das Dialogfeld Voreinstellungen enthält sowohl Form Builder- als auch Forms Runtime-Voreinstellungen.

Form Builder-Voreinstellungen

Sie können die folgenden Voreinstellungen festlegen, um die Vorgaben für die aktuelle Form Builder-Sitzung festzulegen:

•	Speichern vor Generieren

•	Generieren vor Ausführen

•	Hinweise unterdrücken

•	Module asynchron ausführen

•	Systemeditor benutzen

•	Modulzugriff (Datei, Datenbank, Datei/Datenbank)

•	Modulfilter (Forms, Menüs, Bibliotheken, Alle)

•	Drucker

•	Farbpalette

•	Farbmodus

Für Informationen über eine bestimmte Entwurfsoption wird auf die nachfolgende Beschreibung verwiesen.

Laufzeit-Optionen

Sie können die folgenden Laufzeit-Optionen einstellen, um die Vorgaben für Forms anzugeben, die Sie aus Form Builder ausführen:

•	Datensätze in temporärer Datei puffern

•	Debug-Modus

•	Array-Verarbeitung

•	SQL-Verarbeitung optimieren

•	Transaktionsverarbeitung optimieren

•	Statistik

•	Blockmenü anzeigen

•	Abfragemodus

•	Ton aus

Die Laufzeit-Optionen wurden an früherer Stelle in diesem Kapitel beschrieben.

Schlüsselwortparameter

Neben den im Dialogfeld Voreinstellungen aufgeführten Optionen können Sie die folgenden Schlüsselwortparameter auf der Form Builder-Befehlszeile angeben:

•	Module_Type

•	Module_Access

•	Help


Beispiele für das Festlegen von Form Builder-Voreinstellungen

ifbld60 module=orders userid=scott/tiger module_type=menu


Farbmodus

 Alle Optionen

Bestimmt, wie eine Farbpalette von Form Builder in Ihr System geladen wird. Jedesmal, wenn Sie eine Form laden, öffnen oder erstellen, lädt Form Builder die Form Builder-Farbpalette in die aktuelle System-Farbtabelle. Da diese System-Farbtabelle immer nur eine begrenzte Anzahl von Farben gleichzeitig bearbeiten kann, kann Form Builder möglicherweise mehrere Forms nicht gleichzeitig akkurat ändern, wenn diese verschiedene Farbpaletten benutzen. Deshalb verwenden Sie die Option Schreibgeschützt - Gemeinsam benutzt, es sei denn, Sie ändern die Form Builder-Farbpalette aktiv.

Optionen für den Farbmodus:

Editierbar	Wählen Sie den Modus Editierbar nur, wenn Sie die Form Builder-Farbpalette ändern möchten. Nachdem Sie die Farbpalette geändert haben, gehen Sie wieder in den Modus Schreibgeschützt - Gemeinsam benutzt zurück. Im Modus Editierbar hat jede Farbe einen eigenen eindeutigen Eintrag in der aktuellen System-Farbtabelle. Wenn kein Platz mehr in der Tabelle vorhanden ist, kann die Farbpalette möglicherweise nicht geladen werden.

So ändern Sie die Form Builder-Farbpalette:

•	Ändern Sie den Farbmodus in Editierbar, und speichern Sie die Optionen (Werkzeuge -> Voreinstellungen, Register Allgemein, Farbmodus).

•	Starten Sie Form Builder neu.

•	Ändern Sie die Farbtabelle über Format -> Layoutoptionen -> Farbpalette (nur bei geöffnetem Layouteditor).

•	Speichern Sie die Form Builder-Farbpalette über Datei -> Exportieren -> Farbpalette in eine Datei (nur bei geöffnetem Layouteditor).

•	Ändern Sie die Optionen so, daß die neue Farbdatei verwendet wird. (Werkzeuge -> Voreinstellungen, Register Allgemein, Farbpalette).

•	Ändern Sie den Farbmodus wieder in Schreibgeschützt - Gemeinsam benutzt, und speichern Sie die Optionen.

•	Starten Sie Form Builder neu.

Schreibgeschützt - Gemeinsam benutzt	Im Modus Schreibgeschützt - Gemeinsam benutzt ordnet Form Builder doppelte Farben demselben Eintrag in der aktuellen System-Farbtabelle zu, bevor neue Einträge von Ihrer Form Builder-Farbpalette angehängt werden. Mit Schreibgeschützt - Gemeinsam benutzt können Sie ein Flimmern der Farben vermeiden, das entstehen kann, wenn Sie zwischen Form Builder-Paletten wechseln. Diese Einstellung wird für Farbmodus empfohlen, es sei denn, Sie ändern die Palette.

Schreibgeschützt - Privat	Diese Option ist aus Konsistenzgründen mit Graphics Builder enthalten und ist für Form Builder nicht relevant. In Form Builder entspricht diese Option Schreibgeschützt - Gemeinsam benutzt.

Standardwert Schreibgeschützt - Gemeinsam benutzt


Farbpalette

 Alle Optionen

Beschreibung

Gibt den Namen der Form Builder-Farbpalette an, die automatisch geladen wird, wenn Sie eine neue Form erstellen. Wenn dieses Feld leer ist, wird die Standard-Farbpalette von Form Builder geladen.

Weitere Informationen über Farbpaletten finden Sie unter Über Farbpaletten.


Generieren vor Ausführen

 Alle Optionen

Beschreibung

Diese Option legt fest, ob Form Builder das aktive Modul automatisch kompiliert, bevor eine Form ausgeführt wird. Wenn die Option Generieren vor Ausführen ausgewählt ist, geht Form Builder folgendermaßen vor, wenn Sie den Befehl Programm [image] Form ausführen ausgeben und dann eine angegebene Form ausführen:

•	Form Builder generiert das aktive Form-, Menü- oder Bibliotheksmodul, um eine ausführbare Datei zu erstellen, die denselben Namen wie das Modul hat.

•	Form Builder führt die.FMX-Datei (ausführbare Form-Datei) aus, die Sie im Dialogfeld Ausführen angegeben haben.

Mit dieser Option können Sie vermeiden, daß Sie bei jedem Ändern und jedem anschließenden Ausführen einer Form separate Kompilieren- und Ausführen-Befehle ausgeben müssen. Mit dieser Option wird das Modul allerdings nicht gespeichert. Sie müssen den Befehl Datei [image] Speichern ausgeben, um das Modul zu speichern. Sie können auch die Voreinstellung Speichern vor Generieren wählen.

Wenn die Option Generieren vor Ausführen ausgewählt ist, kompiliert Form Builder nicht automatisch Menü- oder Bibliotheksmodule, die dieser Form zugeordnet sind. Sie müssen Menü- und Bibliotheksmodule separat kompilieren, bevor Sie eine Form ausführen, die diese referenziert.

Standardwert:  Aus


Help (Form Builder)

 Beispiele	 Alle Optionen

Beschreibung

Ruft den Hilfebildschirm von Form Builder auf.

Modul:  Alle

Standardwert NO


Beispiele für Help (Form Builder)

ifbld60 help=YES


HTML-Dateinamen

 Verwandte Themen	 Alle Optionen

Beschreibung

Gibt die HTML-Datei an, die zur Ausführung der Form mit der Web-Vorschau benutzt werden soll.

Wenn Sie eine Form in der Web-Vorschau anzeigen, wird eine HTML-Container-Datei dynamisch mit den Laufzeitoptionen erstellt, die mit den Voreinstellungen oder standardmäßig angegeben wurden. Diese Datei wird an die Web-Vorschau gesendet, um die Form auszuführen. Geben Sie den Pfad und Dateinamen einer benutzerdefinierten HTML-Datei ein, um den von Form Builder erstellten Namen außer Kraft zu setzen.

Weitere Informationen über das Erstellen einer HTML-Basisdatei finden Sie in dem Abschnitt "Forms Server konfigurieren" in Forms-Anwendungen im Web einsetzen.

.


Voreinstellung Zugriff (Form Builder)

 Beispiele	 Alle Optionen

Beschreibung

Gibt an, ob Module im Dateisystem oder der Datenbank geöffnet und gespeichert werden.

Diese Option kann mit dem Parameter Module_Access über die Befehlszeile oder im Form Builder-Register Zugriff im Dialogfeld Voreinstellungen festgelegt werden.

Mit dem Befehlszeilenparameter wird der Zugriff auf einmaliger Basis für die aktuelle Form Builder-Sitzung festgelegt. Auf der Befehlszeile kann die Option Module_Access auf file oder database festgelegt werden.

Um diese Option für künftige Form Builder-Sitzungen festzulegen, ändern Sie die Voreinstellungsdatei mit der Voreinstellung Zugriff (Werkzeuge [image] Voreinstellungen Register Zugriff).

In der Option Modulzugriff können Sie eine der folgenden Speicherungsvoreinstellungen für das Öffnen und Speichern von Modulen angeben:

Datei	Module werden im Dateisystem geladen und gespeichert.
Datenbank	Module werden in der Datenbank geladen und gespeichert.
Fragen	Module können im Dateisystem oder der Datenbank geladen und gespeichert werden. Form Builder fragt bei jeder Ausführung dieser Vorgänge nach dem Speicherort der Datei.
Modul:  Alle

Standardwert FILE


Beispiele für die Voreinstellung Zugriff (Form Builder)

ifbld60 module=myform userid=scott/tiger module_access=database


Module_Type (Form Builder)

 Beispiele	 Alle Optionen

Beschreibung

Gibt den Modultyp für das aktuelle Modul an. Durch Angabe von Module_Type können Form-, Menü- und Bibliotheksmodule denselben Namen haben.

Modul:  Alle

Standardwert FORM


Beispiele für Module_Type (Form Builder)

ifbld60 module=orders userid=scott/tiger module_type=menu


Drucker

Der Name des Standarddruckers. Der Name ist betriebssystemabhängig.

Weitere Informationen über Drucker finden Sie in der Form Builder-Dokumentation für Ihr Betriebssystem.


Module asynchron ausführen

 Alle Optionen

Legt fest, ob Forms, die Sie aus Form Builder ausführen, synchron oder asynchron bezogen auf Form Builder selbst ausgeführt werden.

•	Wenn Module asynchron ausführen ausgeschaltet ist, werden aus Form Builder ausgeführte Forms synchron ausgeführt. Das heißt, Sie können erst wieder in Form Builder arbeiten, wenn Sie die Form beenden.

•	Wenn Module asynchron ausführen eingeschaltet ist, werden Forms, die Sie aus Form Builder ausführen, asynchron ausgeführt, so daß Sie zwischen Form Builder und Forms Runtime wechseln können.

Wenn Sie eine Form synchron ausführen, benachrichtigt Form Builder Sie über Fehler beim Hochfahren von Forms Runtime, indem ein Warnfenster in Form Builder angezeigt wird. Wenn Sie eine Form asynchron ausführen, erfolgt keine derartige Kommunikation zwischen Forms Runtime und Form Builder und Fehler beim Hochfahren von Forms Runtime werden in Form Builder nicht angegeben.

Standardwert  Aus


Speichern vor Generieren

Mit dieser Option wird bestimmt, ob Form Builder das aktuelle Modul automatisch speichert, bevor es generiert wird, wenn Sie Datei [image] Verwaltung [image] Datei kompilieren auswählen oder wenn die Form vor der Ausführung generiert wird, wenn die Voreinstellung Generieren vor Ausführen ausgewählt ist.

Standardwert    Aus


Pfad für das Einordnen in Unterklassen

 Alle Optionen

Beschreibung

Gibt an, ob der Pfad eines Originalobjekts mit dem in eine Unterklasse eingeordneten Objekt gespeichert werden soll.

Geben Sie eine der folgenden Voreinstellungen für das Speichern des Pfads von Originalobjekten mit in Unterklassen eingeordneten Objekten an:

Entfernen	Der Pfad wird aus dem Dateinamen des Originalobjekts entfernt, das in dem in Unterklassen eingeordneten Objekt referenziert wird.

Behalten	Das in Unterklassen eingeordnete Objekt referenziert das Originalobjekt entsprechend dem vollständigen Pfad.

Fragen	Form Builder zeigt jedesmal, wenn Sie ein Objekt in eine Unterklasse einordnen, in einem Dialogfeld, ob der Pfad entfernt oder beibehalten werden soll.

Standardwert FRAGEN

Hinweise

Ein in eine Unterklasse eingeordnetes Objekt übernimmt Attributwerte aus dem Originalobjekt und referenziert das Originalobjekt mit dem Dateinamen der Form, in der es gespeichert ist. Der vollständige Pfadname der Form kann mit dem in die Unterklasse eingeordneten Objekt oder nur mit dem Dateinamen gespeichert werden. Wenn die Form, die das in eine Unterklasse eingeordnete Objekt enthält, geöffnet wird, sucht Form Builder nach der Datei, die für das in die Unterklasse eingeordnete Objekt angegeben ist. Wenn der Dateiname ohne den Pfad angegeben wird, sucht Form Builder im aktuellen Verzeichnis, aus dem Form Builder gestartet wurde.


Hinweise unterdrücken

 Alle Optionen

Bestimmt, ob Hinweise während der Arbeit in Form Builder aus der Meldungszeile unterdrückt werden.

Standardwert   Aus


Term (Form Builder)

 Beispiele	 Alle Optionen

Beschreibung

Gibt eine andere Zuordnung als die Standardzuordnung für das aktuelle Gerät und Produkt an:

resfile	Der angegebene Dateiname ist der Name der Resource-Datei von Oracle Terminal. Wenn Sie resfile nicht angeben, benutzt Form Builder standardmäßig einen plattformspezifischen Dateinamen, der bei den meisten Plattformen mit "FMR" beginnt. So ist z.B. die Standarddatei von Microsoft Windows FMRUSW.

mymapping	Der angegebene Zuordnungsname entspricht der Zuordnung, die Sie für diese Form Builder-Sitzung benutzen möchten.

Weitere Informationen über Resource-Dateien finden Sie in der Form Builder-Dokumentation für Ihr Betriebssystem.

Hinweis:  Sie oder der DBA definieren Zuordnungen mit Oracle Terminal.


Beispiele für Term (Form Builder)

ifbld60 module=myform userid=scott/tiger term=resfile:mymapping


USESDI (Forms Runtime und Web Forms Runtime)

 Beispiele	 Alle Optionen

Beschreibung

Benutzt ein Single Document Interface- (SDI-) System der Fensterverwaltung während einer Forms Runtime- oder Web Forms Runtime-Sitzung.

Es gibt kein Multiple Document Interface- (MDI-) Hauptfenster. MDI-Symbolleisten sind in übergeordneten Fenstern vorhanden, und Menüs werden jedem Fenster zugeordnet.

Aufrufe der Konstanten FORMS_MDI_WINDOW geben NULL als MDI-Fenster-Handle zurück, wenn usesdi=YES ist.

Optionsname  Keiner

Standardwert YES

Verwendungshinweise

SDI-Forms sind keine eigenen Fenster, und Sie können nicht mit bestimmten betriebssystemeigenen Methoden für den Zugriff auf Fenster zu dem SDI-Fenster navigieren, wie z.B. Alt-TAB bei Microsoft Windows.


Beispiele für USESDI (Forms Runtime)

ifrun60 module=myform userid=scott/tiger usesdi=YES


Systemeditor benutzen

 Alle Optionen

Bestimmt, welchen Editor Form Builder benutzt, wenn Sie einen Editor aus einem mehrzeiligen Textobjekt aufrufen. Wenn Systemeditor benutzen nicht ausgewählt ist, zeigt Form Builder den Standardeditor an. Wenn Systemeditor benutzen ausgewählt ist, zeigt Form Builder den Standard-Systemeditor an, der in Ihrem System definiert ist.

Hinweis:  Wenn Systemeditor benutzen ausgewählt ist und Sie einen Editor mit einem eigenen Dokumentformat benutzen, müssen Sie das Dokument als ASCII-Text (mit Zeilenumbrüchen) speichern, anstatt das Dokument im Format dieses Editors zu speichern.

Weitere Informationen über die Definition von Standard-Systemeditoren finden Sie in der Form Builder-Dokumentation für Ihr Betriebssystem.

Standardwert   Aus


Benutzervoreinstellungsdatei

 Alle Optionen

Auch wenn Sie die Voreinstellungen am bequemsten im Dialogfeld Voreinstellungen festlegen können, können Sie sie auch direkt in der Voreinstellungsdatei (die im allgemeinen den Namen PREFS.ORA hat) festlegen.

Die Voreinstellungsdatei, die die Form Builder-Optionen festlegt, wird automatisch aktualisiert, sobald Sie Ihre Voreinstellungen ändern. Form Builder liest die aktualisierte Voreinstellungsdatei, wenn Sie Form Builder starten. Diese Datei enthält Schlüsselwörter und Einstellungen, mit denen Sie jede der Optionen von Form Builder und Forms Runtime festlegen können.

Sie können jeden der in diesem Kapitel aufgeführten Schlüsselwortparameter von Form Builder oder Forms Runtime in einer Benutzervoreinstellungsdatei verwenden. Um z.B. sicherzustellen, daß jede Form, die Sie aus Form Builder ausführen, im Ton-aus-Modus ausgeführt wird, würden Sie folgende Zeile in der Benutzervoreinstellungsdatei aufnehmen:

FORMS.QUIET=ON

Mit der Voreinstellungsdatei können Sie auch eine Zuordnung für Form Builder festlegen. Bei den meisten Plattformen muß die Voreinstellungsdatei den Namen PREFS.ORA haben und muß im Anmelde-Ordner gespeichert sein.

Wenn Sie Form Builder mit einem Befehlszeilenparameter starten, der eine Voreinstellung oder Zuordnung angibt, setzt der Befehlszeilenparameter die Einstellung in der Voreinstellungsdatei außer Kraft. Wenn eine Zeile in der Voreinstellungsdatei einen Fehler enthält, ignoriert Form Builder diese Zeile, wenn es die Datei liest.

Syntax für Optionen

Um eine Form Builder- oder Forms Runtime-Option festzulegen, nehmen Sie das entsprechende Schlüsselwort und die entsprechende Einstellung in der Voreinstellungsdatei auf, genau wie auf der Befehlszeile. Verwenden Sie folgende Syntax:

KEYWORD = {ON | OFF | STRING}

Eine Liste der Schlüsselwörter und der entsprechenden Werte erhalten Sie, indem Sie die Voreinstellungen speichern und dann den aktuellen Inhalt der Datei PREFS.ORA überprüfen.


Willkommen-Dialogfeld

 Alle Optionen

Beschreibung

Bestimmt, ob der Willkommen-Bildschirm beim Starten von Form Builder angezeigt wird.

Wenn diese Option ausgewählt ist, wird der Willkommen-Bildschirm beim Starten von Form Builder angezeigt. Sonst startet Form Builder mit einem neuen, leeren Modul mit der Bezeichnung module1.

Standardwert  EIN


Willkommen-Seiten

 Alle Optionen

Beschreibung

Bestimmt, ob die Willkommen-Seite für einen bestimmten Assistenten beim Aufruf des Assistenten angezeigt wird.

Wenn diese Option ausgewählt ist, wird die Willkommen-Seite beim Starten des Assistenten angezeigt. Sonst wird keine Willkommen-Seite bei dem Assistenten angezeigt.

Gilt für

Datenblock-Assistent

Wertelisten-Assistent

Layout-Assistent

Diagramm-Assistent

Standardwert  EIN


Fremdfunktions-Schnittstelle


Über Fremdfunktionen

  Verwandte Themen

Fremdfunktionen sind Unterprogramme, die in einer 3GL-Programmiersprache geschrieben werden und mit denen Form Builder-Anwendungen angepaßt werden. Fremdfunktionen können mit Oracle-Datenbanken sowie mit Form Builder-Variablen und -Objekten zusammenarbeiten. Auch wenn Form Builder über Variablen und Objekte aufgerufen werden kann, können Sie vordefinierte Unterprogramme von Form Builder nicht aus einer Fremdfunktion aufrufen.

Fremdfunktionen können für die folgenden Aufgaben benutzt werden:

•	Ersetzen der Standardverarbeitung von Form Builder, wenn mit einer fremden Datenquelle mit Transaktions-Triggern gearbeitet wird.

•	Ausführung komplexer Datenverarbeitungen.

•	Übergabe von Daten an Form Builder aus Textdateien des Betriebssystems.

•	Verarbeiten von LONG RAW-Daten.

•	Übergabe ganzer PL/SQL-Blöcke zur Verarbeitung durch den Server.

•	Steuern von Echtzeitgeräten, wie z.B. einem Drucker oder einem Roboter.

Hinweis:  Sie sollten keine Bildschirm-E/A in der Host-Sprache aus einer Fremdfunktion ausführen. Diese Einschränkung ist darauf zurückzuführen, daß die Laufzeitroutinen, die eine Hostsprache zur Durchführung der Bildschirm-E/A verwenden, zu den Routinen in Widerspruch stehen, die Form Builder benutzt, um die Bildschirm-E/A auszuführen. Sie können jedoch eine Datei-E/A in der Hostsprache aus einer Fremdfunktion ausführen.

Fremdfunktionen, die aus einer PL/SQL-Schnittstelle aufgerufen werden können, müssen in einer dynamischen Bibliothek gespeichert sein. Die Vorgehensweise für das Erstellen von dynamischen Bibliotheken hängt von Ihrem Betriebssystem ab. Weitere Informationen über das Erstellen von dynamischen Bibliotheken in Ihrer Umgebung finden Sie in der Dokumentation zu Ihrem Betriebssystem.

Bei der Initialisierung einer Fremdfunktion wird der Speicherort einer dynamischen Bibliothek identifiziert und der Prototyp der Fremdfunktion aufgegliedert. Der Initialisierungsprozeß ermöglicht einen Eins-zu-Eins-Abgleich zwischen den Datentypen der Fremdfunktion in der Hostsprache und den PL/SQL-Datentypen.  Eine Fremdfunktion wird einem PL/SQL-Paketrumpf initialisiert.


Über die PL/SQL-Schnittstelle

  Verwandte Themen

In Form Builder können Sie eine Fremdfunktion aus einer PL/SQL-Schnittstelle mit den Regeln der PL/SQL-Sprache aufrufen.

Ein PL/SQL-Paket umfaßt die Komponenten, die beim Erstellen einer PL/SQL-Schnittstelle zu einer Fremdfunktion benutzt werden. Sie können die PL/SQL-Schnittstelle zu mehreren Fremdfunktionen in einem einzigen Paket aufnehmen. Bei jeder PL/SQL-Schnittstelle zu Fremdfunktionen müssen Sie die Fremdfunktion initialisieren, ein PL/SQL-Unterprogramm mit der Fremdfunktion verknüpfen und den Prototyp der Fremdfunktion in PL/SQL nachbilden. Alternativ können Sie auch eine PL/SQL-Oberfläche zu einer Fremdfunktion in einem PL/SQL-Paket aufnehmen.

Aus einer PL/SQL-Schnittstelle aufgerufene Fremdfunktionen müssen in einer dynamischen Bibliothek enthalten sein. Beispiele für dynamische Bibliotheken umfassen DLLs bei Microsoft Windows sowie gemeinsam benutzte Bibliotheken bei UNIX-Systemen. Die Vorgehensweise beim Erstellen einer dynamischen Bibliothek ist betriebssystemabhängig. Weitere Informationen über das Erstellen von dynamischen Bibliotheken in Ihrer Umgebung finden Sie in der Dokumentation für Ihr Betriebssystem.

Das Erstellen einer PL/SQL-Schnittstelle für Fremdfunktionen setzt die Benutzung des  vordefinierten Pakets ORA_FFI (Oracle Foreign Function Interface) voraus. Das Paket ORA_FFI besteht aus einer Gruppe von vordefinierten PL/SQL-Unterprogrammen für das Erstellen einer PL/SQL-Schnittstelle für Fremdfunktionen. Weitere Einzelheiten über das Paket ORA_FFI finden Sie im Oracle Procedure Builder Developer's Guide.

Durch Verknüpfen eines PL/SQL-Unterprogramms mit einer Fremdfunktion können Sie die Fremdfunktion immer dann aufrufen, wenn Sie das verknüpfte PL/SQL-Unterprogramm aufrufen. Eine Fremdfunktion muß mit einem PL/SQL-Unterprogramm verknüfpt werden, weil Form Builder PL/SQL-Konstrukte benutzt. Das verknüpfte PL/SQL-Unterprogramm gibt den Speicherort des auszuführenden Fremdfunktionscodes an.

Nachdem Sie ein verknüpftes PL/SQL-Unterprogramm mit einer Fremdfunktion verknüpft haben, ruft Form Builder die Fremdfunktion immer dann auf, wenn Sie das PL/SQL-Unterprogramm aufrufen. Der verknüpfte Unterprogramm setzt voraus, daß der erste Parameter ein Fremdfunktions-Handle ist, ein Parametertyp, für den kein Hostsprachen-Äquivalent in dem Frendfunktions-Prototyp vorhanden ist.

Um eine PL/SQL-Oberfläche mit einer Eins-zu-Eins-Übereinstimmung zwischen den Parameter- und Rückgabe-Datentypen der Fremdfunktion zu erhalten, müssen Sie den Prototyp der Fremdfunktion mit PL/SQL nachbilden. Dies ergibt dann die öffentlich zugängliche PL/SQL-Schnittstelle.

Hinweis: Eine Fremdfunktion kann auch aus einer User Exit-Schnittstelle aufgerufen werden. Wenn Sie eine User Exit-Schnittstelle für den Aufruf von Fremdfunktionen verwenden, muß Form Builder Runform gelegentlich neu verknüpft werden. Da das Aufrufen von Fremdfunktionen aus einer User Exit-Schnittstelle eine erneute Verknüpfung von Form Builder Runform erforderlich machen kann, bietet eine PL/SQL-Schnittstelle eine losere Bindung als die einer User Exit-Schnittstelle.


Fremdfunktionstypen

  Verwandte Themen

Sie können die folgenden Typen von Fremdfunktionen entwickeln:

•	Fremdfunktionen von Oracle Precompiler

•	Fremdfunktionen von OCI (ORACLE Call Interface)

•	Fremde Fremdfunktionen

Außerdem können Sie Fremdfunktionen entwickeln, die das ORACLE Precompiler Interface und OCI kombinieren.

Fremdfunktionen von Oracle Precompiler  Eine Fremdfunktion von Oracle Precompiler umfaßt die Oracle Precompiler-Schnittstelle. Mit dieser Schnittstelle können Sie ein Unterprogramm in einer der folgenden unterstützten Hostsprachen mit eingebetteten SQL-Befehlen schreiben:

•	Ada

•	C

•	COBOL

•	FORTRAN

•	Pascal

•	PL/I

Hinweis:  Nicht alle Betriebssysteme unterstützen alle aufgeführten Sprachen. Weitere Informationen über die unterstützten Sprachen finden Sie in der Form Builder-Dokumentation für Ihr Betriebssystem.

Mit eingebetteten SQL-Befehlen kann eine Oracle Precompiler-Fremdfunktion auf Oracle-Datenbanken sowie auf Form Builder-Variablen und -Objekte zugreifen. Sie können auf Form Builder-Variablen und -Objekte zugreifen, indem Sie eine Reihe von Oracle Precompiler-Anweisungen verwenden, die diese Möglichkeit bieten.

Aufgrund der Möglichkeit, sowohl auf Oracle-Datenbanken als auch auf Form Builder-Variablen und -Objekte zuzugreifen, sind die meisten Fremdfunktionen Fremdfunktionen von Oracle Precompiler. Weitere Informationen über die Oracle Precompiler-Schnittstelle finden Sie im Programmer's Guide to the Oracle Precompilers.

Fremdfunktionen von Oracle Call Interface (OCI)  Eine OCI-Fremdfunktion umfaßt das Oracle Call Interface. Mit dieser Schnittstelle können Sie ein Unterprogramm schreiben, das Aufrufe von Oracle-Datenbanken enthält. Eine Fremdfunktion, die nur die OCI (und nicht die Oracle Precompiler-Schnittstelle) umfaßt, kann nicht auf Variablen und Objekte von Form Builder zugreifen. Weitere Informationen über OCI finden Sie im Oracle Call Interface Programmer's Guide Documentation Set.

Fremde Fremdfunktionen  Eine fremde Fremdfunktion umfaßt weder die Oracle Precompiler-Schnittstelle noch OCI. So könnte z.B. eine fremde Fremdfunktion vollständig in der C-Sprache geschrieben sein. Eine fremde Fremdfunktion kann nicht auf Oracle-Datenbanken oder Variablen und Objekte von Form Builder zugreifen.


Precompiler-Anweisungen

  Verwandte Themen

Sämtliche Fremdfunktionen von Oracle Precompiler können Anweisungen in der Hostsprache zur Durchführung von prozeduralen Vorgängen verwenden. Fremdfunktionen von Precompiler können auch die folgenden Anweisungstypen benutzen, um zusätzliche Funktionen auszuführen, wie z.B. den Zugriff auf die Datenbank und die Verarbeitung von Variablen und Objekten von Form Builder.

Anweisung	Verwendung
EXEC SQL	Führt SQL-Befehle aus.
EXEC TOOLS GET	Ruft Werte aus Form Builder für eine Fremdfunktion ab.
EXEC TOOLS SET	Sendet Werte von einer Fremdfunktion an Form Builder.
EXEC TOOLS MESSAGE	Übergibt eine Meldung von einer Fremdfunktion zur Anzeige in Form Builder.
EXEC TOOLS GET CONTEXT	Enthält Kontextinformationen, die vorher in einer Fremdfunktion gespeichert wurden.
EXEC TOOLS SET CONTEXT	Speichert Kontextinformationen von einer Fremdfunktion zur Benutzung in nachfolgenden Aufrufen von Fremdfunktionen.
EXEC ORACLE	Führt Optionen von Oracle Precompiler aus.

Eine Quelldatei einer Fremdfunktion von Oracle Precompiler umfaßt Anweisungen in der Host-Programmiersprache sowie Anweisungen von Oracle Precompiler mit eingebetteten SQL-Anweisungen. Wenn Sie eine Fremdfunktion von Oracle Precompiler im voraus kompilieren, werden die eingebetteten SQL-Anweisungen durch die entsprechenden Anweisungen in der Host-Programmiersprache ersetzt. Nach der Vorauskompilierung verfügen Sie über eine Quelldatei, die Sie mit einem Compiler in der Hostsprache kompilieren können. Weitere Informationen über einen spezifischen Precompiler finden Sie in der entsprechenden Dokumentation zu dem Precompiler für Ihre Umgebung.


PL/SQL-Schnittstelle zu Fremdfunktionen erstellen

 Beispiele	  Verwandte Themen

So erstellen Sie eine PL/SQL-Schnittstelle zu einer Fremdfunktion:

1	Initialisieren Sie die Fremdfunktion.

2	Verknüpfen Sie ein PL/SQL-Unterprogramm mit der Fremdfunktion.

3	Bilden Sie den Prototyp der Fremdfunktion mit PL/SQL nach.


Fremdfunktionen initialisieren

 Beispiele	  Nächster Schritt	  Verwandte Themen

So initialisieren Sie eine Fremdfunktion:

1	Benutzen Sie ORA_FFI.LOAD_LIBRARY, um ein Bibliotheks-Handle zu der dynamischen Bibliothek zu erhalten, die die Fremdfunktion enthält. Sie müssen Namen und Speicherort der dynamischen Bibliothek angeben.

2	Benutzen Sie ORA_FFI.REGISTER_FUNCTION, um ein Funktions-Handle zu der Fremdfunktion zu erhalten. Sie müssen das Bibliotheks-Handle und den Namen der Fremdfunktion angeben.

3	Verwenden Sie ORA_FFI.REGISTER_PARAMETER, um die Parametertypen der Fremdfunktion zu registrieren. Geben Sie für jeden Parameter das Funktions-Handle zur Kennzeichnung der Fremdfunktion und einen entsprechenden PL/SQL-Parametertyp an. Sie müssen Parameter in der Reihenfolge registrieren, in der sie in dem Prototyp der Fremdfunktion auftreten.

4	Benutzen Sie ORA_FFI.REGISTER_RETURN, um den Rückgabetyp der Fremdfunktion zu registrieren. Sie müssen das Funktions-Handle angeben, um die Fremdfunktion und einen entsprechenden PL/SQL-Rückgabetyp zu kennzeichnen.


Beispiel für das Initialisieren einer Fremdfunktion

Hier ein Beispiel für das Initialisieren einer Fremdfunktion:

PACKAGE BODY calc IS
BEGIN
/*
This example shows how to initialize the foreign function
int ADD(int X, int Y) that is contained in the dynamic
library CALC.DLL;
*/
lh_calc := ora_ffi.load_library('c:\mathlib\', 'calc.dll');
fh_add := ora_ffi.register_function(lh_calc,'add',
ora_ffi.C_STD);
ora_ffi.register_return(fh_add,ORA_FFI.C_INT);
ora_ffi.register_parameter(fh_add,ORA_FFI.C_INT);
ora_ffi.register_parameter(fh_add,ORA_FFI.C_INT);
END;


PL/SQL-Unterprogramme mit einer Fremdfunktion verknüpfen

 Beispiele	  Nächster Schritt

So verknüpfen Sie ein PL/SQL-Unterprogramm mit einer Fremdfunktion:

1	Rufen Sie ein Funktions-Handle mit ORA_FFI.FIND_FUNCTION oder ORA_FFI.REGISTER_FUNCTION ab.

2	Im Deklarationsabschnitt des Rumpfs des PL/SQL-Pakets definieren Sie ein PL/SQL-Unterprogramm, das einen Parameter vom Typ ORA_FFI.FUNCHANDLETYPE als ersten Parameter akzeptiert, gefolgt von PL/SQL-Datentypäquivalenten für alle anderen Fremdfunktionsparameter.

3	Nehmen Sie eine PRAGMA-Schnittstelle in dem PL/SQL-Unterprogramm auf.

Die PRAGMA-Anweisung ruft die Fremdfunktion auf, indem die Kontrolle an den Speicherort in Form Builder übergeben wird, der mit dynamischen Bibliotheken kommunizieren kann.


Beispiel für das Verknüpfen eines PL/SQL-Unterprogramms mit einer Fremdfunktion

Hier ein Beispiel für das Verknüpfen eines Unterprogramms mit einer Fremdfunktion:

PACKAGE BODY calc IS
/*
This example shows how to associate a PL/SQL subprogram with
 	the given function prototype, int ADD(int X, int Y);
*/

FUNCTION ff_ADD(ff_handle ORA_FFI.FUNCHANDLETYPE,
 X IN BINARY_INTEGER,
 Y IN BINARY_INTEGER);
RETURN BINARY_INTEGER;
PRAGMA interface(C, ff_ADD, 11265);

BEGIN
...
END;


Prototyp von Fremdfunktionen mit PL/SQL nachbilden

 Beispiele	  Verwandte Themen.

So bilden Sie den Prototyp einer Fremdfunktion mit PL/SQL nach:

1	Definieren Sie im Deklarationsabschnitt des Rumpfs des PL/SQL-Pakets ein PL/SQL-Unterprogramm, das PL/SQL-Datentypäquivalente der Fremdfunktionsparameter akzeptiert und zurückgibt. Dies ist das Unterprogramm, das den Prototyp der Fremdfunktion nachbildet.

2	Rufen Sie aus dem Rumpf des nachbildenden Unterprogramms das PL/SQL-Unterprogramm auf, das mit der Fremdfunktion verknüpft ist.

3	Geben Sie einen PL/SQL-Unterprogrammprototyp in die Spezifikation des PL/SQL-Pakets ein.


Beispiel für das Nachbilden eines Fremdfunktionsprototyps mit PL/SQL

Hier ein Beispiel für das Nachbilden einer Fremdfunktionsdefinition:

PACKAGE calc IS
FUNCTION ADD(X IN BINARY_INTEGER, Y IN BINARY_INTEGER)
RETURN BINARY_INTEGER;
END;

PACKAGE BODY calc IS
/*
Given the foreign function prototype, int ADD(int X, int y),
and the associated PL/SQL subprogram,
FUNCTION ff_ADD(ff_handle,X,Y),
this example shows how to mimic the foreign function
definition in PL/SQL.
*/

FUNCTION ADD(X IN BINARY_INTEGER, Y IN BINARY_INTEGER)
RETURN BINARY_INTEGER IS
BEGIN
RETURN(ff_ADD(ff_ADD_HANDLE,X,Y));
END;

BEGIN
...
END;


Fremdfunktionen aus einer PL/SQL-Schnittstelle aufrufen

  Verwandte Themen

Nachdem Sie eine PL/SQL-Schnittstelle für eine Fremdfunktion definiert haben, können Sie die Fremdfunktion mit PL/SQL aus Form Builder aufrufen. Um die Fremdfunktion aus PL/SQL aufzurufen, geben Sie den Namen des PL/SQL-Pakets gefolgt von einem Punkt und dem Namen der PL/SQL-Funktion an. Aus diesem Beispiel geht hervor, wie Sie die Fremdfunktionen Get_Image und Show_Image aus dem PL/SQL-Paket ImageLib aufrufen.

PROCEDURE display_image(keywrd IN OUT VARCHAR2) IS
img_ptr	ORA_FFI.POINTERTYPE;
BEGIN
img_ptr := ImageLib.Get_Image(keywrd);
ImageLib.Show_Image(img_ptr,2);
END;

Wenn Sie eine Fremdfunktion aus einer PL/SQL-Schnittstelle aufrufen, wird die Prozeßsteuerung an die Fremdfunktion übergeben. Nach Abschluß der Fremdfunktion wird die Prozeßsteuerung wieder an Form Builder zurückgegeben.


Parameterwerte mit PL/SQL an eine Fremdfunktion übergeben

 Beispiele	  Verwandte Themen

Die Übergabe von Parameterwerten, wie z.B. Variablen und Objekten von Form Builder, an eine Fremdfunktion, die aus einer PL/SQL-Schnittstelle aufgerufen wird, ist der Übergabe von Parametern an ein beliebiges PL/SQL-Unterprogramm ähnlich. Sie müssen die Parameterwerte registrieren, wenn Sie die PL/SQL-Schnittstelle erstellen.

Nachdem Sie einer PL/SQL-Variablen eine Form Builder-Variable bzw. einen Form Builder-Objektwert zugewiesen haben, übergeben Sie die PL/SQL-Variable als Parameterwert in der PL/SQL-Schnittstelle der Fremdfunktion. Die PL/SQL-Variable, die als Parameter übergeben wird, muß einen gültigen PL/SQL-Datentyp aufweisen. Außerdem muß sie den entsprechenden Parametertyp aufweisen, wie in der PL/SQL-Schnittstelle definiert.


Beispiel für die Übergabe von Parameterwerten an eine Fremdfunktion mit PL/SQL

/*
The variables X_Val and Y_Val contain values obtained from
Form Builder and are used as parameter values in the ADD
foreign function.
*/
DECLARE
X_Val 	BINARY_INTEGER := :addblk.Xitm;
Y_Val	BINARY_INTEGER := :addblk.Yitm;
sum	BINARY_INTEGER;

BEGIN
sum := ADD(X_Val, Y_Val);
END;


Werte aus einer Fremdfunktion mit PL/SQL zurückgeben

 Beispiele	  Verwandte Themen

Die Rückgabe eines Wertes von einer Fremdfunktion an eine Form Builder-Variable oder ein Form Builder-Objekt entspricht der Rückgabe eines Wertes aus einer beliebigen PL/SQL-Funktion. Sie müssen den Rückgabewert registrieren, wenn Sie die PL/SQL-Schnittstelle erstellen.

Sie erhalten einen Rückgabewert aus einer Fremdfunktion, indem Sie den Rückgabewert einer Form Builder-Variablen oder einem Form Builder-Objekt zuweisen. Stellen Sie sicher, daß die Form Builder-Variable bzw. das Form Builder-Objekt denselben Datentyp wie der Rückgabewert aus einer Fremdfunktion hat.


Beispiel für die Rückgabe eines Wertes aus einer Fremdfunktion mit PL/SQL

/*
The BINARY_INTEGER that the ADD foreign function returns is
assigned to the item sum_itm of the block addblk.
*/
BEGIN
addblk.sum_itm:= ADD(X_Val, Y_Val);
END;


Komplexe Parameterdatentypen vereinfachen

  Verwandte Themen

Das Paket ORA_FFI unterstützt nur einfache PL/SQL-Parameter- und Rückgabedatentypen, die der C-Programmiersprache entsprechen. Wenn komplexe Parameter- und Rückgabedatentypen in Prototypen von Fremdfunktionen benutzt werden, müssen Sie den Parameter- und Rückgabetyp vereinfachen oder ersetzen. Wenn eine Vereinfachung nicht möglich ist, benutzen Sie statt dessen die User Exit-Schnittstelle.

Es gibt z.B. kein PL/SQL-Äquivalent für einen Datentyp in der C-Sprachstruktur. Sie können den Strukturdatentyp vereinfachen, indem Sie eine Fremdfunktion erstellen, die die Struktur generiert. Sie können keine PL/SQL-Schnittstelle zu einer Fremdfunktion erstellen, ohne den komplexen Parametertyp zu vereinfachen.

MainStruct ist ein Beispiel für einen komplexen Parametertyp:

Foreign_Func(MainStruct a, int b, char c)
{
/* process MainStruct */
...
}

Um den Parameter MainStruct zu vereinfachen, betrachten Sie folgende Lösung:

New_Foreign_Func(int x, float y, char* z, int b, char c)
{
 struct MainStruct
{
int x;
float y;
char* z;
}
/* process MainStruct */
...
}


Beispiel für das Erstellen einer PL/SQL-Schnittstelle bei Microsoft Windows

  Verwandte Themen

Auch wenn das Erstellen einer PL/SQL-Schnittstelle bei den meisten Plattformen ähnlich ist, werden in diesem Hilfethema Aspekte von Form Builder beschrieben, die für die Benutzung in Microsoft Windows spezifisch sind.

In diesem Beispiel werden die Windows-Funktionen Profile String von einer PL/SQL-Schnittstelle aufgerufen. Das PL/SQL-Paket OraWinProfile enthält die PL/SQL-Schnittstelle zu den Windows-Funktionen Profile String.

Dies ist die PL/SQL-Paketspezifikation:

PACKAGE OraWinProfile IS
/*
Function WritePrivateString calls the Windows
WritePrivateProfileString function
*/
FUNCTION WritePrivateString(pSection IN VARCHAR2,
     pEntry IN VARCHAR2,
     pString IN VARCHAR2,
     pFilename IN VARCHAR2)
RETURN BOOLEAN;

/*
Function GetPrivateString calls the Windows
GetPrivateProfileString function
*/
FUNCTION GetPrivateString(pSection IN VARCHAR2,
   pEntry IN VARCHAR2,
   pDefault IN VARCHAR2,
   pReturnBuffer IN OUT VARCHAR2,
   pReturnBufferN IN BINARY_INTEGER,
   pFilename IN VARCHAR2)
RETURN BINARY_INTEGER;
END OraWinProfile;

Dies ist der PL/SQL-Paketrumpf:

PACKAGE BODY OraWindProfile IS
lh_window	ora_ffi.libHandleType;
lh_forms	ora_ffi.libHandleType;
fh_wpps	ora_ffi.funcHandleType;
fh_gpps	ora_ffi.funcHandleType;

/*
icd_wpps function acts as the interface to the
WritePrivateString function in Windows
*/
FUNCTION icd_wpps(funcHandle IN ora_ffi.funcHandleType,
   pSection IN OUT VARCHAR2,
   pEntry IN OUT VARCHAR2,
   pString IN OUT VARCHAR2,
   pFilename IN OUT VARCHAR2)
RETURN BINARY_INTEGER;
PRAGMA interface(c,icd_wpps,11265);

/*
icd_gpps function acts as the interface to the
GetPrivateString function in windows
*/
FUNCTION icd_gpps(funcHandle IN ora_ffi.funcHandleType,
   pSection IN OUT VARCHAR2,
   pEntry IN OUT VARCHAR2,
   pDefault IN OUT VARCHAR2,
   pReturnBuffer IN OUT VARCHAR2,
   pRetrunBufferN IN BINARY_INTEGER,
   pFilename IN OUT VARCHAR2)
RETURN BINARY_INTEGER;
PRAGMA(c,icd_gpps,11265);

FUNCTION WritePrivateString(pSection IN VARCHAR2,
     pEntry IN VARCHAR2,
     pString IN VARCHAR2,
     pFilename IN VARCHAR2)
RETURN BOOLEAN IS
/* WritePrivateString calls the Windows function */
/* Make copies of in out arguments */
lSection VARCHAR2(1024) := pSection;
lEntry VARCHAR(1024) := pEntry;
lString VARCHAR2(1024) := pString;
lFilename VARCHAR(1024) := pFilename;

BEGIN
/*
validate arguments--although NULL is a valid argument
for Windows functions, we are going to prohibit this
case because of the format of the string that is
returned
*/
IF (lSection is NULL) OR (lEntry is NULL) OR
   (lString is NULL) OR (lFilename is NULL) THEN
    RAISE VALUE_ERROR;
END IF;
RETURN(icd_wpps(fh_wpps,lSection,lEntry,lString,
lFilename)<>0);
END WritePrivateString;

FUNCTION GetPrivateString(pSection IN VARCHAR2,
   pEntry IN VARCHAR2,
   pDefault IN VARCHAR2,
   pReturnBuffer IN OUT VARCHAR2,
   pReturnBufferN IN BINARY_INTEGER,
   pFilename IN VARCHAR2)
RETURN BINARY_INTEGER IS
/* GetPrivateString calls the Windows function */
/* Make copies of in out arguments */
lSection VARCHAR2(1024) := pSection;
lEntry VARCHAR(1024) := pEntry;
lDefault VARCHAR2(1024) := pDefault;
lFilename VARCHAR(1024) := pFilename;

BEGIN
/*
validate arguments--although NULL is a valid argument for
Windows functions, we are going to prohibit this case
because of the format of the string that is returned
*/
IF (lSection is NULL) OR (lEntry is NULL) OR
   (lDefault is NULL) OR (lFilename is NULL) OR
 	   (pReturnBufferN <= 0) THEN
    RAISE VALUE_ERROR;
END IF;
/* Pad the buffer with spaces */
pReturnBuffer := rpad(' ', pReturnBufferN);
RETURN(icd_gpps(fh_gpps,lSection,lEntry,lDefault,
pReturnBuffer,pReturnBufferN,lFilename));
END GetPrivateString;

BEGIN
/* Declare a library handle to the Windows 386 Kernel */
lh_windows := ora_ffi.load_library(NULL,'krnl386.exe');

/*
Register the components of WritePrivateString
 This is function prototype for WritePrivateProfileString:
 BOOL WritePrivateProfileString(LPCSTR lpszSection,
    LPCSTR lpszEntry,
    LPCSTR lpszString,
    LPCSTR lpszFilename)
*/
fh_wpps := ora_ffi.register_function(lh_windows,
'WritePrivateProfileString',
 ora_ffi.PASCAL_STD);

ora_ffi.register_return(fh_wpps,ORA_FFI.C_SHORT);
ora_ffi.register_parameter(fh_wpps,ORA_FFI.C_CHAR_PTR);
ora_ffi.register_parameter(fh_wpps,ORA_FFI.C_CHAR_PTR);
ora_ffi.register_parameter(fh_wpps,ORA_FFI.C_CHAR_PTR);
ora_ffi.register_parameter(fh_wpps,ORA_FFI.C_CHAR_PTR);

/*
Register the components of GetPrivateString
This is function prototype for GetPrivateProfileString:
int GetPrivateProfileString(LPCSTR lpszSection,
 LPCSTR lpszEntry,
 LPCSTR lpszDefault,
 LPCSTR lpszReturnBuffer,
 int cbReturnBuffer,
 LPCSTR lpszFilename)
*/
fh_gpps := ora_ffi.register_function(lh_windows,
      'GetPrivateProfileString',
       ora_ffi.PASCAL_STD);
ora_ffi.register_return(fh_gpps,ORA_FFI.C_INT);
ora_ffi.register_parameter(fh_wpps,ORA_FFI.C_CHAR_PTR);
ora_ffi.register_parameter(fh_wpps,ORA_FFI.C_CHAR_PTR);
ora_ffi.register_parameter(fh_wpps,ORA_FFI.C_CHAR_PTR);
ora_ffi.register_parameter(fh_wpps,ORA_FFI.C_CHAR_PTR);
ora_ffi.register_parameter(fh_wpps,ORA_FFI.C_INT);
ora_ffi.register_parameter(fh_wpps,ORA_FFI.C_CHAR_PTR);
END OraWinProfile;

Hier ein Beispiel für den Aufruf der Funktionen WritePrivateProfileString und GetPrivateProfileString aus einer PL/SQL-Schnittstelle in Form Builder:

DECLARE
tmpb BOOLEAN;
tmpn NUMBER;
buffer VARCHAR(1024) := '';
buffern BINARY_INTEGER := 1024;
BEGIN
tmpb := OraWinProfile.WritePrivateString('Section',
    'Entry',
    'string1',
    'PROFILE.INI');
tmpn := OraWinProfile.GetPrivateString('Section',
  'Entry',
  'Bad Entry',
   buffer,
   buffern,
  'PROFILE.INI');
   MESSAGE(buffer);
END;

Sie rufen die Funktionen WritePrivateString und GetPrivateString aus dem Paket OraWinProfile auf. Nachdem Sie den PL/SQL-Beispielcode ausgeführt haben, werden die folgenden beiden Zeilen an die Datei PROFILE.INI angehängt.

[Section]
Entry=String1

Identische Ergebnisse würden erzielt, wenn die Windows-Funktionen Profile String, WritePrivateString und GetPrivateString von einer Stelle außerhalb von Form Builder aufgerufen würden. Anhand dieses Beispiels können Sie sehen, wie eine Vielzahl von Fremdfunktionen aus einer PL/SQL-Schnittstelle in Form Builder aufgerufen werden können.


Microsoft Windows SDK aus einer PL/SQL-Schnittstelle aufrufen

  Verwandte Themen

Auf viele Funktionen des Microsoft Windows Software Developer's Kit (SDK) kann von einer PL/SQL-Schnittstelle zugegriffen werden. Das Erstellen einer PL/SQL-Schnittstelle zu einer Microsoft Windows SDK-Funktion kann mit dem Erstellen einer PL/SQL-Schnittstelle zu einer beliebigen Fremdfunktion verglichen werden.

Die Parameter und Rückgabetypen der Microsoft Windows SDK-Funktion müssen einen Datentyp aufweisen, für den es ein PL/SQL-Äquivalent gibt. Hier darf es sich nicht um komplexe Datentypen handeln, die nicht vereinfacht werden können. Weitere Informationen über das Vereinfachen von komplexen Datentypen finden Sie in dem Abschnitt Frendfunktionen aus einer PL/SQL-Schnittstelle aufrufen.

Eine Fremdfunktion mit komplexen Parametern und Rückgabedatentypen, die nicht vereinfacht werden können, kann nur aus einer User Exit-Schnittstelle aufgerufen werden. Ein Beispiel für einen komplexen Parameterdatentyp, der nicht vereinfacht werden kann, ist ein Fenster-Handle, ein Parameterdatentyp, der von vielen Microsoft Windows SDK-Funktionen erkannt werden kann. Ein Fenster-Handle ist eine eindeutige interne Zeichenkonstante, die zur Referenzierung von Schnittstellenobjekten benutzt wird.

In den Fällen, in denen die Microsoft Windows SDK-Funktion ein Fenster-Handle erfordert, können Sie die Funktion nicht aus einer PL/SQL-Schnittstelle aufrufen. Statt dessen sollten Sie eine User Exit-Schnittstelle und das Attribut Window_Handle verwenden, um die erforderlichen Parameter anzugeben. Window_Handle ist ein Attribut von Form Builder-Objekten und -Fenstern.

In den Fällen, in denen der Microsoft Windows SDK-Funktionsaufruf typisch für einen Funktionsaufruf in der C-Sprache ohne komplexe Datentypen ist, können Sie die Funktion aus einer PL/SQL-Schnittstelle aufrufen. Behandeln Sie die Microsoft Windows SDK-Funktion wie jede andere Fremdfunktion: Während der Initialisierung laden Sie die Bibliothek und registrieren Sie den Benutzernamen, den Rückgabetyp und die Parameter. Nach dem Erstellen einer PL/SQL-Schnittstelle zu der Microsoft Windows SDK-Funktion können Sie die Windows SDK-Funktion aus Form Builder mit PL/SQL aufrufen.


Beispiele für Fremdfunktionen

Dieser Abschnitt enhält verschiedene Beispiele, mit denen die Benutzung von Fremdfunktionen dargestellt wird.

1	Erstellen einer PL/SQL-Schnittstelle bei Microsoft Windows

2	Benutzung von ORA_FFI für den Aufruf des Dialogfeldes Datei öffnen bei Windows

3	Benzutzung von ORA_FFI für den Aufruf von ausführbaren Unix(SUN)-Dateien mit einer Schnittstelle vom Typ STDIN/STDOUT


Beispiel für die Benutzung von ORA_FFI für den Aufruf des Dialogfeldes Datei öffnen bei Windows

PACKAGE OraDlg IS

FUNCTION OraMultiFileDlg

(Title IN  VARCHAR2,

Filter IN  VARCHAR2,

Dir IN  VARCHAR2,

FileString IN OUT VARCHAR2)

RETURN PLS_INTEGER;

FUNCTION OraSingleFileDlg

(Title IN  VARCHAR2,

Filter IN  VARCHAR2,

Dir IN  VARCHAR2,

FileString IN OUT VARCHAR2)

RETURN PLS_INTEGER;

END OraDlg;

PACKAGE BODY OraDlg IS

     	lh_ORADLG ora_ffi.libHandleType;

fh_OraMultiFileDlg ora_ffi.funcHandleType;

fh_OraSingleFileDlg ora_ffi.funcHandleType;

FUNCTION i_OraMultiFileDlg

(funcHandle IN ora_ffi.funcHandleType,

Title IN OUT VARCHAR2,

Filter IN OUT VARCHAR2,

Dir IN OUT VARCHAR2,

FileString IN OUT VARCHAR2)

RETURN PLS_INTEGER;

PRAGMA INTERFACE(C,i_OraMultiFileDlg,11265);

FUNCTION OraMultiFileDlg

(Title IN  VARCHAR2,

Filter IN  VARCHAR2,

Dir IN  VARCHAR2,

FileString IN OUT VARCHAR2)

RETURN PLS_INTEGER IS

Title_l VARCHAR2(128)  :=  RPAD(SUBSTR(NVL(Title,'Open'),1,128),128,CHR(0));

Filter_l VARCHAR2(128)  :=  RPAD(SUBSTR(NVL

(Filter,'All Files (*.*)|*.*|'),1,128),128,CHR(0));

Dir_l VARCHAR2(256)  :=  RPAD(SUBSTR(NVL(Dir,' '),1,256),256,CHR(0));

FileString_l VARCHAR2(2000)  :=  RPAD(SUBSTR(NVL(FileString,' '),1,2000),2000,CHR(0));

rc PLS_INTEGER;

BEGIN

     rc  := i_OraMultiFileDlg(fh_OraMultiFileDlg,

Title_l,

Filter_l,

Dir_l,

FileString_l);

     FileString := FileString_l;

RETURN (rc);

END;

FUNCTION i_OraSingleFileDlg

(funcHandle IN ora_ffi.funcHandleType,

Title IN OUT VARCHAR2,

Filter IN OUT VARCHAR2,

Dir IN OUT VARCHAR2,

FileString IN OUT VARCHAR2)

RETURN PLS_INTEGER;

PRAGMA INTERFACE(C,i_OraSingleFileDlg,11265);

FUNCTION OraSingleFileDlg

(Title IN  VARCHAR2,

Filter IN  VARCHAR2,

Dir IN  VARCHAR2,

FileString IN OUT VARCHAR2)

RETURN PLS_INTEGER IS

Title_l VARCHAR2(128)  :=  RPAD(SUBSTR(NVL(Title,'Open'),1,128),128,CHR(0));

Filter_l VARCHAR2(128)  :=  RPAD(SUBSTR(NVL

(Filter,'All Files (*.*)|*.*|'),1,128),128,CHR(0));

Dir_l VARCHAR2(256)  :=  RPAD(SUBSTR(NVL(Dir,' '),1,256),256,CHR(0));

FileString_l VARCHAR2(2000)  :=  RPAD(SUBSTR(NVL(FileString,' '),1,2000),2000,CHR(0));

rc PLS_INTEGER;

BEGIN

     rc  := i_OraSingleFileDlg(fh_OraSingleFileDlg,

Title_l,

Filter_l,

Dir_l,

FileString_l);

     FileString := FileString_l;

RETURN (rc);

END;

BEGIN

     BEGIN

     lh_ORADLG := ora_ffi.find_library('ORADLG.DLL');

     EXCEPTION WHEN ora_ffi.FFI_ERROR THEN

     lh_ORADLG := ora_ffi.load_library(NULL,'ORADLG.DLL');

     END;

     fh_OraMultiFileDlg := ora_ffi.register_function

(lh_ORADLG,'OraMultiFileDlg',ora_ffi.PASCAL_STD);

     ora_ffi.register_parameter(fh_OraMultiFileDlg,ORA_FFI.C_CHAR_PTR);

     ora_ffi.register_parameter(fh_OraMultiFileDlg,ORA_FFI.C_CHAR_PTR);

     ora_ffi.register_parameter(fh_OraMultiFileDlg,ORA_FFI.C_CHAR_PTR);

     ora_ffi.register_parameter(fh_OraMultiFileDlg,ORA_FFI.C_CHAR_PTR);

     ora_ffi.register_return(fh_OraMultiFileDlg,ORA_FFI.C_LONG);

     fh_OraSingleFileDlg := ora_ffi.register_function

(lh_ORADLG,'OraSingleFileDlg',ora_ffi.PASCAL_STD);

     ora_ffi.register_parameter(fh_OraSingleFileDlg,ORA_FFI.C_CHAR_PTR);

     ora_ffi.register_parameter(fh_OraSingleFileDlg,ORA_FFI.C_CHAR_PTR);

     ora_ffi.register_parameter(fh_OraSingleFileDlg,ORA_FFI.C_CHAR_PTR);

     ora_ffi.register_parameter(fh_OraSingleFileDlg,ORA_FFI.C_CHAR_PTR);

     ora_ffi.register_return(fh_OraSingleFileDlg,ORA_FFI.C_LONG);

END OraDlg;


Beispiel für die Benutzung von ORA_FFI für den Aufruf von ausführbaren Unix(SUN)-Dateien mit einer Schnittstelle vom Typ STDIN/STDOUT

/* Copyright (c) 1997 by Oracle Corporation */

/*

   NAME

     ora_pipe_io_spec.sql - Specification for access to Unix Pipe mechanism

   DESCRIPTION

     Demonstration of how to use the ORA_FFI Package to provide access to the

     Unix Pipe C functions.

   PUBLIC FUNCTION(S)

     popen    - Open the Pipe command

     get_line - Get a line of Text from a Pipe

     put_line - Put a line of Text into a Pipe

     pclose   - Close the Pipe

     is_open  - Determine whether the Pipe descriptor is open.

   NOTES

     In Order to use these routines you could write  the following

     PL/SQL Code:

        -- Example of Calls to ora_pipe_io functions

        DECLARE

            stream ora_pipe_io.PIPE;

            buffer VARCHAR2(240);

        BEGIN

            stream := ora_pipe_io.popen('ls -l', ora_pipe_io.READ_MODE);

            loop

                exit when not ora_pipe_io.get_line(stream, buffer, 240);

                :directory.file := buffer;

                down;

            end loop;

            ora_pipe_io.pclose(stream);

        END;

   MODIFIED   (MM/DD/YY)

    smclark    08/05/94 -  Creation

*/

PACKAGE ora_pipe_io is

    /*

    ** Arguments to popen.

    */

    READ_MODE constant VARCHAR2(1) := 'r';

    WRITE_MODE constant VARCHAR2(1) := 'w';

    /* ------------- TYPE PIPE ----------- */

    /*

    ** Public Type PIPE - Handle to a Un*x pipe

    **

    ** Do not modify the private members of this type

    */

    TYPE PIPE is RECORD

        (file_handle ORA_FFI.POINTERTYPE,

         is_open boolean,

         read_write_mode VARCHAR2(1));

    /* ------------ FUNCTION POPEN ----------- */

    /*

    ** Function POPEN -- Open a Un*x pipe command

    **

    ** Given a Unix command to execute and a Pipe read/write mode in which

    ** to execute the instruction this Function will execute the Command

    ** and return a handle, of type PIPE, to the resulting Input/Output

    ** stream.

    **

    ** The command to be executed is limited to 1024 characters.

    */

    FUNCTION popen(command in VARCHAR2,

                   ctype in VARCHAR2)

    RETURN PIPE;

    /* ------------ PROCEDURE PCLOSE ----------- */

    /*

    ** Procedure PCLOSE -- Close a pipe

    **

    ** Close a previously opened pipe.

    **

    ** Raises a VALUE_ERROR exception if incorrect arguments are passed.

    */

    PROCEDURE pclose(stream in out PIPE);

    /* ------------ FUNCTION GET_LINE ----------- */

    /*

    ** Function GET_LINE

    ** -- Get a line of text into a buffer from the read mode pipe.

    **

    ** Get a line of text from a previously opened pipe.

    **

    ** Raises a VALUE_ERROR exception if incorrect arguments are passed.

    ** For example

    ** if you pass a pipe which has never been opened (using popen)

    */

    FUNCTION get_line(stream in out PIPE,

                      s in out VARCHAR2,

                      n in PLS_INTEGER)

    RETURN BOOLEAN;

    /* ------------ PROCEDURE PUT_LINE ----------- */

    /*

    ** Procedure PUT_LINE -- Put a line of text into a a write mode pipe.

    **

    ** Put a line of text into a previously opened pipe.

    **

    ** Raises a VALUE_ERROR exception if incorrect arguments are passed.

    ** For example

    ** if you pass a pipe which has never been opened (using popen)

    **

    ** The Internal buffer for the string to write is limited to 2048 bytes

    */

    PROCEDURE put_line(stream in out PIPE,

                       s in VARCHAR2);

    /* ------------ FUNCTION IS_OPEN ----------- */

    /*

    ** Function IS_OPEN -- Determines whether a pipe is open.

    **

    ** Returns TRUE if the pipe is open, FALSE if the pipe is closed.

    */

    FUNCTION is_open(stream in PIPE)

    RETURN BOOLEAN;

END;

/*    ora_pipe_io_body.sql - Body of Package for access to Unix Pipe mechanism

   DESCRIPTION

     Demonstration of how to use the ORA_FFI Package to provide access to the

     Unix Pipe C functions.

   PUBLIC FUNCTION(S)

     popen    - Open the Pipe command

     get_line - Get a line of Text from a Pipe

     put_line - Put a line of Text into a Pipe

     pclose   - Close the Pipe

     is_open  - Determine whether the Pipe descriptor is open.

   PRIVATE FUNCTION(S)

     icd_popen, icd_fgets, icd_fputs, icd_pclose

   NOTES

   MODIFIED   (MM/DD/YY)

    smclark    11/02/94 -  Modified for production release changes to ORA_FFI.

    smclark    08/05/94 -  Creation

*/

 PACKAGE BODY ora_pipe_io is

    lh_libc   ora_ffi.libHandleType;

    fh_popen  ora_ffi.funcHandleType;

    fh_pclose ora_ffi.funcHandleType;

    fh_fgets  ora_ffi.funcHandleType;

    fh_fputs  ora_ffi.funcHandleType;

    /* ------------ FUNCTION ICD_POPEN ----------- */

    /*

    ** Function ICD_POPEN -- Interface routine to C function popen

    **

    ** This function acts as the interface to the popen function in

    ** libc.

    */

    FUNCTION icd_popen(funcHandle in ora_ffi.funcHandleType,

                       command in out VARCHAR2,

                       ctype in out VARCHAR2)

    return ORA_FFI.POINTERTYPE;

    pragma interface(c, icd_popen, 11265);

    /* ------------ PROCEDURE ICD_PCLOSE ----------- */

    /*

    ** Function ICD_PCLOSE -- Interface routine to C function pclose

    **

    ** This function acts as the interface to the pclose function in

    ** libc.

    */

    PROCEDURE icd_pclose(funcHandle in ora_ffi.funcHandleType,

                         stream in out ORA_FFI.POINTERTYPE);

    pragma interface(c, icd_pclose, 11265);

    /* ------------ FUNCTION ICD_FGETS ----------- */

    /*

    ** Function ICD_FGETS -- Interface routine to C function fgets

    **

    ** This function acts as the interface to the fgets function in

    ** libc.

    */

    FUNCTION icd_fgets(funcHandle in ora_ffi.funcHandleType,

                       s in out VARCHAR2, n in PLS_INTEGER,

                       stream in out ORA_FFI.POINTERTYPE)

    RETURN ORA_FFI.POINTERTYPE;

    pragma interface(c, icd_fgets, 11265);

    /* ------------ FUNCTION ICD_FPUTS ----------- */

    /*

    ** Function ICD_FPUTS -- Interface routine to C function fputs

    **

    ** This function acts as the interface to the fputs function in

    ** libc.

    */

    PROCEDURE icd_fputs(funcHandle in ora_ffi.funcHandleType,

                        s in out VARCHAR2,

                        stream in out ORA_FFI.POINTERTYPE);

    pragma interface(c, icd_fputs, 11265);

    /* ------------ FUNCTION POPEN ----------- */

    /*

    ** Function POPEN -- Open a Un*x pipe command

    */

    FUNCTION popen(command in VARCHAR2,

                   ctype in VARCHAR2)

    RETURN PIPE is

        /*

        ** Take a copy of the arguments because we need to pass them

        ** IN OUT to icd_popen, but we really don't want people to have

        ** to call our routines in the same way.

        */

        cmd varchar2(1024) := command;

        cmode varchar2(1) := ctype;

        stream PIPE;

    BEGIN

        if (cmode not in (READ_MODE, WRITE_MODE))

           or (cmode is NULL)

           or (cmd is NULL)

        then

            raise VALUE_ERROR;

        end if;

        stream.file_handle := icd_popen(fh_popen, cmd, cmode);

        stream.is_open := TRUE;

        stream.read_write_mode := ctype;

        return(stream);

    END popen;

    /* ------------ PROCEDURE PCLOSE ----------- */

    /*

    ** Procedure PCLOSE -- Close a pipe

    */

    PROCEDURE pclose(stream in out PIPE) is

    BEGIN

        icd_pclose(fh_pclose, stream.file_handle);

        stream.is_open := FALSE;

    END pclose;

    /* ------------ FUNCTION GET_LINE ----------- */

    /*

    ** Function GET_LINE -- Get a line of text into a buffer

    ** from the read mode pipe.

    */

    FUNCTION get_line(stream in out PIPE,

                      s in out VARCHAR2, n in PLS_INTEGER)

    RETURN BOOLEAN is

        buffer ORA_FFI.POINTERTYPE;

    BEGIN

        if (n <= 0)

           or (stream.is_open = FALSE)

           or (stream.is_open is NULL)

           or (stream.read_write_mode <> READ_MODE)

        then

            raise VALUE_ERROR;

        end if;

        /*

        ** Initialise the Buffer area to reserve the correct amount of space.

        */

        s := rpad(' ', n);

        buffer := icd_fgets(fh_fgets, s, n, stream.file_handle);

        /*

        ** Determine whether a NULL pointer was returned.

        */

        return (ora_ffi.is_null_ptr(buffer) = FALSE);

    END get_line;

    /* ------------ PROCEDURE PUT_LINE ----------- */

    /*

    ** Procedure PUT_LINE -- Put a line of text into a a write mode pipe.

    */

    PROCEDURE put_line(stream in out PIPE,

                       s in VARCHAR2) is

        buffer varchar2(2048) := s;

    BEGIN

        if (stream.is_open = FALSE)

           or (stream.is_open is NULL)

           or (stream.read_write_mode <> WRITE_MODE)

        then

            raise VALUE_ERROR;

        end if;

        icd_fputs(fh_fputs, buffer, stream.file_handle);

        buffer := chr(10);

        icd_fputs(fh_fputs, buffer, stream.file_handle);

    END put_line;

    /* ------------ FUNCTION IS_OPEN ----------- */

    /*

    ** Function IS_OPEN -- Determines whether a pipe is open.

    */

    FUNCTION is_open(stream in PIPE)

    RETURN BOOLEAN is

    BEGIN

        return(stream.is_open);

    END is_open;

BEGIN

    /*

    ** Declare a library handle as libc.  (Internal so NULL,NULL)

    */

    lh_libc := ora_ffi.load_library(NULL, NULL);

    if ora_ffi.is_null_ptr(lh_libc) then

        raise VALUE_ERROR;

    end if;

    /*

    ** Register the popen function, it's return type and arguments.

    */

    fh_popen := ora_ffi.register_function(lh_libc, 'popen');

    if ora_ffi.is_null_ptr(fh_popen) then

        raise VALUE_ERROR;

    end if;

    ora_ffi.register_return(fh_popen, ORA_FFI.C_DVOID_PTR);

    ora_ffi.register_parameter(fh_popen, ORA_FFI.C_CHAR_PTR);

    ora_ffi.register_parameter(fh_popen, ORA_FFI.C_CHAR_PTR);

    /*

    ** Register the pclose function, it's return type and arguments.

    */

    fh_pclose := ora_ffi.register_function(lh_libc, 'pclose');

    if ora_ffi.is_null_ptr(fh_pclose) then

        raise VALUE_ERROR;

    end if;

    ora_ffi.register_return(fh_pclose, ORA_FFI.C_VOID);

    ora_ffi.register_parameter(fh_pclose, ORA_FFI.C_DVOID_PTR);

    /*

    ** Register the fgets function, it's return type and arguments.

    */

    fh_fgets := ora_ffi.register_function(lh_libc, 'fgets');

    if ora_ffi.is_null_ptr(fh_fgets) then

        raise VALUE_ERROR;

    end if;

    ora_ffi.register_return(fh_fgets, ORA_FFI.C_DVOID_PTR);

    ora_ffi.register_parameter(fh_fgets, ORA_FFI.C_CHAR_PTR);

    ora_ffi.register_parameter(fh_fgets, ORA_FFI.C_INT);

    ora_ffi.register_parameter(fh_fgets, ORA_FFI.C_DVOID_PTR);

    /*

    ** Register the fputs function, it's return type and arguments.

    */

    fh_fputs := ora_ffi.register_function(lh_libc, 'fputs');

    if ora_ffi.is_null_ptr(fh_fputs) then

        raise VALUE_ERROR;

    end if;

    ora_ffi.register_return(fh_fputs, ORA_FFI.C_VOID);

    ora_ffi.register_parameter(fh_fputs, ORA_FFI.C_CHAR_PTR);

    ora_ffi.register_parameter(fh_fputs, ORA_FFI.C_DVOID_PTR);

END ora_pipe_io;


Umgebungsvariablen

  Verwandte Themen

CA_GPREFS

CA_UPREFS

CUE_PREFS

DEV2000_PROJECT

DEV2000_SOURCECONTROL

DOC60

FORMS60_DEFAULTFONT

FORMS60_EDITOR

FORMSnn_ERROR_DATE/DATETIME_FORMAT

FORMS60_JAVADIR

FORMS60_MAPPING

FORMS60_OUTPUT

FORMSnn_OUTPUT_DATE/DATETIME_FORMAT

FORMS60_PATH

FORMSnn_PLSQLV1_NAME_RESOLUTION

FORMS60_REPFORMAT

FORMS60_TIMEOUT

FORMSnn_USER_DATE/DATETIME_FORMAT

FORMS60_USEREXITS

GRAPHICS60_PATH

INTERRUPT (DOS SQL*Net users only)

LOCAL

NLS_LANG

OleCreateObjPoolInMemory

OleDoNotUpdateLinks

OleUpdateLinksPrompt

ORACLE_HOME

ORACLE_PATH

ORAINFONAV_DOCPATH

REPORTS60_CGIDIAGBODYTAGS

REPORTS60_CGIDIAGHEADTAGS

REPORTS60_CGIHELP

REPORTS60_CGIMAP

REPORTS60_CGINODIAG

REPORTS60_CGIPATHONLYURL

REPORTS60_COOKIE_EXPIRE

REPORTS60_DB_AUTH

REPORTS60_ENCRYPTION_KEY

REPORTS60_OWSDIAGBODYTAGS

REPORTS60_OWSDIAGHEADTAGS

REPORTS60_OWSHELP

REPORTS60_OWSMAP

REPORTS60_OWSNODIAG

REPORTS60_OWSPATHONLYURL

REPORTS60_PATH

REPORTS60_REPORTS_SERVER

REPORTS60_SYS_AUTH

REPORTS60_TERMINAL

REPORTS60_TMP

REPORTS60_USEREXIT

REMOTE

UI_ICON

USERNAME

WIN_REMOTE_SESSIONS

XMITTR(nur DOS-Benutzer)


Registrierung (Windows 95 und Windows NT)

  Umgebungsvariablen

Das Oracle-Installationsprogramm erstellt einen neuen Abschnitt ORACLE in Ihrer Registrierung. Die Oracle-Registrierung enthält Konfigurationsparameter, mit denen Angaben gesteuert werden, wie z.B. der Name des Oracle-Standardverzeichnisses, der Speicherort der Voreinstellungsdatei sowie der Speicherort der Hilfedateien.

Registrierung anzeigen und ändern

Sie können die Microsoft Windows-Registrierung mit dem Registrierungseditor anzeigen und optional bearbeiten. Dieser Editor ist in dem Verzeichnis gespeichert, in dem die Windows-Software installiert ist. Um den Editor zu starten, wählen Sie Start [image] Ausführen, geben REGEDIT ein, und klicken auf OK.

Im Registrierungseditor blenden Sie den Knoten HKEY_LOCAL_MACHINE und danach den Knoten SOFTWARE ein. Klicken Sie auf den Schlüssel ORACLE, um die Oracle-Konfigurationsparameter anzuzeigen.

Sie können jeden Parameterwert ändern, indem Sie auf den Parameternamen doppelklicken, um das Dialogfeld Zeichenfolge bearbeiten anzuzeigen. Ändern Sie den Wert im Textfeld Wert, und klicken Sie dann auf OK, um den neuen Wert zu akzeptieren.


Konfigurationsparameter

  Umgebungsvariablen

Das Oracle-Installationsprogramm stellt viele Parameter automatisch ein. Einige dieser Parameter werden von Oracle-Produkten benötigt, während Sie mit anderen Parametern das Verhalten der Produkte individuell ändern können.

Obligatorische Parameter

Die in diesem Abschnitt aufgeführten Parameter werden automatisch von dem Oracle-Installationsprogramm eingestellt oder entfernt. Sie werden von verschiedenen Oracle-Produkten benötigt, damit diese einwandfrei funktionieren.

Achtung: Ändern Sie die Einstellungen der Parameter nicht, die in diesem Abschnitt aufgeführt werden. Sonst könnten ein oder mehrere Oracle-Produkte nicht mehr einwandfrei funktionieren.

Mit nn bei den unten aufgeführten Parametern wird eine Release-Nummer für ein Produkt oder eine Komponente angegeben. Diese Nummer kann sich ändern, wenn Sie auf eine neue Version eines Oracle-Produkts umstellen.

Parameter	Standardwert
BROWSERnn	ORACLE_HOME\BROWSE25
DEnn	ORACLE_HOME\TOOLS\COMMON60
FORMSnn	ORACLE_HOME\FORMS60
GRAPHICSnn	ORACLE_HOME\GRAPH60
MMnn	ORACLE_HOME\TOOLS\COMMON60
OCLnn	ORACLE_HOME\GRAPH60
PROnn	ORACLE_HOME\PRO18
RDBMSnn	ORACLE_HOME\RDBMS73
RWnn	ORACLE_HOME\REPORT60
TKnn	ORACLE_HOME\TOOLS\COMMON60
VGSnn	ORACLE_HOME\TOOLS\COMMON60
Benutzerdefinierbare Parameter

Die in diesem Abschnitt aufgeführten Parameter steuern verschiedene Aspekte Ihrer Oracle-Produkte. Sie können die Einstellungen dieser Parameter ändern, um das Verhalten des Produkts individuell zu gestalten.

In den folgenden Abschnitten wird die Standardeinstellung (sofern vorhanden) jedes Parameters aufgeführt, die automatisch vom Oracle-Installationsprogramm festgelegt wird. Außerdem werden die Parameter, die nicht automatisch eingestellt werden, ebenfalls aufgeführt. Schließlich finden Sie Beschreibungen der gültigen Werte und Beispiele für die Einstellungen.


CA_GPREFS

Standardwert:  ORACLE_HOME

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

CA_GPREFS=C:\orawin95

Dieser Parameter gibt den Speicherort der globalen Voreinstellungsdatei CAGPREFS.ORA an. Globale Voreinstellungen werden von den Benutzern in einem Netzwerk gemeinsam benutzt. Produkte suchen nicht nur in dem mit dem Parameter CA_GPREFS angegebenen Verzeichnis, sondern auch im aktuellen Verzeichnis nach der Datei CAGPREFS.ORA.

Die Datei CAGPREFS.ORA wird automatisch vom Oracle-Installationsprogramm erstellt. Um die globalen Voreinstellungen zu ändern, benutzen Sie einen Texteditor, wie z.B. Notepad, um diese Datei manuell zu ändern. Globale Voreinstellungen in CAGPREFS.ORA können durch die lokale Voreinstellungsdatei, CAUPREFS.ORA, außer Kraft gesetzt werden, die mit dem Parameter CA_UPREFS definiert wird.


CA_UPREFS

Standardwert:  ORACLE_HOME

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

CA_UPREFS=C:\orawin95

Dieser Parameter gibt den Speicherort der Benutzervoreinstellungsdatei, CAUPREFS.ORA, an. Die Datei CAUPREFS.ORA enthält die Voreinstellungen, die Sie mit dem Menübefehl Werkzeuge [image] Voreinstellungen in den Produkten festlegen. Das Produkt sucht nicht nur in dem Verzeichnis, das mit dem Parameter CA_UPREFS angegeben wird, sondern auch im aktuellen Verzeichnis nach der Datei CAUPREFS.ORA.

Verschiedene Oracle-Produkte schreiben ihre Voreinstellungsinformationen in die Datei CAUPREFS.ORA. Um die Benutzervoreinstellungen manuell zu ändern, benutzen Sie einen Texteditor wie Notepad, um diese Datei zu bearbeiten. In CAUPREFS.ORA festgelegte Benutzervoreinstellungen setzen die globalen Voreinstellungen in der Datei CAGPREFS.ORA außer Kraft, die mit dem Parameter CA_GPREFS definiert wird.


CUE_PREFS

Standardwert:  ORACLE_HOME

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

CUE_PREFS=C:\orawin95

Dieser Parameter gibt den Speicherort der Voreinstellungsdatei für das Lernprogramm, CUEPREF.RES, an. Die Datei CUEPREF.RES enthält die Lernprogrammvoreinstellungen, die Sie im Dialogfeld Lernprogrammoptionen festlegen können.

Ihre Voreinstellungen werden jedesmal, wenn Sie eine Anwendung beenden, in der Datei CUEPREF.RES gespeichert. Sie können diese Datei nicht manuell ändern.


DEV2000_SOURCECONTROL

Standardwert:  Keiner

Gültige Werte:  Schlüsselwörter, mit denen angegeben wird, welches Versionskontrollsystem mit Forms Developer oder Reports Developer benutzt werden soll.

Beispiel:

DEV2000_SOURCECONTROL=PVCS

Mit diesem Parameter wird angegeben, welches Versionskontrollsystem mit Forms Developer oder Reports Developer benutzt werden soll. Momentan können Sie entweder kein Versionskontrollsystem angeben oder diesen Parameter auf den Wert 'PVCS' einstellen. Sobald zusätzliche Versionskontrollsysteme unterstützt werden, können Sie auch Schlüsselwörter für diese zusätzlichen Versionskontrollsysteme angeben.


DEV2000_PROJECT

Standardwert:  Keiner

Gültige Werte:  Schlüsselwörter, die die Projektdatei des Versionskontrollsystems angeben, das mit Forms Developer oder Reports Developer benutzt werden soll.

Beispiel:

DEV2000_PROJECT=c:\pvcs\project1\project1.cfg

Dieser Parameter gibt den Namen der Projektdatei für das Versionskontrollsystem an, das Sie mit dem Parameter DEV2000_SOURCECONTROL ausgewählt haben.


DOC60

Standardwert:  Oracle_Home\tools\doc60

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

DOC60=c:\orawin95\tools\doc60

Dieser Parameter gibt den Speicherort der Online-Dokumentationsdateien an, einschließlich Online-Hilfe, Lernprogramm und Kurzanleitung.


FORMS60_DEFAULTFONT

Standardwert:  Keiner

Gültige Werte:  Eine Textfolge, die eine beliebige gültige Schriftart angibt.

Beispiel:

FORMS60_DEFAULTFONT="MS Sans Serif.8"

Dieser Parameter gibt die Standardschriftart für Boilerplates im Layouteditor von Form Builder an.


FORMS60_EDITOR

Standardwert:  Keiner

Gültige Werte:  Name und Pfad eines Systemeditors

Beispiel:

FORMS60_EDITOR=C:\windows\notepad.exe

Dieser Parameter definiert den Editor, der von mehrzeiligen Objekten von Form Builder im Designer oder den Runform-Komponenten aufgerufen werden kann. Erst nachdem dieser Parameter definiert wurde, kann ein benutzerdefinierter Editor gestartet werden.

Hinweis:  Wenn Sie den Editor verlassen, muß die Datei wieder als "Nur Text"-Datei gespeichert werden. Eigene Formate von Textverarbeitungsprogrammen werden nicht unterstützt.


FORMSnn_ERROR_DATE/DATETIME_FORMAT

Zweck: Diese beiden Umgebungsvariablen legen die Formatmasken fest, die Forms beim Generieren von Laufzeitfehlermeldungen verwendet, die ausgegeben werden, wenn ein Endbenutzer einen ungültigen Wert in ein Datums- oder Datumzeit-Element eingibt.

Standardwert: Hierzu wird auf das Hilfethema Über Formatmasken für Datumsangaben verwiesen.

Gültige Werte:  Beliebige gültige Datum-/Datumzeit-Formatmaske.

Beispiel:

FORMS65_ERROR_DATE_FORMAT YYYY/MM/DD


FORMS60_JAVADIR

Standardwert:  Oracle_Home\forms60\java

Gültige Werte:  Name und Pfad der Oracle Java-Laufzeitumgebung

Beispiel:

FORMS60_JAVADIR=C:\orant\forms60\java

Dieser Parameter definiert den Speicherort der Oracle Java-Laufzeitumgebungsdateien, die zur Benutzung von Java Bean-Bereichen und zur Vorschau von Web-orientierten Forms aus Form Builder erforderlich sind.


FORMS60_MAPPING

Standardwert:  Keiner

Gültige Werte: Virtueller Pfad des temporären Arbeitsverzeichnisses

Beispiel:

FORMS60_MAPPING=http://myhost.com/webtemp

Um Bilder auf dem Weg zu verarbeiten, überträgt der Forms Server temporäre komprimierte JPEG-Dateien. Wenn Sie Bilder oder Symbole in den Web Forms-Anwendungen verwenden, müssen Sie ein temporäres und ein virtuelles Verzeichnis erstellen (z.B. C:\ORANT\WEBTEMP), das der Forms Server für Bild- und andere Arbeitsdateien verwendet. Sie müssen außerdem die Umgebungsvariablen FORMS60_OUTPUT und FORMS60_MAPPING auf dem Rechner erstellen, auf dem der Forms Server läuft.


FORMS60_OUTPUT

Standardwert:  Keiner

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk auf dem Rechner, auf dem der Forms Server ausgeführt wird.

Beispiel:

FORMS60_OUTPUT=C:\ORANT\WEBTEMP\

Um Bilder auf dem Web zu verarbeiten, überträgt der Forms Server temporäre komprimierte JPEG-Dateien. Wenn Sie Bilder oder Symbole in den Web Forms-Anwendungen verwenden, müssen Sie ein temporäres Verzeichnis erstellen (z.B. C:\ORANT\WEBTEMP), das der Forms Server für Bilder und andere Arbeitsdateien benutzt. Außerdem müssen Sie die Umgebungsvariablen FORMS60_OUTPUT und FORMS60_MAPPING auf dem Rechner erstellen, auf dem der Server läuft.


FORMSnn_OUTPUT_DATE/DATETIME_FORMAT

Zweck:  Diese beiden Umgebungsvariablen legen die Formatmasken fest, die Forms für Laufzeitausgabevorgänge bei Datums- und Datumzeitelementen verwendet, die keine eigenen, individuellen Masken haben.

Standardwert:  Siehe das Hilfethema Über Formatmasken für Datumsangaben.

Gültige Werte: Beliebige gültige Datum-/Datumzeit-Formatmaske.

Beispiel:

FORMS65_OUTPUT_DATETIME_FORMAT YYYY/MM/DD HH24:MI:SS


FORMS60_PATH

Standardwert:  ORACLE_HOME\FORMS60\PLSQLLIB

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

FORMS60_PATH=C:\oracle\apps\forms;C:\myfiles

Dieser Parameter gibt den Suchpfad für Dateien an, die in einer Laufzeitanwendung von Form Builder benutzt werden. Dies umfaßt Formdateien (.fmx), Menüdateien (.mmx), PL/SQL-Bibliotheken (.pll) und andere Objekte, die die Anwendung zur Laufzeit aus einer Datei lädt. Wenn Sie z.B. die Bilddatei scooter.tif importieren, sucht Form Builder in den mit FORMS60_PATH angegebenen Verzeichnissen nach dieser Datei.

Mit FORMS60_PATH können mehrere Verzeichnisse angegeben werden. Trennen Sie die Verzeichnisnamen in einer Liste mit Pfaden durch Semikolon (;).


FORMSnn_PLSQLV1_NAME_RESOLUTION

Standardwert:  OFF

Gültige Werte:  ON, OFF

Beispiel:

FORMS6i_PLSQLV1_NAME_RESOLUTION=ON

Mit dieser Umgebungsvariablen können Sie zwischen dem Verhalten von R4.5 und R5-und-höher für die Auflösung von Programmblocknamen zur Laufzeit wählen. Ein Wert von ON wählt das R4.5-Verhalten. Ein Wert von OFF (oder das Weglassen dieser Umgebungsvariablen überhaupt) wählt das R5-und-höher-Verhalten.

R4.5-Verhalten:

Wenn Forms einen Aufruf eines Programmblocks antrifft, sucht es zuerst in der aktuellen Form oder dem aktuellen Menü nach dem Programmblock. Danach werden die zugeordneten Bibliotheken durchsucht. Dieses Verhalten entspricht einer einfachen dynamischen Namensauflösung, da der aufgerufene Programmblock nicht identisch mit dem Programmblock ist, der während der Kompilierung aufgelöst wurde. In Situationen, in denen dieselbe Bibliothek mehreren Forms zugeordnet wird, behält darüber hinaus jede Form ihre eigenen eindeutigen Bibliotheksinformationen, einschließlich Instantiierungen, Paketstatus und Abhängigkeiten. Dies bedeutet, daß Abhängigkeitsinformationen nicht Forms-übergreifend gemeinsam benutzt werden.

Das R4.5-Verhalten hat folgende Nachteile:

•	Keine Forms-übergreifende gemeinsame Benutzung von Informationen. SHARE_LIBRARY_STATE bleibt wirkungslos.

•	Verlängerte Ausführungszeiten und höhere Speicherplatzbelegung (im Vergleich zu R5+).

R5+-Verhalten:

Wenn Forms einen Aufruf eines Programmblocks antrifft, sucht es ebenfalls zuerst in der aktuellen Form oder dem aktuellen Menü und danach in den zugeordneten Bibliotheken nach dem Programmblock. In den Fällen, in denen dieselbe Bibliothek mehreren Forms zugeordnet wird, behält jede Form jedoch nicht ihre eigenen eindeutigen Bibliotheksinformationen. Statt dessen werden die Instantiierungen von Programmblöcken Forms-übergreifend gemeinsam benutzt. Dies bedeutet, daß Abhängigkeitsinformationen Forms-übergreifend gemeinsam benutzt werden können.

Empfehlung:

Wegen der oben aufgeführten Nachteile und weil diese Umgebungsvariable in künftigen Releases nicht immer unterstützt werden wird, wird empfohlen, daß Sie das R4.5-Verhalten nicht auswählen.

Um eine dynamische Namensauflösung zu erhalten, verwenden Sie statt dessen die vordefinierte Prozedur Execute-Trigger. Wenn Argumente benötigt werden, benutzen Sie globale Variablen.


FORMS60_REPFORMAT

Standardwert:  Keiner

Gültige Werte:  HTML, PDF

Beispiel:

FORMS60_REPFORMAT=HTML

Wenn Sie einen Browser aufrufen, um einen Bericht aus einer Form über RUN_PRODUCT auszuführen, müssen Sie die Umgebungsvariable FORMS60_REPFORMAT festlegen. Mit diesem Parameter wird das Berichtformat angegeben.


FORMS60_TIMEOUT

Standardwert:  15

Gültige Werte:  1-1440 (1 Tag)

Beispiel:

FORMS60_OUTPUT=1440

Dieser Parameter gibt die Zeit in abgelaufenen Minuten an, bevor der Forms Server-Prozeß beendet wird, wenn keine Client-Kommunikation mit dem Forms Server stattfindet.


FORMSnn_USER_DATE/DATETIME_FORMAT

Zweck: Diese beiden Umgebungsvariablen legen die Formatmasken fest, die Forms zur Laufzeit benutzt, um Werte aus Elementen vom Typ DATE und DATETIME zu extrahieren, wenn diese Elemente keine eigenen individuellen, spezifischen Masken haben.

Standardwert: Siehe das Hilfethema Über Formatmasken für Datumsangaben.

Gültige Werte: Beliebige gültige Datum-/Datumzeit-Formatmaske. Mehrere Formatmasken können durch senkrechte Striche getrennt angegeben werden. Während der Konvertierung von Laufzeitelementen werden die Formatmasken in der angegebenen Reihenfolge benutzt, bis eine Konvertierung erfolgreich war (oder keine Formatmasken mehr vorhanden sind).

Beispiel:

FORMS65_USER_DATE_FORMAT  FXFMDD-MM-RRRR


FORMS60_USEREXITS

Standardwert:  Keiner

Gültige Werte:  Beliebige User Exit-DLL (zusammen mit dem absoluten Pfad)

Mit diesem Parameter können Sie mehrere DLLs definieren, die Fremdfunktionen enthalten, die aus der User Exit-Oberfläche aufgerufen werden können. Der Parameter FORMS60_USEREXITS umfaßt auch eine mit Semikolon begrenzte Liste der DLLs der Benutzeroberfläche.

Mit FORMS60_USEREXITS können mehrere DLLs angegeben werden. Benutzen Sie einen umgekehrten Schrägstrich (\), um die Verzeichnisse in einem Pfad voneinander zu trennen, und ein Semikolon (;), um vollständige Pfade voneinander zu trennen.

Wenn dieser Wert nicht explizit eingestellt wird, geht Form Builder von ORACLE_HOME\BIN\F45XTB.DLL aus.

Beispiel:

FORMS60_USEREXITS = C:\mathlib\add.dll;C:\mathlib\mult.dll


GRAPHICS60_PATH

Standardwert:  Keiner

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

GRAPHICS60_PATH=C:\oracle\apps\graphics;C:\myfiles

Dieser Parameter gibt den Suchpfad für Dateien an, die in einer Graphics-Laufzeitanwendung benutzt werden. Dies umfaßt Dateien von grafischen Anwendungen (.ogr), Bilder, externe Abfragen und andere Objekte, die die Anwendung zur Laufzeit aus einer Datei lädt. Wenn Sie z.B. die Bilddatei scooter.tif importieren, sucht Graphics Builder in den mit GRAPHICS60_PATH angegebenen Verzeichnissen nach dieser Datei.

Mit GRAPHICS60_PATH können mehrere Verzeichnisse angegeben werden. Benutzen Sie einen umgekehrten Schrägstrich (\), um die Verzeichnisse in einem Pfad zu trennen, und ein Semikolon (;), um vollständige Pfade zu trennen.


INTERRUPT (nur DOS SQL*Net-Benutzer)

Standardwert:  Keiner

Gültige Werte:  Derselbe Wert, der auch in der DOS-Datei CONFIG.ORA angegeben wird.

Mit diesem Parameter wird die Interrupt-Vektoradresse angegeben, die Oracle-Produkte unter DOS benutzen. Wenn Sie einen DOS SQL*Net-Treiber für Windows verwenden, überprüfen Sie Ihre Datei CONFIG.ORA im Oracle-Standardverzeichnis bei DOS. Wenn der INTERRUPT-Parameter in CONFIG.ORA eingestellt ist, müssen Sie ihn in der Registrierung auf denselben Wert einstellen. Wenn diese Variable in der DOS-Datei CONFIG.ORA nicht eingestellt ist, müssen Sie sie auch in der Registrierung nicht einstellen.

Hinweis:  Stellen Sie INTERRUPT nicht auf 103 ein, wenn Sie ein Speicherverwaltungsprogramm von einem fremden Hersteller benutzen, wie z.B. QEMM, 386MAX, CEMM oder EMM386. Sonst kommt es zu einem unerwarteten Verhalten nach dem Starten von SQLPME und SQL*Net.


LOCAL

Standardwert:  Keiner

Gültige Werte:  Beliebiges gültiges Präfix für  SQL*Net-Treiber, einschließlich Datenbank-Zeichenfolgenparametern. Weitere Informationen finden Sie in Oracle Network Administrator's Guide.

Dieser Parameter gibt den SQL*Net-Treiber und die vollständige DB-Adresse an, die das Produkt benutzt, wenn Sie bei der Anmeldung bei der Datenbank aus diesem Produkt heraus keinen Kommunikationstreiber angeben.

Wenn Sie den Parameter LOCAL hinzufügen, fügen Sie ihn nicht am Ende der Datei hinzu. Oracle-Produkte erkennen den LOCAL-Parameter nicht, wenn er als letzter Parameter angezeigt wird.

Hinweis:  Wenn Sie einen DOS SQL*Net-Treiber für Windows benutzen, prüfen Sie, ob der Parameter LOCAL in Ihrer Datei CONFIG.ORA im Oracle-Standardverzeichnis bei DOS gespeichert ist. Wenn LOCAL in CONFIG.ORA eingestellt ist, müssen Sie den Parameter in der Registrierung auf denselben Wert einstellen.


NLS_LANG

Standardwert:  AMERICAN_AMERICA.WE8ISO8859P1

Gültige Werte:  Im NLS Reference Manual finden Sie eine aktuelle Liste der verfügbaren Werte. Sie können auch die folgende Datei auf Ihrer CD überprüfen: \bonus\nls\nlsd2r1.wri

Beispiel:

NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1

Dieser Parameter bestimmt die Sprache, in der die Meldungsdateien angezeigt werden. NLS_LANG hat folgende Syntax:

NLS_LANG=<language>_<territory>.<char_set>

wobei:

language	die Sprache und die Regeln für die Anzeige von Meldungen sowie die Anzeige von Tages- und Monatsnamen angibt.
territory	das Land und die Regeln zur Berechnung der Wochen- und Tagesnummern angibt.
char_set	den Zeichensatz angibt, der für die Funktionen UPPER, LOWER und INITCAP verwendet wird, sowie die Sortierart, die von einer Abfrage ORDER BY benutzt wird. Dieses Argument kontrolliert auch den Zeichensatz, der zur Anzeige von Meldungen benutzt wird.


OleCreateObjPoolInMemory

Standardwert:  0

Gültige Werte:  0 oder 1

Beispiel:

OleCreateObjPoolInMemory=0

Bei Report Builder gibt dieser Parameter an, ob der OLE2-Objektpool in temporären Dateien (0) oder im Speicher (1) erstellt werden soll. Wenn Sie den Pool im Speicher erstellen, wird die Leistung verbessert, indem der Plattenzugriff reduziert wird. Wenn eine große Anzahl von OLE2-Objekten oder große OLE2-Objekte (z.B. Bilder) vorhanden sind, wird möglicherweise viel Speicherplatz benötigt. Bei der Festlegung der Anzahl von vorhandenen OLE2-Objekten beachten Sie, daß ein OLE2-Boilerplate-Objekt in einem Wiederholungsrahmen ein OLE2-Objekt enthält. Ein OLE2-Feld enthält ein OLE2-Objekt für jede Instanz des Feldes.


OleDoNotUpdateLinks

Standardwert:  0

Gültige Werte:  0 oder 1

Beispiel:

OleDoNotUpdateLinks=0

Bei Report Builder aktiviert (0) oder deaktiviert (1) dieser Parameter die Aktualisierung von Links, wenn Sie den Layouteditor öffnen oder den Bericht ausführen. Verknüpfte OLE2-Objekte enthalten im Cache gespeicherte Präsentationen von deren Quellobjekten. Diese im Cache gespeicherten Präsentationen werden von dem entsprechenden OLE2-Server basierend auf den bestehenden Objektdaten aktualisiert.

Diese Aktualisierungen erfolgen automatisch oder manuell je nach Linktyp. Da beim Aktualisieren der im Cache gespeicherten Präsentationen der OLE2-Server gestartet werden muß, können Sie die Aktualisierung deaktivieren, um die Leistung zu verbessern, wenn Sie wissen, daß die Quellobjekte nicht geändert wurden oder wenn Sie die neuesten Änderungen nicht benötigen. Beachten Sie, daß Sie Aktualisierungen immer noch aus dem Standard-Dialogfeld abbrechen können, das angezeigt wird, während die OLE2-Objekte aktualisiert werden, selbst wenn Sie diese Option nicht angeben.


OleUpdateLinksPrompt

Standardwert:  0

Gültige Werte:  0 oder 1

Beispiel:

OleUpdateLinksPrompt=0

Bei Report Builder gibt dieser Parameter an, daß eine Eingabeaufforderung ausgegeben (0) oder nicht ausgegeben (1) werden soll, wenn die Quelle eines verknüpften Objekts nicht gefunden wird. Wenn die Quelle eines Objekts während eines Aktualisierungsversuchs nicht gefunden wird, wird ein Dialogfeld angezeigt, in dem Sie die Quelle des Links erneut angeben oder den Fehler ignorieren können. Wenn Sie nicht präsent sind, um das Dialogfeld zu akzeptieren (der Bericht wird z.B. über Nacht ausgeführt), sollten Sie diese Eingabeaufforderung deaktivieren, um sicherzustellen, daß die Berichtausführung abgeschlossen wird.


ORACLE_HOME

Standardwert:  C:\ORAWIN95

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

ORACLE_HOME=C:\orawin95

Mit diesem Parameter wird das Standardverzeichnis angegeben, in dem Oracle-Produkte für Windows installiert sind. Dieses Verzeichnis ist das "oberste" Verzeichnis in der Oracle-Verzeichnishierarchie.

Verwendungshinweise

•	Wenn Sie Reports Runtime verwenden, darf die kombinierte Länge von ORACLE_HOME und ORACLE_PATH 255 Zeichen nicht überschreiten.


ORACLE_PATH

Standardwert:  Keiner

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

ORACLE_PATH=C:\oracle\apps\forms;C:\oracle\apps\graphics;
C:\oracle\apps\reports

Dieser Parameter gibt den Suchpfad für Dateien an, die von Forms, Graphics oder Reports Runtime referenziert werden. Beachten Sie, daß die von ORACLE_PATH angegebenen Verzeichnisse nach den Verzeichnissen durchsucht werden, die mit einem produktspezifischen Parameter angegeben werden: FORMS60_PATH, GRAPHICS60_PATH oder REPORTS60_PATH.

ORACLE_PATH kann mehrere Verzeichnisse angeben. Trennen Sie die Verzeichnisnamen in einer Liste mit Pfaden durch ein Semikolon (;).

Verwendungshinweise

•	Wenn Sie Reports Runtime benutzen, darf die kombinierte Länge von ORACLE_HOME und ORACLE_PATH 255 Zeichen nicht überschreiten.


ORAINFONAV_DOCPATH

Standardwert:  Keiner

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

ORAINFONAV_DOCPATH=C:\orawin95\oin

Dieser Parameter gibt den Speicherort des Inhaltsverzeichnisses und des Index für die Online-Dokumentation an.


REMOTE

Standardwert:  Keiner

Gültige Werte:  Beliebiges gültiges Präfix und Parameter für  SQL*Net-Treiber

Beispiel:

REMOTE=P:PIPER

Dieser Parameter gibt den Standard- und entfernten SQL*Net-Treiber an, der bei der Verbindung über eine lokale Datenbank benutzt werden soll. Dieser Parameter kann die standardmäßigen SQL*Net-Parameter (vollständige DB-Adresse) umfassen,

wobei P: das Netzwerk-Präfix für Named Pipes und Piper der Datenbankname ist.

Wenn sich ein Benutzer anmeldet und eine Verbindung mit einem expliziten Treiberpräfix angibt, das dem in REMOTE angegebenen Präfix entspricht, jedoch keine SQL*Net-Parameter angibt, werden die in REMOTE angegebenen Parameter benutzt. Mit diesem Parameter kann der DBA eine "normale" Netzwerkverbindung definieren, für die der SQL*Net-Benutzer keine Verbindungsparameter angeben muß. Sie können diesen Parameter jederzeit auf der Befehlszeile zurücksetzen.

Hinweis:  Wenn Sie einen DOS SQL*Net-Treiber benutzen, prüfen Sie, ob der Parameter REMOTE in Ihrer Datei CONFIG.ORA im Oracle-Standardverzeichnis bei DOS eingestellt ist. Wenn REMOTE in CONFIG.ORA eingestellt ist, müssen Sie den Parameter in der Registrierung auf denselben Wert einstellen.


REPORTS60_CGIDIAGBODYTAGS

Diese Variable gibt bei Reports Web CGI die HTML-Tags an, die als <BODY...>-Tags in der RWCGI60-Diagnose-/Debugging-Ausgabe eingefügt werden. Mit dieser Umgebungsvariablen können Sie z.B. die Text-/Hintergrundfarbe und Bilder einrichten.


REPORTS60_CGIDIAGHEADTAGS

Diese Variable gibt bei Reports Web CGI HTML-Tags an, die zwischen <HEAD> ... </HEAD>-Tags in der RWCGI60-Diagnose-/Debugging-Ausgabe eingefügt werden. Mit dieser Variablen können Sie z.B. die Tags <TITLE> oder <META...> einrichten.


REPORTS60_CGIHLP

Diese Variable gibt bei Reports Web CGI den URL/URI der Hilfedatei RWCGI60 an, zu dem navigiert wird, wenn RWCGI60 mit einer leeren Anforderung aufgerufen wird:

http://your_webserver/your_virtual_cgi_dir/rwcgi60.exe?

Wenn Sie REPORTS60_CGIHLP z.B. auf http://www.yahoo.com einstellen, wird zu diesem URL gegangen. Wenn die Variable auf myhelpfile.htm eingestellt wird, wird die Datei:

http://your_webserver/myhelpfile.htm

angezeigt. Wenn diese Variable nicht definiert ist, wird ein Standard-Hilfetext angezeigt.


REPORTS60_CGIMAP

Diese Variable definiert bei Reports Web CGI den vollständigen Dateinamen/Speicherort der RWCGI60-Zuordnungsdatei, wenn eine Konfiguration mit Zuordnungsdatei benutzt wird:

c:\orant\report60\mymap.dat


REPORTS60_CGINODIAG

Wenn diese Variable definiert ist, deaktiviert sie bei Reports Web CGI die gesamte Debugging-/Diagnose-Ausgabe von RWCGI60.

http://your_webserver/cgi-bin/rwcgi60.exe/help?

Verwendungshinweis:

Der Parameter kann nicht benutzt werden, wenn REPORTS60_CGINODIAG definiert ist.


REPORTS60_CGIPATHONLYURL

Wenn diese Variable definiert ist (wobei der Wert keine Rolle spielt), erzwingt sie bei Reports Web CGI, daß RWCGI60 alle URLs als partielle, Nur-Pfad-URLs an den Browser zurückgibt, d.h. anstatt folgendes zurückzugeben:

Location: http://your_webserver:port/path

wird nur:

Location: /path

Mit dieser Variablen können Probleme bei der Einrichtung von Web-Servern gelöst werden, die mehrere Ports benutzen, einschließlich einem Standard-Port.


 REPORTS60_COOKIE_EXPIRE

Standardwert:  30

Gültige Werte:  Beliebige Anzahl von Minuten

Beispiel:

REPORTS60_COOKIE_EXPIRE=30

Im Hinblick auf die Sicherheit von Reports Server bestimmt diese Variable die Leerlaufzeit des Cookie (z.B. REPORTS60_COOKIE_EXPIRE=30). Mit Cookies werden codierte Benutzernamen und Kennwörter auf der Client-Seite gespeichert. Wenn CGI einen Cookie von dem Client empfängt, vergleicht CGI die in dem Cookie gespeicherte Zeit mit der aktuellen Systemzeit.

Wenn die Zeit größer ist als die Anzahl von Minuten, die in dem Parameter REPORTS60_COOKIE_EXPIRE definiert ist (z.B. 30 Minuten), weist CGI den Cookie zurück und gibt die Form mit der Datenbank-Berechtigungsprüfung sowie eine Fehlermeldung an den Client zurück. Der Benutzer muß eine erneute Berechtigungsprüfung durchführen, um den Bericht ausführen zu können.


REPORTS60_DB_AUTH

Standardwert:  dbauth.htm

Gültige Werte:  Beliebige html-Datei mit speziellen Berechtigungsprüfungen. Es wird empfohlen, daß Sie den Standardwert beibehalten.

Beispiel:

REPORTS60_DB_AUTH=dbauth.htm

Diese Variable gibt die Vorlage zur Datenbank-Berechtigungsprüfung an, mit der Benutzer sich bei der Datenbank anmelden können.


REPORTS60_SYS_AUTH

Standardwert:  sysauth.htm

Gültige Werte: Beliebige html-Datei mit speziellen Berechtigungsprüfungen. Es wird empfohlen, daß Sie den Standardwert beibehalten.

Example:

REPORTS60_SYS_AUTH=sysauth.htm

Diese Variable gibt die Berechtigungsprüfungsvorlage an, mit der Benutzername und Kennwort geprüft werden können, wenn Benutzer Berichtanforderungen auf einem eingeschränkten Reports Server ausführen.


REPORTS60_ENCRYPTION_KEY

Standardwert:  Reports6.0

Gültige Werte:  Beliebiger Codierungsschlüssel

Beispiel:

REPORTS60_ENCRYPTION_KEY=reports6.0

Gibt den Codierungsschlüssel an, mit dem der Benutzername und das Kennwort codiert werden.


REPORTS60_REPORTS_SERVER

Gültige Werte:  Beliebiger Reports Server-Diensteintragsname

Beispiel:

REPORTS60_REPORTS_SERVER=repserver

Gibt die standardmäßigen Reports Server for Web Cartridge- oder Web CGI-Anforderungen an. Wenn dieser Parameter festgelegt ist, können Sie das Befehlszeilenargument SERVER in Berichtanforderungen weglassen, um diese mit dem Standard-Server auszuführen. Sie können das Befehlszeilenargument SERVER aber auch aufnehmen, um den Standardwert außer Kraft zu setzen.


REPORTS60_OWSDIAGBODYTAGS

Diese Variable gibt bei der Reports Web Cartridge HTML-Tags an, die als <BODY...>-Tag in der RWOWS60-Diagnose-/Debugging-Ausgabe eingefügt werden. Mit dieser Umgebungsvariablen könnten Sie z.B. Text-/Hintergrundfarbe, Bilder usw. einrichten.


REPORTS60_OWSDIAGHEADTAGS

Diese Variable gibt bei der Reports Web Cartridge HTML-Tags an, die zwischen <HEAD> ...</HEAD>-Tags in der RWOWS60-Diagnose-/Debugging-Ausgabe eingefügt werden. Sie könnten diese Umgebungsvariable z.B. benutzen, um <TITLE>- oder <META...>-Tags einzurichten.


REPORTS60_OWSHELP

Gültige Werte:  Beliebiger Pfad- und Dateiname oder URL

Diese Umgebungsvariable definiert bei Reports Web Cartridge den URL/URI der RWOWS60-Hilfedatei, zu dem navigiert wird, wenn RWOWS60 mit einer leeren Anforderung aufgerufen wird:

http://your_webserver/rwows60?

Wenn Sie diese Umgebungsvariable z.B. auf http://www.yahoo.com einstellen, wird zu diesem URL gegangen. Wenn sie auf myhelpfile.htm eingestellt wird, wird die folgende Datei angezeigt:

http://your_webserver/myhelpfile.htm

Wenn dieser Parameter nicht definiert ist, wird ein Standard-Hilfetext angezeigt.


REPORTS60_OWSMAP

Diese Variable definiert bei Reports Web Cartridge den vollständigen Dateinamen/Speicherort der RWOWS60-Zuordnungsdatei (sofern eine Konfiguration mit Zuordnungsdatei benutzt wird):

C:\ORANT\REPORTS60\MYMAP.DAT


REPORTS60_OWSNODIAG

Wenn diese Variable definiert ist, deaktiviert sie bei Reports Web Cartridge die gesamte Debugging-/Diagnose-Ausgabe aus RWOWS60:

http://your_webserver/rwows60/help?

Diese Variable kann nicht benutzt werden, wenn REPORTS60_OWSNODIAG definiert ist.


REPORTS60_OWSPATHONLYURL

Wenn diese Variable definiert ist (wobei der Wert keine Rolle spielt), veranlaßt sie bei Reports Web Cartridge, daß RWOWS60 Nur-Pfad-URLs (z.B. "/rscache/..." anstelle von "http://mywebsrv.com:1550/rscache/..." ) bei der HTTP-Umleitung zu der Berichtausgabe und in der von RWOWS60 generierten Diagnoseausgabe benutzt. Mit dieser Vorgehensweise kann der Client-Browser gezwungen werden, die URL-Originalanforderung in dem Feld "Speicherort:" beizubehalten, nachdem die Berichtausgabe abgerufen wurde. Normalerweise schaltet RWOWS60 den URL auf den Speicherort der Berichtausgabe um (d.h. das Verzeichnis, das mit REPORTS60_WEBLOC angegeben wird) und zeigt den Namen der Berichtausgabedatei an, die einen wenig aussagefähigen Namen wie z.B. 12345679.htm hat, da sie gerade generiert wurde. Durch Einstellung dieses Parameters kann diese "URL-Umschaltung" vermieden werden. Diese Variable kann nur benutzt werden, wenn alle URLs den Standard-Port verwenden (typischerweise 80).

Der Nachteil bei der Einstellung dieses Parameters besteht jedoch darin, daß zugehörige Dateien (wie z.B. Bilddateien), die von der Haupt-Berichtausgabedatei abhängig sind, vom Browser nicht abgerufen werden (obwohl sie erfolgreich an dem Speicherort erstellt wurden, auf den REPORTS60_WEBLOC zeigt). Dies kann umgangen werden, indem entweder ein Tag <BASE HREF="..."> oder <META HREF="..."> (wobei der Speicherort der Hauptdatei als vollständiger oder partieller URL angegeben wird) in der Berichtdefinition angegeben wird, so daß dieses Tag in der Haupt-Berichtausgabedatei aufgenommen wird. Sie können aber auch REPORTS60_WEBLOC so einstellen, daß auf den Speicherort der ausführbaren Datei RWOWS60 gezeigt wird.

Mit der Einstellung von REPORTS60_OWSPATHONLYURL können auch bestimmte Intranet-/Internet-Konfigurationen umgangen werden, bei denen derselbe Rechner mehrere unterschiedliche IP-Adressen gleichzeitig (bei verschiedenen Netzwerkkarten) haben kann, weil die Abhängigkeit der HTTP-Umleitung auf den Rechnernamen oder die IP-Adresse wegfällt.


REPORTS60_PATH

Standardwert:  ORACLE_HOME\REPORT60\DEMO;ORACLE_HOME\REPORT60\DEMO\BITMAP;ORACLE_HOME\REPORT60\DEMO\REQFILES

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

REPORTS60_PATH=C:\oracle\apps\reports;C:\myfiles

Mit dieser Umgebungsvariablen werden Berichte und externe Objekte gesucht, die Sie in Ihren Berichten verwenden, wie z.B. PL/SQL-Bibliotheken, externe Abfragen und externer Boilerplate. Mit dieser Variablen können Sie Berichte erstellen, die jederzeit betriebssystemübergreifend portiert werden können, indem Verzeichnispfade nicht mehr fest codiert werden müssen.

Hinweis: REPORTSPATH ist auf 256 Zeichen begrenzt.

Definieren Sie REPORTS60_PATH genau so, wie Sie andere Umgebungsvariablen in Ihrem Betriebssystem definieren, wobei Sie plattformspezifische Regeln berücksichtigen müssen, wie Pfadlänge usw.

Neben den Verzeichnispfaden können Sie das Schlüsselwort DB angeben, wenn Sie REPORTS60_PATH definieren. Damit wird Report Builder angewiesen, die Datenbank zu durchsuchen, bei der Sie momentan angemeldet sind.

Angenommen, Sie haben auf einer Unix-Plattform folgende Angaben gemacht:

setenv REPORTS60_PATH
/home/tkostin/pay:/home/tkostin/receive:DB

Report Builder durchsucht zuerst das Verzeichnis /home/tkostin/pay. Wenn die gewünschte Datei nicht gefunden wird, wird /home/tkostin/receive durchsucht. Wenn die Datei immer noch nicht gefunden wird, wird die Datenbank durchsucht, bei der Sie sich bei Beginn der Report Builder-Sitzung angemeldet haben.


REPORTS60_TERMINAL

Standardwert:  Keiner

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

REPORTS60_TERMINAL=C:\mytermdefs

Mit dieser Umgebungsvariablen werden Terminaldefinitionen gesucht, die Sie in Ihren Berichten im Zeichenmodus verwenden. Der Pfad, den Sie für diese Variable angeben, ist gegenüber der Umgebungsvariablen ORACLE_TERMINAL vorrangig.

Definieren Sie REPORTS60_TERMINAL genau wie andere Umgebungsvariablen in Ihrem Betriebssystem, wobei plattformspezifische Regeln wie Pfadlänge usw. berücksichtigt werden müssen.


REPORTS60_TMP

Standardwert:  Keiner

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

REPORTS60_TMP=C:\tmp

Mit dieser Umgebungsvariablen wird das Verzeichnis bestimmt, in dem die temporären Dateien von Report Builder gespeichert werden sollen. Report Builder benutzt nur ein Verzeichnis für diesen Zweck. Definieren Sie nicht mehr als ein Verzeichnis.

Definieren Sie VREPORTS60_TMP genau wie andere Umgebungsvariablen in Ihrem Basis-Betriebssystem, wobei plattformspezifische Regeln wie Pfadlänge berücksichtigt werden müssen. Wenn Sie REPORTS60_TMP nicht definieren, wird standardmäßig das aktuelle Arbeitsverzeichnis benutzt.


REPORTS60_USEREXIT

Standardwert:  Keiner

Gültige Werte:  Beliebige User Exit-DLL (zusammen mit dem zugehörigen absoluten Pfad)

Beispiel:

REPORTS60_USEREXIT=C:\mydll.dll;d:\mynew.dll;e:\bin\speed.dll

Mit diesem Parameter können Sie mehrere DLLs zur Benutzung durch Report Builder und die zugehörigen ausführbaren Dateien (z.B. Reports Runtime) definieren. Bei diesen DLLs handelt es sich um Programmodule, die von Ihnen erstellt wurden, damit sie von den ausführbaren Report Builder-Dateien aufgerufen werden können.

Mit REPORTS60_USEREXITS können mehrere DLLs angegeben werden. Trennen Sie die Verzeichnisse in einem Pfad durch einen umgekehrten Schrägstrich (\). Um vollständige Pfade zu trennen, verwenden Sie ein Semikolon (;).

Wenn dieser Wert nicht explizit eingestellt ist, sucht Report Builder nach einer 60xtb32.dll entsprechend der Pfadvariablen des Systems.


UI_ICON

Standardwert:  Keiner

Gültige Werte:  Beliebiges Verzeichnis in beliebigem Laufwerk

Beispiel:

UI_ICON=C:\icon

Diese Umgebungsvariable bestimmt das Verzeichnis, in dem Sie Symbole speichern möchten, die für Schaltflächen in dem Layout verwendet werden. Report Builder verwendet nur ein Verzeichnis für diesen Zweck. Definieren Sie nicht mehr als ein Verzeichnis.

Definieren Sie UI_ICON genau wie Sie andere Umgebungsvariablen in Ihrem Basis-Betriebssystem definieren, wobei plattformspezifische Regeln wie Pfadlänge usw. berücksichtigt werden müssen.


USERNAME

Standardwert:  Keiner

Gültige Werte:  Beliebiger gültiger Oracle-Benutzername (ohne das Präfix OPS$)

Beispiel:

USERNAME=dsanvita

Mit diesem Parameter wird der variable Teil eines standardmäßigen Anmelde-Accounts angegeben. In der Datenbankdokumentation finden Sie weitere Informationen über die Einstellung des Parameters USERNAME.


WIN_REMOTE_SESSIONS

Standardwert:  Keiner

Gültige Werte:  0-33

Wenn Sie bei der Anmeldung eine Fehlermeldung im Bereich ORA-3100 bis ORA-3199 erhalten, ist möglicherweise nicht genügend Echtzeitspeicher vorhanden, um einen Kommunikationspuffer mit einem Oracle-Server herzustellen. Dieses Problem wird mit NETINIT7.EXE gelöst, indem Speicher für Server-Verbindungen reserviert wird.

Dieser Parameter legt die Anzahl von Verbindungen mit einem entfernten Server fest, für die NETINIT7 Speicherplatz reservieren soll. Bei der Einstellung des Parameters WIN_REMOTE_SESSIONS berücksichtigen Sie folgende Regeln:

•	Wenn Sie WIN_REMOTE_SESSIONS auf 0 einstellen, reserviert NETINIT7 keinen Speicherplatz für entfernte Server-Verbidungen.

•	Wenn Sie WIN_REMOTE_SESSIONS auf die Werte 1 bis 33 einstellen, wird Speicher für die angegebene Anzahl von Verbindungen reserviert. Beachten Sie, daß NETINIT7 12 K Echtzeitspeicher für jede entfernte Server-Verbindung reserviert.

•	Ein empfohlener Wert für WIN_REMOTE_SESSIONS ist 5. Wenn Sie WIN_REMOTE_SESSIONS auf 5 einstellen, sollten genügend Sitzungen erstellt werden, damit Sie mehrere Produkte ausführen können.

•	Wenn Sie den Parameter WIN_REMOTE_SESSIONS nicht hinzufügen, reserviert NETINIT7 Speicherplatz für eine entfernte Server-Verbindung.

Führen Sie folgende Schritte aus, um NETINIT7 zu benutzen:

1	Konfigurieren Sie die Anzahl von Sitzungen, indem Sie den Parameter WIN_REMOTE_SESSIONS hinzufügen.

2	Erstellen Sie das Symbol NETINIT7 in der Oracle-Programmgruppe. (Weitere Informationen über das Erstellen von Symbolen finden Sie in der Microsoft Windows-Dokumentation.) Geben Sie den folgenden Pfad in das Feld Befehlszeile im Windows-Dialogfeld Programmeigenschaften ein:

ORACLE_HOME\bin\netinit7.exe

3	Starten Sie NETINIT7, indem Sie in der Oracle-Programmgruppe auf das Symbol doppelklicken. Stellen Sie sicher, daß NETINIT7 gestartet ist, bevor Sie ein Produkt starten. Wenn NETINIT7 automatisch beim Starten von Windows ausgeführt werden soll, nehmen Sie das Symbol NETINIT7 in der Windows-Programmgruppe START auf.

NETINIT7 versucht, Echtzeitspeicher für die konfigurierte Anzahl von Server-Verbindungen zu reservieren. Wenn NETINIT7 den erforderlichen Speicher nicht zuweisen kann, wird eine Warnmeldung angezeigt und die konkrete Anzahl von Sitzungen angegeben, für die Speicherplatz zugewiesen wurde.

Nachdem Speicherplatz zugewiesen wurde, wird NETINIT7 als Symbol angezeigt. Wenn Sie NETINIT7 wiederherstellen, wird die Gesamtanzahl von konfigurierten Sitzungen und der gesamte belegte Speicherplatz angezeigt. Wenn Sie NETINIT7 schließen, wird der nicht benötigte Sitzungsspeicher freigegeben. Wenn eine Anwendung immer noch Sitzungsspeicher benutzt, unterrichtet NETINIT7 Sie, daß sich die Anwendungen abmelden müssen, bevor der Sitzungsspeicher freigegeben werden kann.

Hinweis:  Wenn Sie ein Produkt vor NETINIT7 starten, weist dieses eigenen Sitzungsspeicher zu, der von NETINIT7 nicht erkannt wird. NETINIT7 versucht, den konfigurierten Sitzungsspeicher zusätzlich zu dem Speicher zuzuweisen, der schon von dem von Ihnen gestarteten Produkt zugewiesen wurde.


XMITTR (nur DOS-Benutzer)

Standardwert:  Keiner

Gültige Werte:  Derselbe Wert, wie in der DOS-Datei CONFIG.ORA angegeben.

Dieser Parameter gilt nur für Benutzer von ausführbaren Oracle-Routinen im geschützten Modus. Prüfen Sie die Datei CONFIG.ORA im Oracle-Standardverzeichnis bei DOS. Wenn der Parameter XMITTR in CONFIG.ORA eingestellt ist, müssen Sie ihn in der Registrierung auf denselben Wert einstellen. Wenn diese Variable in der DOS-Datei CONFIG.ORA nicht eingestellt ist, müssen Sie sie in der Registrierung ebenfalls nicht einstellen.

XMITTR (Extended Memory Manager Interrupt Vector) ist eine Variable, mit der der Interrupt-Vektor angegeben wird, der für die Einsprungstelle in die XMM/MTD-Interrupt-Services (Extended Memory Manager/Mode Transition Driver) benutzt werden soll. Um einen anderen Vektor zu benutzen, wird der neue Interrupt-Vektor in Form einer Dezimalzahl ausgedrückt. XMITTR darf nur benutzt werden, wenn ein anderes Programm in Ihrem System Interrupt100 decimal oder 64 hexadecimal benutzen muß.

Hinweis:  Stellen Sie XMITTR nicht auf 103 ein, wenn Sie ein Speicherverwaltungsprodukt von einem fremden Hersteller benutzen, wie z.B. QEMM, 386MAX, CEMM oder EMM386. Sonst kommt es nach dem Laden von SQLPME und SQL*Net zu einem unerwarteten Verhalten.


Über Resource-Dateien von Form Builder

  Verwandte Themen

Resource-Dateien sind Sammlungen zusammengehöriger Daten. Eine Anwendung, die Oracle Terminal unterstützt, umfaßt Resource-Dateien, mit denen ihr Verhalten und Erscheinungsbild beschrieben wird. Die Resource-Dateien von Form Builder definieren insbesondere logische Attribute für den Entwurf und die Laufzeit und Tastenzuordnungen für Form Builder.

Wenn Sie Oracle Terminal verwenden, um die Resource-Datei von Form Builder für Ihre Plattform zu bearbeiten, können Sie:

•	eine Tastenfolge mit einer Anwendungsfunktion verknüpfen, indem Sie eine Tastenzuordnung definieren.

•	eine Tastenfolge mit einem Tastentrigger von Form Builder verknüpfen, indem Sie eine Tastenzuordnung definieren.

•	das Erscheinungsbild (Schriftart, Muster, Farbe usw.) eines Form Builder-spezifischen Elements ändern.

Hinweis:  Die Namen von Resource-Dateien sind plattformspezifisch. Bei Microsoft Windows wird das Look-and-Feel von Form Builder-Anwendungen von der Resource-Datei FMRUSW.RES definiert.


Über die Benutzung von Oracle Terminal zur Neuzuordnung von Form Builder-Tastenbelegungen

  Verwandte Themen

Resource-Dateien verknüpfen Anwendungsfunktionen mit spezifischen Tasten, wobei sogenannte Tastenzuordnungen verwendet werden.

Eine Tastenzuordnung verbindet eine Taste mit einer Anwendungsfunktion. Wenn Sie eine Taste einer Funktion zuordnen, führt das Programm diese Funktion aus, wenn Sie diesen Tastenanschlag eingeben.

Durch die Definition von Tastenzuordnungen können Sie eine Vielzahl unterschiedlicher Tastaturen integrieren, damit eine Anwendung auf jeder der Tastaturen scheinbar identisch benutzt wird.

In einigen Fällen können Sie auch eigene Tastenzuordnungen für eine bestimmte Form Builder-Funktion definieren. Bei Microsoft Windows ist z.B. die Standard-Tastenzuordnung für [Tastenbelegung] Strg+F1. Mit Oracle Terminal könnten Sie die Funktion [Tastenbelegung] Strg+F2 oder einer anderen gewünschten Taste zuordnen.

Wenn Sie einen Key-Fn- oder Key-Other-Trigger erstellen, müssen Sie mit Oracle Terminal eine Taste mit der Funktion Key-Fn oder Key-Other verknüpfen. Wenn Sie eine Tastenzuordnung für den Trigger erstellen, kann dieser ausgelöst werden, wenn der Benutzer die mit dem Trigger verknüpfte Tastenfolge betätigt.

Die mit Hilfe von Oracle Terminal erstellten Tastenzuordnungen werden automatisch im Fenster Tastenbelegung angezeigt, wenn der Benutzer die Funktion Tastenbelegung aufruft.

Hinweis:  Tastenzuordnungen müssen eindeutig sein. Wenn Sie eine Tastenzuordnung definieren, müssen Sie sie mit jeder Bindekategorie vergleichen, um die Eindeutigkeit sicherzustellen.

Außerdem gibt es Funktionen mit mehreren Tastenzuordnungen.

Zum Beispiel ist [Akzeptieren] sowohl F10 als auch der Eingabetaste zugeordnet, je nach Kontext. Deshalb müssen Sie die Tastenzuordnung für jede Instanz ändern, um eine Tastenfolge konsistent einer Funktion zuzuordnen.

Bei einigen Plattformen könenn nicht alle Tasten neu zugeordnet werden. Da bei Microsoft Windows z.B.Tasten in dem Windows-Tastaturtreiber definiert sind, können bestimmte Tasten nicht von Oracle Terminal neu zugeordnet werden. In Windows integrale Tastenkombinationen, wie z.B. Alt-F4 (Fenster schließen) und F1 (Hilfe) können nicht neu zugeordnet werden. Generell gilt, Tasten, die Bestandteil der "erweiterten" Tastatur sind, können ebenfalls nicht neu zugeordnet werden. Diese Tasten umfassen den numerischen Tastenblock, die grauen Pfeil- und Editiertasten, sowie Druck, Rollen und Pause.

Oracle unterstützt die Neuzuordnung nur bei den Tasten von F0 bis F9.


Form Builder-Tastenzuordnung neu belegen

  Verwandte Themen

So belegen Sie eine Form Builder-Tastenzuordnung neu:

1	Starten Sie Oracle Terminal.

2	Öffnen Sie die entsprechende Resource-Datei von Form Builder (bei Microsoft Windows öffnen Sie FMRUSW.RES).

Hinweis:  Bevor Sie eine Resource-Datei von Form Builder ändern, sollten Sie eine Sicherungskopie anfertigen.

3	Wählen Sie Functions [image] Edit Keys.

Daraufhin wird der Key Binding Editor angezeigt und werden die Form Builder-Tastenzuordnungen nach Kategorie aufgeführt.

4	Doppelklicken Sie auf eine Kategorie, und ändern Sie die gewünschte Aktion und Zuordnung.

Um z.B. die Tastenzuordnung für [Tastenbelegung] zu ändern, doppelklicken Sie auf "windows-sqlforms", geben Sie die gewünschte Tastenzuordnung für Tastenbelegung an, und klicken Sie dann auf OK.

5	Wählen Sie File [image] Save, um die Änderungen zu speichern.

6	Wählen Sie Functions [image] Generate, um die Änderungen zu generieren und eine neue Resource-Datei zu erstellen, die die Änderungen enthält, die Sie an der Tastenzuordnung vorgenommen haben.

Daraufhin wird ein Warnfenster angezeigt, in dem Sie darauf hingewiesen werden, daß Ihre Resource-Datei erfolgreich generiert wurde. Akzeptieren Sie das Warnfenster.

7	12.Wählen Sie File [image] Save, um die Änderungen an der neuen Resource-Datei zu speichern.

8	Führen Sie Form Builder aus, um die neue Tastenzuordnung einzusetzen.


Tastenzuordnungen für einen Tastentrigger erstellen

  Verwandte Themen

So erstellen Sie eine Tastenzuordnung für einen Tastentrigger:

1	Erstellen Sie den Key-Fn- oder Key-Other-Trigger in Form Builder.

2	Öffnen Sie die entsprechende Resource-Datei von Form Builder mit Oracle Terminal (bei Microsoft Windows öffnen Sie FMRUSW.RES).

3	Wählen Sie Functions [image] Edit Keys, um den Key Binding Editor aufzurufen.

4	Im Key Binding Editor doppelklicken Sie auf windows-sqlforms, um das Fenster Key Binding Definition aufzurufen.

5	Klicken Sie auf die Schaltfläche Insert Row, und geben Sie dann die Aktion ein, die dem Key-Fn- oder Key-Other-Trigger entspricht. (Das folgende Diagramm gilt nur für Microsoft Windows.)

Key-Fn-Trigger	MicrosoftW-Aktion	MicrosoftW-Code
KEY-F0	Benutzerdefinierte Taste 0	82
KEY-F1	Benutzerdefinierte Taste 1	83
KEY-F2	Benutzerdefinierte Taste 2	84
KEY-F3	Benutzerdefinierte Taste 3	85
KEY-F4	Benutzerdefinierte Taste 4	86
KEY-F5	Benutzerdefinierte Taste 5	87
KEY-F6	Benutzerdefinierte Taste 6	88
KEY-F7	Benutzerdefinierte Taste 7	89
KEY-F8	Benutzerdefinierte Taste 8	90
KEY-F9	Benutzerdefinierte Taste 9	91
Wenn Sie z.B. einen KEY-F3-Trigger erstellt haben, geben Sie

 Benutzerdefinierte Taste 3

in das Feld Action ein.

6	Geben Sie eine Tastenzuordnung für den Key-Fn-Trigger ein, und klicken Sie dann auf OK.

So könnten Sie z.B. folgendes eingeben:

Aktion	Binding
Benutzerdefinierte Taste 3	Strg+F2
7	Klicken Sie auf die Schaltfläche Product Actions, um den Product Actions Editor aufzurufen.

8	Doppelklicken Sie auf die Kategorie sqlforms.

9	Klicken Sie auf die Schaltfläche Insert Row, geben Sie Action, Code und Description für den Key-Fn-Trigger ein, und klicken Sie auf OK.

Wenn Sie z.B. einen KEY-F3-Trigger erstellen, der ein Hilfesystem aufruft, geben Sie bei Microsoft Windows folgendes ein:

Aktion	Code	Beschreibung
Benutzerdefinierte Taste 3	85	[Hilfesystem]
10	10.Schließen Sie die Product Action- und Key Binding-Editoren, indem Sie auf die Schaltflächen OK klicken, und wählen Sie dann File [image] Save.

11	11.Wählen Sie Functions [image] Generate, um die Änderungen zu generieren und eine neue Resource-Datei zu erstellen, die die neu hinzugefügten Tastenzuordnungen enthält.

12	12.Wählen Sie File [image] Save, um die Änderungen an der neuen Resource-Datei zu speichern.

13	13.(Optional)  Setzen Sie das Attribut Tastatur-Hilfebeschreibung für Ihren Tastentrigger in Form Builder auf True, wenn die Tastenzuordnung für Ihren Trigger in dem Fenster Tastenbelegung angezeigt werden soll.


Über die Benutzung von Oracle Terminal zur Änderung der logischen Attribute von Form Builder

  Verwandte Themen

Sie können in Form Builder nicht nur standardmäßige und benannte visuelle Attribute einstellen, sondern können auch das Aussehen (d.h. die logischen Attribute) einer Form Builder-Anwendung ändern, indem Sie die Resource-Dateien von Form Builder ändern.

Die logischen Attribute von Form Builder sind in zwei Gruppen unterteilt: Zeichenmodus (cm_logicals) und GUI (forms_logicals).

Hinweis:  Aufgrund der begrenzten Anzahl von logischen GUI-Attributen, die mit Oracle Terminal definiert werden können, sollten Sie Form Builder verwenden, um benannte visuelle Attribute für die gewünschten GUI-Elemente zu erstellen, anstatt eine Resource-Datei von Form Builder mit Oracle Terminal zu ändern.

Über die Rangfolge von Attributen

Wenn Sie Resource-Dateien von Form Builder bearbeiten, geben Sie Schriftart- und Farbattribute für die logischen Zeichenmodus- oder GUI-Attribute an, wie z.B. field-current, field-non-current, pushbuttoncurrent, field-queryable usw.

Neben der Änderung von Resource-Dateien von Form Builder gibt es noch verschiedene andere Methoden, die Anzeigeattribute für Form Builder-Objekte zu ändern. So können Sie:

•	Standardattribute von Form Builder akzeptieren.

•	benutzerdefinierte visuelle Attribute definieren.

•	logische Attribute mit Oracle Terminal definieren.

•	Anzeigeattribute mit Ihrem Fensterverwaltungsprogramm definieren.

In vielen Fällen können Sie je nach ausgewählter Methode ein Attribut erstellen, das ein Attribut außer Kraft setzt, das auf einer höheren Ebene definiert ist.

Bei der Definition von Objektattributen beachten Sie folgende Regeln im Zusammenhang mit der Rangfolge von Attributen:

1	Fensterverwaltungsprogramm (niedrigste Ebene)

Die Definitionen des Fensterverwaltungsprogramms sind vorrangig gegenüber den Oracle Terminal-Definitionen, in Form Builder definierten visuellen Attributen, lokalen Definitionen von Umgebungsvariablen (Registrierung, CONFIG.ORA usw.) und den Standardattributen von Form Builder.

Bei Microsoft Windows werden Farbattribute für Schaltflächen z.B. ausschließlich über Windows verwaltet. Farbattribute, die Sie erstellen und für Schaltflächen in Form Builder anwenden, bleiben ohne Auswirkung auf Schaltflächen.

Um die Farbattribute einer Schaltfläche in einer Microsoft Windows-Umgebung zu ändern, benutzen Sie die Microsoft Windows Systemsteuerung.

2	Oracle Terminal-Definitionen

Oracle Terminal-Definitionen sind gegenüber anderen in Form Builder definierten visuellen Attributen, lokalen Definitionen von Umgebungsvariablen und Standardattributen von Form Builder vorrangig.

Angenommen, Sie erstellen ein benutzerdefiniertes visuelles Attribut für die Textobjekte in Ihrer Form, so daß die Textobjekte grau angezeigt werden. Weiterhin angenommen, Sie definieren alle abfragbaren Objekte mit Oracle Terminal zyanfarben. Bei der Ausführung Ihrer Form werden alle Textobjekte grau angezeigt, wenn Sie jedoch in den Abfragemodus gehen, werden die Textobjekte zyanfarben angezeigt.

In diesem Beispiel ist die Oracle Terminal-Definition vorrangig und setzt das Attribut der höheren Ebene außer Kraft (d.h. das benutzerdefinierte visuelle Attribut, das beim Entwurf erstellt wird).

3	Visuelle Attribute innerhalb von Form Builder

In Form Builder erstellte visuelle Attribute sind vorrangig gegenüber lokalen Definitionen von Umgebungsvariablen (Registrierung, CONFIG.ORA usw.) und Standardattributen von Form Builder.

Angenommen, Sie erstellen und wenden ein benanntes visuelles Attribut für die Textobjekte in Ihrer Form an. Weiter angenommen, Sie erstellen die lokale Umgebungsvariable FORMS60_DEFAULTFONT in der Registrierung (oder in CONFIG.INI), so daß die Objektbeschriftungen mit Courier 10 Punkt angezeigt werden.

Zur Laufzeit ist das benannte visuelle Attribut vorrangig, und Form Builder zeigt alle Textobjekte entsprechend den Eigenschaften an, die Sie mit Ihrem benannten visuellen Attribut definiert haben.

4	Lokale Definitionen von Umgebungsvariablen

Lokale Definitionen von Umgebungsvariablen (Registrierung, CONFIG.ORA usw.) sind vorrangig gegenüber Standardattributen von Form Builder.

Wenn Sie z.B. Ihre Registrierungsdatei bearbeiten und die Standardschriftart (FORMS60_DEFAULTFONT) als Courier 10 Punkt definieren, zeigt Form Builder Objektbeschriftungen mit Courier 10 Punkt an.

In diesem Beispiel ist die Standardschriftart in der Registrierung vorrangig und setzt die Standard-Schriftartattribute für Objekte außer Kraft.

5	Standardattribute von Form Builder (höchste Ebene)

Form Builder wendet Standardattribute für jedes Objekt an. Zur Laufzeit sucht Form Builder nach den entsprechenden Farb-, Muster- und Schriftarteigenschaften für ein bestimmtes Objekt und zeigt dieses dann mit den Standardattributen an.


Logische Attribute von Form Builder ändern

  Verwandte Themen

So ändern Sie ein logisches Attribut von Form Builder:

1	Starten Sie Oracle Terminal.

2	Öffnen Sie die entsprechende Resource-Datei von Form Builder mit Oracle Terminal (bei Microsoft Windows öffnen Sie FMRUSW.RES).

3	Wählen Sie Functions [image] Edit Attributes.

4	Wählen Sie cm_logicals oder form_logicals aus der Dropdown-Liste Attribute List.


Über die Optionen in Edit Attribute Node

Das Fenster Edit Attribute Node enthält die folgenden Optionen zur Definition der Schriftart- und Farbelemente eines logischen Attributs.

Schriftartattribute

Schriftartattribute umfassen:

•	Schrift

•	Schriftgrad

•	Stil

•	Stärke

•	Breite

Zur Laufzeit übergibt Form Builder diese Einstellungen an das Fensterverwaltungsprogramm. Wenn die angegebene Schriftart im Laufzeit-Betriebssystem nicht verfügbar ist, verwendet Form Builder die Schriftart, die den Eigenschaften der angegebenen Schriftart am nächsten kommt.

Farb- und Füllmusterattribute

Sie können die folgenden Farb- und Musterattribute in einer benutzerdefinierten oder benannten visuellen Attributdefinition angeben:

Vordergrund- und Hintergrundfarbe  Farbe wird für Objekte auf einer Vordergrundebene und einer Hintergrundebene angewandt. Sie geben die Farbe jeder Ebene an, indem Sie die Attribute Vordergrundfarbe und Hintergrundfarbe festlegen.

Muster  Sie können das Muster-Attribut für jedes der vordefinierten Muster einstellen, die in Ihrem System verfügbar sind. Muster werden nach Name gekennzeichnet. So ist z.B. das Muster mit dem Namen thinline45 ein Muster aus dünnen, diagonalen Linien auf einem durchgezogenen Hintergrund.

So wirkt sich das Füllmuster auf Farbattribute aus

Form Builder rendert das ausgewählte Muster in den Vordergrund- und Hintergrundfarben, die für ein Objekt angewandt werden. Nach dem Auswählen der Vordergrund- und Hintergrundfarben wird in der Füllmusterpalette angezeigt, wie das Muster aussehen wird.

•	Wenn das aktuelle Muster Durchgezogen ist (das schwarze Quadrat in der Musterpalette), wird das Objekt in der Farbe angezeigt, die mit dem Attribut Vordergrundfarbe angegeben wird.

•	Wenn das aktuelle Muster Transparent ist (das weiße Quadrat in der Musterpalette im Layouteditor), wird das Objekt in der Farbe angezeigt, die von dem Attribut Hintergrundfarbe angegeben wird.

•	Wenn das aktuelle Muster Kein lautet, ist das Objekt transparent, und weder eine Vordergrund- noch eine Hintergrundfarbe werden angewandt. (Alles, was sich hinter dem Objekt befindet, ist zu sehen.)

Hinweis:  Das Muster Transparent ist für Objekte nicht gültig und kann in der Füllmusterpalette nicht ausgewählt werden. Dort können nur Typen aus der Attributpalette ausgewählt werden. Für optimale Ergebnisse verwenden Sie das Muster Transparent für Objekte (das weiße Quadrat in der Musterpalette im Layouteditor).


Über logische Zeichenmodus-Attribute von Form Builder

Benutzen Sie Oracle Terminal, um die Standardwerte für Form Builder-spezifische visuelle Attribute für Zeichenmodus-Terminals zu ändern, die unten aufgeführt werden.

Attributname	Kontext, in dem das Attribut benutzt wird
ToolkitDisabled	Allgemeines Attribut
ToolkitEnabled	Allgemeines Attribut
ToolkitCurrent	Allgemeines Attribut
ToolkitDisabledMnemonic	Allgemeines Attribut
ToolkitEnabledMnemonic	Allgemeines Attribut
ToolkitCurrentMnemonic	Allgemeines Attribut
NormalAttribute	Normaler Hintergrund für Fenster
Normal	Textobjekt
Bold	Fett für alle Objekte (einschließlich Kontrollkästchen)
Bold-text	Boilerplate
Bold-inverse	Fett invers für alle Objekte
Underline	Unterstreichung für alle Objekte
Boilerplate	Konstanter Text
WindowTitleCurrent	Titel des aktiven Fensters
Menü	Ausgewähltes Menü
Sub-menu	Ausgewähltes Untermenü
Full-screen-title	Bildschirmtitel
Menu-title	Aktueller Menütitel
Menu-subtitle	Aktueller Menüuntertitel
Menu-bottom-title	Aktueller Titel am Ende des Menüs
MenuItemEnable	Aktiviert, nicht aktueller Menüpunkt
MenuItemDisabled	Deaktivierter Menüpunkt
MenuItemSelect	Aktueller Menüpunkt
MenuItemEnableMnemonic	Abkürzungstaste für einen aktivierten Menüpunkt
MenuItemDisableMnemonic	Abkürzungstaste für einen deaktivierten Menüpunkt
MenuItemSelectMnemonic	Abkürzungstaste des aktuellen Menüpunkts
TextControlCurrent	Aktueller Feld- oder Texteditor
Field-current	Farbe für aktuelles Textobjekt
TextControlNonCurrent	Deaktiviertes oder nicht aktuelles Feld oder Texteditor
Field-non-current	Farbe für Textobjekt, das gerade nicht ausgewählt ist
TextControlSelect	Ausgewählter Text in einem aktivierten Feld oder Texteditor
Field-selected-current	Gerade ausgewähltes Textobjekt
Field-selected-non-current	Textobjekt, das gerade nicht ausgewählt ist
Field-queryable	Feld, das der Operator abfragen kann
PushButtonDefault	Standard- oder aktuelle Schaltfläche
PushButtonNonDefault	Nicht-Standard-Schaltfläche
Button-non-current	Nicht aktuelle Schaltfläche
Button-current	Aktuelle Schaltfläche
Warnfenster	Warntext
AlertIcon	Symbol in einem Warnfenster
AlertMessage	Meldungstext in einem Warnfenster
AlertBackground	Warnfenster-Hintergrund
Listtitle	Wertelistentitel
ListItemSelect	Ausgewähltes Objekt in einer Textliste
ListItemNonSelect	Nicht ausgewähltes Objekt in einer Textliste
ListPrefix	Listenpräfix
ScrollThumb	Bildlauffeld in einer Bildlaufleiste


Über logische GUI-Attribute von Form Builder

Benutzen Sie Oracle Terminal, um die GUI-Standardwerte für Form Builder-spezifische visuelle Attribute zu ändern, die unten aufgeführt werden.

Attributname	Kontext, in dem das Attribut benutzt wird
TextControlFailValidation	Textobjekt, das nicht validiert werden kann
ItemQueryDisabled	Textobjekt, das explizit vom Operator deaktiviert wird, damit es nicht als Abfragekriterium aufgenommen werden kann
Status-Message	Meldung in der Statusleiste
Status-Hint	Hinweis in der Statusleiste
Status-Empty	Statusleiste ohne Text
Status-Items	Indikatoren auf der Statusleiste
Scroll-bar-fill, Inverse, Inverse-underline, Bold-underline, Bold-inverse-underline	Diese logischen Attribute sind keine ausschließlichen Attribute von Form Builder. Deshalb können diese logischen Attribute von den visuellen Attributen außer Kraft gesetzt werden, die vom Fensterverwaltungsprogramm definiert werden.


Parameter definieren


Über Formparameter

Mit Parametern können die Werte von Eingaben, die von einer Form beim Starten gefordert werden, einfach definiert und festgelegt werden. Formparameter sind Variablen vom Typ CHAR, NUMBER oder DATE, die Sie bei der Entwicklung definieren.

Sie können Parameterwerte an eine Form übergeben, wenn eine Anwendung die vordefinierten Prozeduren CALL_FORM, NEW_FORM, OPEN_FORM oder RUN_PRODUCT ausführt.

Operatoren können Werte für Formparameter beim Starten der Form angeben, indem sie diese auf der Befehlszeile mit der Standard-Befehlszeilensyntax eingeben.

Ein auf der Befehlszeile eingegebener Parameterwert setzt den Standardwert außer Kraft, der für den Parameter bei der Entwicklung angegeben wurde.

Im folgenden Beispiel sind MODULE, USERID und DEBUG vordefinierte Befehlszeilenparameter. CITY ist ein benutzerdefinierter Formparameter, der in der Form trade bei der Entwicklung definiert wurde.

ifrun60 MODULE=trade USERID=scott/tiger debug=YES city="BOGOTA"

Hinweis:  Ein Parameter muß bei der Entwicklung definiert worden sein, bevor Sie beim Starten einer Form einen Wert für den Parameter angeben können. Das heißt, die Form muß den Parameterwert erwarten, den sie beim Starten entweder über die Befehlszeile oder über eine Parameterliste empfängt. Wenn Sie versuchen, einen Wert für einen Parameter zu übergeben, der in der Form nicht vorhanden ist, kommt es zu einem Fehler.

In den folgenden Abschnitten wird beschrieben, wie Parameter in einer Form bei der Entwicklung erstellt werden, wie Parameterwerte programmgesteuert festgelegt und referenziert werden und wie Parameterlisten für die Übergabe von Parameterwerten an aufgerufene Forms zur Laufzeit erstellt werden.


Parameter erstellen

  Verwandte Themen

Wenn Sie einen Parameter erstellen, geben Sie dessen Namen, Datentyp, Länge und Standardwert an.

So erstellen Sie einen Parameter:

1	Erstellen Sie einen Parameter im Objektnavigator.

Um einen Parameter zu erstellen, wählen Sie den Knoten Parameter im Objektnavigator aus, und wählen Sie dann Navigator [image] Erstellen.

2	Legen Sie die gewünschten Parameterattribute in der Attributpalette fest:

Parameter-Datentyp	Geben Sie CHAR, NUMBER oder DATE an.
Parameter-Ausgangswert	Der Standardwert des Parameters. Muß mit dem Parameter-Datentyp und der Länge kompatibel sein.
Länge	Die maximale Anzahl von Zeichen, die in dem Parameter gespeichert werden können. Länge gilt nur für Parameter vom Typ CHAR, wobei die Länge maximal 64 K umfassen kann. Für die Parameter NUMBER werden standardmäßig 23 Byte und für die Parameter DATE 7 Byte benutzt.
Name	Der interne Name des Parameters.


Parameter referenzieren

In PL/SQL können Sie Werte von Formparametern mit der Syntax von Bindevariablen referenzieren und festlegen.

So referenzieren Sie einen Parameter:

Setzen Sie das reservierte Wort PARAMETER vor den Parameternamen, wie in den folgenden Beispielen dargestellt:

:PARAMETER.parameter_name := 'TOKYO';

Oder

:block.item := :PARAMETER.parameter_name;


Über das indirekte Referenzieren von Parametern

  Verwandte Themen

Sie können die Syntax von Bindevariablen nicht benutzen, um einen Parameter in einem Trigger, einer benutzerdefinierten Routine, einem Menübefehl oder einer gespeicherten Prozedur direkt zu referenzieren, die nicht in demselben Modul deklariert ist, wie der Parameter selbst.

So referenzieren Sie einen Parameter indirekt:

Verwenden Sie die vordefinierten Prozeduren NAME_IN und COPY, um den Wert des Parameters indirekt festzulegen und zu referenzieren:

Name_In('PARAMETER.my_param')
Copy('SAN JUAN', 'PARAMETER.my_param')

Hinweis:  Wenn Sie Parameter indirekt referenzieren, werden die Parameter in einfache Anführungszeichen gesetzt. Vor ihnen steht kein Doppelpunkt.


Über das Referenzieren von Parametern beim Festlegen von Objektattributen

Sie können Formparameter in den folgenden Objektattributen referenzieren:

•	WHERE- und ORDER BY-Klauseln für einen Datenblock (in der Attributpalette angegeben, wenn Sie den gewünschten Block im Objektnavigator auswählen, bzw. programmgesteuert über SET_BLOCK_PROPERTY)

•	Ausgabeobjekt-Attribut für eine Werteliste (im Dialogfeld Werteliste Spaltenzuordnung angegeben)

•	Ausgangswert-Attribut für ein Objekt (in der Attributpalette angegeben, wenn Sie das entsprechende Objekt im Objektnavigator auswählen)

•	Höchster zulässiger Wert und Niedrigster zulässiger Wert-Attribute für ein Textobjekt (in der Attributpalette angegeben, wenn Sie das gewünschte Textobjekt auswählen)


Parameterlisten erstellen und übergeben

Parameter werden an aufgerufene Forms mit Hilfe einer Parameterliste übergeben. Eine Parameterliste ist ein benanntes, programmgesteuertes Konstrukt, das einfach aus einer Liste mit Parameternamen (als Schlüssel bezeichnet) und deren Werten besteht.

Sie können Parameterwerte an Forms übergeben, die mit den vordefinierten Prozeduren CALL_FORM, OPEN_FORM und NEW_FORM aufgerufen werden. Außerdem können Sie Parameterwerte an andere Oracle-Werkzeuge mit der vordefinierten Prozedur RUN_PRODUCT übergeben.

Ein Parameter, den Sie in einer Parameterliste aufnehmen, kann entweder ein Textparameter oder ein Datenparameter sein. Mit dem Parametertyp wird bestimmt, wie der Wert interpretiert wird.

Textparameter	Der Wert eines Textparameters, der an ein aufgerufenes Produkt übergeben wird, ist eine Zeichenfolge vom Typ CHAR, die folgendes darstellen kann:

•	Einen benutzerdefinierten Formparameter, der in einer Form definiert ist, die mit den vordefinierten Prozeduren CALL_FORM, OPEN_FORM oder NEW_FORM aufgerufen wird

•	Eine Befehlszeile oder ein benutzerdefinierter Parameter für ein Produkt, das mit der vordefinierten Prozedur RUN_PRODUCT aufgerufen wird

Datenparameter	Der Wert eines Datenparameters, der an ein aufgerufenes Produkt übergeben wird, entspricht immer dem Namen einer Datensatzgruppe, die in der aktuellen Form definiert ist. (Eine Datensatzgruppe ist eine Datenstruktur, in der Datensätze gespeichert sind, die aus einer Abfrage oder über eine programmgesteuerte Zuweisung abgeleitet werden.) Mit Datenparametern werden Daten an Produkte übergeben, die mit der vordefinierten Prozedur RUN_PRODUCT aufgerufen werden. Sie können keine Datenparameter an Forms übergeben.

In der folgenden Tabelle wird die Struktur einer Parameterliste dargestellt, die vier Parameter enthält:

Schlüssel	Paramtyp	Wert
CITY	Textparameter	'BOGOTA'
CATEGORY	Textparameter	'EXPORTS'
MULTIPLIER	Textparameter	'.0275'
NEW_DATA	Datenparameter	'RECORD_GROUP8'


Parameterlisten erstellen

Mit den folgenden vordefinierten Prozeduren können Sie Parameterlisten erstellen:

•	ADD_PARAMETER

•	CREATE_PARAMETER_LIST

•	DELETE_PARAMETER

•	DESTROY_PARAMETER_LIST

•	GET_PARAMETER_ATTR

•	GET_PARAMETER_LIST

•	SET_PARAMETER_ATTR

Tip:  Beim Erstellen von Parameterlisten berücksichtigen Sie folgendes:

•	CREATE_PARAMETER_LIST ist eine Funktion, deren Rückgabewert der ID der erstellten Liste entspricht. Sie müssen die ID einer Variablen zuweisen, die Sie als Typ PARAMLIST (einen Form Builder-Datentyp) deklariert haben.

•	Mit einem Aufruf von CREATE_PARAMETER_LIST wird eine Parameterliste erstellt, die noch keine Parameter enthält. Um Parameter zu der Liste hinzuzufügen, führen Sie die Prozedur ADD_PARAMETER aus.

•	GET_PARAMETER_ATTR und SET_PARAMETER_ATTR können benutzt werden, um Typ und Wert eines Parameters einzulesen und festzusetzen, der mit der vordefinierten Prozedur ADD_PARAMETER zu einer Parameterliste hinzugefügt wurde. Benutzen Sie diese vordefinierten Prozeduren nicht, um den Wert eines Formparameters einzulesen oder festzulegen, der bei der Entwicklung definiert wurde. Statt dessen referenzieren Sie den Parameter mit der Bindevariablensyntax oder einer indirekten Referenz.

•	GET_PARAMETER_LIST ist eine Funktion, die die ParamList-ID einer angegebenen Parameterliste zurückgibt, wie die Funktionen FIND-* für andere Objekttypen.

Das folgende Beispiel erstellt eine Parameterliste, fügt zwei Parameter zu der Liste hinzu und übergibt die Liste dann mit der Prozedur CALL_FORM an eine Form:

/*
** Declare a variable of type ParamList to store
** the parameter list ID
*/
DECLARE
   list_id   ParamList;
BEGIN
/*
** Create a parameter list named "input_params"
*/
   list_id := Create_Parameter_List('input_params');

/*
** Add two parameters to the list to pass values for each
** user-defined parameters defined in the target form; for each
** parameter, specify its key, type (text or data), and value
*/
   Add_Parameter(list_id, 'CITY',TEXT_PARAMETER,'BOGOTA');
   Add_Parameter(list_id, 'CATEGORY',TEXT_PARAMETER,'EXPORTS');

/*
** Now call the form, referencing the parameter list ID
** in the last argument to the CALL_FORM procedure
*/
   Open_Form('trade',ACTIVATE,NO_SESSION,list_id);
END;

Standard-Parameterliste

Jede Form umfaßt eine vordefinierte Parameterliste mit dem Namen Standard. Die Parameterliste Standard enthält alle Formparameter, die bei der Entwicklung in der Form definiert wurden. Wenn Sie z.B. die Parameter p1, p2 und p3 bei der Entwicklung in Form A definieren, werden diese automatisch in der Standard-Parameterliste für Form A aufgenommen.

Die Standard-Parameterliste kann an eine aufgerufene Form übergeben werden, indem sie in der Argumentliste der vordefinierten Prozeduren OPEN_FORM, CALL_FORM oder NEW_FORM aufgenommen wird.

DECLARE
    the_list PARAMLIST:= Get_Parameter_List('default');
BEGIN
    Open_Form('form_B',ACTIVATE, NO_SESSION,'default');
END;


Parameterlisten übergeben

Um einen oder mehrere Parameter an eine aufgerufene Form zu übergeben, muß die aufrufende Form die folgenden Schritte in einem Trigger oder einer benutzerdefinierten Routine ausführen:

•	Ausführen der vordefinierten Prozedur CREATE_PARAMETER_LIST , um eine Parameterliste programmgesteuert zu erstellen

•	Ausführen der vordefinierten Prozedur ADD_PARAMETER , um einen oder mehrere Parameter zu der Parameterliste hinzuzufügen

•	Ausführen der vordefinierten Prozedur DELETE_PARAMETER , um einen oder mehrere Parameter in der Parameterliste zu löschen

•	Ausführen der vordefinierten Prozeduren CALL_FORM, NEW_FORM, OPEN_FORM oder RUN_PRODUCT und Aufnahme des Namens oder der ID der Parameterliste, die an die aufgerufene Form übergeben werden muß


Parameterattribute angeben

  Verwandte Themen

Wenn Sie einen Parameter mit ADD_PARAMETER zu einer Parameterliste hinzufügen, müssen Sie drei Parameterattribute angeben:

Key	Der Name des Parameters

Paramtype	Der Parametertyp, entweder DATA_PARAMETER oder TEXT_PARAMETER

Value	Der Parameterwert. Bei einem TEXT_PARAMETER ist der Wert ein beliebiger Wert vom Typ CHAR. Bei einem DATA_PARAMETER ist der Wert immer der CHAR-Name einer Datensatzgruppe, die in der aktuellen Form definiert ist.


Über PECS

Als Form Builder-Entwickler oder Systemadministrator haben Sie möglicherweise Fragen zur Leistung von Form Builder und Ihren eigenen Anwendungen. Mit den Performance Event Collection Services (PECS) von Form Builder können Sie Fragen wie die folgenden beantworten:

•	Wieviel abgelaufene Zeit ist erforderlich, um Wertelisten in drei Feldern in der Form zu verwenden?

•	Wie lange dauert es, bis diese Trigger ausgeführt sind?

•	Wie viele Rechnungen pro Stunde können wir erzeugen?

•	Wurden alle Trigger in der Form getestet?

•	Wurden alle Zeilen des PL/SQL-Codes getestet?

PECS-System

Das PECS-System besteht aus drei Hauptkomponenten:

•	Vordefinierten PECS, mit denen anwendungsspezifische Ereignisse definiert werden

•	PECS-Assistent, einer Form Builder-Anwendung, mit der Sie PECS-Daten laden und anzeigen können

•	PECS-Berichten, mit denen Sie die Ergebnisse der Tests online anzeigen und auf Hardcopy ausdrucken können

PECS-Messungen

PECS ist ein Werkzeug zur Leistungsmessung, das wenig zusätzlichen Speicherplatz beansprucht, mit dem Sie folgende Aufgaben ausführen können:

•	Messung der Ressourcennutzung für Form Builder-Ereignisse

Die einfachste Möglichkeit, PECS zu benutzen, besteht darin, nur Form Builder-Ereignisse zu messen. Wenn Sie nur Form Builder-Ereignisse messen möchten, müssen Sie keine vordefinierten PECS zu dem PL/SQL-Code hinzufügen, weil Form Builder vordefinierte PECS-Ereignisse zur Messung der Leistung von Objekten enthält, wie Triggern, Fenstern, Leinwänden, Wertelisten und Warnfenstern.

•	Messung der Ressourcennutzung für anwendungsspezifische Ereignisse (CPU-Zeit und abgelaufene Zeit)

Wenn Sie Aufrufe von vordefinierten PECS in Ihrem PL/SQL-Code hinzufügen, können Sie die Leistung von anwendungsspezifischen Ereignissen sowie Form Builder-Ereignisse messen.

•	Lokalisieren von Leistungsproblemen

•	Geltungsbereich der Messung

Wenn Sie eine Form Builder-Anwendung testen, möchten Sie möglicherweise den Geltungsbereich der Testfälle ermitteln. Mit dem PECS Object Coverage Report erhalten Sie Informationen über den Geltungsbereich der aktuellen Testfolge.

Der PECS Line Coverage Report enthält Informationen über den Geltungsbereich des PL/SQL-Codes.


Leistungsdaten über Form Builder-Ereignisse erfassen

Da Form Builder vordefinierte PECS-Ereignisse enthält, können Sie sowohl Leistung als auch Geltungsbereich messen, ohne Änderungen in Ihrer Anwendung durchzuführen. PECS mißt:

•	Die Leistung der ganzen Anwendung, der Trigger und Wertelisten.

•	Den Geltungsbereich von Prozeduren, Fenstern, Leinwänden, Editoren und Warnfenstern sowie den zeilenweisen Geltungsbereich für den PL/SQL-Code.

Der Prozeß besteht aus drei Schritten:

1	Starten Sie Ihre Anwendung mit dem folgenden Befehl mit eingeschaltetem PECS, um Leistungsdaten in einer .DAT-Datei zu erfassen:

ifrun60 module=myform userid=scott/tiger pecs=on

Sie können aber auch in dem Dialogfeld Forms Runtime-Optionen die Option Ein bei PECS-Daten erfassen angeben.

Wenn Sie Form Builder mit PECS ausführen, wird eine PECS-Binärdatei erstellt, die standardmäßig den Modulnamen mit einer Dateinamenerweiterung von .DAT hat.

myform.dat

Die Daten werden in eine Datei und nicht direkt in die Datenbank geschrieben.

2	Laden Sie die Daten aus der .DAT-Datei und die Form in die Datenbank.

Benutzen Sie den PECS-Assistenten, um sowohl die Form als auch die PECS-Binärdatei (.DAT) in die Datenbank zu laden.

Weitere Informationen über den PECS-Assistenten finden Sie in dem Abschnitt "Über die Benutzung des PECS-Assistenten" später in diesem Kapitel.

3	Analysieren Sie die Daten.

Nachdem die PECS-Datenbankdatei erstellt wurde, überprüfen Sie die Ergebnisse:

•	Benutzen Sie die Fenster Data oder Summary des PECS-Assistenten, um die Ergebnisse online anzuzeigen, oder

•	Führen Sie die Performance-, Object Coverage- oder Line Coverage-Berichte aus, und zeigen Sie die Ergebnisse online an bzw. drucken diese als Hardcopy aus.

Auch wenn Sie die vordefinierten PECS-Prozeduren nicht benutzen müssen, um Leistungsdaten über Form Builder-Ereignisse zu erfassen, können Sie die vordefinierten Prozeduren benutzen, um den Fokus der PECS-Experimente zu begrenzen. Wenn Sie z.B. nur an Wertelistenereignissen interessiert sind, können Sie die vordefinierte Prozedur PECS.DISABLE_CLASS benutzen, um alle Ereignisse mit Ausnahme der Wertelistenereignisse auszuschalten.


Über das Erfassen von Leistungsdaten zu anwendungsspezifischen Ereignissen

 Beispiele

Um PECS zur Messung anwendungsspezifischer Ereignisse zu benutzen, definieren Sie zuerst die zu messenden Ereignisse, indem Sie die vordefinierten PECS-Prozeduren zu dem PL/SQL-Code hinzufügen. (Um optimale Ergebnisse zu erzielen, definieren Sie nur einige der wichtigsten Ereignisse.)

Wenn Sie PECS für die Erfassung von Leistungsdaten zu anwendungsspezifischen Ereignissen verwenden, wird die Leistungsmessung in fünf Schritten ausgeführt:

•	Gruppieren anwendungsspezifischer Ereignisse

•	Definieren der zu messenden Ereignisse mit den vordefinierten PECS-Prozeduren

•	Ausführen der Anwendung mit PECS

•	Laden der Form und der PECS-Daten aus der Datei in die Datenbank

•	Analysieren der Daten

Gruppieren anwendungsspezifischer Ereignisse

Anwendungsspezifische Ereignisse sind die Unternehmenstransaktionen, die Sie definieren: In einer Bankanwendung könnten Sie z.B. die Ereignisse Deposit, Withdrawal und Transfer (Einzahlung, Abhebung und Überweisung) definieren.

Sie können ähnliche Ereignisse in Klassen gruppieren, um Berichte zu erstellen, in denen die Testergebnisse aussagefähig dargestellt werden. In einer Bankanwendung könnten Sie zwei Klassen erstellen:

•	Eine Banking-Klasse, die aus drei Ereignissen besteht:

•	Deposit-Ereignis

•	Withdrawal-Ereignis

•	Transfer-Ereignis

•	Eine Customer-Klasse, die aus drei Ereignissen besteht:

•	AddCustomer-Ereignis

•	DeleteCustomer-Ereignis

•	ChangeCustomer-Ereignis

Definieren von PECS-Ereignissen

Nachdem Sie die zu messenden Ereignisse ausgewählt haben, bereiten Sie Ihre Anwendung zur Benutzung von PECS vor, indem Sie die vordefinierten PECS-Prozeduren zu Ihrem PL/SQL-Code hinzufügen:

•	PECS starten:

•	Beim Entwurf, indem Sie die vordefinierte Prozedur PECS.COLLECTOR zu Ihrer Anwendung hinzufügen (um nur Daten zu anwendungsspezifischen Ereignissen zu erfassen) oder

•	Zur Laufzeit durch Aufrufen von PECS aus der Befehlszeile (um Daten über Form Builder-Ereignisse und anwendungsspezifische Ereignisse zu erfassen)

•	Hinzufügen von benötigten Klassen und Ereignissen mit den vordefinierten Prozeduren PECS.ADD_CLASS und PECS.ADD_EVENT

•	Aktivieren des zu messenden Klassen- oder spezifischen Ereignisses mit der vordefinierten Prozedur PECS.ENABLE_CLASS

•	Definieren der zu messenden Ereignisse:

•	Begrenzen Sie diese durch die vordefinierten Prozeduren PECS.START_EVENT und PECS.END_EVENT, oder

•	Markieren Sie diese mit PECS.POINT_EVENT.

Um PECS aus der Befehlszeile aufzurufen, stellen Sie PECS=ON für den Objektgeltungsbereich und PECS=FULL für den Objekt- und Zeilengeltungsbereich ein.

Hinweis:  Sie können vordefinierte PECS-Prozeduren überall dort benutzen, wo Sie auch andere Form Builder-Prozeduren benutzen können: Trigger, benutzerdefinierte Routinen, PL/SQL-Menübefehle und gespeicherte Prozeduren. Während Sie die Dauer einer PL/SQL-Prozedur nicht direkt messen können, können Sie einen Trigger definieren, der die Prozedur aufruft, und dann die Dauer dieses Triggers messen.

Ausführen der Anwendung mit PECS

Nachdem Sie die vordefinierten PECS-Prozeduren zu Ihrer Anwendung hinzugefügt haben, erstellt PECS bei der Ausführung der Form automatisch eine Binärdatei, die die Testdaten enthält:

•	Wenn Sie PECS aus der Befehlszeile gestartet haben, entspricht der Name der PECS-Binärdatei standardmäßig dem Formnamen mit der Dateinamenerweiterung .DAT:  myform.dat.

•	Wenn Sie PECS durch Hinzufügen der vordefinierten Prozedur PECS.COLLECTOR zu Ihrer Anwendung gestartet haben, entspricht der Name der PECS-Binärdatei standardmäßig dem Namen der ersten Klasse, die Sie mit der vordefinierten Prozedur PECS.ADD_CLASS angegeben haben:  banking.dat.

Laden der Form und der PECS-Daten in die Datenbank

Benutzen Sie den PECS-Assistenten, um sowohl die Form als auch die PECS-Binärdatei in die Datenbank zu laden. Weitere Informationen finden Sie in dem Abschnitt "Über die Benutzung des PECS-Assistenten" später in diesem Kapitel.

Hinweis:  Bei PECS müssen Sie die Form nicht in der Datenbank speichern, wenn Sie keine Statistik für den Geltungsbereich benötigen. Allerdings benötigt PECS einige Tabellen, die automatisch von den Tabellenskripts von Form Builder 5.0 erstellt werden, die während der Installation ausgeführt werden, wenn Sie die Option Datenbanktabellen erstellen ausgewählt haben. Wenn Sie diese Option nicht ausgewählt haben, müssen Sie oder der DBA sich als SYSTEM anmelden und diese SQL-Skripts ausführen, die im SQL-Ordner von Form Builder gespeichert sind.

Analysieren der Daten

Nachdem die Datei PECS .DAT in die Datenbank geladen wurde, können Sie die Ergebnisse mit dem PECS-Assistenten anzeigen.

•	Benutzen Sie die Fenster Data und Summary, um die Ergebnisse online anzuzeigen, oder

•	Führen Sie die Performance-, Object Coverage- oder Line Coverage-Berichte aus, und zeigen Sie die Ergebnisse online an bzw. drucken diese als Hardcopy aus.

Nächster Schritt

Nachdem Sie die Daten analysiert haben, können Sie folgendermaßen fortfahren:

•	Wenn Sie debuggen, können Sie die Anwendung ändern und dieselben Tests erneut ausführen.

•	Wenn Sie die Leistung testen, können Sie denselben Test möglicherweise mehrmals ausführen, Mittelwerte der Statistik ermitteln und die Ergebnisse mit den vorherigen Tests vergleichen.

•	Wenn Sie den Geltungsbereich testen, können Sie den Test ändern, um Testfälle hinzuzufügen, um weitere Bedingungen abzudecken, und den Test dann erneut ausführen und die Ergebnisse mit früheren Tests vergleichen.


Beispiele für das Erfassen von Leistungsdaten zu anwendungsspezifischen Ereignissen

Angenommen, Sie haben sich dafür entschieden, sowohl interne Form Builder-Ereignisse als auch drei anwendungsspezifische Ereignisse zu messen: Deposit, Withdrawal und Transfer. Im folgenden Beispiel wird dargestellt, wie die vordefinierten PECS-Prozeduren hinzugefügt werden, um diese Ereignisse für PECS zu definieren.

(Da Sie beide Arten von Ereignissen messen möchten, hätten Sie PECS über die Befehlszeile starten können. In diesem Beispiel wird PECS jedoch zu Demonstrationszwecken mit der vordefinierten Prozedur PECS.COLLECTOR gestartet.)

PACKAGE globals IS
/* We will create a package of global variables instead of     */
/* local variables because the pecs.event and pecs.class types */
/* may be spread across various procedures, triggers, and      */
/* even forms.                                                 */

/*                                                             */
/*   Add the classes.                                          */
/*                                                             */
banking PECS.class  := PECS.Add_Class('Banking');
myform  PECS.class  := PECS.Add_Class(PECS.FORMS);
/*                                                            */
/*   Add the events for the class 'Banking'.                  */
/*   No need to add events for the class 'Form'               */
/*   because they are pre-defined internal events.            */
withdraw pecs.event  := PECS.Add_Event(banking,'Withdraw');
deposit pecs.event   := PECS.Add_Event(banking,'Deposit');
transfer pecs.event  := PECS.Add_Event(banking,'Transfer');

END globals;

/*   Trigger: When-New-Form-Instance                        */
/*   Enable PECS                                            */

BEGIN
PECS.Collector(COLLECT_ON);

/*                                                          */
/*   Enable the classes                                     */
/*                                                          */

PECS.Enable_Class(GLOBALS.banking);
/*                                                          */
/* After the forms class has been enabled,                  */
/* internal forms events will be measured.                  */
/* NOTE: This line is not needed if you use the             */
/*       PECS=on command line option.                      */

PECS.Enable_Class(GLOBALS.myform);
END;

PROCEDURE do_withdraw

/*                                                          */
/*   This is the code that does the Withdraw Event.         */
/*                                                          */

DECLARE
withdraw_handle number;

BEGIN

/*                                                          */
/*   Start the Withdraw event               .               */
/*                                                          */

withdraw_handle := PECS.Start_Event(GLOBALS.withdraw,
'Withdrawing cash');

.
.   /do the withdraw/
.

PECS.End_Event(GLOBALS.withdraw,withdraw_handle);
END;


Daten über den Geltungsbereich von Objekten erfassen

Wenn Sie eine Form Builder-Anwendung testen, können Sie PECS auch als Werkzeug zur Qualitätssicherung benutzen. Mit dem PECS Object Coverage Report können Sie den Prozentsatz des Geltungsbereichs auswerten, der durch die aktuellen Testfälle abgedeckt wird.

Wenn Sie PECS ausführen, um Informationen über Form Builder-Ereignisse zu erfassen, entweder separat oder in Verbindung mit der Erfassung von Informationen über anwendungsspezifische Ereignisse, können Sie sowohl den Object Coverage Report als auch den Performance Report ausführen.

Bei Überprüfung des Object Coverage Reports können Sie feststellen, ob die aktuelle Gruppe mit Testfällen alle Form Builder-Objekte in Ihrer Anwendung überprüft. Sie können z.B. prüfen, ob alle Trigger, Prozeduren, Warnfenster, Fenster und Leinwände bei der Ausführung der aktuellen Gruppe mit Testfällen überprüft werden und können Bereiche ermitteln, in denen Sie neue Testfälle erstellen müssen, um den Geltungsbereich zu erweitern.

Hinweis:  Wenn Sie eine Geltungsbereichstatistik benötigen, müssen Sie Ihre Form in der Datenbank speichern.


Daten über den Geltungsbereich von Zeilen erfassen

Sie können nicht nur auf den einfachen Geltungsbereich von Testfällen testen, sondern können auch auf den zeilenweisen Geltungsbereich des PL/SQL-Codes in Triggern und Prozeduren testen. Mit dem PECS Line Coverage Report können Sie den Prozentsatz des PL/SQL-Zeilengeltungsbereichs auswerten, der von der aktuellen Gruppe mit Testfällen abgedeckt wird.

Um Daten über den Geltungsbereich von Zeilen zu erhalten, gehen Sie folgendermaßen vor:

•	Kompilieren Sie die Form mit debug=ON.

•	Führen Sie sie mit PECS=FULL aus.

•	Wählen Sie das Kontrollkästchen Line Coverage im PECS-Assistenten.

•	Wählen Sie Line Coverage Report.

Hinweis:  Um Daten über den Geltungsbereich von Zeilen zu erfassen, müssen Sie die PECS-Befehlszeilenoption (PECS=FULL) verwenden, anstatt PECS mit der vordefinierten Prozedur PECS.ENABLE_CLASS aufzurufen.


PECS-Assistenten benutzen

 Beispiele

Der PECS-Assistent bietet folgende Funktionen:

Um folgende Schritte auszuführen:	Verwenden Sie folgendes Fenster:
PECS-Daten in Tabellen laden	Load
Daten anzeigen	Data, Summary
Informationen über Klassen und Experimente anzeigen	Class, Experiment
Über die PECS-Hierarchie

Der PECS-Assistent fordert Sie auf, Namen von Vorkommen, Ereignissen, Klassen, Ausführungen und Experimenten anzugeben.

Diese Begriffe werden in der PECS-Hierarchie wie folgt benutzt:

Diese Gruppe:	Besteht aus:
Experiment	Einem oder mehreren Testläufen. Experimente sind Eigentümer von Testläufen.
Ausführung	Einem Durchgang durch die Anwendung vom Anfang bis zum Ende. Eine einzelne .DAT-Datei entspricht einem einzelnen Durchgang eines Experiments.
Klasse	Einer Gruppe zusammengehöriger Ereignisse. Klassen sind Eigentümer von Ereignissen.
Ereignis	Einer anwendungsspezifischen oder formspezifischen Transaktion mit einem definierten Anfang und Ende.
Auftreten	Einem Beispiel eines bestimmten Ereignisses.
Schritte bei der Benutzung der PECS-Assistenten

Nachdem Sie eine Form mit aktiviertem PECS ausgeführt haben, können Sie den PECS-Assistenten verwenden:

1	Bei der Eingabeaufforderung geben Sie den folgenden Befehl ein, um den PECS-Assistenten auszuführen: ifrun60 module=pecs

Der PECS-Assistent zeigt das Hauptfenster an. Sie können mit den Schaltflächen oder den Befehlen im Menü Window zu den anderen Fenstern navigieren.

2	Klicken Sie auf Load.

Daraufhin zeigt der PECS-Assistent das Fenster Load an.

3	Füllen Sie den Abschnitt "PECSaData" aus, um das Experiment auszuwählen, das in die Datenbank geladen werden soll.

Wenn die Datei nicht vorhanden ist, wird eine entsprechende Fehlermeldung angezeigt.

Hinweis:  Füllen Sie den Abschnitt "Connect String" nur aus, wenn Sie eine DB-Adresse benutzen möchten, die sich von der Adresse unterscheidet, mit der Sie die Form gestartet haben. Für weitere Informationen drücken Sie Help.

4	Kreuzen Sie die entsprechenden Kontrollkästchen an.

Die Kontrollkästchen "Load PECS data in the database" und "Summarize data" sind standardmäßig ausgewählt.

Wenn Sie Daten über den Geltungsbereich von Zeilen aufnehmen möchten, kreuzen Sie das Kontrollkästchen "Prepare for Line Coverage" an.

Hinweis:  Die Vorbereitung für den Geltungsbereich von Zeilen ist zeitaufwendig, so daß der "Belegt"-Cursor während einiger Zeit angezeigt wird.

Wenn Sie die detaillierten Daten löschen möchten, nachdem die Summendateien erstellt wurden, kreuzen Sie das Kontrollkästchen "Delete details after summary" an.

5	Klicken Sie auf Start.

PECS zeigt Bestätigungsmeldungen für jedes ausgewählte Kontrollkästchen an.

Nachdem Sie jede Bestätigung akzeptiert haben, verarbeitet PECS die Daten und zeigt während der Verarbeitung Statusmeldungen im Bereich "Status" an und bereitet die Ergebnisse zur Überprüfung vor.

6	Um die Ergebnisse anzuzeigen, wählen Sie Navigation [image] Experiment oder Navigation [image] Class.

7	Aus dem Fenster Experiment oder Class führen Sie eine Abfrage durch, um das gewünschte Experiment bzw. die gewünschte Klasse auszuwählen.

PECS zeigt die Ergebnisse der Abfrage an.

8	Heben Sie das gewünschte Experiment bzw. die gewünschte Klasse hervor.

9	Klicken Sie auf Zoom In.

PECS zeigt das Fenster Summary an, in dem die summierten Daten dargestellt werden. Im Fenster Summary werden die Informationen in einem Format angezeigt, das dem Format in den PECS-Berichten ähnlich ist.

10	Klicken Sie erneut auf Zoom In, um die detaillierten Ergebnisse eines PECS-Experiments zu überprüfen.

PECS zeigt die detaillierten Ergebnisse im Fenster Data an.

PECS-Berichte

Um die PECS-Berichte auszuführen, wählen Sie das Menü Reports:

•	Wählen Sie den Performance Report aus, um die abgelaufene Zeit und die CPU-Zeit anzuzeigen.

•	Wählen Sie den Object Coverage Report aus, um anzuzeigen, daß bestimmte Ereignisse oder Vorkommen erreicht wurden.

•	Wählen Sie den Line Coverage Report aus, um den Geltungsbereich des PL/SQL-Codes darzustellen.

Standardmäßig werden in dem Performance Report Daten in der Reihenfolge der Spalten angezeigt, wie im Bildschirm Data oder Summary dargestellt. Um die Reihenfolge in dem Bericht zu ändern, ändern Sie die Order By-Klausel im Fenster Data oder Summary Performance Report.

PECS-Verwaltung

Um Daten über definierte Klassen und Experimente zu überprüfen, gehen Sie ins Hauptfenster zurück, und klicken Sie auf Class oder Exp (Experiment):

•	Benutzen Sie das Fenster Class, um Daten über die Klassen und Ereignisse anzuzeigen, die Sie mit den vordefinierten PECS-Prozeduren definiert haben.

Sie können mit diesem Fenster eine minimale Verwaltung der Klassen durchführen. So können Sie z.B. Klassennamen ändern und Versionsinformationen hinzufügen.

•	Benutzen Sie das Fenster Experiment, um Daten über Experimente und Durchläufe anzuzeigen, die Sie mit vordefinierten PECS-Prozeduren definiert haben.

Mit diesem Fenster können Sie eine minimale Verwaltung von Experimenten durchführen. So können Sie z.B. Experimentnamen ändern und Kommentarinformationen hinzufügen. (Sie haben den Experimentnamen vorher im Fenster Load oder in der Befehlszeile mit der Option -n angegeben.)

Benutzung von .DAT-Dateien

Mit PECS können Sie mehrere vorher erstellte .DAT-Dateien laden, um erneut Experimente auszuführen oder um Mittelwerte in Leistungsstatistiken zu ermitteln. So könnten Sie z.B. für Form A .DAT-Dateien in einer Folge wie dieser verwenden:

•	Experiment 1, Durchlauf 1:  Erzeugt die A.DAT-Originaldatei. Sie werten die Geltungsbereichergebnisse von Durchlauf 1 aus und beschließen, weitere Testfälle hinzuzufügen, um den Geltungsbereich zu verbessern.

•	Experiment 1, Durchlauf 2:  Erzeugt eine neue A.DAT-Datei.

•	Wenn sie außerdem die Ergebnisse von Durchlauf 2 in die Datenbank laden, aktivieren Sie Summarize im Fenster Load an, um Daten aus allen Durchläufen dieses Experiments zu summieren.

Benutzung von PECSLOAD

Sie können das PECS-System auch direkt über die Befehlszeile ohne den PECS-Assistenten aufrufen. Rufen Sie das Dienstprogramm PECSLOAD aus der Befehlszeile auf, um die PECS-Binärdatei in die Datenbank zu laden. Während der Ausführung von PECSLOAD werden sowohl Klassen als auch Ereignisse in der Datenbank gespeichert, wenn sie noch nicht gespeichert sind.

Speicherort der PECS-Datendatei

Wenn Sie den PECSLOAD-Befehl verwenden, muß PECS zuerst feststellen, wo die Binärdatei (.DAT) gespeichert wurde. Die PECS-Datendatei ist im allgemeinen in einem temporären Ordner gespeichert, der von einer Umgebungsvariablen bestimmt wird, wie unten dargestellt:

Umgebung	PECS-Standardordner/Umgebungsvariable
Microsoft Windows	TMP
UNIX	FORMS_PECS
VMS	SYS$SCRATCH
Wenn die Umgebungsvariable nicht eingestellt ist, benutzt PECS den aktuellen Arbeitsordner.

Wenn Sie den Befehl PECSLOAD ausgeben und eine Fehlermeldung wie "Error opening file" erhalten, sucht PECS möglicherweise nach der Datendatei und kann diese nicht finden. In diesem Fall geben Sie den PECSLOAD-Befehl erneut aus und geben den vollen Pfadnamen anstelle des Modulnamens an.

PECS-Datenbanktabellen

Sie können die PECS-Datenbanktabellen abfragen, um eine Datenverarbeitung durchzuführen oder bestimmte PECS-Informationen abzurufen, wie z.B. einen Experimentnamen oder eine Experimentnummer. PECS benutzt die folgenden Datenbanktabellen:

•	PECS_run

•	PECS_experiment

•	PECS_class

•	PECS_class_events

•	PECS_data

•	PECS_summary

•	PECS_plsql

Benutzen Sie SQL-Befehle, um eine Liste der Spalten in jeder Tabelle zu erhalten.


Beispiele für die Benutzung des PECS-Assistenten

Beispiel 1 Benutzung von PECSLOAD mit einem Experimentnamen:

PECSLOAD -f mymod.dat -n my_experiment scott/tiger

Beispiel 2 Benutzung von PECSLOAD mit einer Experimentnummer:

PECSLOAD -f mymod.dat -e 3 scott/tiger


Über vordefinierte PECS-Prozeduren

Mit den vordefinierten PECS-Prozeduren können Sie anwendungsspezifische Ereignisse für das PECS-System definieren:

Um folgende Schritte auszuführen:	Benutzen Sie diese vordefinierte PECS-Prozedur
PECS starten und stoppen	PECS.COLLECTOR
Klassen und Ereignisse registrieren	PECS.ADD_CLASSPECS.ADD_EVENT
Klassen aktivieren und deaktivieren	PECS.ENABLE_CLASSPECS.DISABLE_CLASS
Ereignisinstanzen definieren	PECS.START_EVENTPECS.END_EVENTPECS.POINT_EVENT


PECS.ADD_CLASS

 Beispiele

Syntax

PECS.ADD_CLASS(class_name);

PECS.ADD_CLASS(class_type);

Prozedurtyp   Uneingeschränkte Prozedur

Rückgabewert  PECS.CLASS

Beschreibung

PECS.ADD_CLASS erstellt die Klasse oder Gruppe von Ereignissen in PECS und gibt die ID für diese Klasse zurück. Benutzen Sie diese Klassen-ID, um die Klasse in späteren Aufrufen von PECS zu identifizieren. Der Datentyp der Klassen-ID ist PECS.CLASS.

Parameter

class_type	Gibt den Typ der hinzuzufügenden Klasse an. Gültige numerische Konstante für diesen Parameter:

PECS.FORMS	Gibt Form Builder an.

class_name	Gibt den Namen der hinzuzufügenden Klasse an. Geben Sie den CHAR-Klassennamen für anwendungsspezifische Klassen an, die keinen der oben aufgeführten Klassentypen verwenden.

Verwendungshinweise

Wenn Sie PECS gestartet haben, indem Sie die vordefinierte Prozedur PECS.COLLECTOR zu Ihrer Anwendung hinzugefügt haben, entspricht der Name der PECS-Binärdatei dem Namen der ersten Klasse, die Sie mit der vordefinierten Prozedur PECS.ADD_CLASS angegeben haben: banking.dat. (Wenn Sie PECS aus der Befehlszeile gestartet haben, entspricht der Name der PECS-Binärdatei dem Formnamen mit der Erweiterung .dat: myform.dat.)


Beispiele für PECS.ADD_CLASS

/*

/*   This will add the class FORMS                           */
/*                                                           */
forms_class pecs.class := PECS.Add_Class(pecs.FORMS);

/*                                                           */
/*   This will add the class 'Banking'                       */
/*                                                           */
banking_class pecs.class := PECS.Add_Class('Banking');


PECS.ADD_EVENT

 Beispiele

Syntax

PECS.ADD_EVENT(class_id, event_type);

PECS.ADD_EVENT(class_id, event_description);

Prozedurtyp   Uneingeschränkte Prozedur

Rückgabewert  PECS.EVENT

Beschreibung

PECS.ADD_EVENT fügt ein Ereignis zu einer angegebenen Klasse hinzu.

Geben Sie für ein Form Builder-Ereignis den Ereignistyp aus der Liste mit Form Builder-Ereignistypen an. Geben Sie für ein anwendungsspezifisches Ereignis das Ereignis mit event_description an, wobei die Beschreibung eindeutig unter den Ereignissen in der Klasse sein muß.

Parameter

class_id	Gibt die ID dieser Klasse an. Die Klassen-ID wird mit einem Aufruf von PECS.ADD_CLASS erstellt und hat den Datentyp PECS.CLASS.

event_type	Gibt bei Form Builder-Ereignissen den Ereignistyp an. Gültige numerische Konstanten für diesen Parameter sind PECS.LINE, PECS.FORMS_TRIGGER,  PECS.FORMS_LOV, PECS.FORMS_20TRIGGER (Form Builder V2-Triggerereignis), PECS.FORMS_PROCEDURE, PECS.FORMS_ALERT, PECS.FORMS_CANVAS, PECS.FORMS_WINDOW, PECS.FORMS_EDITOR.

Geben Sie bei anwendungsspezifischen Ereignissen event_type aus der Tabelle PECS_EVENTS an, oder benutzen Sie den Parameter event_description.

event_description	Gibt bei anwendungsspezifischen Ereignissen das Ereignis an. Die Beschreibung ist auf 32 Zeichen vom Typ CHAR begrenzt.


Beispiele für PECS.ADD_EVENT

/*

/*   This will add the class 'Banking'                       */
/*                                                           */

banking_class pecs.class := PECS.Add_Class('Banking');

/*                                                           */
/*   This will add the event Withdraw.                       */
/*   banking_class was previously defined by PECS.ADD_CLASS  */

withdraw pecs.event := PECS.Add_Event(banking_class, 'Withdraw');


PECS.COLLECTOR

 Beispiele

Syntax

PECS.COLLECTOR(collector_status);

Prozedurtyp   Uneingeschränkte Prozedur

Beschreibung

Benutzen Sie PECS.COLLECTOR, um PECS ein- oder auszuschalten. Mit dieser vordefinierten Prozedur können Sie PECS später starten, wenn Sie PECS nicht über die Befehlszeile aufgerufen haben. PECS.COLLECTOR muß einmal pro Sitzung aufgerufen werden.

Parameter

collector_status	Ein NUMBER-Parameter, mit dem angegeben wird, ob PECS ein- oder ausgeschaltet ist:

PECS.COLLECT_ON     Schaltet den Kollektor ein.

PECS.COLLECT_OFF    Schaltet den Kollektor aus.

Verwendungshinweise

•	Sie müssen PECS.COLLECTOR nicht benutzen, wenn Sie PECS mit der Befehlszeilenoption pecs=on eingeschaltet haben.

•	Auch wenn Sie den Status von PECS.COLLECTOR umschalten können, kann dies zu nicht übereinstimmenden Ergebnissen führen. Wenn PECS z.B. ausgeschaltet wird, nachdem ein Triggerereignis gestartet wurde, ist möglicherweise kein entsprechendes Endereignis vorhanden. Beim Laden der .DAT-Datei erkennt PECS dies und gibt eine Warnmeldung aus, daß für ein Startereignis kein Endereignis vorhanden ist oder umgekehrt.


Beispiele für PECS.COLLECTOR

PECS.COLLECTOR(pecs.collect_on);


PECS.DISABLE_CLASS

 Beispiele

Syntax

PECS.DISABLE_CLASS(class_id);

PECS.DISABLE_CLASS(class_id, event_type);
PECS.DISABLE_CLASS(class_id, event_id);

Prozedurtyp   Uneingeschränkte Prozedur

Beschreibung

Um alle mit einer Klasse verknüpften Ereignisse zu deaktivieren, geben Sie nur die class_id an:

PECS.DISABLE_CLASS(class_id);

Um nur ein bestimmtes Ereignis zu deaktivieren, geben Sie die class_id und den event_type bzw. die event_id an:

PECS.DISABLE_CLASS(class_id, event_type);
PECS.DISABLE_CLASS(class_id, event_id);

Parameter

class_id	Gibt die ID dieser Klasse an. Die Klassen-ID wird mit einem Aufruf von PECS.ADD_CLASS erstellt und hat den Datentyp PECS.CLASS.

event_type	Gibt bei Form Builder-Ereignissen den Ereignistyp an. Gültige numerische Konstanten für diesen Parameter sind PECS.LINE, PECS.FORMS_TRIGGER,  PECS.FORMS_LOV, PECS.FORMS_20TRIGGER (Form Builder V2-Triggerereignis), PECS.FORMS_PROCEDURE, PECS.FORMS_ALERT, PECS.FORMS_CANVAS, PECS.FORMS_WINDOW, PECS.FORMS_EDITOR.

event_id	Gibt die ID dieses Ereignisnamens an. Die Ereignis-ID wird mit einem Aufruf von PECS.ADD_EVENT erstellt und hat den Datentyp PECS.EVENT.


Beispiele für PECS.DISABLE_CLASS

/*   Disable the internal Form Builder LOV event.            */

PECS.Disable_Class(forms_class, PECS.FORMS_LOV);

/*  Disable the Withdraw event for Banking_class.            */
/*  Banking_class was previously defined with PECS.ADD_CLASS */
/*  Withdraw was previously defined with PECS.ADD_EVENT      */

PECS.Disable_Class(banking_class, withdraw);


PECS.ENABLE_CLASS

 Beispiele

Syntax

PECS.ENABLE_CLASS(class_id);

PECS.ENABLE_CLASS(class_id, event_type);
PECS.ENABLE_CLASS(class_id, event_id);

Prozedurtyp   Uneingeschränkte Prozedur

Beschreibung

Um alle mit einer Klasse verknüpften Ereignisse zu aktivieren, geben Sie nur die class_id an:

PECS.ENABLE_CLASS(class_id);

Um nur ein bestimmtes Ereignis zu aktivieren, geben Sie die class_id und den event_type bzw. die event_id an:

PECS.ENABLE_CLASS(class_id, event_type);
PECS.ENABLE_CLASS(class_id, event_id);

Parameter

class_id	Gibt die ID dieser Klasse an. Die Klassen-ID wird mit einem Aufruf von PECS.ADD_CLASS erstellt und hat den Datentyp PECS.CLASS.

event_type	Gibt bei Form Builder-Ereignissen den Ereignistyp an. Gültige numerische Konstanten für diesen Parameter sind PECS.LINE, PECS.FORMS_TRIGGER,  PECS.FORMS_LOV, PECS.FORMS_20TRIGGER (Form Builder V2-Triggerereignis), PECS.FORMS_PROCEDURE, PECS.FORMS_ALERT, PECS.FORMS_CANVAS, PECS.FORMS_WINDOW, PECS.FORMS_EDITOR.

event_id	Gibt die ID dieses Ereignisnamens an. Die Ereignis-ID wird mit einem Aufruf von PECS.ADD_EVENT erstellt und hat den Datentyp PECS.EVENT.


Beispiele für PECS.ENABLE_CLASS

/*  Enable the internal Form Builder LOV event.            */

PECS.Enable_Class(forms_class);

/*  Enable the Withdraw event for Banking_class.              */
/*  Banking_class was previously defined with PECS.ADD_CLASS  */
/*  Withdraw was previously defined with PECS.ADD_EVENT       */

PECS.Enable_Class(banking_class, withdraw);


PECS.END_EVENT

 Beispiele

Syntax

PECS.END_EVENT(event_id, event_handle);

Prozedurtyp   Uneingeschränkte Prozedur

Beschreibung

Markiert das Ende eines PECS-Ereignisses.

Parameter

event_id	Gibt die ID dieses Ereignisnamens an. Die Ereignis-ID wird mit einem Aufruf von PECS.ADD_EVENT erstellt und hat den Datentyp PECS.EVENT.

event_handle	Gibt das Handle für dieses Ereignis an. Das Ereignis-Handle wird mit einem Aufruf von PECS.START_EVENT erstellt und hat den Datentyp NUMBER.


Beispiele für PECS.END_EVENT

/*  Measure the performance of the Withdraw event            */

/*  Banking_class was previously defined with PECS.ADD_CLASS */
/*                                                           */

withdraw_handle := PECS.Start_Event(withdraw, 'Withdrawing Cash');
.
.   /do the withdraw/
.
PECS.End_Event(withdraw, withdraw_handle);


PECS.POINT_EVENT

 Beispiele

Syntax

PECS.POINT_EVENT(event_id, event_comment);

Prozedurtyp   Uneingeschränkte Prozedur

Beschreibung

Benutzen Sie PECS.POINT_EVENT, um zu ermitteln, ob ein Ereignis während der Ausführung des Codes erreicht wurde.

Parameter

event_id	Gibt die ID dieses Ereignisnamens an. Die Ereignis-ID wird mit einem Aufruf von PECS.ADD_EVENT erstellt und hat den Datentyp PECS.EVENT.

event_comment	Ein CHAR-Kommentar zur Kennzeichnung des Ereignisses.

Verwendungshinweise

•	Benutzen Sie PECS.POINT_EVENT, wenn Sie nur wissen müssen, ob ein bestimmtes anwendungsspezifisches Ereignis eingetreten ist, und dessen Dauer nicht benötigen.

•	Sie können PECS.POINT_EVENT benutzen, um Geltungsbereichdaten für bestimmte Teile Ihrer Anwendung zu erfassen, bei denen Sie PECS-Punktereignisse einfügen.


Beispiele für PECS.POINT_EVENT

/*   Start the Withdraw event               .          */

/*                                                     */
...

...
IF (do_withdraw = TRUE) then
...
message('Success collecting data for event Withdraw');
PECS.Point_Event(GLOBALS.withdraw,'Withdraw Success');
ELSE
...
 message('Error collecting data for event Withdraw');
PECS.Point_Event(GLOBALS.withdraw,'Withdraw Error');
END IF;


PECS.START_EVENT

 Beispiele

Syntax

PECS.START_EVENT(event_id,event_ comment);

Prozedurtyp   Uneingeschränkte Prozedur

Rückgabewert  NUMBER

Beschreibung

Markiert den Beginn eines PECS-Ereignisses. PECS.START_EVENT gibt einen eindeutigen Bezeichner für dieses Auftreten dieses bestimmten Ereignisses zurück, der benötigt wird, um das Ereignis zu beenden.

Parameter

event_id	Gibt die Ereignis-ID an. Der Datentyp ist PECS.EVENT.

event_comment	Ein CHAR-Kommentar zur Kennzeichnung des Ereignisses.

Verwendungshinweise

PECS.START_EVENT gibt einen Bezeichner bzw. ein Handle für das Ereignis zurück, das mit PECS.END_EVENT benutzt werden muß, um das Ende des Ereignisses zu markieren.


Beispiele für PECS.START_EVENT

/*  Measure the performance of the Withdraw event            */

/*  Banking_class was previously defined with PECS.ADD_EVENT */
/*                                                           */
withdraw_handle := PECS.Start_Event(withdraw, 'Withdrawing Cash');
.
.   /do the withdraw/
.
PECS.End_Event(withdraw, withdraw_handle);


PL/SQL in Form Builder benutzen


Über PL/SQL in Form Builder

PL/SQL ist die prozedurale Erweiterung von Oracle zu der SQL-Datenbanksprache. Sie kombiniert Möglichkeiten zur Datenmanipulation und Transaktionsverarbeitung von SQL mit Konstrukten, die speziell in prozeduralen Programmiersprachen gefunden werden, wie z.B. Variablen- und Konstantendeklarationen, Zuweisung, Schleifenbildung und bedingte Verzweigungen.

Mit PL/SQL können Sie die Standardfunktionalität erweitern und ändern, die in jeder Form Builder-Anwendung integriert ist. Hierzu müssen Sie mit den Grundlagen und der Syntax von PL/SQL vertraut sein. Die PL/SQL-Sprache wird in PL/SQL User's Guide and Reference dokumentiert.

Sie benutzen den integrierten PL/SQL-Editor, um PL/SQL-Code in Form Builder zu schreiben. Im Designer schreiben Sie einen PL/SQL-Code, wenn Sie folgende Funktionen ausführen:

•	Trigger erstellen

•	Benutzerdefinierte Unterprogramme schreiben

•	PL/SQL-Pakete schreiben

•	Menüpunkte vom Typ PL/SQL erstellen

•	Menü-Startcode definieren


Über vordefinierte Form Builder-Unterprogramme

  Verwandte Themen

Vordefinierte Unterprogramme sind vordefinierte Prozeduren und Funktionen, die in Form Builder verfügbar sind. Eine Prozedur ist im allgemeinen eine vollständige Anweisung, mit der eine Aktion ausgeführt wird; eine Funktion ist ein Ausdruck eines bestimmten Datentyps, der Bestandteil einer Anweisung zur Berechnung eines Wertes ist.

Jedes vordefinierte Unterprogramm besteht aus einer Gruppe von Programminstruktionen, die eine bestimmte Anwendungsfunktion ausführen. Vordefinierte Unterprogramme können aus Triggern, Menübefehlen und benutzerdefinierten Unterprogrammen aufgerufen werden, können jedoch in keiner Weise bearbeitet oder geändert werden.


Vordefinierte Form Builder-Prozeduren aufrufen

Um eine Prozedur aufzurufen, geben Sie den Prozedurnamen und eventuell erforderliche Parameter als Anweisung in einen PL/SQL-Block ein. Ein Aufruf einer vordefinierten Prozedur ist eine vollständige Anweisung und muß mit einem Semikolon beendet werden.

Go_Item('customer.cust_id');

Die Prozedur GO_ITEM verschiebt den Eingabefokus zu dem Objekt, das in der Parameterliste angegeben wird, in diesem Fall zu dem Textobjekt cust_id im Block customer.


Vordefinierte Form Builder-Funktionen aufrufen

 Beispiele

Wenn Sie eine Funktion aufrufen, müssen Sie den Datentyp des Rückgabewerts der Funktion berücksichtigen. Funktionen können mit Konstanten, Variablen und logischen Operatoren kombiniert werden, um einen Ausdruck zu bilden. Da die Funktionen einen einzelnen Wert zurückgeben, können sie genau wie lokale Variablen oder Konstanten desselben Typs benutzt werden.


Beispiele für den Aufruf von vordefinierten Form Builder-Funktionen

Beispiel 1

DECLARE
item_required	VARCHAR2 (5);
BEGIN
item_required := Get_Item_Property('customer.custid',REQUIRED);
END;

Die vordefinierte Funktion GET_ITEM_PROPERTY wird aufgerufen, um die aktuelle Einstellung des Attributs Obligatorisch für das Objekt custid im Block customer einzulesen. Weil der Rückgabetyp der Funktion GET_ITEM_PROPERTY CHAR ist, muß die Variable, der der Rückgabewert zugewiesen wird, vom Typ CHAR oder VARCHAR2 sein.

Beispiel 2

:control.item_A := Message_Text;

Die Funktion MESSAGE_TEXT gibt einen CHAR-Wert zurück, der item_A im Block control zugewiesen ist. item_A muß denselben Typ wie der Rückgabewert der Funktion MESSAGE_TEXT haben.

Beispiel  3:

Go_Item(Get_Block_Property('customer',LAST_ITEM));

Die Funktion GET_BLOCK_PROPERTY wird benutzt, um den Namen des letzten Objekts im Block customer einzulesen. Die Funktion GET_BLOCK_PROPERTY ist als Parameter der Prozedur GO_ITEM verschachtelt, und ihr Rückgabewert ist das Zielobjekt für den Vorgang GO_ITEM.

Beispiel  4:

IF Show_LOV('customer_list') THEN
Message('Good Selection.');
ELSE
Message('No Customer was Selected.');
END IF;

Eine Funktion, die einen BOOLESCHEN Rückgabetyp hat, ergibt entweder TRUE oder FALSE und kann somit als Ausdruck in einer bedingten Anweisung benutzt werden.

Die Funktion SHOW_LOV zeigt zuerst die Werteliste mit der Bezeichnung customer_list an und wartet dann auf die Operatoreingabe. Wenn der Operator einen Datensatz aus der Werteliste auswählt, ergibt die Funktion TRUE. Wenn der Operator die Werteliste verwirft, indem er Abbrechen auswählt, wird FALSE zurückgegeben.

Hinweis:  Funktionen können in DML-Anweisungen nicht benutzt werden. Sie können dasselbe Ergebnis erzielen, indem Sie den Rückgabewert der Funktion einer lokalen Variablen zuweisen und die Variable dann in der DML-Anweisung referenzieren.


Parameterwerte an Unterprogramme übergeben

Parameter enthalten Informationen, die ein Unterprogramm zur erfolgreichen Ausführung benötigt. In einer Funktion oder einem Prozeduraufruf werden Parameter im Anschluß an den Namen der Funktion oder Prozedur in Klammern aufgeführt.

Die Spezifikation für eine Funktion oder Prozedur definiert jeden der benötigten Parameter. Die Parameternamen in einer Funktions- oder Prozedurdeklaration werden als formale Parameter bezeichnet. In dem folgenden Beispiel für die Prozedursyntax umfassen die formalen Parameter window_name, width und height:

Resize_Window (window_name, width, height);

Die Werte von formalen Parametern werden von konkreten Parametern geliefert.

Wenn Sie die Prozedur RESIZE_WINDOW aufrufen, geben Sie Werte für die formalen Parameter an, indem Sie ein bestimmtes Fenster referenzieren und die gewünschten Breiten- und Höhenwerte angeben. Die Werte, die Sie in die Parameterliste eingeben, sind konkrete Parameter. In dem folgenden Prozeduraufruf, my_window, sind 50 und 35 konkrete Parameter:

Resize_Window('my_window',50,35);

Hinweis:  Um ein einfaches Anführungszeichen als literales Zeichen anzugeben, setzen Sie vor jedes einfache Anführungszeichen in der Zeichenfolge ein zusätzliches einfaches Anführungszeichen. So wird z.B. der konkrete Parameter '''50'' PIXELS' von dem aufrufenden Unterprogramm als '50' PIXELS interpretiert.


Parameter-Datentypen

Formale Parameter haben wie Variablen einen spezifischen Datentyp. Im folgenden Syntaxbeispiel wird der Datentyp im Anschluß an jeden formalen Parameternamen dargestellt:

Show_Window(window_name IN CHAR,
 x IN NUMBER,
 y IN NUMBER);
 Return BOOLEAN

Aus diesem Beispiel wird ersichtlich, daß die Funktion SHOW_WINDOW Parameter vom Typ CHAR und NUMBER akzeptiert. CHAR und NUMBER sind allgemeine PL/SQL-Typen.

In einem Aufruf eines vordefinierten Unterprogramms kann ein konkreter Parameter ein beliebiger Ausdruck sein, dessen Auswertung einen Wert ergibt, der denselben Typ wie der formale Parameter hat, dem er entspricht. Dies bedeutet, daß ein konkreter Parameter eine lokale oder globale Variable, eine Funktion oder eine beliebige Kombination von Variablen, Konstanten und Operatoren sein kann, deren Auswertung einen Wert des entsprechenden Typs ergibt.


Vordefinierte Konstanten als konkrete Parameter benutzen

  Verwandte Themen

Es gibt vordefinierte Konstanten, die Sie für viele vordefinierte Unterprogramme benutzen können. Betrachten Sie die Syntax der vordefinierten Prozedur EXIT_FORM, die unten dargestellt wird. EXIT_FORM verfügt über zwei optionale Parameter, commit_mode und rollback_mode, mit denen festgelegt wird, wie Form Builder die aktuelle Form beenden soll:

Exit_Form(commit_mode, rollback_mode);

Die Parameter commit_mode und rollback_mode haben den Typ NUMBER. Wenn Sie EXIT_FORM aufrufen, können Sie vordefinierte numerische Konstanten für diese Parameter benutzen. Gültige Konstanten für den Parameter commit_mode umfassen ASK_COMMIT, DO_COMMIT, NO_COMMIT und NO_VALIDATE. Gültige Konstanten für den Parameter rollback_mode umfassen NO_ROLLBACK und TO_SAVEPOINT.

Konstanten für vordefinierte Unterprogramme sind vordefinierte Literale, die von Form Builder beim Starten als Literale von Typ NUMBER deklariert werden. Der konkrete numerische Wert jeder Konstanten wird intern gespeichert und wird nicht extern verwendet.

Wenn Sie Konstanten als konkrete Parameter benutzen, geben Sie sie genau so ein, wie sie in der Syntax angegeben werden, und setzen Sie sie nicht in Anführungszeichen:

Exit_Form(DO_COMMIT,NO_ROLLBACK);

Weil vordefinierte Konstanten vom Typ NUMBER sind, können sie NUMBER-Variablen zugewiesen werden. Konstanten können jedoch nicht auf der linken Seite eines Ausdrucks stehen.


Standardparameterwerte benutzen

  Verwandte Themen

Einige Parameter für vordefinierte Funktionen und Prozeduren haben vordefinierte Standardwerte. Wenn Sie keinen konkreten Parameter für einen formalen Parameter angeben, benutzt Form Builder den für diesen Parameter definierten Standardwert. Betrachten Sie die Prozedur CALL_FORM, die ein neues Formmodul aufruft, während das aktuelle Formmodul aktiv bleibt. In dem folgenden Beispiel wird die Syntax der Prozedur CALL_FORM dargestellt:

Open_Form(form_name,activate_mode,session_mode);

Die Standardparameterwerte, die für die Parameter activate_mode und session_mode definiert sind, sind die Konstanten ACTIVATE bzw. NO_SESSION.

Wenn Sie OPEN_FORM ohne Parameter aufrufen, benutzt Form Builder die Standardparameter implizit:

Open_Form('order_entry');

Sie können jederzeit Standardparameterwerte eingeben, wenn Sie dies aus Gründen der Deutlichkeit tun möchten. Die folgenden Prozeduraufrufe sind gleichbedeutend, bei dem ersten sind jedoch weniger Tastatureingaben erforderlich, während der zweite aussagefähiger ist:

Open_Form('order_entry');
Open_Form('order_entry',ACTIVATE,NO_SESSION);


Parameter mit Positions- und benannter Schreibweise benutzen

Sie können die Positions- oder benannte Schreibweise benutzen, um Parameter an ein Unterprogramm zu übergeben. Wenn die Positionsschreibweise benutzt wird, betrachtet der Compiler die relativen Positionen der konkreten Parameter, um die formalen Parameter zu bestimmen, denen diese entsprechen.

Im folgenden Beispiel wird die Syntax für eine benutzerdefinierte Prozedur mit der Bezeichnung update_inventory dargestellt:

PROCEDURE update_inventory (warehouse CHAR,product NUMBER);

Um diese Prozedur mit der Positionsschreibweise aufzurufen, müssen Sie die konkreten Parameter in der Reihenfolge eingeben, in der die entsprechenden formalen Parameter in der Spezifikation angegeben werden:

update_inventory('chicago',10557);

Wenn Sie Parameter mit der benannten Schreibweise schreiben, wird die Übereinstimmung zwischen einem formalen und konkreten Parameter explizit in der Parameterliste selbst aufgeführt, und Sie können Parameter in einer beliebigen Reihenfolge übergeben. Somit sind die folgenden Prozeduraufrufe logisch äquivalent:

update_inventory(warehouse => 'chicago',product => 10557);
update_inventory(product => 10557, warehouse =>'chicago');

Sie können die Positions- und benannte Schreibweise mischen, vorausgesetzt, die mit der Positionsschreibweise übergebenen Parameter stehen in der Parameterliste vor den Parametern, die nach Name übergeben werden:

update_inventory('chicago', product => 10557);

Bei den meisten vordefinierten Unterprogrammen wird die Positionsschreibweise gegenüber der benannten Schreibweise bevorzugt, weil sie weniger eingabeaufwendig ist. Die benannte Schreibweise kann jedoch von Vorteil sein, wenn vordefinierte Unterprogramme aufgerufen werden, die zwei oder mehr optionale Parameter enthalten. Bei der benannten Schreibweise müssen Sie nur die Werte für die zu übergebenden optionalen Parameter angeben und müssen für die anderen Parameter keine Angaben machen.


Form Builder-Objekte nach Name referenzieren

Um ein Form Builder-Objekt in einer PL/SQL-Anweisung nach Name zu referenzieren, setzen Sie den Objektnamen in einfache Anführungszeichen:

'form_module_name'
'block_name'
'window_name'

Wenn Sie z.B. die Prozedur RESIZE_WINDOW aufrufen, müssen Sie den Namen des zu skalierenden Fensters als ersten Parameter übergeben. Der Fenstername muß in einfachen Anführungszeichen stehen:

Resize_Window('status_window',50,35);

Um ein Objekt nach Name zu referenzieren, nehmen Sie den Namen des Blocks auf, zu dem das Objekt gehört, um einen vollständigen Namen zu bilden:

'block_name.item_name'

Wenn Sie z.B. die vordefinierte Prozedur GO_ITEM aufrufen, um den Eingabefokus zu einem anderen Objekt zu verschieben, übergeben Sie den Namen des Zielobjekts an GO_ITEM:

Go_Item('customer.cust_id');

Um eine bestimmte Spalte in einer Datensatzgruppe zu referenzieren, machen Sie folgende Angaben:

'record_group_name.column_name'

Um ein Objekt zu referenzieren, das Bestandteil eines Spaltenobjekts oder einer REF-Spalte war, nehmen Sie den Spaltennamen sowie den Blocknamen auf. Bei Objektkomponenten ist das Verbindungszeichen zwischen Spaltenname und Objektname ein Unterstreichungszeichen:

'blockname.columnname_itemname'


Form Builder-Objektwerte referenzieren

In folgenden Objekttypen werden Werte gespeichert:

•	Kontrollkästchen

•	Anzeigeobjekte

•	Listenobjekte

•	Optionsgruppen

•	Textobjekte

•	OLE-Container

•	VBX-Steuerelemente

Um den in einem Objekt gespeicherten Wert zu referenzieren, setzen Sie vor den vollständigen Objektnamen einen Doppelpunkt. Setzen Sie einen Objektnamen nicht in Anführungszeichen, wenn Sie dessen Wert referenzieren:

:block_name.item_name

Diese Syntax entspricht der Syntax, die beim Referenzieren von globalen Variablen in Form Builder benutzt wird. Objektwerte können in PL/SQL-Anweisungen genau wie lokale oder globale Variablen benutzt werden. Dies bedeutet, daß Sie jederzeit folgende Schritte ausführen können:

Wert eines Ausdrucks einem Objekt zuweisen:

:ord.total := price * .85;

Wert eines Objekts einem anderen Objekt zuweisen:

:ord.comment := :control.textfield;

Datenbankwerte zur Speicherung in Objekten auswählen:

SELECT phone INTO :info.tel_no FROM warehouse
WHERE id = :info.warehouse_id;


Form Builder-Objekte nach interner ID referenzieren

Form Builder weist jedem von Ihnen erstellten Objekt eine ID zu. Eine Objekt-ID ist ein internes Handle, dessen konkreter Wert niemals extern verwendet wird.

Sie können die ID eines Objekts einlesen, indem Sie die vordefinierte Funktion FIND_ für diese Objektklasse aufrufen. Die Funktionen FIND_ akzeptieren vollständige Objektnamen als Parameter.

Im folgenden Beispiel wird die Funktion FIND_WINDOW benutzt, um die ID des Fensters mit der Bezeichnung my_window der Variablen id_var zuzuweisen:

DECLARE
id_var	WINDOW;
BEGIN
id_var := Find_Window('my_window');
END;

Nachdem einer Variablen eine Objekt-ID zugewiesen wurde, können Sie diese Variable zur Referenzierung des Objekts benutzen, anstatt das Objekt nach Name zu referenzieren.

Mit der Syntax für die Prozedur RESIZE_WINDOW wird z.B. angegeben, daß Sie diese Prozedur mit einem Fensternamen oder einer Fenster-ID aufrufen können:

Resize_Window(window_name CHAR,width NUMBER,height NUMBER);
Resize_Window(window_id WINDOW,width NUMBER,height NUMBER);

Somit sind die folgenden Aufrufe logisch äquivalent:

Resize_Window('my_window',50,35);
Resize_Window(id_var,50,35);

Eine FIND_ Funktion kann auch als konkreter Parameter in einem Prozedur- oder Funktionsaufruf benutzt werden:

Resize_Window((FIND_WINDOW('my_window'),50,35);

Namen und IDs in Parameterlisten mischen  Sie können Objekt-IDs und Objektnamen in derselben Parameterliste mischen, vorausgesetzt, jeder konkrete Parameter bezieht sich auf ein eindeutiges Objekt:

Replace_Content_View(canvas_id,'window_name');

Sie können jedoch keine Objekt-ID und einen Objektnamen benutzen, um einen vollständigen Objektnamen zu bilden:

/*  invalid procedure call:   */
Set_Group_Char_Cell(group_id.'column_name',1,'in_stock');

Typen von Objekt-IDs  Die Rückgabewerte der Funktionen FIND_, d.h. die Objekt-IDs selbst, haben einen spezifischen Datentyp. In dem Syntaxbeispiel für die Prozedur RESIZE_WINDOW haben Sie festgestellt, daß der formale Parameter window_id als vom Typ WINDOW deklariert wurde. Die Typen für Objekt-IDs werden in Form Builder vordefiniert. Für jede Objektklasse gibt es einen anderen Typ.

Form Builder-Datentypen

In der folgenden Tabelle werden die Funktion FIND_ und der Rückgabetyp für jedes Objekt dargestellt:

Objekt	Funktion	Rückgabetyp
Warnfenster	FIND_ALERT	ALERT
Block	FIND_BLOCK	BLOCK
Leinwand	FIND_CANVAS	CANVAS
Datensatzgruppenspalte	FIND_COLUMN	GROUPCOLUMN
Editor	FIND_EDITOR	EDITOR
Form	FIND_FORM	FORMMODULE
Datensatzgruppe	FIND_GROUP	RECORDGROUP
Objekt	FIND_ITEM	ITEM
Werteliste	FIND_LOV	LOV
Menüobjekt	FIND_MENU_ITEM	MENUITEM
Parameterliste	GET_PARAMETER_LIST	PARAMLIST
Beziehung	FIND_RELATION	RELATION
Bericht	FIND_REPORT_OBJECT	REPORT
Registerseite	FIND_TAB_PAGE	TAB_PAGE
Timer	FIND_TIMER	TIMER
Baumknoten	FIND_TREE_NODE	NODE
Ansicht	FIND_VIEW	VIEWPORT
Fenster	FIND_WINDOW	WINDOW

Variablen für Objekt-IDs deklarieren  Bevor Sie einer lokalen Variablen eine Objekt-ID zuweisen können, müssen Sie die Variable so deklarieren, daß sie denselben Typ wie die Objekt-ID hat:

DECLARE
id_var	  WINDOW;
BEGIN
id_var := Find_Window('my_window');
IF Get_Window_Property(id_var, HEIGHT) < 25 THEN
Resize_Window (id_var, 50, 35);
END IF;
END;

Warum werden Objekt-IDs benutzt?  Es gibt zwei Gründe für die Benutzung von Objekt-IDs in Ihrem PL/SQL-Code:

•	Die Benutzung von Objekt-IDs verbessert die Leistung.

•	Die Benutzung von Objekt-IDs macht einen Code zu einem allgemeineren Code und ermöglicht eine einfachere Verwaltung.

Wenn Sie ein Objekt in einer PL/SQL-Anweisung nach Name referenzieren, nimmt Form Builder die erforderliche Verarbeitung vor, um die Objekt-ID intern zu suchen. Wenn Sie ein Objekt mehr als einmal in demselben Trigger nach Name referenzieren, sucht Form Builder jedesmal nach der Objekt-ID. Der folgende Triggercode referenziert das Objekt my_record_group dreimal:

DECLARE
dummy_var	NUMBER;
count	NUMBER;
BEGIN
dummy_var := Populate_Group('my_record_group');
count := Get_Group_Row_Count('my_record_group');
IF count > 20 THEN
Delete_Group_Row('my_record_group', ALL_ROWS);
END IF;
END;

Wenn Sie hingegen ein Objekt mit seiner ID referenzieren, sucht Form Builder das Objekt nur einmal - wenn Sie die anfängliche Funktion FIND_ aufrufen, um die ID einzulesen:

DECLARE
dummy_var	NUMBER;
count	NUMBER;
group	RECORDGROUP := Find_Group('my_record_group');
BEGIN
dummy_var := Populate_Group(group);
count := Get_Group_Row_Count(group);
IF count > 20 THEN
Delete_Group_Row(group, ALL_ROWS);
END IF;
END;

Die Benutzung von Objekt-IDs verbessert nicht nur die Leistung, sondern führt auch zu Codes, die einfacher verwaltet und an anderer Stelle wiederbenutzt werden können. Wenn Sie den Namen eines Objekts ändern müssen oder denselben Code für ein anderes Objekt erneut benutzen möchten, müssen Sie die Änderung nur in der Parameterliste der anfänglichen Funktion FIND_ und nicht in jeder Anweisung vornehmen, die dieses Objekt referenziert.


Form Builder-Objekte indirekt referenzieren

  Verwandte Themen

Sie können Objekte indirekt mit den vordefinierten Unterprogrammen NAME_IN und COPY referenzieren.

Die Funktion NAME_IN gibt den Inhalt einer angegebenen Variablen oder eines angegebenen Objekts zurück. Benutzen Sie die Funktion NAME_IN, um den Wert eines Objekts einzulesen, ohne das Objekt direkt zu referenzieren.

Die folgenden Anweisungen sind gleichbedeutend:

IF :emp.ename = 'smith' -- direct reference
IF NAME_IN('emp.ename') = 'smith' -- indirect reference

Der Rückgabewert ist immer eine Zeichenfolge. Um NAME_IN für ein DATE- oder NUMBER-Objekt zu benutzen, konvertieren Sie die Zeichenfolge mit der entsprechenden Konvertierungsfunktion in den gewünschten Datentyp:

date_var := TO_DATE(Name_In('order.date_item'));
num_var := TO_NUMBER(Name_In('order.number_item'));

Hinweise zu NAME_IN:

•	Die Funktion NAME_IN kann den Inhalt einer globalen oder lokalen Variablen nicht zurückgeben.

•	In PL/SQL-Triggern, die im Abfragemodus ausgeführt werden sollen, muss für den Zugriff auf Werte im Datenblock an Stelle der üblichen Bindevariablenschreibweise NAME_IN verwendet werden. (Der Grund hierfür ist, daß der Endbenutzer relationale Operatoren in das Objekt eingeben könnte. So könnte ein Wert entstehen, der aufgrund seiner Form nicht von PL/SQL verarbeitet werden kann.)

COPY-Prozedur  Die COPY-Prozedur weist einer angegebenen Variablen bzw. einem angegebenen Objekt einen angegebenen Wert zu. Im Gegensatz zu der standardmäßigen PL/SQL-Zuweisung ermöglicht jedoch die Benutzung der COPY-Prozedur eine indirekte Referenzierung des Objekts, dessen Wert eingestellt wird:

:emp.ename := 'smith';	-- direct reference
Copy('smith','emp.ename');	-- indirect reference

COPY kann mit der Funktion NAME_IN benutzt werden, um einem Objekt einen Wert zuzuweisen, dessen Name in einer Referenzvariablen bzw. einem Referenzobjekt gespeichert ist:

/* put value 'smith' in item whose name is stored in ref_item */
Copy('smith',Name_In('control.ref_item'));

Warum werden indirekte Referenzen benutzt?  Durch das indirekte Referenzieren von Objekten können Sie einen allgemeineren und einfacher wiederbenutzbaren Code schreiben. Wenn Sie Variablen anstelle von konkreten Objektnamen verwenden, können Sie ein Unterprogramm schreiben, das mit jedem Objekt benutzt werden kann, dessen Name der angegebenen Variablen zugewiesen wurde.

Die Benutzung der indirekten Referenz ist außerdem obligatorisch, wenn Sie den Wert einer Form-Bindevariablen (Objekt, Parameter, globale Variable) in PL/SQL referenzieren, die Sie in eine Bibliothek oder ein Menümodul schreiben. Weil Bibliotheken, Menüs und Forms separate Anwendungsmodule sind, können Sie den Wert eines Formobjekts in einem Menübefehl oder einer Bibliotheksprozedur nicht direkt referenzieren.


Über lokale Variablen

Eine lokale Variable ist eine PL/SQL-Variable, deren Wert nur innerhalb des Triggers oder benutzerdefinierten Unterprogramms aufgerufen werden kann, in dem die Variable deklariert ist. Form Builder unterstützt die standardmäßige PL/SQL-Variablendeklaration und -zuweisung für lokale Variablen.


Über globale Variablen

Eine globale Variable ist eine Form Builder-Variable, deren Wert von Triggern und Unterprogrammen in jedem Modul aufgerufen werden kann, das während der aktuellen Sitzung aktiv ist. In einer globalen Variablen wird eine Zeichenfolge mit einer Länge von maximal 255 Zeichen gespeichert.

Globale Variablen werden nicht formal deklariert, wie dies bei lokalen PL/SQL-Variablen der Fall ist. Statt dessen initialisieren Sie eine globale Variable das erste Mal, wenn Sie ihr einen Wert zuweisen:

:GLOBAL.my_var := TO_CHAR(:order.total * .85);

Um eine globale Variable zu referenzieren, setzen Sie vor den Variablennamen das Wort GLOBAL und einen Doppelpunkt. Im folgenden Beispiel wird eine globale Variable dargestellt, die als konkreter Parameter an einen Prozeduraufruf übergeben wird:

calculate_discount(TO_NUMBER(:GLOBAL.my_var));

Das Referenzieren einer globalen Variablen, die nicht durch die Zuweisung initialisiert wurde, führt zu einem Laufzeitfehler.

Um eine globale Variable zu zerstören und den von ihr belegten Speicherplatz freizugeben, benutzen Sie die vordefinierte Prozedur ERASE:

Erase('GLOBAL.my_var');


Globale Variablen mit Standardwerten initialisieren

Sie können die vordefinierte Prozedur DEFAULT_VALUE benutzen, um einer Variablen, die den Wert NULL hat, einen Wert zuzuweisen. Wenn der Wert der angegebenen Variablen nicht NULL ist, bleibt DEFAULT_VALUE wirkungslos. Wenn die Variable, der der Wert zugewiesen ist, eine undefinierte globale Variable ist, erstellt Form Builder die Variable.

Im folgenden Beispiel wird eine globale Variable mit der Bezeichnung country erstellt und mit dem Wert FRANCE initialisiert:

Default_Value('FRANCE','GLOBAL.country');


NULL-Leinwandobjekte als Variablen benutzen

  Verwandte Themen

Ein NULL-Leinwandobjekt ist ein Objekt, für dessen Attribut Leinwand keine Angaben gemacht wurden und das deshalb keiner Leinwand zugewiesen ist. Ein NULL-Leinwandobjekt wird zur Laufzeit niemals angezeigt, und Operatoren können das Objekt nicht sehen bzw. nicht mit ihm kommunizieren.

Sie können ein NULL-Leinwandobjekt für die temporäre Speicherung von Datenwerten benutzen, genau wie eine globale Variable. So können Sie z.B. ein Objekt vom Typ NUMBER in einem Steuerblock definieren und dessen Wert dann in Triggern und benutzerdefinierten Unterprogrammen referenzieren:

IF :control.count > 200 THEN
...

Jeder Objekttyp, in dem Werte gespeichert werden können, kann als Variable in Form eines NULL-Leinwandobjekts benutzt werden. Anzeigeobjekte empfehlen sich besonders, weil sie weniger Speicherplatz belegen als die anderen Objekttypen.

Berücksichtigen Sie die folgenden Faktoren, wenn Sie entscheiden, ob Sie eine globale Variable oder eine Variable in Form eines NULL-Leinwandobjekts benutzen möchten:

•	Objekte können als CHAR-, NUMBER- oder DATE-Datentypen definiert werden; in globalen Variablen werden nur Zeichenfolgen gespeichert, und die Benutzung von Konvertierungsfunktionen wie TO_DATE und TO_NUMBER erfordern eine zusätzliche Verarbeitung.

•	Objekte können dimensioniert werden, indem das Attribut Maximale Länge eingestellt wird; globale Variablen umfassen stets 255 Byte.

•	Globale Variablen sind über mehrere Module während einer Laufzeitsitzung sichtbar; NULL-Leinwandobjekte sind dies nicht.

•	Mit dem Vorgang CLEAR_FORM wird der Wert eines NULL-Leinwandobjekts in der aktuellen Form auf NULL eingestellt; der Wert einer globalen Variablen ist von CLEAR_FORM nicht betroffen.

•	Sowohl Objekte als auch globale Variablen können in der standardmäßigen WHERE-Klausel für einen Datenblock und SQL-Anweisungen für Datensatzgruppen referenziert werden.


Auf Form Builder-Systemvariablen zugreifen

  Verwandte Themen

Form Builder verfügt über vordefinierte Systemvariablen, die den Laufzeitstatus während einer Form Builder Runform-Sitzung überwachen. Sie können die Werte dieser Variablen in jeden Form-Trigger bzw. jedes benutzerdefinierte Unterprogramm einlesen. Hier ein Beispiel für die Überprüfung des Wertes der Systemvariablen System.Mode:

IF :System.Mode = 'ENTER-QUERY' THEN
IF NOT Show_Lov('dept_lov') then
RAISE Form_Trigger_Failure;
END IF;


Programmblöcke schreiben


Über benutzerdefinierte Unterprogramme

Ein benutzerdefiniertes Unterprogramm ist eine benannte PL/SQL-Funktion oder -Prozedur, die Sie in einem Form-, Menü- oder Bibliotheksmodul schreiben. Obwohl im wesentlichen Trigger benutzt werden, um eine programmgesteuerte Kontrolle zu einer Form Builder-Anwendung hinzuzufügen, unterstützen benutzerdefinierte Unterprogramme Trigger, indem Sie Code wiederverwenden können, ohne diesen in mehrere Trigger eingeben zu müssen.

Im Gegensatz zu Triggern, die als Reaktion auf Anwendungsereignisse ausgeführt werden, müssen benutzerdefinierte Unterprogramme explizit innerhalb der Anwendung aufgerufen werden. Ein benutzerdefiniertes Unterprogramm, das Sie in einem Formmodul definieren, kann aus jedem Trigger in diesem Modul aufgerufen werden.

Genau wie vordefinierte Unterprogramme Ihnen die Mühe ersparen, Codes für gemeinsame Funktionen zu schreiben, wie z.B. die Navigation und das Zusammenwirken mit einer Datenbank, bieten Ihnen benutzerdefinierte Unterprogramme eine Möglichkeit, anwendungsspezifischen Code wiederzuverwenden, den Sie selbst schreiben.

Wenn Sie feststellen, daß Sie dieselben Codezeilen in mehr als einem Trigger oder mehr als einem Menübefehl immer wieder schreiben, sollten Sie statt dessen ein benutzerdefiniertes Unterprogramm schreiben.

In den meisten Anwendungen können Operatoren denselben Vorgang auf mehrere Arten durchführen und aus mehr als einem Fenster oder Menü. So kann eine Anwendung zur Auftragseingabe einem Operator z.B. ermöglichen, den Gesamtwert der Aufträge zu berechnen, indem er eine Taste drückt, auf eine Schaltfläche klickt oder einen Menüpunkt aus einem Menü auswählt. Ohne ein benutzerdefiniertes Unterprogramm müßten Sie dieselbe Berechnungsformel in einem Tasten-Trigger, einem When-Button-Pressed-Trigger und einem Menübefehl schreiben.

Die bessere Lösung ist in diesem Fall, die Berechnungsformel einmal in einem benutzerdefinierten Unterprogramm zu schreiben. Sie können dem Unterprogramm einen aussagefähigen Namen geben, z.B. Berechne_Summen, und dieses dann mit diesem Namen aus einem beliebigen Trigger oder Menüpunkt aufrufen, in dem die Formel benötigt wird.

Genau wie vordefinierte Prozeduren können benutzerdefinierte Unterprogramme Parameter aufnehmen. Wenn Sie die Parameter für ein Unterprogramm deklarieren, geben Sie deren Datentyp, Modus und gegebenenfalls Standardwert an. Wenn Sie Parameter zur Übergabe der eigentlichen Werte verwenden, können Sie allgemeinere Unterprogramme erstellen, die Werte verwenden, die zur Laufzeit programmgesteuert eingegeben werden.


Benutzerdefinierte Unterprogramme erstellen

Benutzerdefinierte Unterprogramme sind benannte Objekte, die Sie in Form-, Menü- oder Bibliotheksmodulen definieren.

So erstellen Sie ein benutzerdefiniertes Unterprogramm:

1	Wählen Sie den gewünschten Knoten Programmblöcke im Objektnavigator, und wählen Sie dann Navigator [image] Erstellen.

Daraufhin wird das Dialogfeld Neuer Programmblock angezeigt.

Für Informationen über Befehle des PL/SQL-Editors wird auf Kapitel 2, "Mit den Entwicklungs-Werkzeugen arbeiten", verwiesen.

2	Geben Sie den Namen des zu erstellenden Programmblocks an, und geben Sie dann den Typ des Programmblocks an (Prozedur, Funktion, Paketspezifikation oder Paketrumpf).

3	Geben Sie die zu definierende Prozedur oder Funktion ein bzw. bearbeiten und kompilieren Sie diese.

Geben Sie eine vollständige Prozedur- oder Funktionsdefinition mit der PL/SQL-Standardstruktur und Syntax ein.

4	Wählen Sie Kompilieren, um den Programmblock zu kompilieren.

Hinweis:  Form Builder wendet Ihre Änderungen automatisch an, wenn Sie den Editor schließen, selbst wenn der Programmblock nicht erfolgreich kompiliert wurde.

Form Builder zeigt den Namen jedes Programmblocks mit einer Anmerkung an, die Hinweis auf den Typ gibt (Prozedurrumpf, Paketspezifikation usw.). Ein Prozedurrumpf würde z.B. wie hier dargestellt angegeben:

calculate_totals (Prozedurrumpf)

Eine Paketspezifikation würde wie folgt angegeben:

Error_Handlers (Paketspezifikation)


Prozedursyntax

Die Prozedur-Spezifikation beginnt mit dem Schlüsselwort PROCEDURE und endet mit dem Prozedurnamen bzw. mit der Liste mit formalen Parametern. Der Prozedur-Rumpf beginnt mit dem Schlüsselwort IS und endet mit dem Schlüsselwort END gefolgt von dem optionalen Prozedurnamen.

Syntax

PROCEDURE procedure_name [argument list] IS
   [local variable declaration]
BEGIN
   statements
   [EXCEPTION exception_handlers]
END;

wobei:

procedure_name	der eindeutige, benutzerdefinierte Name der Prozedur ist. Dieser Name muß den ORACLE-Benennungsregeln entsprechen. Weitere Informationen finden Sie in dem SQL Language Reference Manual.

argument_list	 ({var_name [mode] type [:= value]}[,...]) ist.

wobei:

var_name	der eindeutige Name einer lokalen Variablen ist.

mode	{IN|OUT|IN OUT} ist.

type	ein beliebiger zulässiger PL/SQL-Typ ist

value	ein PL/SQL-Ausdruck ist.

local_variable_  declaration	{var_name type [:= value]}(,...] ist.

statements	die ausführbaren PL/SQL-Anweisungen sind.

exception_handler	Hier wird auf PL/SQL User's Guide and Reference verwiesen.


Funktionssyntax

Jede Funktion muß eine RETURN-Anweisung ausführen. Die RETURN-Anweisung bestimmt den Rückgabewert der Funktion und gibt die Kontrolle sofort an den Trigger, das benutzerdefinierte Unterprogramm oder den Menübefehl zurück, der die Funktion aufgerufen hat.

Syntax

FUNCTION function_name [argument list] RETURN [type] IS
   [local variable declaration]
BEGIN
   statements
   RETURN (result);
   [EXCEPTION exception_handlers]
   RETURN (result);
END;

wobei:

function_name	der eindeutige, benutzerdefinierte Name der Funktion ist. Dieser Name muß den ORACLE-Benennungsregeln entsprechen.

argument_list	 ({var_name [mode] type [:= value]}[,...]) ist.

wobei:

var_name	der eindeutige Name einer lokalen Variablen ist.

mode	{IN|OUT|IN OUT} ist.

type	{BOOLEAN|VARCHAR2|NUMBER| DATE|Form Builder-Objekttyp} ist.

value	ein PL/SQL-Ausdruck ist.

local_variable_  declaration	{var_name type [:= value]}(,...] ist.

statements	die ausführbaren PL/SQL-Anweisungen sind.

exception_handler	Hier wird auf PL/SQL User's Guide and Reference verwiesen.

Result	der Ausdruck ist, der den Wert der Funktion angibt. Der Wert des Ausdrucks muß mit dem in der Funktionsspezifikation angegebenen Typ kompatibel sein.

Prozedurbeispiel:

Die folgende Prozedur verarbeitet einen Auftrag, indem der für ein bestimmtes Produkt verfügbare Lagerbestand verringert wird. Um diese Prozedur aufzurufen, übergeben Sie die Produkt-ID, die Anzahl von in Auftrag gegebenen Einheiten und das Lager, das den Auftrag ausführen soll:

PROCEDURE do_order (units_ordered IN NUMBER,
   prod_id IN NUMBER,
   warehouse IN NUMBER) IS
   units_in_stock	NUMBER;
BEGIN
   SELECT amount_in_stock INTO units_in_stock FROM inventory
     WHERE product_id = prod_id
     AND warehouse_id = warehouse;
   IF units_in_stock >= units_ordered THEN
     UPDATE inventory
     SET amount_in_stock = units_in_stock - units_ordered
       WHERE product_id = prod_id;
   ELSE
     Message('Insufficient stock on hand.');
     Raise Form_Trigger_Failure;
   END IF;
END;

Sie könnten diese Prozedur wie folgt in einem Trigger benutzen:

do_order (:order.units, :order.prod_id, :warehouse.id);

In diesem Beispiel sind die Werte der drei formalen Parameter die aktuellen Werte der Objekte in der Form mit der Standardsyntax für Bindevariablen angegeben:

:block_name.item_name

Funktionsbeispiel:

Die folgende Funktion gibt die Anzahl von vorrätigen Produkteinheiten in einem bestimmten Lager zurück. Wenn Sie diese Funktion aufrufen, übergeben Sie eine Produkt-ID und die Lager-ID:

FUNCTION get_inventory (product NUMBER, warehouse NUMBER)
   RETURN NUMBER IS
   amount NUMBER;
BEGIN
   SELECT amount_in_stock INTO amount FROM inventory
   WHERE product_id = product and warehouse_id = warehouse;
   RETURN amount;
EXCEPTION
   WHEN OTHERS THEN
     Message('Invalid product name or warehouse ID.');
     RETURN (-1);
END;

Sie könnten diese Funktion wie folgt in einem Trigger benutzen:

DECLARE
   inv	NUMBER;
   amount_required	NUMBER := :order_block.order_item;
BEGIN
   inv := Get_inventory (:product.id, :warehouse.id);
   IF inv < 0 THEN
   . . . -- handle the error here
   ELSE IF inv >= amount_required THEN
   ... -- process the order here
   END IF;
END;


Benutzerdefinierte Unterprogramme aufrufen

Das Aufrufen benutzerdefinierter Prozeduren und Funktionen entspricht weitestgehend dem Aufruf von vordefinierten Prozeduren und Funktionen. Sie können sowohl eine benannte als auch eine Positionsverknüpfung zur Übergabe von Parametern benutzen. Sie können Formobjekte in benutzerdefinierten Unterprogrammen referenzieren, genau wie in der Parameterliste einer vordefinierten Prozedur.

Wenn Sie ein Form- oder Menümodul kompilieren, um eine Laufzeitdatei zu erstellen, muß Form Builder in der Lage sein, von diesem Modul aufgerufene Unterprogramme zu finden. Das Modul, in dem ein Unterprogramm definiert wird, bestimmt, wo dieses Unterprogramm aufgerufen werden kann.

Wenn Sie eine Anwendung entwickeln, die mehr als ein Modul umfaßt, berücksichtigen Sie die folgenden Regeln im Zusammenhang mit dem Geltungsbereich:

•	Ein benutzerdefiniertes Unterprogramm, das in einem Formmodul definiert ist, kann nur von Triggern und anderen benutzerdefinierten Unterprogrammen in diesem selben Modul aufgerufen werden.

•	Ein benutzerdefiniertes Unterprogramm, das in einem Menümodul definiert ist, kann nur aus Menübefehlen und dem Startcode in demselben Menü aufgerufen werden.

•	Ein benutzerdefiniertes Unterprogramm, das in einem Bibliotheksmodul definiert ist, kann aus jedem beliebigen Trigger oder Menübefehl aufgerufen werden, vorausgesetzt, die Bibliothek ist dem Form- oder Menü-Modul zugeordnet.

Sie können eine Bibliothek mit benutzerdefinierten Unterprogrammen erstellen, indem Sie Prozeduren und Funktionen direkt in ein Bibliotheksmodul schreiben oder Unterprogramme aus anderen Modulen in eine Bibliothek kopieren. Informationen über Bibliotheken finden Sie in Kapitel 20, "Mit Bibliotheken arbeiten".


Parameter definieren

Die Benutzung von Parametern ist optional. Unterprogramme, die keine Parameter verwenden, werden ohne Klammern geschrieben. Wenn Sie einen Parameter deklarieren, müssen Sie den Datentyp und Modus in der formalen Parameterliste angeben.

Parameter-Datentypen  In einer Funktion können Parameter als VARCHAR2, DATE, NUMBER oder BOOLEAN bzw. in Form eines der Form Builder-Objekttypen deklariert werden. In einer Prozedur können Parameter einen beliebigen gültigen PL/SQL-Typ aufweisen. Wenn Sie eine Funktion oder Prozedur erstellen, geben Sie den Datentyp im Anschluß an den Namen jedes formalen Parameters ein:

PROCEDURE display_overdue_shipments (dept_id NUMBER);
FUNCTION credit_ok (customer VARCHAR2) RETURN BOOLEAN;

Parametermodus  Der Modus eines Parametrs kann IN (Standard), OUT oder IN OUT sein. Ein Parameter vom Typ IN übergibt einen Wert an ein Unterprogramm. Das Unterprogramm kann den Wert des IN-Parameters lesen, kann jedoch dessen Wert nicht schreiben. Ein tatsächlicher IN-Parameter kann eine Konstante, ein Literal, eine initialisierte Variable oder ein Ausdruck sein.

Ein Parameter vom Typ OUT gibt einen Wert aus einem Unterprogramm zurück. Ein tatsächlicher OUT-Parameter kann nur eine lokale Variable (keine Bindevariable) sein, und das Unterprogramm muß der Variablen einen Wert zuweisen. Wenn nicht, wird die vordefinierte PL/SQL-Exception NO_DATA_FOUND ausgelöst.

Ein Parameter vom Typ IN OUT übergibt einen Wert an ein Unterprogramm und gibt einen Wert aus dem Unterprogramm zurück. Bei einem tatsächlichen IN OUT-Parameter kann es sich um eine lokale Variable oder eine Bindevariable handeln. Ein Unterprogramm kann den Wert eines IN OUT-Parameters schreiben, muß dieses jedoch nicht tun.

Sowohl Funktionen als auch Prozeduren können OUT- und IN OUT-Parameter verwenden. Eine Prozedur, die einen Wert über einen OUT- oder IN OUT-Parameter zurückgibt, wird im wesentlichen wie eine Funktion benutzt. Mit ihr können alle Schritte ausgeführt werden, für die eine Funktion normalerweise benutzt würde.

Wenn Sie den Modus eines formalen Parameters in der Prozedur- oder Funktionsspezifikation nicht explizit angeben, wird der Parameter als IN-Parameter deklariert. Somit sind die folgenden Prozedurspezifikationen gleichbedeutend:

PROCEDURE calculate_discount(multiplier NUMBER);
PROCEDURE calculate_discount(multiplier IN NUMBER);

Sie können den Modus eines Parameters explizit angeben, indem Sie IN, OUT oder IN OUT im Anschluß an den formalen Parameternamen in die Unterprogrammspezifikation eingeben.

Hinweis:  Wenn Sie ein Unterprogramm aufrufen, das einen IN OUT- oder OUT-Parameter verwendet, müssen Sie beachten, daß dem tatsächlichen Parameter immer ein Wert zugewiesen sein muß, auch wenn das Unterprogramm selbst den Wert des Parameters nicht explizit schreibt.

Wenn Sie z.B. ein Textobjekt als eigentlichen Parameter für einen formalen Parameter vom Typ IN OUT referenzieren, wird der Wert des Textobjekts aktualisiert, wenn das Unterprogramm ausgeführt wird, selbst wenn das Unterprogramm selbst keine explizite Zuweisungsanweisung ausführt. Dies kann dazu führen, daß der Datensatz den Status CHANGED annimmt, und daß der Datensatz zur Aktualisierung oder für das Einfügen markiert wird.

IN-Parametern Standardwerte zuweisen  Sie können einem formalen IN-Parameter einen Standardwert zuweisen, wenn Sie den Parameter deklarieren. Viele der vordefinierten Form Builder-Unterprogramme verwenden diese Technik. Wenn Sie diese Unterprogramme aufrufen, müssen Sie keinen eigentlichen Parameter für den formalen Standardparameter eingeben, es sei denn, Sie möchten den Standardwert des Parameters außer Kraft setzen.

Um einem formalen Parameter einen Standardwert zuzuweisen, benutzen Sie den PL/SQL-Zuweisungsoperator in der formalen Parameterliste. Der zugewiesene Wert muß eine Konstante oder ein Ausdruck sein, der denselben Datentyp wie der formale Parameter hat:

PROCEDURE calculate_discount(multiplier IN NUMBER := 15);

Wenn Sie diese Prozedur aufrufen, können Sie den Parameter multiplier weglassen, wenn die Prozedur mit dem Standardwert (15) ausgeführt werden soll:

calculate_discount;

Sie können den Standardwert auch außer Kraft setzen, indem Sie einen konkreten Parameter angeben:

calculate_discount(10);

Wenn Sie die Positionsschreibweise verwenden, haben nur abschließende Parameter Standardwerte.


Über PL/SQL-Pakete

Ein Paket ist ein PL/SQL-Konstrukt, mit dem logisch zusammengehörige Typen, Objekte, Prozeduren und Funktionen gruppiert werden. Pakete haben im allgemeinen zwei Bestandteile, eine Spezifikation und einen Rumpf, auch wenn der Rumpf gelegentlich nicht erforderlich ist.

Die Spezifikation stellt die Schnittstelle zu dem Paket dar. Mit ihr werden die zur Benutzung verfügbaren Typen, Variablen, Konstanten, Exceptions, Cursor und Unterprogramme (Prozeduren und Funktionen) deklariert. Mit dem Rumpf werden Cursor und Unterprogramme voll definiert und somit die Spezifikation implementiert.

Form Builder verfügt über mehrere vordefinierte Pakete, die Sie benutzen können. Sie können aber auch eigene Pakete in Form-, Menü- oder Bibliotheksmodulen definieren. Sie können außerdem Pakete in Oracle7 Server definieren und deren Inhalt dann von client-seitigen Anwendungen referenzieren. Für Informationen über die Benutzung von gespeicherten Prozeduren mit Form Builder wird auf Über gespeicherte Prozedurenverwiesen.

Die Syntax eines Pakets entspricht der Syntax einer Prozedur:

PACKAGE name IS  -- specification
-- public type and object declarations
-- subprogram specifications
END [name];
PACKAGE BODY name IS  --body (hidden part)
-- private type and object declarations
-- subprogram bodies
[BEGIN
-- initialization statements]
END [name];

Die Spezifikation enthält öffentliche Deklarationen, die für Ihre Anwendung sichtbar sind. Der Rumpf enthält Implementierungsdetails und private Deklarationen, die vor der Anwendung verborgen werden.

Nur Unterprogramme und Cursor verfügen über eine zugrundeliegende Implementierung oder Definition. Wenn eine Spezifikation also nur Typen, Konstanten, Variablen und Exceptions deklariert, ist der Paketrumpf nicht erforderlich

Nur Deklarationen in der Paketspezifikation sind sichtbar und können von der Anwendung aufgerufen werden. Implementierungsdetails im Paketrumpf sind verborgen. Auf sie kann nicht zugegriffen werden. Sie können die Spezifikation separat codieren und kompilieren. Nachdem die Spezifikation kompiliert wurde, können Sie Trigger oder benutzerdefinierte Unterprogramme erfolgreich kompilieren, die die Spezifikation referenzieren. Sie müssen den Paketrumpf erst voll definieren, wenn die Anwendung abgeschlossen werden kann.

Hinweis:  Wenn Sie ein Paket später ändern, müssen Forms oder Menüs, die das Paket aufrufen, möglicherweise ebenfalls neu kompiliert werden.


PL/SQL-Pakete erstellen

 Beispiele

Sie können ein Paket erstellen, indem Sie die Prozeduren und Funktionen so anordnen, daß diese eine Hülle für PL/SQL-Objekte bieten.

Pakete können Variablen enthalten, die während der ganzen Sitzung eines Benutzers bestehen bleiben (ähnlich wie eine server-seitige GLOBAL-Variable und genauso nützlich), sowie Cursor, die auch während Aufrufen von Funktionen und Prozeduren in dem Paket geöffnet bleiben.

Weitere Informationen über Pakete finden Sie im User's Guide and Reference für PL/SQL.

Hinweis:  Wenn ein Paket das erste Mal (von einem Benutzer in der Instanz) aufgerufen wird, wird das ganze Paket in die Oracle SGA geladen, damit nachfolgende Aufrufe von enthaltenen Prozeduren oder Funktionen sehr schnell erfolgen.

Einschränkungen  Form Builder unterstützt den Aufruf gespeicherter Prozeduren und Funktionen direkt, jedoch nicht für die direkte Referenzierung von Paketvariablen oder Paketcursorn. Um Paketvariablen und Paketcursor innerhalb des Codes auf Serverseite zu bearbeiten, müssen Sie eine Funktion oder Prozedur entwickeln. Die verfügbaren Datentypen sind:

•	VARCHAR2 - maximal VARCHAR2(2000)

•	NUMBER

•	DATE

•	BOOLEAN

Wenn Sie diese Datentypen benutzen, um Funktionen oder Prozeduren zu schreiben, können Werte von Paketvariablen und abgerufene Cursordaten über Parameter oder einen Funktions-Rückgabewert an die aufrufende Form Builder-Prozedur zurückgegeben werden.

Form Builder fordert, daß sowohl die Paketspezifikation als auch der Paketrumpf gültig sind, um einen Form Builder PL/SQL-Block zu kompilieren, der das Paket referenziert.


Beispiele für das Erstellen von PL/SQL-Paketen

CREATE OR REPLACE PACKAGE LIB_HR AS

    -- Retrieve Social Security Number for an Employee
    FUNCTION get_ssn(theEmpNo NUMBER) RETURN NUMBER;
   -- Hire a new Employee and return his/her Employee Number
  FUNCTION hire_employee(theName VARCHAR2,
                  theDept NUMBER,
                  theSal  NUMBER,
                  theDate DATE,
                  theSSN  NUMBER) RETURN NUMBER;

   -- Terminate an existing Employee
   PROCEDURE fire_employee(theEmpno NUMBER,
                  theReason VARCHAR2);

   -- Set Signing Bonus Variable
   PROCEDURE set_bonus(newValue NUMBER);

   END LIB_HR;

CREATE OR REPLACE PACKAGE BODY LIB_HR AS
   -- Package Variables --
   signingBonus NUMBER := 1000;

   -- Package Cursor --
   CURSOR next_empid
      IS SELECT empid_sequence.NEXTVAL
         FROM dual;

   -- Retrieve Social Security Number for an Employee
   FUNCTION get_ssn(theEmpNo NUMBER) RETURN NUMBER IS
      tmpSSN NUMBER;
   BEGIN
      SELECT ssn
         INTO tmpSSN
         FROM emp
         WHERE empno = theEmpNo;
         RETURN(tmpSSN);
   EXCEPTION
      WHEN NO_DATA_FOUND THEN
         RETURN(-1);
    END;

   -- Hire a new Employee and return Employee Number
   FUNCTION hire_employee(theName VARCHAR2,
                  theDept NUMBER,
                  theSal  NUMBER,
                  theDate DATE,
                  theSSN  NUMBER) RETURN NUMBER IS
      tmpEmpNo NUMBER;
   BEGIN
      IF (NOT next_empid%ISOPEN) THEN
         OPEN next_empid;
      END IF;
      FETCH next_empid INTO tmpEmpNo;
      -- We don't have to CLOSE the cursor because it will
      -- remain open between calls

      INSERT INTO EMP(empno, ename, deptno, sal,
                       hiredate, ssn, bonus)
      VALUES(tmpEmpNo, theName, theDept, theSal,
         theDate, theSSN, signingBonus);
      RETURN(tmpEmpNo);
   EXCEPTION
      WHEN OTHERS THEN
      RETURN(-1);
   END;
   -- Terminate an existing Employee
   PROCEDURE fire_employee(theEmpno NUMBER,
                     theReason VARCHAR2) IS
   BEGIN
      DELETE FROM emp
         WHERE empno = theEmpno;
      INSERT INTO terminations(empno, reason)
         VALUES(theEmpno, theReason);
   END;

   -- Set Signing Bonus Variable
   PROCEDURE set_bonus(newValue NUMBER) IS
   BEGIN
      signingBonus := newValue;
   END;

END LIB_HR;


Inhalt von PL/SQL-Paketen referenzieren

Sie können den Inhalt eines Pakets mit der Standard-Punktschreibweise von PL/SQL referenzieren:

package_name.object_name
package_name.program_unit_name

Um z.B. die Prozedur arrange_windows aufzurufen, die in dem Paket win_manage definiert ist, könnten Sie die folgende Anweisung in einen Trigger oder ein benutzerdefiniertes Unterprogramm schreiben:

win_manage.arrange_windows

Dieselben Regeln für den Geltungsbereich gelten auch für Pakete, die für benutzerdefinierte Unterprogramme angewendet werden.


Über Form Builder-Pakete

  Verwandte Themen

Form Builder verfügt über die folgenden vordefinierten Pakete:

Standarderweiterungen	Das STANDARD Extensions-Paket enthält vordefinierte Form Builder-Prozeduren und Funktionen.

TOOL_ENV	Das Paket TOOL_ENV ermöglicht eine Zusammenarbeit mit den Oracle-Umgebungsvariablen.

ORA_NLS	Mit dem Paket ORA_NLS können Sie Informationen auf höchster Ebene über die aktuelle Sprachumgebung extrahieren.

TOOL_RES	Mit dem Paket TOOL_RES können Sie Zeichenfolgen-Ressourcen aus einer Resource-Datei extrahieren.

ORA_FFI	Mit dem Paket ORA_FFI können Sie auf Fremdfunktionen (3GL-Funktionen) zugreifen.

ORA_DE	Das Paket ORA_DE ist ein internes Paket. Verwenden Sie dieses Paket nicht.

STPROC	Das Paket STPROC ist ein internes Paket. Verwenden Sie dieses Paket nicht.

TEXT_IO	Mit dem Paket TEXT_IO können Sie Informationen aus einer Datei im Dateisystem lesen bzw. in eine Datei im Dateisystem schreiben.

PECS	Mit dem Paket PECS können Sie die Formleistung auswerten.

FORMS_OLE	Das Paket FORMS_OLE enthält OLE-Funktionen und -Prozeduren von Form Builder.

VBX	Das Paket VBX enthält VBX-Funktionen und -Prozeduren von Form Builder.

Standard	Das Standard-Paket enthält PL/SQL-Prozeduren und -Funktionen.

Hinweis:  PL/SQL bietet ebenfalls einige vordefinierte Pakete. Diese Prozeduren können aus PL/SQL-Code in einer Forms-Anwendung aufgerufen werden. Die Prozeduren, deren Name mit DBMS_ beginnt, sind allerdings nur auf dem Server verfügbar (nicht auf dem Client).


Abfrageverarbeitung

Jeder Datenblock verfügt über eine zugehörige Datenquelle. Eine von der Anwendung oder vom Endbenutzer ausgeführte Aktion kann dazu führen, daß Form Builder eine Abfrage an die Datenquelle ausgibt. In den nächsten Abschnitten wird beschrieben, wie Form Builder Abfragen erzeugt und verarbeitet.

Attribute des Datenblocks und der zugehörigen Basistabellenobjekte definieren die SQL SELECT-Anweisung die Form Builder ausführt, wenn zusätzliche Befehle fehlen. Form Builder legt die meisten dieser Attribute automatisch fest. Der Anwendungsentwickler kann die folgenden Attribute festlegen:

•	WHERE-Klausel.

•	ORDER BY-Klausel.

•	Wert aus Objekt kopieren.

Die Anwendung kann Attribute auch zur Laufzeit mit vordefinierten Prozeduren festlegen.

Zur Laufzeit können Endbenutzer Abfragen mit einem zwei Schritte umfassenden Prozeß auslösen:

1	Die Benutzer können die Form in den Abfragemodus versetzen und Abfrage-nach-Muster-Bedingungen in Felder eingeben. Dadurch wird ein Beispieldatensatz erstellt. Durch Eingabe eines Doppelpunktes in ein Feld kann der Endbenutzer Form Builder veranlassen, das Dialogfeld Query Where zu öffnen, in dem der Benutzer Bedingungen angeben kann, die zu komplex sind, um durch Eingabe von Werten in Felder angegeben zu werden. Dies kann die Angabe einer ORDER BY-Klausel umfassen.

2	Der Endbenutzer weist Form Builder an, die Abfrage mit dem Beispieldatensatz auszuführen.

Die Anwendung kann den Beispieldatensatz ändern, den der Endbenutzer erstellt, oder kann einen Beispieldatensatz ohne Eingreifen des Endbenutzers erstellen. Form Builder kombiniert den Beispieldatensatz mit den vorher festgelegten Blockattributen, um die Abfrage zu erzeugen, die an die Datenbank ausgegeben wird.

Form Builder führt folgende Schritte aus, um eine SELECT-Anweisung zur Ausgabe an die Datenbank zu erstellen.

1	Eine SELECT-Anweisung wird mit Spaltennamen generiert, die den Basistabellenobjekten in dem Block entsprechen.

2	Eine WHERE-Klausel wird hinzugefügt, die durch Verknüpfen des Blockattributs WHERE-Klausel durch AND mit zusätzlichen WHERE-Bedingungen generiert wird, die aus dem Beispieldatensatz abgeleitet werden. Wenn der Endbenutzer z.B. den Wert 10 in das Feld DEPTNO eingibt, fügt Form Builder die zusätzliche Bedingung DEPTNO=10 zu der WHERE-Klausel hinzu. Wenn eines der Basistabellenobjekte in dem Block einen Nicht-Null-Wert bei dem Attribut Wert kopieren aus aufweist, fügt Form Builder dieses in die WHERE-Klausel ein.

3	Hinzufügen einer ORDER BY-Klausel, wobei die ORDER BY-Klausel aus dem Beispieldatensatz verwendet wird. Wenn der Beispieldatensatz keine ORDER BY-Klausel enthält, wird der Inhalt des Blockattributs ORDER BY-Klausel verwendet.

Form Builder reinitialisiert den Beispieldatensatz immer dann, wenn eine Programmanweisung, Menüauswahl oder Funktionstaste Form Builder veranlaßt, eine der vordefinierten Prozeduren ENTER_QUERY, EXECUTE_QUERY oder COUNT_QUERY auszuführen oder einen der entsprechenden interaktiven Modi aufzurufen.

Entwickler können Objekten in einem PRE-QUERY-Trigger Werte zuweisen. Beachten Sie, daß Änderungen, die an der SELECT-Anweisung von einem PRE-QUERY-Trigger vorgenommen werden, die von einem Endbenutzer im Abfragemodus eingegebenen Werte außer Kraft setzen. Mit dieser Funktionalität kann der Entwickler unzulässige Abfragen feststellen.

Dialogfeld Query Where Endbenutzer können das Dialogfeld Query Where aufrufen, indem sie einen Doppelpunkt in ein Feld im Abfragemodus eingeben. Auf diese Weise können sie Werte für die WHERE-Klausel angeben, indem Abfragebedingungen eingegeben werden, wobei der Musterabgleich und relationale Operatoren verwendet werden.

Verarbeitung im Abfragemodus

Wenn sich eine Form im Abfragemodus befindet, ändert Form Builder die Verarbeitungsregeln wie folgt:

•	Es führt keine Validierung durch.

•	Es benutzt die standardmäßigen Funktionstasten-Definitionen (nicht die in Tastentriggern vorgenommenen Definitionen).

•	Es deaktiviert die folgenden Funktionstasten:

Blockmenü	Nächster Block
Daten aus Form entfernen/Rollback	Nächster Datensatz
Commit	Nächste Gruppe mit Datensätzen
Nach-unten	Vorheriger Block
Objekt duplizieren	Vorheriger Datensatz
Datensatz duplizieren	Bild-ab
Datensatz einfügen	Bild-auf
Datensatz sperren	Nach-oben


Initialisierung

Form Builder initialisiert eine Form, indem es einen Null-Datensatz in jedem Block der Form erstellt. Jedes Objekt eines Null-Datensatzes ist null. Form Builder ersetzt den Null-Datensatz durch einen initialisierten Datensatz, wenn der Block das erste Mal aufgerufen wird. Zu diesem Zeitpunkt werden bestimmten Objekten Ausgangswerte zugewiesen. Ein Attribut Ausgangswert des Objekts gibt den Ausgangswert für das Objekt an.

Hinweis: Wenn ein Trigger einem Objekt in einem Null-Datensatz einen Wert zuweist, ist der Datensatz nicht mehr null. Form Builder weist niemals einem Objekt im Datensatz einen Ausgangswert zu. Ein PRE-FORM-Trigger wird z.B. ausgelöst, während die Form nur Null-Datensätze enthält. Wenn einem Objekt ein Wert zugewiesen wird, muß sichergestellt sein, daß allen anderen Objekten des Datensatzes entsprechende Ausgangswerte zugewiesen werden.

Für bestimmte Objekttypen gelten besondere Erwägungen.

Kontrollkästchen

Mit dem Ausgangswert wird bestimmt, ob das Kontrollkästchen anfänglich ausgewählt oder nicht ausgewählt ist. Sie müssen einen gültigen Ausgangswert angeben, es sei denn, eine der folgenden Bedingungen ist erfüllt:

•	Das Attribut Zuordnung anderer Werte ist auf Ausgewählt oder Nicht ausgewählt eingestellt.

•	Der mit Ausgewählt oder Nicht ausgewählt verknüpfte Wert ist Null.

Hinweis: Ein Kontrollkästchen in einem Null-Datensatz wird als Nicht ausgewählt angezeigt.

Listenobjekte

Sie müssen einen gültigen Ausgangswert angeben, es sei denn, eine der folgenden Bedingungen ist erfüllt:

•	Das Attribut Zuordnung anderer Werte hat einen Nicht-Null-Wert.

•	Der mit einem der Listenelemente verknüpfte Wert ist Null.

Hinweis: Ein Listenelement in einem Null-Datensatz wird leer angezeigt.

Optionsgruppen

Sie müssen einen gültigen Ausgangswert angeben, es sei denn, eine der folgenden Bedingungen ist erfüllt:

•	Das Attribut Zuordnung anderer Werte hat einen Nicht-Null-Wert.

•	Der mit einer der Optionsschaltflächen in der Gruppe verknüpfte Wert ist Null.

Hinweis: Eine Optionsgruppe in einem Null-Datensatz wird angezeigt, ohne daß eine Optionsschaltfläche ausgewählt ist.

Synchronisierte Objekte

Wenn z.B. bei Objekten B und C das Attribut Mit Objekt synchronisieren auf den Namen eines anderen Objekts, z.B. Objekt A eingestellt ist, bilden A, B und C eine Gruppe von synchronisierten Objekten. A ist das Master-Objekt der Gruppe, während B und C untergeordnete Objekte sind. In früheren Versionen von Form Builder wurden synchronisierte Objekte als Spiegelobjekte bezeichnet.

Die Objekte einer synchronisierten Gruppe benutzen einen gemeinsamen Datenwert, können jedoch unterschiedliche Objektattribute aufweisen. Form Builder nimmt datenspezifische Attribute und Trigger aus dem Master-Objekt und ignoriert diese Attribute und Trigger bei den untergeordneten Objekten.

Form Builder initialisiert synchronisierte Objekte aus dem Attribut Ausgangswert des Master-Objekts. Außerdem verwendet Form Builder den ON-SEQUENCE-NUMBER-Trigger des Master-Objekts.

Wenn der Entwickler ein Attribut Ausgangswert oder einen ON-SEQUENCE-NUMBER-Trigger für ein untergeordnetes Objekt angibt, ignoriert Form Builder diese und gibt eine Warnmeldung aus.

Form Builder ignoriert das Attribut Ausgangswert eines Objekts, wenn alle folgenden Bedingungen für das Objekt (oder ein mit ihm synchronisiertes Objekt) erfüllt sind:

•	Das Objekt ist ein Kontrollkästchen, eine Popup-Liste (Dropdown-Liste), T-Liste (Textliste) oder eine Optionsgruppe.

•	Das Objekt verfügt über kein Element, das dem angegebenen Ausgangswert entspricht.

•	Das Attribut Zuordnung anderer Werte des Objekts hat einen Null-Wert.


Validierung

Form Builder validiert ein Objekt, indem sichergestellt wird, daß das Objekt den für das Objekt geltenden Regeln entspricht. Trigger können eine zusätzliche Validierung implementieren.

Validierungseinheit

Mit dem Attribut Validierungseinheit einer Form wird die Genauigkeit der Validierung in der Form gesteuert. Bei der Validierungseinheit kann es sich um ein Objekt, einen Datensatz, einen Block oder eine Form handeln. Die meisten Form Builder-Anwendungen validieren auf Objektebene.

Wann wird die Validierung vorgenommen?

Form Builder führt die Validierung aus, wenn

•	Form Builder aus der Validierungseinheit heraus navigiert. Dies geschieht, wenn der Endbenutzer bestimmte Funktionstasten drückt oder mit der Maus außerhalb der Validierungseinheit klickt oder wenn ein Trigger bestimmte vordefinierte Prozeduren ausführt.

•	Wenn ein Trigger die vordefinierte Prozedur ENTER aufruft oder der Endbenutzer [Eingabe] drückt.

•	Wenn ein Trigger die vordefinierte Prozedur COMMIT_FORM aufruft oder der Endbenutzer [Commit] drückt. In diesem Fall validiert Form Builder die Form ungeachtet der Validierungseinheit.

•	Wenn ein Trigger die vordefinierte Prozedur VALIDATE aufruft.

Form Builder führt keine Validierung im Abfragemodus aus. Auf diese Weise kann der Endbenutzer Abfragekriterien eingeben, die Form Builder als ungültig betrachten würde.

Wie wird die Validierung vorgenommen?

Intern verwaltet Form Builder einen Status für alle Objekte, Datensätze, Blöcke und Forms. Im Hinblick auf die Validierung hat jede potentielle Validierungseinheit einen Validierungsstatus mit einem von zwei Werten:

•	Gültig

•	Nicht validiert

Der Status Gültig bedeutet, daß Form Builder die Validierungseinheit nicht überprüfen muß. Der Status Nicht validiert, eine Kombination der Status, die intern als Neu und Geändert bekannt sind, bedeutet, daß Form Builder die Objekte in der Validierungseinheit validieren muß. Der Unterschied zwischen Neu und Geändert wird im Validierungsprozeß nur selten sichtbar (siehe den Hinweis zu dem Eintrag Datensatz in der folgenden Tabelle).

Wenn die Validierung nicht erfolgreich verläuft, tritt ein dritter Status auf. In diesem Fall fährt Form Builder jedoch erst dann fort, wenn die Situation behoben wurde, so daß der fehlerhafte Status in dem Validierungsprozeß nicht zum Tragen kommt.

Form Builder validiert eine Validierungseinheit nach einem der folgenden Prozesse:

Objekt	Wenn der Status des Objekts Gültig lautet, wird der Prozeß gestoppt. Wenn der Status Nicht validiert lautet, führt Form Builder standardmäßige Validierungsprüfungen aus und löst dann den WHEN-VALIDATE-ITEM-Trigger aus. (Beachten Sie allerdings das Attribut Defer Required-Durchsetzung.)
Datensatz	Wenn der Status des Datensatzes Gültig ist, wird der Prozeß gestoppt. Wenn der Status Nicht validiert ist, validiert Form Builder jedes Objekt in dem Datensatz und löst dann den WHEN-VALIDATE-RECORD-Trigger aus. Hinweis:  Wenn die Validierung das Ergebnis eines Aufrufs des VALIDATE-Triggers ist und der interne Status des Datensatzes Neu ist, wird der Prozeß gestoppt.
Block	Form Builder validiert alle Datensätze in dem Block.
Form	Form Builder validiert alle Blöcke in der Form.
Status der Objektvalidierung

Nicht validiert  Form Builder stellt den Status eines Objekts auf Nicht validiert ein, wenn eine der folgenden Bedingungen auftritt:

•	Form Builder erstellt einen Datensatz.

•	Der Endbenutzer gibt einen Wert in das Objekt ein, oder ein Trigger veranlaßt, daß ein Wert in dem Objekt gespeichert wird.

Hinweis: Form Builder stellt den Status des Objekts auf Nicht validiert ein, selbst wenn der neue Wert identisch mit dem alten Wert ist. Wenn ein Objekt mit dem Status Gültig z.B. den Wert 10 hat und der Endbenutzer 10 in das Objekt eingibt, stellt Form Builder den Status des Objekts auf Nicht validiert ein.

•	Wenn Form Builder einen Datensatz dupliziert (als Reaktion auf die vordefinierte Prozedur DUPLICATE_RECORD oder die Taste [Datensatz duplizieren]), hat jedes Objekt, das im Original den Status Nicht validiert hat, auch im Duplikat den Status Nicht validiert.

Gültig  Form Builder stellt den Status eines Objekts in folgenden Fällen auf Gültig ein:

•	Wenn Form Builder ein Objekt erfolgreich validiert, stellt es den Status des Objekts auf Gültig ein, selbst wenn die Validierung den Wert des Objekts ändert (durch einen WHEN-VALIDATE-ITEM-, WHEN-VALIDATE-RECORD- oder POST-CHANGE-Trigger). Form Builder validiert den geänderten Wert nicht neu.

Achtung: Dieses Verhalten vermeidet Validierungsschleifen, ein Trigger-Fehler kann jedoch dazu führen, daß Form Builder einen ungültigen Wert in der Datenbank speichert.

•	Wenn Form Builder Datensätze aus der Datenbank abruft, stellt es deren Status auf Gültig ein, selbst wenn ein Post-Change-Trigger, der während dem Abrufenvorgang ausgelöst wird, Objektwerte ändert.

•	Wenn Form Builder Daten erfolgreich in der Datenbank speichert, stellt es den Status aller Objekte in der Form auf Gültig ein. Form Builder validiert Änderungen nicht, die durch Trigger veranlaßt werden, die während der Commit-Transaktion ausgelöst werden.

Hinweis: Ausnahmen zu dieser Regel werden unter Daten während der Commit-Verarbeitung ändern beschrieben.

•	Wenn Form Builder einen Datensatz dupliziert (als Reaktion auf die vordefinierte Prozedur DUPLICATE_RECORD oder die Taste [Datensatz duplizieren]), hat jedes Objekt, das im Original den Status Gültig hat, auch in dem Duplikat den Status Gültig.

Status der Datensatzvalidierung

Jeder Datensatz hat einen Validierungsstatus von Nicht validiert oder Gültig.

Hinweis: Der Validierungsstatus eines Datensatzes ist nicht gleichbedeutend mit dem Wert der Systemvariablen SYSTEM.RECORD_STATUS.

Nicht validiert  Form Builder stellt den Status eines Datensatzes in folgenden Fällen auf Nicht validiert ein:

•	Wenn Form Builder einen Datensatz erstellt, stellt es dessen Status auf Nicht validiert ein.

•	Wenn Form Builder den Status eines Objekts in dem Datensatz auf Nicht validiert einstellt, stellt es den Status des Datensatzes auf Nicht validiert ein.

•	Wenn Form Builder einen Datensatz dupliziert (als Reaktion auf die vordefinierte Prozedur DUPLICATE_RECORD oder die Taste [Datensatz duplizieren]), wird der Status des duplizierten Datensatzes auf Nicht validiert eingestellt.

Gültig  Form Builder stellt den Status eines Datensatzes in folgenden Fällen auf Gültig ein:

•	Wenn Form Builder einen Datensatz validiert, validiert es jedes Objekt, das noch nicht den Status Gültig hat. Wenn alle Objekte beim Abschluß dieses Prozesses den Status Gültig haben und wenn bei Abschluß des WHEN-VALIDATE-RECORD-Triggers die Exception Form_Trigger_Failure nicht ausgelöst wird, stellt Form Builder den Status des Datensatzes auf Gültig ein.

•	Form Builder stellt den Status von Datensätzen, die aus der Datenbank abgerufen werden, auf Gültig ein.

•	Wenn Form Builder Daten erfolgreich in der Datenbank festschreibt, wird der Status jedes Datensatzes in der Form auf Gültig eingestellt. Form Builder validiert keine Änderungen, die von Triggern verursacht werden, die während der Commit-Transaktion ausgelöst werden.

Hinweis: Ausnahmen zu dieser Regel werden unter Daten während der Commit-Verarbeitung ändern beschrieben.

•	Wenn Form Builder (als Reaktion auf die vordefinierte Prozedur DUPLICATE_RECORD oder die Taste [Datensatz duplizieren]) einen Datensatz dupliziert, der den Status Gültig hat, stellt es den Status des duplizierten Datensatzes auf Gültig ein.

Standardmäßige Validierungsprüfungen

Form Builder benutzt die Anforderungen, die in den Abschnitten Daten und Werteliste der Attributpalette angegeben werden, um ein Objekt zu validieren.

Validierungsfolge für Textobjekte

Bei Textobjekten führt Form Builder eines der folgenden Validierungverfahren aus. Welches Verfahren eingesetzt wird, hängt davon ab, ob der Wert des Objekts Null oder Nicht-Null ist. Wenn ein Objekt einen Validierungsschritt nicht besteht, hält Form Builder den Fehler fest und führt die nachfolgenden Validierungsschritte nicht aus.

Wenn der Wert des Objekts Null ist:

1	Wenn das Attribut Obligatorisch des Objekts den Wert Ja hat, besteht das Objekt den Validierungsschritt nicht, es sei denn, es wird eine Validierung auf Objektebene durchgeführt und eine der folgenden Bedingungen ist erfüllt:

•	Das Attribut Defer Required-Durchsetzung der Form hat den Wert Ja oder 4.5. (Informationen zum Validierungsverfahren in diesen Fällen finden Sie unter Attribut Defer Required-Durchsetzung.)

•	Die Objektinstanz läßt keinen Update durch den Endbenutzer zu.

Wenn eine der oben aufgeführten Ausnahmebedingungen erfüllt ist, setzt Form Builder die Validierung des Null-Objekts bis zur Validierung auf Datensatzebene aus. (Wenn die Objektinstanz keine Aktualisierung durch den Endbenutzer zuläßt, wird die Validierung auch dann ausgesetzt, wenn für Defer Required-Durchsetzung der Wert Nein festgelegt ist.

2	Wenn das Attribut Obligatorisch des Objekts den Wert Nein hat, wird der WHEN-VALIDATE-ITEM-Trigger ausgelöst. Wenn der Trigger die Exception Form_Trigger_Failure auslöst, besteht das Objekt diesen Validierungsschritt nicht.

Wenn der Wert des Objekts Nicht-Null ist:

1	Der Datentyp wird überprüft. Wenn der Wert nicht mit dem Datentyp des Objekts übereinstimmt, besteht das Objekt diesen Validierungsschritt nicht.

Form Builder versucht, einen vom Benutzer eingegebenen Wert in den Datentyp des Objekts zu konvertieren.

Wenn das Objekt eine Formatmaske hat, verwendet Form Builder diese. Wenn keine Formatmaske vorhanden ist und der Datentyp des Objekts DATE oder DATETIME ist, benutzt Form Builder die Eingabe-Formatmaske, die beim Hochfahren von Form Builder abgeleitet wurde.

Wenn das Objekt keine Formatmaske hat und den Datentyp NUMBER oder ALPHA aufweist, prüft Form Builder auf eine gültige numerische oder alphabetische Textfolge.

2	Die Länge wird überprüft. Wenn der Wert nicht mit dem Attribut Feste Länge des Objekts übereinstimmt, besteht das Objekt diesen Validierungsschritt nicht.

3	Der Bereich wird überprüft. Wenn der Wert nicht mit den Attributen Niedrigster zulässiger Wert und Höchster zulässiger Wert des Objekts übereinstimmt, besteht das Objekt diesen Validierungsschritt nicht.

4	Wenn das Attribut Werteliste für Validierung benutzen den Wert Ja hat, wird geprüft, ob der Wert in der Werteliste des Objekts angezeigt wird.

5	Der POST-CHANGE-Trigger wird ausgelöst. Wenn der Trigger die Exception Form_Trigger_Failure auslöst, besteht das Objekt diesen Validierungsschritt nicht.

6	Der WHEN-VALIDATE-ITEM-Trigger wird ausgelöst. Wenn der Trigger die Exception Form_Trigger_Failure auslöst, besteht das Objekt diesen Validierungsschritt nicht.

Validierungsfolge bei Nicht-Textobjekten

Wenn das Attribut Objekttyp des Objekts nicht den Wert Textobjekt aufweist. führt Form Builder die oben aufgeführten Schritte aus, läßt jedoch die Schritte 3 bis 5 weg. Außerdem wird Schritt 2 weggelassen, es sei denn, das Attribut Objekttyp hat den Wert Listenobjekt, und das Attribut Listenstil hat den Wert Kombinationsfeld.

Validierung von synchronisierten Objekten

Wenn z.B. bei Objekten B und C das Attribut Mit Objekt synchronisieren auf den Namen eines anderen Objekts, z.B. Objekt A eingestellt ist, bilden A, B und C eine Gruppe von synchronisierten Objekten. A ist das Master-Objekt der Gruppe, während B und C untergeordnete Objekte sind. In früheren Versionen von Form Builder wurden synchronisierte Objekte als Spiegelobjekte bezeichnet.

Die Objekte einer synchronisierten Gruppe benutzen einen gemeinsamen Datenwert, können jedoch unterschiedliche Objektattribute aufweisen. Form Builder nimmt datenspezifische Attribute und Trigger aus dem Master-Objekt und ignoriert diese Attribute und Trigger bei den untergeordneten Objekten.

Wenn der Wert validiert wird, der einer synchronisierten Gruppe von Objekten zugewiesen ist, benutzt Form Builder die folgenden datenspezifischen Attribute und Trigger aus dem Master-Objekt:

•	Attribut Obligatorisch

•	Attribut Höchster zulässiger Wert

•	Attribut Niedrigster zulässiger Wert

•	Attribut Ausgangswert

•	POST-CHANGE-Trigger

•	WHEN-VALIDATE-ITEM-Trigger

Wenn das untergeordnete Objekt Werte für diese Attribute oder Spezifikationen für diese Trigger aufweist, ignoriert Form Builder diese und gibt eine Warnung aus.

Form Builder nimmt die restlichen Validierungsattribute aus dem Objekt, über das der Datenwert eingestellt wird - programmgesteuert oder durch eine Endbenutzeraktion. Insbesondere verwendet Form Builder die Attribute Feste Länge und Aus Liste validieren dieses Objekts.

Die Variable SYSTEM.TRIGGER_ITEM enthält den Namen des Objekts, über das der Datenwert festgelegt wurde. Auf diese Weise kann Code in dem POST-CHANGE- oder WHEN-VALIDATE-ITEM-Trigger Attribute dieses Objekts referenzieren, obwohl diese Trigger für das Master-Objekt definiert sind.

Form Builder geht davon aus, daß ein Wert, der nicht programmgesteuert oder durch den Endbenutzer festgelegt wurde, von dem Master-Objekt festgelegt wurde, da dies die Quelle ist, die Form Builder für den Ausgangswert benutzt.

Während der Validierung auf Datensatzebene validiert Form Builder das Objekt, über das der Datenwert festgelegt wurde. Wenn die Validierung nicht erfolgreich verläuft, gibt Form Builder diesem Objekt den Fokus, es sei denn, die Objektinstanz läßt keine Endbenutzereingabe zu. Form Builder versucht, den Fokus einem anderen Objekt der synchronisierten Gruppe zu geben, das eine Endbenutzereingabe zuläßt. Wenn kein derartiges Objekt gefunden wird, versucht Form Builder, den Fokus einem Objekt der Gruppe zu geben, dessen Attribut Aktiviert den Wert Ja hat.


Commit-Verarbeitung

Bei der Commit-Verarbeitung versucht Form Builder, die Daten in der Datenbank den Daten in der Form anzugleichen. Normalerweise führt Form Builder die folgenden Vorgänge aus:

1	Die Datensätze werden aus der Datenbank gelesen.

2	Der Endbenutzer kann versuchen, Einfügen-, Aktualisieren- und Löschenvorgänge durchzuführen. Die versuchten Änderungen werden nur in der Form angezeigt. Die Datenbank bleibt unverändert.

3	Änderungen werden an die Datenbank abgeschickt. Form Builder übernimmt die verbleibende Verarbeitung und sendet die Daten an die Datenbank. Nachdem die Daten abgeschickt wurden, kann Form Builder die Änderungen nur rückgängig machen (mit der Funktionstaste [Daten aus Form löschen] oder der vordefinierten Prozedur CLEAR_FORM) oder kann sie festschreiben.

4	Form Builder schreibt die abgeschickten Änderungen fest. Sie werden zu permanenten Änderungen an der Datenbank.

Der Begriff Commit-Verarbeitung bezieht sich auf die Schritte 3 und 4 des obigen Zyklus. Normalerweise werden diese Schritte gemeinsam ausgeführt. Als Reaktion auf die Taste [Commit] oder auf den Aufruf der vordefinierten Prozedur COMMIT_FORM schickt Form Builder die Daten zuerst ab und schreibt sie dann in der Datenbank fest.

Das Abschicken kann separat vor dem Festschreiben erfolgen. Endbenutzer können keine Befehle für das Abschicken ausgeben, Trigger können jedoch die vordefinierte Prozedur POST aufrufen.

Hinweis: Form Builder unterstützt keinen Commit-Vorgang, der nicht die normale Commit-Verarbeitung von Form Builder umfaßt. So unterstützt Form Builder z.B. keinen Commit-Vorgang, der von einem User Exit von Oracle Precompiler oder von einer gespeicherten Prozedur ausgegeben wird.

Einfügen-, Aktualisieren- und Löschenvorgänge verarbeiten

Beim Abschicken werden versuchte Änderungen aus der Form an die Datenbank gesendet. Hier handelt es sich um Datensätze, die seit dem letzten Abschicken-Vorgang für das Einfügen, Aktualisieren oder Löschen markiert wurden. Beim Abschicken verarbeitet Form Builder Einfügen-, Aktualisieren- und Löschenvorgänge für alle Blöcke in einer Form. Form Builder verarbeitet diese Änderungen auf eine standardmäßige Weise. Trigger bieten einen flexiblen Mechanismus, mit dem das Standardverhalten geändert werden kann.

Einfügen  Beim Einfügen wird ein Datensatz in die Datenbank eingefügt. Jeder Einfügenvorgang verfügt über eine zugehörige SQL-Anweisung, die Form Builder ausführt, wenn der Einfügenvorgang abgeschickt wird. Die Anweisung hat folgende Form:

INSERT INTO table [(column, column, . . .)]
  VALUES (value, value, . . .);

table	Name der Basistabelle für den aktuellen Block.
column	Eine Spalte, die einem Basistabellenobjekt entspricht. Wenn es sich bei einem Objekt um eine abgeleitete Spalte handelt, wird diese nicht in der Spaltenklausel angezeigt.
value	Der Wert, der in die entsprechende Spalte eingefügt wird.
Aktualisieren  Beim Aktualisieren wird eine bestehende Zeile in der Datenbank aktualisiert. Jeder Aktualisierenvorgang verfügt über eine zugehörige SQL-Anweisung, die Form Builder ausführt, wenn der Update abgeschickt wird. Die Anweisung hat folgende Form:

UPDATE table
  SET (column=value, column=value, . . .)
  WHERE ROWID=rowid_value;

table	Name der Basistabelle für den aktuellen Block.
column	Eine Spalte, die einem Basistabellenobjekt entspricht. Wenn es sich bei einem Objekt um eine abgeleitete Spalte handelt, wird diese nicht in der Spaltenklausel angezeigt.
value	Der Wert zur Aktualisierung der entsprechenden Spalte.
rowid_value	Der ROWID-Wert für die Zeile, die Form Builder aktualisiert.
Hinweis:

•	Die WHERE-Klausel gibt nur einen ROWID-Wert an. Dieser kennzeichnet die eindeutige Zeile, die die Datenbank aktualisieren soll. Form Builder benutzt das Konstrukt ROWID nur, wenn das Attribut Schlüsselmodus des Blocks den Wert Unique_Key (Standardwert) aufweist.

•	Wenn ein Endbenutzer keine Aktualisierungsberechtigung für eine Spalte hat und wenn das Attribut Spaltensicherheit durchsetzen des Blocks den Wert Ja hat, nimmt Form Builder die Spalte nicht in der Update-Anweisung auf. Andere Endbenutzer können andere Update-Anweisungen haben, je nach Berechtigung, die Anweisung bleibt jedoch während der Form Builder-Sitzung eines Endbenutzers unverändert.

Löschen  Bei einem Löschenvorgang wird eine Zeile in der Datenbank gelöscht. Mit jedem Löschenvorgang ist eine SQL-Anweisung verknüpft, die Form Builder ausführt, wenn der Löschenvorgang abgeschickt wird. Die Anweisung hat folgende Form:

DELETE FROM table WHERE ROWID=rowid_value;

table	Name der Basistabelle für den aktuellen Block.
rowid_value	Der ROWID-Wert für die Zeile, die Form Builder löscht.
Hinweis:  Die WHERE-Klausel gibt nur einen ROWID-Wert an. Dadurch wird die eindeutige Zeile gekennzeichnet, die die Datenbank löschen soll. Form Builder benutzt den ROWID-Wert für fremde Datenquellen nicht.

Achtung: Wenn ein Commit-Vorgang nicht erfolgreich ausgeführt wird, kann der ROWID-Wert keinen Null-Wert aufweisen. Benutzen Sie den Datensatzstatus anstelle des ROWID-Wertes, um zu prüfen, ob der Commit-Vorgang erfolgreich war oder nicht.

Wann wird die Commit-Verarbeitung durchgeführt?

Form Builder führt die Commit-Verarbeitung durch, wenn

•	ein Trigger oder die Taste [Commit] die vordefinierte Prozedur COMMIT_FORM aufruft.

•	Datenbankobjekte im aktuellen Block seit dem letzten Commit-Vorgang geändert wurden und ein Trigger die vordefinierte Prozedur CLEAR_BLOCK (mit dem Argument DO_COMMIT) aufruft.

•	Datenbankobjekte in der Form seit dem letzten Commit-Vorgang geändert wurden und ein Trigger die vordefinierte Prozedur CLEAR_FORM (mit dem Argument DO_COMMIT) aufruft.

•	ein Endbenutzer die folgende Warnmeldung mit Ja beantwortet:

  Sollen die vorgenommenen Änderungen festgeschrieben werden?

Diese Warnmeldung wird in folgenden Fällen angezeigt:

•	Datenbankobjekte im aktuellen Block wurden seit dem letzten Commit-Vorgang geändert, und eines der folgenden Ereignisse tritt ein:

CLEAR_BLOCK (mit dem Argument ASK_COMMIT oder ohne Argument)

COUNT_QUERY

ENTER_QUERY

EXECUTE_QUERY

NEW_FORM

•	Datenobjekte in einem Block der Form wurden seit dem letzten Commit-Vorgang geändert, und eines der folgenden Ereignisse tritt auf:

CLEAR_FORM (mit dem Argument ASK_COMMIT oder ohne Argument)

Form verlassen

Hinweis:  Wenn ein PL/SQL-Block einen Datenbank-Commit-Vorgang aus Form Builder (über die SQL-Anweisung COMMIT) ausgibt, erfolgt die Commit-Verarbeitung durch Form Builder so, als wäre die vordefinierte Prozedur COMMIT_FORM aufgerufen worden.

Daten während der Commit-Verarbeitung ändern

Die Commit-Verarbeitung führt eine Validierung durch und kann Trigger auslösen. Somit kann ein Commit-Ereignis Datenbankobjekte ändern. Bei einigen Triggern versucht Form Builder, diese Änderungen während des aktuellen Commit-Ereignisses in der Datenbank festzuschreiben.

Achtung: Form Builder kann nicht validierte Datenbankänderungen festschreiben, die von den PRE-DELETE-, PRE-INSERT- und PRE-UPDATE-Triggern vorgenommen wurden.

Angenommen, ein PRE-INSERT-Trigger wählt einen Wert zur Einfügung in einem Basistabellenobjekt aus.

•	Wenn Form Builder die Updates des betroffenen Datensatzes noch nicht verarbeitet hat, schreibt es die Änderungen während des aktuellen Commit-Ereignisses fest, ohne sie zu validieren.

•	Wenn Form Builder die Updates des betroffenen Datensatzes schon verarbeitet hat, werden die Änderungen nicht festgeschrieben, die Datensätze werden jedoch als aus der Datenbank stammend markiert. Wenn danach versucht wird, den Datensatz zu aktualisieren, bevor er festgeschrieben wurde, kommt es zu einem Fehler.

Achtung: Form Builder kann nicht validierte Datenbankänderungen festschreiben, die von den POST-COMMIT-, POST-DELETE-, POST-INSERT- und POST-UPDATE-Triggern vorgenommen wurden.

Angenommen, ein POST-INSERT-Trigger fügt einen Wert in ein Basistabellenobjekt ein.

•	Wenn der betroffene Datensatz in einem Block steht, der von dem Commit-Vorgang verarbeitet wurde oder verarbeitet wird, schreibt Form Builder die Änderungen während des aktuellen Commit-Ereignisses nicht fest. Wenn der Commit-Vorgang erfolgreich ausgeführt wird, markiert Form Builder alle Objekte und Datensätze als Gültig. Dies führt während der nachfolgenden Verarbeitung zu einem Fehler.

•	Wenn der betroffene Datensatz in einem Block steht, der von dem Commit-Vorgang noch nicht verarbeitet wurde, validiert Form Builder die Änderungen und schreibt sie während des aktuellen Commit-Ereignisses fest.

Standardmäßige Commit-Verarbeitung ersetzen

Die ON-INSERT-, ON-UPDATE- und ON-DELETE-Trigger ersetzen die standardmäßige Commit-Verarbeitung.


Sperren

  Verwandte Themen

Bei Oracle-Datenbanken können viele Endbenutzer Daten gleichzeitig überprüfen und ändern. Mit Sperren gewährleistet Oracle, daß gleichzeitige Änderungen nicht in Konflikt zueinander geraten. Durch das Sperren von Tabellen und Zeilen kann die Konsistenz und Integrität der Daten aufrechterhalten werden. In dem Handbuch Oracle Server Concepts finden Sie eine genaue Beschreibung der Sperrmethoden und Sperrtypen von Oracle.

Form Builder bearbeitet Sperren automatisch, während Entwickler und Endbenutzer kontrollieren können, wann und wie Ressourcen gesperrt werden sollen.

Wenn ein Endbenutzer eine Zeile aktualisiert, sperrt Form Builder die Zeile, um zu verhindern, daß andere Benutzer dieselbe Zeile aktualisieren, bis der erste Benutzer die Änderungen festschreibt oder zurücksetzt. Es sei denn, das Attribut Sperrmodus hat den Wert Verzögert, versucht Form Builder automatisch, exklusive Zeilensperren als Reaktion auf Endbenutzer-Ereignisse und die Trigger- sowie Transaktions-Verarbeitung zu erhalten.

Eine exklusive Zeilensperre

•	hindert andere Benutzer daran, die Zeile zu aktualisieren oder zu löschen bzw. Sperren für diese Zeile zu erhalten.

•	läßt zu, daß andere Benutzer die Zeile abfragen.

Von Endbenutzern verursachte Sperren  Wenn ein Endbenutzer den Wert eines Basistabellenobjekts ändert oder explizit eine Sperre für einen Datensatz anfordert, versucht Form Builder, eine exklusive Sperre für die entsprechende Zeile in der Datenbank durchzusetzen. Die Anweisung für eine exklusive Zeilensperre hat folgende Form:

SELECT <all base table items in block>
  FROM <base table for the block>
  WHERE ROWID = <the unique row ID for the row to be locked>
  FOR UPDATE OF <all base table items in block>

Die Benutzung von SELECT FOR UPDATE stellt sicher, daß die Daten, die der Benutzer während der Arbeit in der Form ändert, identisch mit den entsprechenden Daten in der Datenbank sind.

Von Triggern verursachte Sperren  Wenn ein Trigger eine Änderung an einer Tabelle über einen Befehl der Data Manipulation Language (DML) vornimmt, versucht die Datenbank, eine exklusive Sperre für die betroffene Zeile zu setzen. Form Builder verwaltet von DML-Anweisungen ausgelöste Sperren nicht.

Form Builder versucht, eine exklusive Sperre für die Zeile zu setzen, die einem abgerufenen Datensatz entspricht, wenn ein Trigger eine der folgenden vordefinierten Prozeduren verwendet:

•	DELETE_RECORD

•	LOCK_RECORD

Als allgemeine Regel gilt, daß jede Aktion (Aufruf einer vordefinierten Prozedur, Zuweisung einer PL/SQL-Anweisung, Update-Vorgang), die einen Wert in einem abgefragten Datensatz ändert, eine exklusive Sperre anfordert.

Implizites und explizites Sperren von Zeilen

Es gibt zwei Arten von Sperren: implizite und explizite Sperren. Sie führen identische Funktionen aus, treten jedoch zu unterschiedlichen Zeiten auf.

Implizite Sperre  Alle Form Builder-Anwendungen benutzen implizite Sperren, d.h. daß Endbenutzer Zeilen niemals explizit sperren müssen. Form Builder versucht, zu einem Zeitpunkt, der von dem Attribut Sperrmodus des Blocks bestimmt wird, eine exklusive Sperre auf eine Zeile zu setzen. Dieses Attribut kann drei Werte haben: Automatisch, Sofort oder Verzögert.

Bei Oracle-Datenbanken haben Automatisch und Sofort dieselbe Bedeutung: Form Builder versucht, eine exklusive Sperre für eine Zeile zu setzen, sobald der Endbenutzer mit der Eingabe einer Änderung in ein Objekt in dem entsprechenden Datensatz beginnt. Mit dem Wert Automatisch wird Form Builder angewiesen, die Änderungen zu erkennen und an die Möglichkeiten der Datenbank anzupassen - ohne daß Änderungen an den Attributen oder dem Trigger-Code erforderlich sind.

Wenn das Attribut Sperrmodus des Blocks den Wert Verzögert hat, sperrt Form Builder erst dann Zeilen, wenn die Änderungen festgeschrieben werden müssen. Zu diesem Zeitpunkt sucht Form Builder nach Unterschieden zwischen den aktuellen Werten in der Datenbank und den Werten, die von der Originalabfrage zurückgegeben werden. Wenn Unterschiede gefunden werden, wird der Endbenutzer gewarnt und werden die Änderungen nicht festgeschrieben.

Hinweis:  Beim Validieren auf Objektebene läßt Form Builder die Änderung nicht zu, wenn es die Sperre nicht erhalten kann. Sonst läßt Form Builder die Änderung zu und versucht, während der Validierung des Datensatzes eine exklusive Sperre für die Zeile zu setzen.

Explizite Sperre  Ein Endbenutzer oder ein Trigger kann Form Builder explizit auffordern, eine bestimmte Zeile sofort zu sperren. Hierzu wählt der Endbenutzer Datensatz [image] Sperren aus dem Standardmenü. Ein Trigger fordert eine explizite Sperre an, indem die vordefinierte Prozedur LOCK_RECORD aufgerufen wird. Ein ON-LOCK-Trigger muß so vorgehen, um eine Sperre explizit zu erhalten, da die Aktion des Triggers die Standardprozedur für Sperren von Form Builder außer Kraft setzt.

Eine Sperre kann nicht erhalten werden

Form Builder versucht, eine bestimmte Anzahl von Malen eine Sperre zu erhalten. Danach fragt Form Builder, ob der Versuch wiederholt werden soll. Der Endbenutzer kann wählen, ob er weiter auf die Sperre warten oder den Sperrenvorgang beenden möchte.

Wenn eine Tabelle exklusiv für einen Benutzer gesperrt ist, können andere Benutzer Datensätze aus der Tabelle abfragen, können diese Zeilen jedoch nicht aktualisieren oder löschen. Diese Bedingung bleibt ohne weiteren Hinweis bestehen, bis die Ressource wieder verfügbar wird. Aus diesem Grund empfiehlt Oracle, daß die Benutzung von exklusiven Tabellensperren auf ein Mindestmaß beschränkt wird.

Wenn Sperren freigegeben werden

Die Datenbank gibt Sperren frei, wenn

•	die Form erfolgreich gespeichert wird.

•	die Form abgebrochen wird.

•	Form Builder einen vollständigen Form Builder-Rollback (und keinen Rollback zu einem Savepoint) durchführt.

•	Form Builder sich bei der Datenbank abmeldet.

Form Builder läßt Sperren bestehen, wenn auf einen Savepoint zurückgesetzt wird, wie dies nach einem nicht erfolgreichen Commit-Vorgang der Fall sein kann. Auf diese Weise kann der Endbenutzer die erforderlichen Änderungen vornehmen und erneut speichern.

Hinweis:

•	Wenn ein Trigger Zeilen explizit über das Argument FOR_UPDATE sperrt, muß er diese Zeilen nach einem Commit-Vorgang erneut abfragen, um neue Sperren zu erhalten.

•	Durch das Löschen eines Datensatzes oder Blocks werden die Sperren für die entsprechenden Zeilen nicht freigegeben.

•	Wenn Sie eine ROLLBACK- oder COMMIT-Anweisung in einem Trigger oder einer Prozedur auf Formebene verwenden, gibt Form Builder alle Sperren frei. Form Builder interpretiert eine ROLLBACK-Anweisung als vordefinierte Prozedur CLEAR_FORM ohne Argumente. Es interpretiert eine COMMIT-Anweisung als eine vordefinierte Prozedur COMMIT_FORM.

Standardsperren ersetzen

Der ON-LOCK-Trigger wird immer dann ausgelöst, wenn Form Builder normalerweise versuchen würde, eine Sperre zu erhalten. Der Code des On-Lock-Triggers ersetzt die Standard-Sperrprozedur von Form Builder vollständig. Deshalb umfaßt ein ON-LOCK-Trigger im allgemeinen einen Aufruf der vordefinierten Prozedur LOCK_RECORD.


Was sind Attribute?

 Alle Attribute

Jedes Objekt in einer Anwendung von Form Builder verfügt über Eigenschaften, die als Attribute bezeichnet werden. Mit den Attributen eines Objekts wird dessen Erscheinungsbild und Funktionalität bestimmt.


Über das Einstellen und Ändern von Attributen

  Verwandte Themen

Jede Attributbeschreibung umfaßt eine Überschrift mit der Bezeichnung Einstellung, mit der beschrieben wird, wie das Attribut eingestellt werden kann, deklarativ in Form Builder (mit der Attributpalette) und/oder programmgesteuert zur Laufzeit.

Attribute programmgesteuert einstellen

Um Objektattribute programmgesteuert dynamisch zu ändern, verwenden Sie die folgenden vordefinierten Prozeduren von Form Builder:

•	SET_APPLICATION_PROPERTY

•	SET_BLOCK_PROPERTY

•	SET_CANVAS_PROPERTY

•	SET_FORM_PROPERTY

•	SET_ITEM_PROPERTY

•	SET_ITEM_INSTANCE_PROPERTY

•	SET_LOV_PROPERTY

•	SET_MENU_ITEM_PROPERTY

•	SET_PARAMETER_ATTR

•	SET_RADIO_BUTTON_PROPERTY

•	SET_RECORD_PROPERTY

•	SET_RELATION_PROPERTY

•	SET_REPORT_OBJECT_PROPERTY

•	SET_TAB_PAGE_PROPERTY

•	SET_VIEW_PROPERTY

•	SET_WINDOW_PROPERTY

Sie können die Einstellungen der meisten Attribute bestimmen, indem Sie die Gruppe mit entsprechenden vordefinierten Prozeduren verwenden, um Attribute einzulesen (z.B. GET_ITEM_PROPERTY).


Attributbeschreibungen lesen

Beschreibung

Die Attributbeschreibungen unterliegen einem allgemeinen Schema. Der Name des Attributs wird fett geschrieben, und auf ihn folgt eine kurze Beschreibung.

Die Überschriften in der folgenden Tabelle sind nur für die Attribute enthalten, für die sie zutreffend sind.

Überschrift	Beschreibung
Gilt für	Die Objektklasse bzw. -klassen, für die dieses Attribut gilt.
Einstellung	Gibt an, wo Sie das Attribut einstellen können: in Form Builder (mit der Attributpalette) und/oder programmgesteuert zur Laufzeit.
Vordefinierte Prozedur	Vordefinierte Prozedur(en), mit denen Sie das Attribut einstellen können, wenn dieses programmgesteuert eingestellt werden kann.
Standardwert	Der Standardwert des Attributs.
Obligatorisch/Optional	Gibt an, ob das Attribut obligatorisch oder optional ist.
Einschränkungen	Einschränkungen, die die Verwendung des Attributs möglicherweise beeinflussen.
Verwendungshinweise	Bestimmte Erwägungen im Zusammenhang mit der Verwendung, die Sie bei der Benutzung des Attributs berücksichtigen sollten.


Attribut Über Steuerelement

 Alle Attribute

Beschreibung

Für ActiveX- (OCX-) Steuerelemente im Layouteditor. Stellt einen Link zu einem Über-Bildschirm bereit, in dem das aktuelle OCX-Steuerelement beschrieben wird.

Gilt für  ActiveX-Objekte

Einstellung  Form Builder

Obligatorisch/Optional  Optional


Attribut Zugriffstaste

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt das Zeichen an, das als Zugriffstaste verwendet wird, mit der der Operator ein Objekt auswählen oder ausführen kann, indem er eine Tastenkombination drückt, wie z.B. Alt-C.

Das Zeichen für die Zugriffstaste wird in dem Menüpunkt unterstrichen angezeigt.

Angenommen, die Beschriftung von Schaltfläche1 ist "Speichern", und die Zugriffstaste ist als "s" definiert. Wenn der Operator Alt-S (bei Microsoft Windows) drückt, führt Form Builder den Befehl "Speichern" aus.

Gilt für  Schaltflächen, Optionsschaltflächen und Kontrollkästchen

Einstellung  Form Builder

Standardwert

Nein

Obligatorisch/Optional  Optional

Verwendungshinweise

Wenn der Operator eine Aktion über eine Zugriffstaste auslöst, werden mit der Aktion verknüpfte Trigger ausgelöst. Angenommen, Schaltfläche1 ist eine Zugriffstaste zugewiesen. Weiterhin angenommen, ein When-Button-Pressed-Trigger ist mit Schaltfläche1 verknüpft. Wenn der Operator die Zugriffstaste drückt, wird der When-Button-Pressed-Trigger für Schaltfläche1 ausgelöst.


Einschränkungen bei Zugriffstaste

•	Schaltflächen, für die das Attribut Als Symbol auf Ja gesetzt ist, können keine Zugriffstaste haben.


Attribut Typ des Warnfensters

 Alle Attribute

Beschreibung

Gibt den Stil des Warnfensters an, d.h. ob es sich um ein Achtungs-, Warn- oder Informationsfenster handelt. Bei grafischen Benutzeroberflächen bestimmt das Attribut Typ des Warnfensters, welches Bitmap-Symbol in dem Warnfenster angezeigt wird.

Gilt für  Warnfenster

Einstellung  Form Builder

Standardwert

Warnung


Attribut Alias

 Alle Attribute

Beschreibung

Legt ein Alias für die Tabelle fest, mit der der Datenblock verknüpft ist.

Gilt für  Tabelle/Spalten, die mit einem Datenblock verknüpft sind

Einstellung  Form Builder

Standardwert

Der Datenblock-Assistent stellt das Attribut Alias auf den ersten Buchstaben des Tabellennamens ein. (Eine Tabelle mit der Bezeichnung DEPT würde z.B. ein Standardalias von D haben.)

Obligatorisch/Optional  Obligatorisch bei Oracle8-Tabellen, die Spaltenobjekte oder REFs enthalten

Verwendungshinweise

Bei Oracle8-Tabellen müssen SELECT-Anweisungen, die Spaltenobjekte oder REF-Spalten umfassen, sowohl den Tabellennamen als auch das Alias identifizieren und müssen den Spaltennamen angeben, in dem dieses Alias als Präfix benutzt wird.

Zum Beispiel:

     CREATE TYPE ADDRESS_TYPE AS OBJECT

                 (STREET   VARCHAR2(30),

                  CITY     VARCHAR2(30),

                  STATE    VARCHAR2(2));

      CREATE TABLE EMP

                  (EMPNO     NUMBER,

                   ADDRESS   ADDRESS_TYPE);

Wenn das Alias für diese EMP-Tabelle E wäre, müßte eine SELECT-Anweisung wie folgt bezeichnet werden:

      SELECT EMPNO, E.ADDRESS.CITY FROM EMP E;

In diesem Fall ist das Alias E. Das Spaltenobjekt ADDRESS.CITY ist mit diesem Alias bezeichnet, und das Alias wird auch im Anschluß an den Tabellennamen angegeben. (Die Spalte EMPNO, die eine normale relationale Spalte ist, erfordert keine derartige Bezeichnung.)

In den meisten Fällen übernimmt Form Builder die Benennung des Alias für Sie. Form Builder legt beim Entwurf einen Aliasnamen fest und benutzt den bezeichneten Namen dann automatisch zur Laufzeit, wenn Daten aus dem Oracle8-Server abgerufen werden. Sie müssen die Aliasbenennung nur dann selbst vornehmen, wenn Sie Aufgaben ausführen, wie z.B. das Codieren einer WHERE-Blockklausel.


Attribut Erweitern zulassen

 Alle Attribute

Beschreibung

Gibt an, ob Form Builder einen Rahmen automatisch erweitern kann, wenn der Inhalt des Rahmens über den Rahmenrand hinausgeht.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Ja

Obligatorisch/Optional  Obligatorisch


Attribut Leere Zweige zulassen

 Alle Attribute

Beschreibung

Gibt an, ob Zweigknoten ohne untergeordnete Objekte vorhanden sein können. Wenn dieses Attribut auf FALSE eingestellt ist, werden Zweigknoten ohne untergeordnete Objekte in Blattknoten konvertiert. Wenn das Attribut auf TRUE eingestellt ist, wird ein leerer Zweig als ausgeblendeter Knoten angezeigt.

Gilt für  Hierarchische Bäume

Einstellung  Form Builder, programmgesteuert

Standardwert

False

Obligatorisch/Optional  Obligatorisch


Attribut Mehrzeilige Prompts zulassen

 Alle Attribute

Beschreibung

Gibt an, ob Form Builder Platz innerhalb eines Rahmens sparen kann, indem ein Prompt auf mehrere Zeilen verteilt wird. Prompts können nur zwei Zeilen umfassen.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Ja

Obligatorisch/Optional  Obligatorisch


Attribut Mit Start verknüpfte Prompts zulassen

 Alle Attribute

Beschreibung

Gibt an, ob die Platznutzung optimiert werden kann, wenn Objekte in tabellarischen Rahmen angeordnet werden.

Standardmäßig ist dieses Attribut auf Nein eingestellt, und dem oberen Rand des Attributs sind Prompts zugeordnet. Wenn Sie das Attribut Mit Start verknüpfte Prompts zulassen auf Ja einstellen, können Sie dem Startrand des Objekts Prompts zuweisen, wenn genügend Platz vorhanden ist.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Nein

Obligatorisch/Optional  Obligatorisch


Attribut Mit oberem Rand verknüpfte Prompts zulassen

 Alle Attribute

Beschreibung

Gibt an, ob die Platznutzung beim Anordnen von Objekten in Rahmen im Formstil optimiert werden kann.

Standardmäßig ist dieses Attribut auf Nein eingestellt, und mit dem Startrand des Objekts sind Prompts verknüpft. Wenn Sie das Attribut Mit oberem Rand verknüpfte Prompts zulassen auf Ja einstellen, können Sie dem oberen Rand des Objekts Prompts zuweisen, wenn genügend Platz vorhanden ist.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Nein

Obligatorisch/Optional  Obligatorisch


Attribut Anwendungsinstanz

 Einschränkungen

Beschreibung

Gibt eine Referenz auf eine Instanz einer Anwendung auf der Microsoft Windows-Plattform an. Andere Plattformen geben immer den Wert NULL zurück.

Gilt für  Forms, Blöcke oder Objekte

Vordefinierte Prozedur

GET_APPLICATION_PROPERTY

Standardwert

NULL

Verwendungshinweise

Geben Sie das Attribut APPLICATION_INSTANCE in GET_APPLICATION_PROPERTY an, um das Instanz-Handle zu erhalten. Der Zeigerwert muß mit TO_PLS_INTEGER konvertiert werden, wenn mit dem Instanz-Handle die Windows-API aufgerufen werden soll.


Einschränkungen bei Anwendungsinstanz

Nur bei Microsoft Windows gültig (gibt bei anderen Plattformen NULL zurück).


Attribut Pfeilstil

 Alle Attribute

Beschreibung

Gibt den Pfeilstil der Linie als Kein, Anfang, Ende, Beide Enden, Mitte zu Anfang oder Mitte zu Ende an.

Gilt für  Grafiklinien

Einstellung  Form Builder

Standardwert

Kein

Obligatorisch/Optional  Obligatorisch


Attribut Verknüpfte Menüs

 Einschränkungen	    Verwandte Themen	   Alle Attribute

Beschreibung

Gibt den Namen des individuellen Menüs in dem Modul an, mit dem der Parameter verknüpft ist. Wenn der Operator zu einem Menü navigiert, das über einen verknüpften Parameter verfügt, fordert Form Builder den Operator auf, einen Wert in das Dialogfeld Parameterwerte eingeben einzugeben.

Gilt für  Menüparameter

Einstellung  Form Builder

Obligatorisch/Optional  Optional


Einschränkungen bei Verknüpften Menüs

Gilt nur für Gesamtbildschirmmenüs.


Attribut Audio-Kanäle

 Alle Attribute

Beschreibung

Gibt die Anzahl von Kanälen an, mit denen das Klangobjekt in der Datenbank gespeichert wird: entweder Automatisch, Mono oder Stereo.

Wenn Sie die vordefinierte Prozedur WRITE_SOUND_FILE benutzen, um Klangdaten in das Dateisystem zu schreiben, verwenden Sie den Parameter channels, um die Anzahl von Kanälen zu steuern, mit denen die Klangdaten in das Dateisystem geschrieben werden.

Gilt für  Klangobjekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	WRITE_SOUND_FILE

Standardwert

Automatisch

Obligatorisch/Optional  Obligatorisch


Attribut Automatische Spaltenbreite

  Verwandte Themen	   Alle Attribute

Beschreibung

Gibt an, ob die Spaltenbreite von Wertelisten automatisch eingestellt wird.

•	Wenn für Automatische Spaltenbreite Ja angegeben wird, wird die Breite jeder Spalte automatisch auf den größeren der beiden folgenden Werte eingestellt:

•	Die mit dem Attribut Anzeigebreite angegebene Breite

oder

•	Die zur Anzeige des Spaltentitels wie mit dem Attribut Spaltentitel angegeben erforderliche Breite.

•	Wenn für Automatische Spaltenbreite Nein angegeben wird, wird die Breite jeder Spalte auf den Wert gesetzt, der mit dem Attribut Anzeigebreite angegeben wird.

Gilt für  Wertelisten

Einstellung  Form Builder

Standardwert

Nein


Attribut Automatisch anzeigen

 Alle Attribute

Beschreibung

Gibt an, ob Form Builder die Werteliste automatisch anzeigt, wenn der Operator oder die Anwendung in ein Textobjekt navigiert, dem die Werteliste zugeordnet ist.

Gilt für  Wertelisten

Einstellung  Form Builder

Standardwert

Nein


Attribut Automatische Position

 Alle Attribute

Beschreibung

Gibt an, ob Form Builder die Werteliste automatisch in die Nähe des Feldes setzt, aus dem sie aufgerufen wurde.

Gilt für  Wertelisten

Einstellung  Form Builder

Standardwert

Nein


Attribut Automatische Abfrage

 Alle Attribute

Beschreibung

Siehe Koordination.


Attribut Automatisches Auffrischen

 Einschränkungen	   Alle Attribute

Beschreibung

Bestimmt, ob Form Builder die Abfrage erneut ausführt, um eine Werteliste aufzufüllen, die auf einer Abfrage-Datensatzgruppe basiert. Standardmäßig führt Form Builder die Abfrage aus, um die zugrundeliegende Datensatzgruppe einer Werteliste aufzufüllen, wenn die Werteliste aufgerufen wird, d.h. jedesmal, wenn die Werteliste angezeigt wird oder wenn Form Builder ein Textobjekt validiert, bei dem das Attribut Werteliste zur Validierung verwenden auf Ja eingestellt ist.

•	Wenn für Automatisches Auffrischen Ja angegeben wird (Standardwert), führt Form Builder die Abfrage jedesmal aus, wenn die Werteliste aufgerufen wird. Dadurch wird gewährleistet, daß die zugrundeliegende Datensatzgruppe der Werteliste die neuesten Datenbankwerte enthält.

•	Wenn für Automatisches Auffrischen Nein angegeben wird, führt Form Builder die Abfrage nur aus, wenn die zugrundeliegende Datensatzgruppe der Werteliste nicht so markiert ist, daß sie mit einer Abfrage aufgefüllt wurde, die durchgeführt wurde, da diese oder eine andere Werteliste aufgerufen wurde. (Denken Sie daran, daß mehr als eine Werteliste auf derselben Datensatzgruppe basieren kann.) Wenn die zugrundeliegende Datensatzgruppe der Werteliste schon nach der Anzeige einer Werteliste aufgefüllt wurde, führt Form Builder die Abfrage nicht erneut aus, sondern zeigt statt dessen die Werteliste mit den Datensätzen an, die gerade in der Datensatzgruppe gespeichert sind.

Mit dem Attribut Automatisches Auffrischen wird außerdem bestimmt, wie lange Datensätze, die von der Abfrage abgerufen werden, in der zugrundeliegenden Datensatzgruppe gespeichert bleiben:

•	Wenn für Automatisches Auffrischen Ja angegeben wird, werden die von der Abfrage zurückgegebenen Datensätze in der zugrundeliegenden Datensatzgruppe nur so lange gespeichert, wie die Werteliste benötigt wird. Wenn der Operator die Werteliste vom Bildschirm löscht oder die Validierung abgeschlossen ist, wird der Datensatz-Cache zerstört.

•	Wenn für Automatisches Auffrischen Nein angegeben wird, bleiben die Datensätze aus der ursprünglichen Abfrage in der zugrundeliegenden Datensatzgruppe der Werteliste gespeichert, bis sie entfernt oder ersetzt werden. Sie können diese Datensätze programmgesteuert bearbeiten. So können Sie z.B. die Datensätze in der zugrundeliegenden Datensatzgruppe einer Werteliste explizit ersetzen, indem Sie die vordefinierte Prozedur POPULATE_GROUP aufrufen. Mit anderen vordefinierten Prozeduren für Datensatzgruppen können Sie die Werte von Zellen in einer Datensatzgruppe einlesen und einstellen.

Gilt für  Wertelisten

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_LOV_PROPERTY

•	SET_LOV_PROPERTY

Standardwert

Ja

Verwendungshinweise

•	Wenn mehrere Wertelisten auf derselben Datensatzgruppe basieren, ist es im allgemeinen von Vorteil, wenn dieselbe Einstellung für Automatisches Auffrischen bei jeder Werteliste benutzt wird. Dies ist jedoch nicht unbedingt erforderlich. Mit dem folgenden Szenario wird ein Auffrischenverhalten beschrieben, wenn bei einer Werteliste Automatisches Auffrischen auf Ja und bei einer anderen auf Nein gesetzt ist.

Die Wertelisten 1 und 2 basieren auf derselben Datensatzgruppe. Bei Werteliste1 ist Automatisches Auffrischen auf Ja gesetzt und bei Werteliste2 auf Nein. Wenn Werteliste1 aufgerufen wird, führt Form Builder die Abfrage aus, um die zugrundeliegende Datensatzgruppe aufzufüllen. Wenn der Operator Werteliste1 vom Bildschirm löscht, zerstört Form Builder den Datensatz-Cache und löscht die Datensatzgruppe.

Wenn Werteliste2 danach aufgerufen wird, führt Form Builder die Abfrage erneut aus, auch wenn bei Werteliste2 Automatisches Auffrischen auf Nein gesetzt ist. Da die zugrundeliegende Datensatzgruppe von Werteliste2 gelöscht wurde, als Werteliste1 vom Bildschirm entfernt wurde, geht Form Builder nicht davon aus, daß sie von einem Aufruf einer Werteliste abgefragt wurde, und führt somit die Abfrage erneut durch.

Wenn nun sowohl bei Werteliste1 als auch bei Werteliste2 Automatisches Auffrischen auf Nein gesetzt wäre, würde Form Builder die Abfrage beim Aufruf von Werteliste1 ausführen, würde jedoch die Abfrage für Werteliste2 nicht erneut ausführen. Dies gilt selbst dann, wenn die ursprüngliche Abfrage keine Zeilen zurückgegeben hat.

•	Wenn für Automatisches Auffrischen Nein angegeben wurde, können Sie die Zeilen, die von der ursprünglichen Abfrage mit POPULATE_GROUP zurückgegeben wurden, programmgesteuert ersetzen. Form Builder ignoriert diesen Vorgang, wenn es entscheidet, ob die Abfrage erneut ausgeführt werden muß. (Form Builder sucht nur nach dem internen Flag, mit dem angegeben wird, ob eine Abfrage erfolgt ist, und nicht nach den tatsächlichen Zeilen, die von dieser Abfrage zurückgegeben wurden.)


Einschränkungen bei Automatisches Auffrischen

Gilt nur für eine Werteliste, die auf einer Abfrage-Datensatzgruppe basiert und nicht auf einer statischen oder Nicht-Abfrage-Datensatzgruppe.


Attribut Automatisch auswählen

 Alle Attribute

Beschreibung

Gibt an, was geschieht, wenn eine Werteliste aufgerufen wurde und der Benutzer die Liste bei Benutzung der automatischen Reduzierung oder Suche auf eine einzige Auswahl beschränkt:

•	Wenn Automatisch auswählen auf Ja eingestellt ist, wird die Werteliste automatisch verworfen und werden Spaltenwerte aus der einzelnen Zeile den entsprechenden Rückgabeobjekten zugewiesen.

•	Wenn Automatisch auswählen auf Nein eingestellt ist, wird die Werteliste weiter angezeigt, so daß der Operator die Möglichkeit hat, die Optionen explizit auszuwählen oder die Werteliste zu verwerfen.

Gilt für  Wertelisten

Einstellung  Form Builder

Standardwert

Nein


Attribute Automatisches Überspringen

 Alle Attribute

Attribut Automatisches Überspringen (Objekt)

Attribut Automatisches Überspringen (Werteliste)


Attribut Automatisches Überspringen (Objekt)

 Einschränkungen	    Verwandte Themen	   Alle Attribute

Beschreibung

Setzt den Cursor zu dem nächsten navigierbaren Objekt, wenn Daten in dem letzten Zeichen des aktuellen Objekts hinzugefügt oder geändert werden. Das letzte Zeichen wird mit dem Attribut Maximale Länge definiert.

Gilt für  Textobjekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Nein

Verwendungshinweise

Kombinieren Sie das Attribut Automatisches Überspringen mit dem Attribut Feste Länge, um den Cursor zu dem nächsten anwendbaren Textobjekt zu setzen, wenn ein Operator das letzte erforderliche Zeichen eingibt.


Einschränkungen bei Automatisches Überspringen (Objekt)

•	Gilt nur für einzeilige Textobjekte.

•	Der Key-NXT-ITEM-Trigger wird nicht ausgelöst, wenn der Cursor infolge dieses Attributs bewegt wird. Dieses Verhalten ist konsistent mit der Tatsache, daß der Operator [Nächstes Objekt] nicht gedrückt hat.


Attribut Automatisches Überspringen (Werteliste)

 Einschränkungen	   Alle Attribute

Beschreibung

Setzt den Cursor zu dem nächsten navigierbaren Objekt, wenn der Operator eine Auswahl aus einer Werteliste für ein Textobjekt trifft. Wenn für Automatisches Überspringen Nein eingestellt ist, bleibt der Fokus in dem Textobjekt, nachdem der Operator eine Auswahl aus der Werteliste getroffen hat.

Gilt für  Wertelisten

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

SET_ITEM_PROPERTY

Standardwert

Nein


Einschränkungen bei Automatisches Überspringen (Werteliste)

•	Der Key-NXT-ITEM-Trigger wird nicht ausgelöst, wenn der Cursor infolge dieses Attributs bewegt wird. Dieses Verhalten ist konsistent mit der Tatsache, daß der Operator [Nächstes Objekt] nicht gedrückt hat.


Attribut Background_Color

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Farbe des Hintergrundbereichs des Objekts an.

Gilt für  Objekte, Register, Leinwände, Fenster, Optionsschaltflächen

Einstellung  Programmgesteuert

Standardwert

Nicht angegeben

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

•	GET_CANVAS_PROPERTY

•	SET_CANVAS_PROPERTY

•	GET_WINDOW_PROPERTY

•	SET_WINDOW_PROPERTY


Attribut Umriß

 Einschränkungen	   Alle Attribute

Beschreibung

Gibt das Erscheinungsbild des Objektrandes an, d.h. SCHATTEN UNTEN, SCHATTEN OBEN, VERTIEFT, ERHÖHT oder KEIN. Kann auch programmgesteuert auf Objektinstanzebene festgelegt werden, um anzugeben, daß das Attribut auf dieser Ebene nicht angegeben ist. Wenn Sie dieses Attribut also programmgesteuert auf Objektinstanzebene mit SET_ITEM_INSTANCE_PROPERTY festlegen, wird der Umriß von einem Wert auf Objektebene bestimmt, der beim Entwurf oder zur Laufzeit mit SET_ITEM_PROPERTY angegeben wird.

Gilt für  Diagrammobjekte, Bildobjekte, benutzerdefinierte Objekte, gestapelte Leinwände, Textobjekte (nur Microsoft Windows)

Einstellung  Form Builder, programmgesteuert [BORDER_BEVEL]

Vordefinierte Prozedur

•	GET_ITEM_INSTANCE_PROPERTY

•	GET_ITEM_PROPERTY

•	SET_ITEM_INSTANCE_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

SCHATTEN OBEN

Verwendungshinweise

•	Um ein Auswahlfenster zu erstellen, muß das Attribut Umriß auf SCHATTEN UNTEN oder SCHATTEN OBEN eingestellt werden.


Einschränkungen bei Umriß

Bei Fensterverwaltungsprogrammen, die die Umrißfunktion nicht unterstützen, sind die Optionen SCHATTEN UNTEN, SCHATTEN OBEN und KEIN gleichbedeutend und geben einfach an, daß das Objekt einen Rand haben soll.

•	Wenn das Objektattribut Umriß in Form Builder auf Kein eingestellt wird, können Sie BORDER_BEVEL nicht programmgesteuert festlegen.

•	Sie können BORDER_BEVEL nicht programmgesteuert auf NONE einstellen.


Attribut Blockbeschreibung

 Alle Attribute

Beschreibung

Siehe In Datenblockmenü aufgelistet/Blockbeschreibung.


Attribute Fußnote

 Alle Attribute

Attribut Fußnote (Editor)


Attribut Fußnote (Editor)

 Alle Attribute

Beschreibung

Gibt einen Titel mit maximal 72 Zeichen an, der am unteren Rand des Editor-Fensters angezeigt wird.

Gilt für  Editoren

Einstellung  Form Builder

Obligatorisch/Optional  Optional


Attribut Skalierbare Umrandung

 Alle Attribute

Beschreibung

Gibt an, ob die Umrandung des Textobjekts skaliert werden soll, wenn das Textobjekt skaliert wird.

Gilt für  Grafiktext

Einstellung  Form Builder

Standardwert

Ja

Obligatorisch/Optional  Obligatorisch


Attribut Builtin_Date_Format

 Alle Attribute

Beschreibung

Dieses Attribut bestimmt die Formatmaske, die bei der Konvertierung eines Datumswertes in bzw. aus einer Zeichenfolge benutzt wird, die für den Endbenutzer potentiell nicht sichtbar ist. Diese Formatmaske wird bei der Ausführung von vordefinierten Prozeduren am häufigsten benutzt.

Gilt für  Anwendung (globaler Wert)

Einstellung  programmgesteuert

Vordefinierte Prozedur

•	Vordefinierte Prozedur GET_APPLICATION_PROPERTY

•	Vordefinierte Prozedur SET_APPLICATION_PROPERTY

Obligatorisch/Optional  Optional. Es wird jedoch UNBEDINGT EMPFOHLEN, daß Sie dieses Attribut bei neuen Anwendungen auf eine Formatmaske einstellen, die vollständige Jahrhundert- und Zeitinformationen enthält. Außerdem wird empfohlen, daß diese Formatmaske identisch mit der Formatmaske in dem Attribut PLSQL_DATE_FORMAT ist.

Standardwert

Wie oben beschrieben, wird unbedingt empfohlen, daß Sie diesen Wert für eine neue Anwendung explizit festlegen. Wenn nicht, hängt der Standardwert von dem jeweiligen Kontext ab.

Forms bestimmt zuerst, ob es sich bei dem Objekt um ein Objekt DATE2, DATE4 oder DATETIME handelt. Danach wird entsprechend mit einer Reihe von Formatmasken experimentiert. (Diese Standardmasken werden aus Kompatibilitätsgründen mit früheren Releases verwendet.)

Objekttypen werden wie in der folgenden Tabelle dargestellt bestimmt:

Datumsobjekt	Typ
Objekt mit dem Datentyp DATETIME	DATETIME
Objekt mit dem Datentyp DATE:
…mit einer Formatmaske, die yyyy,                YYYY, rrrr oder RRRR enthält	DATE4
…mit einer Formatmaske, die yyyy, YYYY, rrrr oder RRRR nicht enthält	DATE2
…ohne eine Formatmaske, wobei die Länge (Max. Länge) 10 oder höher ist	DATE4
…ohne Formatmaske, wobei die Länge (Max. Länge) 9 oder weniger ist	DATE2
Parameter (wie bei :PARAMETER.myparam) mit dem Datentyp DATE. (Beachten Sie, daß keine DATETIME-Parameter vorhanden sind und daß das Attribut Max. Länge für den Parameter nur für CHAR-Parameter gilt.)	DATE2
Wertelistenspalte mit dem Datentyp DATE.  (Beachten Sie, daß keine DATETIME-Wertelistenspalten vorhanden sind.)	DATE2
Interner Wert der Systemvariablen CURRENT_DATETIME und EFFECTIVE_DATE	DATETIME

Nachdem Sie den Objekttyp des zu konvertierenden Objekts bestimmt haben, verwendet Form Builder eine der unten aufgeführten Masken. Es gibt zwei Gruppen von Masken -- eine für YY-Vorgänge und eine für RR-Vorgänge.

Bei Datum-zu-Zeichenfolge-Vorgängen wird nur die erste (primäre) Formatmaske benutzt. Bei Zeichenfolge-zu-Datum-Vorgängen versucht Form Builder zuerst, die erste/primäre Formatmaske zu benutzen. Wenn diese Konvertierung nicht erfolgreich verläuft, werden die anderen (sekundären) Masken in der dargestellten Reihenfolge benutzt.

Bei YY:

Objekttyp	Benutzte Formatmaske
DATE2	TT-MON-JJ DD-MM-SYYYY HH24:MI:SS
DATE4	DD-MON-YYYY DD-MM-SYYYY HH24:MI:SS
DATETIME	DD-MON-YYYY HH24:MI:SS DD-MON-YYYY HH24:MI DD-MM-SYYYY HH24:MI:SS

Bei RR:

Objekttyp	Benutzte Formatmaske
DATE2	DD-MON-RR DD-MM-SYYYY HH24:MI:SS
DATE4	DD-MON-RRRR DD-MM-SYYYY HH24:MI:SS
DATETIME	DD-MON-RRRR HH24:MI:SS DD-MON-RRRR HH24:MI DD-MM-SYYYY HH24:MI:SS


Attribut Beschriftung Schaltfläche1, Beschriftung Schaltfläche2, Beschriftung Schaltfläche3

  Verwandte Themen	   Alle Attribute

Beschreibung

Gibt die Textbeschriftungen für die drei verfügbaren Warn-Schaltflächen an.

Gilt für  Warnfenster

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

SET_ALERT_BUTTON_PROPERTY

Obligatorisch/Optional  Mindestens eine Schaltfläche muß eine Beschriftung aufweisen.

Standardwert

Beschriftung Schaltfläche1: OK, Beschriftung Schaltfläche2: Abbrechen, Beschriftung Schaltfläche3: NULL


Attribut Berechnungsmodus

  Verwandte Themen	   Alle Attribute

Beschreibung

Gibt die Methode zur Berechnung des Wertes eines berechneten Objekts an. Gültige Werte sind:

Kein	Standardwert. Gibt an, daß es sich bei dem Objekt nicht um ein berechnetes Objekt handelt.

Formel	Gibt an, daß der Wert des Objekts aufgrund einer vom Benutzer geschriebenen Formel berechnet wird. Sie müssen einen einfachen PL/SQL-Ausdruck für die Formel eines Objekts eingeben. Mit dem Ausdruck kann ein Wert berechnet werden. Mit ihm kann auch ein Form Builder- oder benutzerdefiniertes Unterprogramm aufgerufen werden.

Summe	Gibt an, daß der Wert des Objekts aufgrund eines Summenvorgangs bei einem einzelnen Formobjekt berechnet wird. Sie müssen den Summentyp und das zu summierende Objekt angeben.

Gilt für  Objekte

Einstellung  Form Builder

Obligatorisch/Optional  Optional

Standardwert

Kein


Attribut Calling_Form

 Alle Attribute

Beschreibung

Gibt den Namen der aufrufenden Form an, wie mit dem Attribut Name des Formmoduls angegeben.

Gilt für  Anwendungen

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_APPLICATION_PROPERTY

Standardwert

NULL

Verwendungshinweise

Nur in einer aufgerufenen Form gültig, d.h. einer Form, die von einer aufrufenden Form durch Ausführung der vordefinierten Prozedur CALL_FORM aufgerufen wurde.


Attribut Leinwand

 Einschränkungen	    Verwandte Themen	   Alle Attribute

Beschreibung

Gibt die Leinwand an, auf der das Objekt angezeigt werden soll.

Gilt für  Objekte

Einstellung  Form Builder

Standardwert

Die aktuelle Leinwandzuweisung für das Objekt.

Obligatorisch/Optional  Optional

Verwendungshinweise

•	Objekte werden einer bestimmten Leinwand zugewiesen, die wiederum einem bestimmten Fenster zugewiesen ist.

•	Wenn Sie das Attribut Leinwand leer lassen, handelt es sich bei dem Objekt um ein NULL-Leinwandobjekt, d.h. ein Objekt, das keiner Leinwand zugewiesen ist und somit nicht im Form Editor oder zur Laufzeit angezeigt werden kann.

•	Wenn Sie den Namen einer Leinwand in Form Builder ändern, aktualisiert Form Builder das Attribut Leinwand automatisch für alle Objekte, die dieser Leinwand zugewiesen sind.


Einschränkungen bei Leinwand

Die angegebene Leinwand muß schon in der Form vorhanden sein.


Attribut Leinwandtyp

  Verwandte Themen	   Alle Attribute

Beschreibung

Gibt den Leinwandtyp an, d.h. Inhalt, Gestapelt, Vertikale Symbolleisten-Leinwand oder Horizontale Symbolleisten-Leinwand. Mit dem Typ wird bestimmt, wie die Leinwand in dem Fenster angezeigt wird, dem sie zugeordnet ist. Außerdem wird bestimmt, welche Attribute für die Leinwand sinnvoll sind.

Inhalt	Standardwert. Gibt an, daß die Leinwand den ganzen Inhaltsbereich des Fensters belegen soll, dem sie zugewiesen ist. Die meisten Leinwände sind Inhalts-Leinwände.
Gestapelt	Gibt an, daß die Leinwand in dem Fenster gleichzeitig mit der Inhaltsleinwand des Fensters angezeigt werden soll. Gestapelte Leinwände werden im allgemeinen programmgesteuert angezeigt und überlagern einen Teil der Inhaltsleinwand, die im selben Fenster angezeigt wird.
Vertikale Symbolleisten-Leinwand	Gibt an, daß die Leinwand als vertikale Symbolleiste unter der Menüleiste des Fensters angezeigt werden soll. Sie können Schaltflächen in Form von Symbolen, Popup-Listen und andere Objekte in der Symbolleiste wie gewünscht definieren.
Horizontale Symbolleisten-Leinwand	Gibt an, daß die Leinwand als horizontale Symbolleiste auf der linken Seite des Fensters angezeigt werden soll, dem sie zugewiesen ist.
Gilt für  Leinwände

Einstellung  Form Builder

Standardwert

Inhalt

Verwendungshinweise

In der Attributpalette sind die unter der Überschrift Gestapelte Ansichten aufgeführten Attribute nur für eine Leinwand gültig, bei der das Attribut Leinwandtyp auf Gestapelt eingestellt ist.


Attribut Linienende

 Alle Attribute

Beschreibung

Gibt das Linienende für den Rand des Grafikobjekts mit Verkürzt, Rund oder Verlängert an.

Gilt für  Grafikobjekte

Einstellung  Form Builder

Standardwert

Verkürzt

Obligatorisch/Optional  Obligatorisch


Attribut Abfrage ohne Berücksichtigung der Schreibweise

 Einschränkungen	    Verwandte Themen	   Alle Attribute

Beschreibung

Gibt an, ob der Operator Abfragen ohne Berücksichtigung der Schreibweise bei dem Textobjekt durchführen kann.

Gilt für  Textobjekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Nein

Verwendungshinweise

Abfragen ohne Berücksichtigung der Schreibweise sind insofern optimiert, als sie einen Index nutzen können. Angenommen, Sie führen die folgenden Schritte aus:

•	Erstellen eines Index für die Tabelle EMP

•	Einstellen des Attributs Abfrage ohne Berücksichtigung der Schreibweise bei ENAME auf Ja

•	Im Abfragemodus geben Sie den Namen 'BLAKE' in :ENAME ein.

•	Ausführen der Abfrage

Form Builder erzeugt die folgende Anweisung:

SELECT * FROM EMP WHERE UPPER(ENAME) = 'BLAKE' AND
   (ENAME LIKE 'Bl%' OR ENAME LIKE 'bL%' OR
   ENAME LIKE 'BL%' OR ENAME LIKE 'bl%');

Der letzte Teil der WHERE-Klausel wird zuerst ausgeführt und nutzt den Index. Nachdem die Datenbank einen Eintrag gefunden hat, der mit bl beginnt, überprüft sie den Teil UPPER(ENAME) = 'BLAKE' der Anweisung und führt den genauen Abgleich durch.


Einschränkungen bei Abfrage ohne Berücksichtigung der Schreibweise

Wenn Sie dieses Attribut auf Ja einstellen, dauert die Ausführung von Abfragen möglicherweise länger.


Attribut Einschränkung Schreibweise

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt die Schreibweise für Text an, der in das Textobjekt oder den Menüsubstitutionsparameter eingegeben wird. Die zulässigen Werte für dieses Attribut sind:

Wert	Ergebnis
GEMISCHT	Der Text wird wie eingegeben angezeigt.
GROSS	Text in Kleinbuchstaben wird während der Eingabe in Großbuchstaben konvertiert.
KLEIN	Text in Großbuchstaben wird während der Eingabe in Kleinbuchstaben konvertiert.

 Gilt für  Textobjekte, Menüsubstitutionsparameter

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM _PROPERTY


Einschränkungen bei Einschränkung Schreibweise

•	Werte, die dem Textobjekt über Trigger zugewiesen werden, sind nicht betroffen.

•	Einschränkung Schreibweise steuert die Anzeige aller Zeichenfolgen, unabhängig davon, ob diese von einem Operator eingegeben oder programmgesteuert zugewiesen werden, das das Attribut Einschränkung Schreibweise sowohl als Eingabe- als auch als Ausgabeformatmaske dient, die von der Benutzeroberfläche eingesetzt wird.

Wenn Sie Zeichenfolgenwerte programmgesteuert zuweisen, die nicht mit dem Attribut Einschränkung Schreibweise übereinstimmen, sehen Sie die Auswirkung in dem Textobjekt nicht, da die Anzeige erzwungenermaßen der aktuellen Einstellung von Einschränkung Schreibweise entspricht. Dies bedeutet auch, daß sich der interne Wert des Textobjekts bei einer Abfrage oder programmgesteuerten Zuweisung von Daten an ein Objekt, die die Einstellung Einschränkung Schreibweise verletzen, von dem Wert unterscheiden kann, den der Benutzer auf dem Bildschirm sieht. Wenn Einschränkung Schreibweise z.B. auf GROSS eingestellt ist und die aus der Datenquelle abgerufenen Daten die gemischte Schreibweise aufweisen, zeigt die Form sie in GROSSBUCHSTABEN an, der eigentliche Wert der Daten bleibt jedoch in der gemischten Schreibweise. Wenn die Daten jedoch später in diesem Feld geändert werden und die Änderung gespeichert wird, wird der Wert der Daten in die Großschreibung geändert.


Attribut Breite/Höhe Zeicheneinheit

  Verwandte Themen	   Alle Attribute

Beschreibung

Gibt die Breite und Höhe einer Zeicheneinheit an, wenn für das Attribut Koordinatensystem Reell und nicht Zeichen angegeben wird. Die Breite und Höhe werden in den aktuellen reellen Einheiten (Zentimeter, Zoll oder Punkt) ausgedrückt, die mit dem Attribut Reelle Einheit angegeben werden.

Gilt für  Formmodule

Einstellung  Form Builder

Obligatorisch/Optional  Optional

Verwendungshinweise

Die Größe der Zeicheneinheit wird in dem Dialogfeld Koordinatensystem in Pixel angegeben, wird jedoch im Layouteditor in Punkt angezeigt.


Attribut Diagrammtyp

 Alle Attribute

Beschreibung

Gibt den Basis-Diagrammtyp an. Verfügbare Diagrammtypen sind Säule, Kreis, Balken, Tabelle, Linie, Streu, Misch, Hoch-Tief, 2. Y und Gantt.

Gilt für  Diagrammobjekte

Einstellung  Form Builder

Standardwert

Spalte


Attribut Diagrammsubtyp

 Alle Attribute

Beschreibung

Gibt eine Variante des Diagrammtyps an. Jede Variante basiert auf dem angegebenen Diagrammtyp, wobei verschiedene Attribute eingestellt werden, um ein anderes Aussehen zu erzielen.

Gilt für  Diagrammobjekte

Einstellung  Form Builder

Standardwert

Spalte


Attribut Kontrollkästchenzuordnung anderer Werte

  Verwandte Themen	   Alle Attribute

Beschreibung

Gibt an, wie ein abgerufener oder zugewiesener Wert, der nicht einen der vordefinierten Werte "Ausgewählt" oder "Nicht ausgewählt" hat, interpretiert werden soll.

Gilt für  Kontrollkästchen

Einstellung  Form Builder

Standardwert

NICHT ZULÄSSIG

Verwendungshinweise

Für dieses Attribut sind die folgenden Einstellungen gültig:

Einstellung	Beschreibung
Nicht zulässig	Jeder abgefragte Datensatz, der einen anderen Wert als die benutzerdefinierten Werte ausgewählt bzw. nicht ausgewählt enthält, wird zurückgewiesen. Ein Fehler wird nicht ausgelöst. Jeder Versuch, einen anderen Wert zuzuweisen, ist unzulässig.
Ausgewählt	Jeder Wert, mit Ausnahme des benutzerdefinierten Wertes "Nicht ausgewählt" wird als ausgewählt betrachtet.
Nicht ausgewählt	Jeder andere Wert als der benutzerdefinierte Wert "Ausgewählt" wird als nicht ausgewählt angesehen.


Attribut Ausgewählt

 Einschränkungen	    Verwandte Themen	   Alle Attribute

Beschreibung

Gibt den Status eines Menüobjekts in Form eines Kontrollkästchens bzw. einer Optionsschaltfläche an, d.h. AUSGEWÄHLT oder NICHT AUSGEWÄHLT.

Gilt für  Menüpunkte

Einstellung  programmgesteuert

Vordefinierte Prozedur

•	GET_MENU_ITEM_PROPERTY

•	SET_MENU_ITEM_PROPERTY

Standardwert

NULL

Obligatorisch/Optional  Optional


Einschränkungen bei Ausgewählt

Gilt nur für einen Menüpunkt, bei dem das Attribut Menüpunkttyp auf Kontroll oder Option eingestellt ist.


Attribut Ausschnitthöhe

 Alle Attribute

Beschreibung

Gibt die Höhe eines abgeschnittenen Bildes in Layouteinheiten an. Wenn Sie einen Wert angeben, der kleiner ist als die Höhe des Originalbildes, wird das Bild am unteren Rand abgeschnitten.

Gilt für  Grafikobjekte

Einstellung  Form Builder

Standardwert

Ursprüngliche Bildhöhe

Obligatorisch/Optional  Obligatorisch


Attribut Ausschnittbreite

 Alle Attribute

Beschreibung

Gibt die Breite eines abgeschnittenen Bildes in Layouteinheiten an. Wenn Sie einen Wert angeben, der niedriger ist als die Originalbreite des Bildes, wird das Bild am rechten Rand abgeschnitten.

Gilt für  Grafikobjekte

Einstellung  Form Builder

Standardwert

Ursprüngliche Bildbreite

Obligatorisch/Optional  Obligatorisch


Attribut Ausschnitt X-Position

 Alle Attribute

Beschreibung

Gibt an, um wieviel (in Layouteinheiten) das Bild am linken Rand abgeschnitten werden soll.

Gilt für  Grafikobjekte

Einstellung  Form Builder

Standardwert

0

Obligatorisch/Optional  Obligatorisch


Attribut Ausschnitt Y-Position

 Alle Attribute

Beschreibung

Gibt an, um wieviel (in Layouteinheiten) der obere Rand des Bildes abgeschnitten werden soll.

Gilt für  Grafikobjekte

Einstellung  Form Builder

Standardwert

0

Obligatorisch/Optional  Obligatorisch


Attribut Schließen zulässig

 Einschränkungen	    Verwandte Themen	   Alle Attribute

Beschreibung

Gibt an, ob der für das Fensterverwaltungsprogramm spezifische Schließen-Befehl für ein Fenster aktiviert oder deaktiviert ist. Bei Fensterverwaltungsprogrammen der grafischen Benutzeroberfläche kann der Befehl Schließen aus dem Systemmenü des Fensters oder durch Doppelklicken auf das Schließen-Feld in der oberen linken Ecke des Fensters aufgerufen werden.

Gilt für  Fenster

Einstellung  Form Builder

Standardwert

Ja

Verwendungshinweise

•	Wenn Sie Schließen zulässig auf Ja einstellen, wird der Befehl Schließen aktiviert, so daß das Ereignis Fenster schließen an Form Builder gesendet werden kann, wenn der Operator den Befehl Schließen ausgibt. Um das Fenster jedoch als Antwort auf dieses Ereignis tatsächlich zu schließen, müssen Sie einen When-Window-Closed-Trigger schreiben, der das Fenster ausdrücklich schließt. Sie können ein Fenster programmgesteuert schließen, indem Sie HIDE_WINDOW,  SET_WINDOW_PROPERTY oder EXIT_FORM aufrufen.

•	Wenn bei Microsoft Windows das übergeordnete MDI-Fenster geschlossen wird, führt Form Builder standardmäßig DO_KEY('Exit_Form') aus.


Einschränkungen bei Schließen zulässig

Dieses Attribut kann bei einem Hauptfenster nicht eingestellt werden; bei einem Hauptfenster ist das Schließen immer zulässig.


Attribut Geschlossen

 Alle Attribute

Beschreibung

Gibt an, ob ein Bogen geschlossen ist.

Gilt für  Grafikbogen

Einstellung  Form Builder

Standardwert

Ja

Obligatorisch/Optional  Obligatorisch


Attribut Attribute Spaltenzuordnung

 Alle Attribute

Beschreibung

Die Attributgruppe Attribute Spaltenzuordnung umfaßt Spaltenname, Spaltentitel, Anzeigebreite und Rückgabeobjekt.

Gilt für  Wertelisten

Einstellung  Form Builder

Spaltenname

Gibt den Namen der Spalten in einer Werteliste an.

Obligatorisch/Optional  Mindestens eine Spalte muß definiert sein.

Standardwert

Namen der Spalten in der zugrundeliegenden Datensatzgruppe

Verwendungshinweise

Die Spaltennamen müssen den Benennungsregeln für Objekte entsprechen.

Spaltentitel

Gibt den Titel an, der über der gerade ausgewählten Spalte in der Liste mit Spaltennamen angezeigt wird.

Anzeigebreite

Gibt die Breite für die Spalte an, die gerade in der Liste Spaltenname ausgewählt ist.

Obligatorisch/Optional  Optional

Verwendungshinweise

•	Stellen Sie das Attribut Anzeigebreite auf die Breite in den entsprechenden Einheiten ein (Punkt, Pixel, Zentimeter, Zoll oder Zeichen, wie mit dem Formattribut Koordinatensystem angegeben), die Form Builder für die Spalte in dem Fenster Werteliste reservieren soll. Der Spaltenwert kann abgeschnitten werden, wenn die Anzeigebreite kleiner ist als die Breite des Spaltenwertes. Um diese Situation zu umgehen, erhöhen Sie die Anzeigebreite für die Spalte.

•	Um die Spalte zu einer verborgenen Spalte zu machen, stellen Sie Anzeigebreite auf 0 ein. (Sie können ein Rückgabeobjekt für eine verborgene Spalte angeben, genau wie für eine angezeigte Spalte.)

•	Um zusätzlichen Platz zwischen den Spalten in dem Fenster Werteliste hinzuzufügen, stellen Sie Anzeigebreite auf einen breiteren Wert als die Standardbreite der Spalte ein. Als Ausnahme zu dieser Regel beachten Sie, daß Sie die Breite zwischen einer NUMBER-Spalte und einer Nicht-NUMBER-Spalte nicht erhöhen können, indem Sie die Anzeigebreite für die NUMBER-Spalte erhöhen, da Zahlen in Wertelisten rechtsbündig ausgerichtet angezeigt werden. Angenommen, die Werteliste enthält 3 Spalten: Spalte 1 und 3 sind vom Typ CHAR und Spalte 2 vom Typ NUMBER. Um die Breite zwischen jeder Spalte zu erhöhen, erhöhen Sie die Anzeigebreite für die Spalten 1 und 3.

Rückgabeobjekt

Gibt den Namen des Formobjekts bzw. der Formvariablen an, der Form Builder den Wert der Spalte zuweisen soll, sobald der Operator einen Datensatz in der Werteliste auswählt.

Standardwert

NULL

Obligatorisch/Optional  Optional

Verwendungshinweise

Bei dem Rückgabeobjekt kann es sich um einen der folgenden Einträge handeln:

•	Formobjekt (block_name.item_name)

•	Formparameter (PARAMETER.my_parameter)

•	Globaler Parameter (GLOBAL.my_global)

Setzen Sie vor den Objektnamen keinen Doppelpunkt.


Attribut Spaltenname

  Verwandte Themen	   Alle Attribute

Beschreibung

Legt fest, daß ein Objekt einer Spalte in der Tabelle entspricht, die mit dem Datenblock verknüpft ist.

Gilt für  Alle Objekte, mit Ausnahme von Schaltflächen, Diagrammen, VBX- (bei 16-Bit Microsoft Windows 3.x) oder ActiveX- (bei 32-Bit Windows) Steuerelementen

Einstellung  Form Builder

Vordefinierte Prozedur

GET_ITEM_PROPERTY

Standardwert

Ja

Obligatorisch/Optional  Optional

Verwendungshinweise

Wenn ein ausgewähltes Objekt aus einem Spaltenobjekt oder einer REF-Spalte in einer Tabelle stammt, erstellt Form Builder einen zusammengesetzten Namen mit der Punkt-Schreibweise. ObjectColumnName.AttributeName.

Angenommen, dept_type ist ein Objekttyp mit den Attributen dnum, dname und dloc und ein Spaltenobjekt mit der Bezeichnung dept basierend auf dept_type ist vorhanden. Wenn in diesem Fall dname ausgewählt würde, um zu einem Objekt in dem Datenblock zu werden, würde das Attribut Spaltenname zu dept.dname.


Attribut Spaltenspezifikation

 Einschränkungen	   Alle Attribute

Beschreibung

Die Attributgruppe Spaltenspezifikation umfaßt Spaltenname, Spaltenwert, Datentyp, Länge.

Gilt für  Datensatzgruppen

Einstellung  Form Builder

Spaltenname

Gibt die Namen der Spalten in einer Datensatzgruppe an.

Obligatorisch/Optional  Mindestens eine Spalte muß definiert sein.

Standardwert

Namen der Spalten in der zugrundeliegenden Datensatzgruppe

Verwendungshinweise

Die Spaltennamen müssen den Benennungsregeln für Objekte entsprechen. In einer Datensatzgruppe können maximal 255 Spalten vorhanden sein.

Spaltenwert

Gibt bei einer statischen Datensatzgruppe die Zeilenwerte für die Spalte an, die gerade in der Liste mit Spaltennamen ausgewählt ist.

Standardwert

NULL

Datentyp

Gibt den Datentyp für eine bestimmte Spalte der Datensatzgruppe an.

Standardwert

CHAR, es sei denn, Sie definieren eine Abfrage-Datensatzgruppe. In diesem Fall entspricht der Datentyp jeder Spalte standardmäßig dem Datentyp der entsprechenden Datenbankspalte.

Einschränkungen

Der Datentyp einer Spalte in der Datensatzgruppe kann nur CHAR,  NUMBER oder DATE sein.

Länge

Gibt die Länge der Spalte der Datensatzgruppe in Zeichen an, die gerade in der Liste mit Spaltennamen ausgewählt ist.

Standardwert

Bei einer Abfrage-Datensatzgruppe entspricht der Standardwert der Breite für die Spalte in der Datenbank. Bei einer statischen Datensatzgruppe ist der Standardwert 30.

Obligatorisch/Optional  Obligatorisch


Einschränkungen bei Spaltenspezifikation

•	Sie können eine nicht initialisierte Variable oder ein Objekt für dieses Attribut nicht referenzieren, da diese Aktion eine Vorwärtsreferenz darstellt, die Form Builder bei der Entwicklung nicht validieren kann.

•	Der Datentyp des Wertes muß dem Datentyp der zugehörigen Spalte entsprechen, wie mit dem Attribut Spaltenname angegeben.


Attribut Spaltentitel (Werteliste)

 Alle Attribute

Beschreibung

Siehe Attribute Spaltenzuordnung.


Attribut Spaltenwert (Datensatzgruppe)

 Alle Attribute

Beschreibung

Siehe Spaltenspezifikation.


Attribut Befehlstext

 Einschränkungen	    Verwandte Themen	   Alle Attribute

Beschreibung

Gibt den Befehlstext für den aktuellen Menüpunkt an. Gültige Werte hängen von der aktuellen Einstellung des Attributs Befehlstyp für den Menüpunkt ab. Wenn der Befehlstyp z.B. MENÜ ist, entspricht ein gültiger Befehlstext dem Namen eines Untermenüs im Menümodul. Wenn der Befehlstyp PL/SQL ist, entspricht ein gültiger Befehlstext beliebigen PL/SQL-Anweisungen.

Gilt für  Menüpunkte

Einstellung  Form Builder

Obligatorisch/Optional  Obligatorisch für alle Befehlstypen mit Ausnahme von NULL


Einschränkungen bei Befehlstext

Der Wert kann maximal 240 Zeichen umfassen.


Attribut Befehlstyp

  Verwandte Themen	   Alle Attribute

Beschreibung

Gibt die Art des Menübefehls an. Mit diesem Attribut wird bestimmt, wie Form Builder den Text im Attribut Befehlstext interpretiert.

Gilt für  Menüpunkte

Einstellung  Form Builder

Standardwert

NULL

Obligatorisch/Optional  Obligatorisch

Befehlstyp	Beschreibung
Null	Gibt an, daß der Menüpunkt keinen Befehl ausgibt. Der Befehl NULL ist für Menüpunkte in Form von Trennlinien obligatorisch und für alle anderen Typen von Menüpunkten optional.
Menü	Ruft ein Untermenü auf. Gültiger Befehlstext entspricht dem Namen des aufzurufenden Untermenüs.
PL/SQL	Der Standard-Befehlstyp. Führt einen PL/SQL-Befehl aus. Gültiger Befehlstext entspricht PL/SQL-Anweisungen, einschließlich Aufrufen von vordefinierten und benutzerdefinierten Unterprogrammen. Hinweis:  PL/SQL in einem Menümodul kann sich nicht direkt auf die Werte von Objekten, Variablen oder Parametern in einem Formmodul beziehen. Statt dessen benutzen Sie die vordefinierten Prozeduren NAME_IN und COPY, um derartige Werte indirekt zu referenzieren.
Plus*	Nicht empfohlen. Um SQL*Plus aufzurufen, benutzen Sie den Befehlstyp PL/SQL, und führen Sie die vordefinierte Prozedur HOST aus, um SQL*Plus zu starten. (Bei Windows-Plattformen benutzen Sie plus80.exe als Namen der ausführbaren Datei.)
Aktuelle Forms*	Nicht empfohlen. Um Form Builder aufzurufen, benutzen Sie den Befehlstyp PL/SQL, und führen Sie die vordefinierten Prozeduren HOST oder RUN_PRODUCT aus, um einen gültigen Anmeldevorgang bei Form Builder durchzuführen.
Makro*	Nicht empfohlen. Führt einen SQL*Menu-Makro aus.
* Dieser Befehlstyp ist aus Kompatibilitätsgründen mit vorherigen Versionen vorhanden. Benutzen Sie diesen Befehlstyp in neuen Anwendungen nicht.


Attribut Kommentare

 Alle Attribute

Beschreibung

Mit dem Attribut Kommentare werden allgemeine Informationen über ein Form Builder-Objekt angegeben, das Sie erstellen. Mit Kommentaren können Sie Informationen aufzeichnen, die für Sie oder andere Entwickler von Nutzen sind, die Ihre Anwendungen entwickeln, verwalten und debuggen.

Gilt für  Alle Objekte

Einstellung  Form Builder

Obligatorisch/Optional  Optional


Attribute Kommunikationsmodus

 Alle Attribute

Attribut Kommunikationsmodus (Diagramm)

Attribut Kommunikationsmodus (Bericht)


Attribut Kommunikationsmodus (Diagramm)

 Alle Attribute

Beschreibung

Wenn Graphics Builder aus Form Builder aufgerufen wird, um ein Diagramm zu erstellen, wird der zu benutzende Kommunikationsmodus als Synchron oder Asynchron angegeben. Der synchrone Kommunikationsmodus bedeutet, daß die Kontrolle erst an die aufrufende Anwendung zurückgegeben wird, nachdem das aufgerufene Produkt abgeschlossen ist. Der Endbenutzer kann nicht in der Form arbeiten, während das aufgerufene Produkt läuft. Bei der asynchronen Kommunikation wird die Kontrolle sofort an die aufrufende Anwendung zurückgegeben, selbst wenn die Anzeige der aufgerufenen Anwendung noch nicht abgeschlossen ist.

Wenn Daten aus dem aufgerufenen Produkt zurückgegeben werden, wie z.B. beim Aktualisieren eines Diagrammobjekts, muß der Kommunikationsmodus synchron sein.

Gilt für  Diagrammobjekte

Einstellung  Form Builder

Standardwert

Synchron

Obligatorisch/Optional  Obligatorisch


Attribut Kommunikationsmodus (Bericht)

 Alle Attribute

Beschreibung

Bei der Bericht-/Form-Integration wird der Kommunikationsmodus zwischen der Form und dem Bericht als Synchron oder Asynchron angegeben. Bei der synchronen Kommunikation wird die Kontrolle erst an die aufrufende Anwendung zurückgegeben, nachdem das aufgerufene Produkt abgeschlossen ist. Der Endbenutzer kann nicht in der Form arbeiten, während das aufgerufene Produkt läuft. Bei der asynchronen Kommunikation wird die Kontrolle sofort an die aufrufende Anwendung zurückgegeben, selbst wenn die aufgerufene Anwendung noch nicht abgeschlossen ist.

Wenn Daten aus dem aufgerufenen Produkt zurückgegeben werden, muß der Kommunikationsmodus synchron sein.

Gilt für  Berichtintegration

Einstellung  Form Builder

Standardwert

Synchron

Obligatorisch/Optional  Obligatorisch


Attribut Komprimieren

  Verwandte Themen	   Alle Attribute

Beschreibung

Gibt an, ob ein Klangobjekt, das aus einer Datei in eine Form eingelesen wird, komprimiert werden soll, wenn es in das interne Oracle-Format konvertiert wird.

Gilt für  Klangobjekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	WRITE_SOUND_FILE

Standardwert

Automatisch (benutzt gegebenenfalls die Komprimierungseinstellung der Klangdaten)


Attribut Komprimierungsqualität

  Verwandte Themen	   Alle Attribute

Beschreibung

Gibt an, ob ein Bildobjekt, das aus einer Datei in eine Form eingelesen wird bzw. (mit der vordefinierten Prozedur WRITE_IMAGE_FILE) oder in eine Datei geschrieben wird, komprimiert werden soll, und wenn ja, bis zu welchem Grad. Gültige Werte sind:

•	Kein

•	Minimum

•	Niedrig

•	Mittel

•	Hoch

•	Maximum

Gilt für  Bildobjekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Kein


Attribut Daten verbergen (Objekt)

 Einschränkungen	   Alle Attribute

Beschreibung

Verbirgt Zeichen, die der Operator in das Textobjekt eingibt. Diese Einstellung wird im allgemeinen für den Kennwortschutz benutzt.

In der folgenden Liste werden die zulässigen Wert für dieses Attribut beschrieben:

.Ja	Deaktiviert die Wiedergabe der vom Operator eingegebenen Zeichen.

Nein	Aktiviert die Wiedergabe der vom Operator eingegebenen Zeichen.

Gilt für  Textobjekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Nein


Einschränkungen bei Daten verbergen (Objekt)

Ist nur bei einzeiligen Textobjekten gültig.


Attribut Connect_String

  Verwandte Themen	   Alle Attribute

Beschreibung

Mit dem Attribut Connect_String wird die SQL*NET DB-Adresse des Formoperators angegeben.

Wenn der aktuelle Operator keine SQL*NET DB-Adresse hat, gibt Form Builder NULL zurück.

Gilt für  Anwendungen

Vordefinierte Prozedur

GET_APPLICATION_PROPERTY


Attribut Konsolfenster

  Verwandte Themen	   Alle Attribute

Beschreibung

Gibt den Namen des Fensters an, in dem die Form Builder-Konsole angezeigt werden soll. Die Konsole umfaßt die Status- und Meldungszeile und wird am unteren Fensterrand angezeigt.

Bei Microsoft Windows wird die Konsole immer im MDI-Anwendungsfenster angezeigt und nicht in einem bestimmten Fenster in der Form. Sie müssen für dieses Attribut aber dennoch den Namen eines Formfensters eingeben, um anzugeben, daß die Konsole angezeigt werden soll.

Wenn eine Form ohne Konsole angezeigt werden soll, geben Sie für dieses Attribut <Null> an.

Gilt für  Forms

Einstellung  Form Builder

Standardwert

WINDOW1

Obligatorisch/Optional  Optional


Attribut Hilfetext für Steuerelement

 Alle Attribute

Beschreibung

Gilt für ActiveX- (OCX-) Steuerelemente im Layouteditor. Stellt einen Link zu der OCX-Hilfedokumentation für das aktuelle OCX-Steuerelement bereit.

Gilt für  ActiveX-Steuerelemente

Einstellung  Form Builder

Standardwert

Weitere...

Obligatorisch/Optional  Optional


Attribut Steuerelemenattribute

 Alle Attribute

Beschreibung

Aktiviert ein steuerelement-spezifisches Attributblatt für das gerade ausgewählte OLE- oder ActiveX-Steuerelement. Das Steuerelement muß im Layouteditor sichtbar sein, damit das Attributblatt angezeigt werden kann.

Gilt für  OLE/ActiveX-Steuerelemente

Einstellung  Form Builder


Attribut Koordinatensystem

  Verwandte Themen	   Alle Attribute

Beschreibung

Gibt an, ob die Werte für Objektgröße und -position als Werte von Zeicheneinheiten oder als reelle Einheiten (Zentimeter, Zoll, Pixel oder Punkt) interpretiert werden sollen. Die folgenden Einstellungen gelten für dieses Attribut:

Zeichen.	Setzt das Koordinatensystem auf ein zeicheneinheiten-orientiertes Maß. Die tatsächliche Größe und Position von Objekten hängt von der Größe eines Standardzeichens auf der jeweiligen Plattform ab.

Reell	Setzt das Koordinatensystem auf die Maßeinheit, die mit dem Attribut Reelle Einheit angegeben wird (Zentimeter, Zoll, Pixel oder Punkt).

Wenn Sie das Koordinatensystem für die Form ändern, ändern sich die Formatzeileneinheiten in den Formatzeilen des Formeditors, die Einstellungen für den Rasterabstand und den Rastersprung werden jedoch nicht geändert.

Gilt für  Forms

Einstellung  Form Builder

Standardwert

Zentimeter

Verwendungshinweise

Das ausgewählte Koordinatensystem wird beim Entwurf und zur Laufzeit in Kraft gesetzt. Wenn Sie z.B. ein Fenster programmgesteuert mit SET_WINDOW_PROPERTY verschieben, werden die Positionskoordinaten, die Sie an die vordefinierte Prozedur übergeben, in den Koordinateneinheiten der aktuellen Form interpretiert.

Wenn Sie von einem Koordinatensystem zu einem anderen konvertieren, konvertiert Form Builder die Werte für Objektgröße und -position automatisch, die deklarativ beim Entwurf angegeben wurden. Beim Konvertieren zu weniger präzisen Einheiten kann es zu einem Genauigkeitsverlust kommen.

Wenn die Portabilität von Bedeutung ist, sollten Sie das Attribut Koordinatensystem auf Zeichen setzen, um die plattformübergreifende Portabilität weitestgehend zu gewährleisten, allerdings wird dadurch ein Grobraster gesetzt, wodurch die Optimierung des Layouts erschwert wird. Wenn Ihre Anwendung sowohl im Zeichenmodus als auch auf einer grafischen Benutzeroberfläche läuft, hängt die Entscheidung für das Koordinatensystem davon ab, für welche Schnittstelle das Layout optimiert werden soll.

Wenn Sie das Layout für grafische Benutzeroberflächen optimieren wollen, erhalten Sie mit der Einstellung Reell die größte Flexibilität bei Proportionalschriftarten, allerdings ist möglicherweise mehr Optimierungsaufwand erforderlich, um zu verhindern, daß sich Felder auf der Zeichenmodusseite überlagern.

Wenn Sie das Layout für den Zeichenmodus optimieren möchten, wählen Sie die Einstellung Zeichen. Diese Einstellung bietet weniger Flexibilität bei den Proportionalschriftarten, die auf grafischen Benutzeroberflächen benutzt werden, allerdings können Sie die Umrandungen von Zeicheneinheiten genau ausrichten.

Für die folgende Anwendung...	Stellen Sie das Koordinatensystem folgendermaßen ein...
Nur grafische Benutzeroberfläche	Reell, Zoll, Zentimeter oder Punkt
Nur Zeichenmodus	Zeichen
Zeichenmodus und grafische Benutzeroberfläche gemischt:
Optimierung für grafische Benutzeroberfläche	Reell
Optimierung für Zeichenmodus	Zeichen


Attribut Koordination

 Einschränkungen	    Verwandte Themen	   Alle Attribute

Beschreibung

Gibt an, wie und wann die Auffüllphase der Blockkoordination stattfinden soll. Geben Sie die gewünschte Koordination an, indem Sie die Attribute Verzögert und Automatische Abfrage einstellen. Wenn Sie diese Attribute beim Entwurf einstellen, erstellt Form Builder die entsprechenden Master-Detail-Trigger bzw. ändert diese, um die gewählte Koordinationseinstellung in Kraft zu setzen.

Gilt für

Beziehungen

Einstellung

Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_RELATION_PROPERTY

•	SET_RELATION_PROPERTY

Standardwert

Sofortige Koordination (Verzögert Nein, Automatische Abfrage Nein)

Verwendungshinweise

Wenn sich der aktuelle Datensatz im Master-Block zur Laufzeit ändert (ein koordinationsverursachendes Ereignis), muß Form Builder den Detail-Block mit einer neuen Gruppe mit Datensätzen auffüllen. Sie können genau angeben, wie und wann dieses Auffüllen stattfinden soll, indem Sie dieses Attribut auf einen von drei gültigen Werten einstellen:

Verzögert=Nein, Automatische Abfrage ignoriert	Standardeinstellung. Wenn im Master-Block ein koordinationsverursachendes Ereignis eintritt, werden die Detail-Datensätze sofort abgerufen.
Verzögert=Ja, Automatische Abfrage=Ja	Wenn ein koordinationsverursachendes Ereignis eintritt, setzt Form Builder das Abrufen der zugehörigen Detail-Datensätze aus, bis der Operator zu dem Detail-Block navigiert.
Verzögert=Ja, Automatische Abfrage=Nein	Wenn ein koordinationsverursachendes Ereignis auftritt, setzt Form Builder das Abrufen der zugehörigen Detail-Datensätze aus, bis der Operator zu dem Detail-Block navigiert und explizit eine Abfrage ausführt.
Verzögert=Nein, Automatische Abfrage=Ja	Keine gültige Einstellung


Einschränkungen bei Koordination

Die Möglichkeit, diese Attribute programmgesteuert einzustellen und einzulesen, ist nur für Anwendungen vorgesehen, die ein benutzerdefiniertes Master-Detail-Schema benötigen. Bei einer standardmäßigen Master-Detail-Beziehung, die beim Entwurf erstellt wird, generiert Form Builder die entsprechenden Trigger, um die Koordination in Kraft zu setzen. Die Einstellung der Koordinationsattribute zur Laufzeit hat keine Auswirkung auf den Standardtext des Triggers.


Attribut Coordination_Status

 Alle Attribute

Beschreibung

Bei einem Block, bei dem es sich um einen Detailblock in einer Master-Detail-Blockbeziehung handelt, gibt dieses Attribut den aktuellen Koordinationsstatus des Blocks bezogen auf den bzw. die Masterblöcke an. Dieses Attribut wird auf den Wert COORDINATED gesetzt, wenn der Block mit all seinen Masterblöcken koordiniert ist. Wenn der Block nicht mit allen Masterblöcken koordiniert ist, wird Coordination_Status auf NON_COORDINATED gesetzt.

Unmittelbar nach dem Abruf von Datensätzen in dem Detailblock ist der Status eines Detailblocks COORDINATED. Wenn ein anderer Datensatz zum aktuellen Datensatz in dem Masterblock wird, wird der Status des Detailblocks wieder zu NON_COORDINATED.

Gilt für  Beziehungen

Einstellung  programmgesteuert

Vordefinierte Prozedur

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Verwendungshinweise

Dieses Attribut ist für Entwickler gedacht, die ein benutzerdefiniertes Master-Detail-Blockkoordinationsschema programmgesteuert durchsetzen. Dieses Attribut muß nicht verwendet werden, wenn Sie die deklarative Master-Detail-Koordination von Form Builder verwenden.


Attribut Wert aus Objekt kopieren

  Verwandte Themen	   Alle Attribute

Beschreibung

Gibt die Quelle des Wertes an, mit dem Form Builder das Objekt auffüllt. Wenn Sie eine Master-Detail-Beziehung definieren, stellt Form Builder dieses Attribut automatisch auf die Fremdschlüsselobjekte im Detailblock ein. In diesen Fällen benennt das Attribut Wert aus Objekt kopieren das Primärschlüsselobjekt im Masterblock, dessen Wert in das Fremdschlüsselobjekt im Detailblock kopiert wird, wenn ein Detail-Datensatz erstellt oder abgefragt wird.

Gilt für  Alle Objekte, mit Ausnahme von Schaltflächen, Diagrammobjekten und Bildobjekten

Einstellung  Form Builder

Vordefinierte Prozedur

GET_ITEM_PROPERTY

Obligatorisch/Optional  Optional

Verwendungshinweise

•	Geben Sie dieses Attribut in folgender Form an: <Blockname>.<Blockobjektname>.

•	Die Einstellung des Attributs Wert aus Objekt kopieren wirkt sich nicht auf den Datensatzstatus zur Laufzeit aus, da das Kopieren während der Standardverarbeitung des Datensatzes erfolgt.

•	Um zu verhindern, daß Operatoren die Fremdschlüsselbeziehung wieder außer Kraft setzen, setzen Sie das Attribut Aktiviert für Fremdschlüsselobjekte auf Nein.

•	Um das Attribut Wert aus Objekt kopieren programmgesteuert mit GET_ITEM_PROPERTY einzulesen, verwenden Sie die Konstante ENFORCE_KEY.


Attribut Visuelle Attributgruppe Aktueller Datensatz

 Alle Attribute

Beschreibung

Gibt das benannte visuelle Attribut an, das benutzt wird, wenn ein Objekt Bestandteil des aktuellen Datensatzes ist.

Gilt für  Forms, Blöcke, Objekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Obligatorisch/Optional  Optional

Verwendungshinweise

Dieses Attribut kann auf Form-, Block- oder Objektebene oder einer beliebigen Kombination von Ebenen eingestellt werden. Wenn Sie auf jeder Ebene benannte visuelle Attribute angeben, setzt das Attribut auf Objektebene alle anderen Attribute außer Kraft. Das Attribut auf Blockebene setzt das Attribut auf Formebene außer Kraft.

Beachten Sie, daß bei der Definition des Attributs Visuelle Attributgruppe Aktueller Datensatz auf Formebene alle Symbolleisten in der Form mit diesem Wert angezeigt werden. Sie können dies umgehen, indem Sie das Attribut Visuelle Attributgruppe Aktueller Datensatz auf Blockebene für die Blöcke definieren, die dieses Attribut benötigen, anstatt diese auf Formebene zu definieren. Wenn Sie das Attribut Visuelle Attributgruppe Aktueller Datensatz auf Formebene beibehalten möchten, können Sie das Attribut Visuelle Attributgruppe Aktueller Datensatz für die Symbolleiste auf Blockebene auf einen entsprechenden Wert einstellen.

Visuelle Attributgruppe Aktueller Datensatz wird häufig auf Blockebene benutzt, um die aktuelle Zeile in einem mehrere Datensätze umfassenden Block in einer besonderen Farbe anzuzeigen. Wenn Sie z.B. Vis_Att_Blue für den Block Emp definieren, mit dem vier Detail-Datensätze angezeigt werden, wird der aktuelle Datensatz blau angezeigt, da er das Objekt enthält, das Bestandteil des aktuellen Datensatzes ist.

Wenn Sie ein Visuelles Attribut Aktueller Datensatz auf Objektebene definieren, können Sie ein vordefiniertes Objekt in einer speziellen Farbe anzeigen, wenn dieses Bestandteil des aktuellen Datensatzes ist, können jedoch das aktuelle Objekt nicht dynamisch hervorheben, da sich der Eingabefokus ändert. Wenn Sie z.B. Visuelles Attribut Aktueller Datensatz für EmpNo auf Vis_Att_Green setzen, würde das Objekt EmpNo im aktuellen Datensatz grün angezeigt. Wenn der Eingabefokus zu EmpName verschoben wird, wäre EmpNo immer noch grün, und EmpName würde nicht geändert.


Attribut Current_Form

  Verwandte Themen	   Alle Attribute

Beschreibung

Gibt den Namen der .FMX-Datei der Form an, die gerade ausgeführt wird.

Gilt für  Anwendungen

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_APPLICATION_PROPERTY

Verwendungshinweise

Lesen Sie den Wert dieses Attributs ein, um den Namen der Datei, aus der die aktuelle Form stammt, in einer Anwendung zu bestimmen, die über mehrere aufgerufene Forms verfügt.

Current_Form auf Anwendungsebene entspricht File_Name auf Formebene. File_Name kann mit GET_FORM_PROPERTY eingelesen werden.


Attribut Current_Form_Name

  Verwandte Themen	   Alle Attribute

Beschreibung

Gibt den Namen der aktuellen Form an, wie mit dem Attribut Name des Formmoduls angegeben.

Gilt für  Anwendungen

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_APPLICATION_PROPERTY

Verwendungshinweise

Lesen Sie den Wert dieses Attributs ein, um den Namen der aktuellen Form in einer Anwendung zu bestimmen, die mehrere aufgerufene Forms hat.

Current_Form_Name auf Anwendungsebene entspricht Form_Name auf Formebene. Form_Name kann mit GET_FORM_PROPERTY eingelesen werden.


Attribut Current_Record

 Alle Attribute

Beschreibung

Gibt die Nummer des aktuellen Datensatzes in der Liste mit Datensätzen des Blocks an.

Gilt für  Blöcke

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_BLOCK_PROPERTY


Attribut Current_Row_Background_Color

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Farbe des Hintergrundbereichs des Objekts an.

Gilt für  Objekte, Blöcke, Forms

Einstellung  Programmgesteuert

Standardwert

NULL

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY


Attribut Current_Row_Fill_Pattern

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt das Muster an, das für den Füllbereich des Objekts benutzt werden soll. Muster werden in den beiden Farben gerendert, die mit Background_Color und Foreground_Color angegeben werden.

Gilt für  Objekte, Blöcke, Forms

Einstellung  Programmgesteuert

Standardwert

Nicht angegeben

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY


Attribut Current_Row_Font_Name

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Schriftartfamilie an, die für den Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

Gilt für  Objekte, Blöcke, Forms

Einstellung  Programmgesteuert

Standardwert

NULL

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY


Attribut Current_Row_Font_Size

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Schriftgrad in Punkt an.

Gilt für  Objekte, Blöcke, Forms

Einstellung  Programmgesteuert

Standardwert

NULL

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY


Attribut Current_Row_Font_Spacing

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Breite der Schriftart an (d.h. den Abstand zwischen den Zeichen bzw. das Kerning).

Gilt für  Objekte, Blöcke, Forms

Einstellung  Programmgesteuert

Standardwert

NULL

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY


Attribut Current_Row_Font_Style

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Schriftstil an.

Gilt für  Objekte, Blöcke, Forms

Einstellung  Programmgesteuert

Standardwert

NULL

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY


Attribut Current_Row_Font_Weight

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Schriftstärke an.

Gilt für  Objekte, Blöcke, Forms

Einstellung  Programmgesteuert

Standardwert

NULL

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY


Attribut Current_Row_Foreground_Color

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Farbe für den Vordergrundbereich des Objekts an. Definiert bei Objekten die Farbe des Textes, der in dem Objekt angezeigt wird.

Gilt für  Objekte, Blöcke, Forms

Einstellung  Programmgesteuert

Standardwert

NULL

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY


Attribut Current_Row_White_on_Black;
Attribut Current_Row_White_On_Black

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

Gilt für  Objekte, Blöcke, Forms

Einstellung  Programmgesteuert

Standardwert

NULL

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY


Attribut Cursor-Modus

 Alle Attribute

Hinweis:

In Release 5.0 und höher wird der Cursor-Modus automatisch von Form Builder festgelegt. Dieses Attribut ist jetzt veraltet und sollte nicht mehr benutzt werden. Insbesondere sollte der Cursor-Modus niemals auf Schließen eingestellt werden. Die folgenden Informationen wurden nur im Hinblick auf frühere Versionen und Verwaltung gemacht.

Beschreibung

Definiert den Cursorstatus transaktionsübergreifend. Der Cursor bezieht sich auf den Arbeitsbereich des Speichers, in dem die SQL-Anweisungen ausgeführt werden. Für weitere Informationen über Cursor wird auf ORACLE RDBMS Database Administrator's Guide verwiesen. Dieses Attribut wird besonders für Anwendungen benutzt, die mit einer fremden Datenquelle ausgeführt werden.

Für das Attribut Cursor-Modus können folgende Einstellungen benutzt werden:

Einstellung	Beschreibung
Öffnen (Standard)	Gibt an, daß Cursor während Transaktionen geöffnet bleiben sollen.
Schließen	Gibt an, daß Cursor geschlossen werden sollen, wenn ein Commit-Vorgang ausgegeben wird.

Gilt für  Forms

Einstellung  programmgesteuert

Vordefinierte Prozedur

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY

Standardwert

OPEN_AT_COMMIT

Verwendungshinweise

•	Da der Datenbankstatus bei ORACLE transaktionsübergreifend verwaltet werden kann, können Cursor während COMMIT-Vorgängen geöffnet bleiben. Dadurch wird zusätzlicher Aufwand für die nachfolgende Ausführung derselben SQL-Anweisung reduziert, da der Cursor nicht wieder geöffnet und die SQL-Anweisung nicht immer wieder neu analysiert werden muß.

•	Bei einigen fremden Datenbanken kann der Datenbankstatus nicht transaktionsübergreifend verwaltet werden. Deshalb können Sie den Parameter CLOSE_AT_COMMIT der Option Cursor_Mode angeben, um dieser Anforderung gerecht zu werden.

•	Wenn Sie Cursor beim Speichern schließen und beim Ausführen wieder öffnen, kann sich dies in drei Bereichen negativ auf die Leistung auswirken:

•	Während des COMMIT-Vorgangs

•	Während der späteren Ausführung anderer SQL-Anweisungen für dieselben Datensätze

•	Während der Ausführung von Abfragen

•	Form Builder schließt Cursor nicht explizit im Anschluß an die Commit-Verarbeitung, wenn Sie das Attribut auf CLOSE_AT_COMMIT setzen. Diese Einstellung ist im wesentlichen ein Hinweis für Form Builder, daß der Cursor-Status nach einem Commit-Vorgang undefiniert sein kann.

Form Builder verwaltet eine Transaktions-ID während allen Transaktionsverarbeitungen. So erhöht Form Builder die Transaktions-ID z.B. jedesmal, wenn ein Cursor geöffnet, ein Commit-Vorgang ausgeführt oder ein Rollback durchgeführt wird.

Wenn Form Builder versucht, einen Cursor erneut auszuführen, prüft es die Transaktions-ID. Wenn es sich nicht um die aktuelle Transaktions-ID handelt, öffnet, analysiert und führt Form Builder einen neuen Cursor aus. Nur die letzte Transaktions-ID wird beibehalten.

•	Wenn Sie Daten abfragen, Daten ändern und dann speichern, erhöht Form Builder die Transaktions-ID. Nachfolgende Abrufenvorgänge öffnen den Cursor aus folgenden Gründen nicht erneut und führen ihn nicht erneut aus:

•	Form Builder versucht nicht, Lesekonsistenzfragen zu behandeln, und übernimmt auch nicht das Neupositionieren im Cursor.

•	Form Builder erwartet, daß ORACLE oder die Verbindung einen Abrufende-Fehler zurückgibt, wenn versucht wird, Daten aus einem implizit geschlossenen Cursor abzurufen.

Bei der nachfolgenden Ausführung der Abfrage öffnet Form Builder einen neuen Cursor.

•	Wenn Sie dieses Attribut in Verbindung mit Transaktionstriggern verwenden, müssen Sie als Entwickler die Cursor verwalten. So könnten Sie z.B. eventuell geöffnete Abfragen in dem Block schließen, wenn Sie einen Commit-Vorgang durchführen.


Attribut Cursor_Style

 Alle Attribute

Beschreibung

Gibt den Stil für den Mauscursor an. Benutzen Sie dieses Attribut, um die Form des Cursors dynamisch zu ändern.

Die folgenden Einstellungen gelten für das Attribut Cursor_Style:

Einstellung_Beschreibung

BUSY	Zeigt ein für die grafische Benutzeroberfläche spezifisches Belegt-Symbol an.

CROSSHAIR	Zeigt ein für die grafische Benutzeroberfläche spezifisches Fadenkreuzsymbol an.

DEFAULT	Zeigt ein für die grafische Benutzeroberfläche spezifisches Pfeilsymbol an.

HELP	Zeigt ein für die grafische Benutzeroberfläche spezifisches Hilfesymbol an.

INSERTION.	Zeigt ein für die grafische Benutzeroberfläche spezifisches Einfügen-Symbol an.

Gilt für  Anwendungen

Einstellung  Programmgesteuert

Vordefinierte Prozedur

•	GET_APPLICATION_PROPERTY

•	SET_APPLICATION_PROPERTY

Standardwert

Pfeilsymbol

Verwendungshinweise

Wenn Form Builder einen langen Vorgang ausführt, wird eine entsprechende Meldung angezeigt und ersetzt einen angegebenen Cursorstil durch den BUSY-Cursor (Belegt).

Wenn Sie z.B. den Cursorstil auf "HELP" einstellen und der Operator eine lange Abfrage durchführt, wird der HILFE-Cursor durch den BELEGT-Cursor ersetzt, während die Abfrage ausgeführt wird. Nachdem Form Builder die Abfrage ausgeführt hat, wird anstelle des BELEGT-Cursors wieder der HILFE-Cursor angezeigt.

Wenn Sie jedoch den Cursorstil ändern, während Form Builder den BELEGT-Cursor anzeigt, ändert sich der Cursorstil sofort und wartet nicht, bis Form Builder den Vorgang abgeschlossen hat, bevor der Cursorstil geändert wird.


Attribut benutzerdefinierter Abstand

 Alle Attribute

Beschreibung

Gibt den benutzerdefinierten Abstand für das Textobjekt in Layouteinheiten an.

Gilt für  Grafiktext

Einstellung  Form Builder

Standardwert

0

Obligatorisch/Optional  Obligatorisch


Attribut Strichart

 Alle Attribute

Beschreibung

Gibt die Strichart für den Rand des Grafikobjekts als Durchgezogen, Gepunktet, Gestrichelt, Strich Punkt, Zwei Punkte, Langer Strich oder Strich zwei Punkte an.

Gilt für  Grafikobjekte

Einstellung  Form Builder

Standardwert

Durchgezogen

Obligatorisch/Optional  Obligatorisch


Attribut Datenblockbeschreibung

 Alle Attribute

Beschreibung

Beschreibt den Datenblock.

Gilt für  Datenbank-Datenblöcke

Einstellung  Form Builder

Standardwert

Null

Obligatorisch/Optional  Optional


Attribut Datenabfrage

 Alle Attribute

Beschreibung

Gibt die abfrage-basierte Datenquelle an.

Gilt für  Hierarchische Bäume

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

ADD_TREE_DATA

Standardwert

NULL

Obligatorisch/Optional  Optional


Attribut Datenquell-Datenblock

 Alle Attribute

Attribut Datenquell-Datenblock (Diagramm)

Attribut Datenquell-Datenblock (Bericht)


Attribut Datenquell-Datenblock (Diagramm)

  Verwandte Themen	 Alle Attribute

Beschreibung

Wenn Sie Graphics Builder aus Form Builder aufrufen, um ein Diagramm zu erstellen, wird mit diesem Attribut der Datenblock angegeben, der als Quelle für ein Diagrammobjekt benutzt werden soll.

Gilt für  Diagrammobjekte

Einstellung  Form Builder

Standardwert

Null

Obligatorisch/Optional  Optional


Attribut Datenquell-Datenblock (Bericht)

  Verwandte Themen	 Alle Attribute

Beschreibung

Dieses Attribut gibt bei der Bericht-/Form-Integration den Datenblock, der als Quelle des Berichts benutzt werden soll, in Form von Null oder in Form eines Blocknamens an.

Gilt für  Berichtintegration

Einstellung  Form Builder

Standardwert

Null

Obligatorisch/Optional  Optional


Attribut Datenquelle X-Achse

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Datenblockspalte an, die als Basis der X-Achse eines Diagrammobjekts benutzt werden soll.

Gilt für  Diagrammobjekte

Einstellung  Form Builder


Attribut Datenquelle Y-Achse

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Datenblockspalte an, die als Basis der Y-Achse eines Diagrammobjekts benutzt werden soll.

Gilt für  Diagrammobjekte

Einstellung  Form Builder


Attribut Datentyp

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, welche Art von Werten Form Builder als Eingabe zuläßt, und wie Form Builder diese Werte anzeigt.

Gilt für  Kontrollkästchen, Anzeigeobjekte, Listenobjekte, Optionsgruppen, Textobjekte, Benutzerdefinierte Objekte und Formparameter (Formparameter unterstützt nur CHAR, DATE, DATETIME und NUMBER)

Hinweis:  Nicht alle Datentypen sind für jeden Objekttyp zutreffend.

Einstellung  Form Builder

Verwendungshinweise

•	In Form Builder V6.0 und höher wird empfohlen, daß Sie nur die Standard-Datentypen CHAR, DATE, DATETIME und NUMBER verwenden. Diese Datentypen basieren auf den ursprünglichen ORACLE-Datentypen und bieten eine bessere Leistung und Anwendungsportabilität. Die anderen Datentypen sind nur für Textobjekte gültig und sind in erster Linie aus Kompatibilitätsgründen mit früheren Versionen vorhanden. Sie können dieselben Formatierungseigenschaften erzielen, indem Sie einen Standard-Datentyp mit einer entsprechenden Formatmaske verwenden.

•	Der Datentyp des Basistabellenobjekts muß mit dem Datentyp der entsprechenden Datenbankspalte kompatibel sein. Benutzen Sie den Datentyp CHAR für Objekte, die Datenbankspalten vom Typ VARCHAR2 von ORACLE entsprechen.

•	Erstellen Sie keine Objekte, die CHAR-Datenbankspalten entsprechen, wenn diese Objekte in Abfragen oder als Join-Bedingung für eine Master-Detail-Beziehung benutzt werden. Verwenden Sie statt dessen VARCHAR2-Datenbankspalten.

•	Form Builder führt je nachdem die folgenden Aktionen bei den Objekten durch:

Entfernt abschließende Leerstellen.

Ändert das Objekt in NULL, wenn es nur aus Leerzeichen besteht.

Entfernt führende Nullen, wenn der Datentyp NUMBER, INT, MONEY, RINT, RMONEY oder RNUMBER ist (es sei denn, die Formatmaske des Objekts läßt führende Nullen zu).

•	Das Attribut Datentyp des Formparameters unterstützt die Datentypen CHAR, DATE und NUMBER.

ALPHA

Enthält eine beliebige Kombination von Buchstaben (Groß- und/oder Kleinbuchstaben).

Standardwert	Null
Beispiel	"Employee", "SMITH"
CHAR

Unterstützt VARCHAR2 mit maximal 2000 Zeichen. Enthält eine beliebige Kombination der folgenden Zeichen:

•	Buchstaben (Groß- und Kleinbuchstaben)

•	Ziffern

•	Leerstellen

•	Sonderzeichen ($, #, @ und _)

Standardwert	Null
Beispiel	"100 Main Street", "CHAR_EXAMPLE_2"
DATE

Enthält ein gültiges Datum. Sie können ein DATE-Objekt in einem anderen beliebigen Format anzeigen, indem Sie die Formatmaske des Objekts ändern.

Standardwert	TT-MON-JJ
Einschränkungen	Bezieht sich auf eine DATE-Spalte in der Datenbank und wird als tatsächliches Datum und nicht als Zeichenfolge verarbeitet.
	Der Datentyp DATE enthält eine ZERO-Zeitkomponente
Beispiel	01-JAN-92
DATETIME

Enthält ein gültiges Datum und eine gültige Uhrzeit.

Standardwert	TT-MON-JJ HH24:MI[:SS]
Einschränkungen	Bezieht sich auf eine DATE-Spalte in der Datenbank und wird als tatsächliches Datum und nicht als Zeichenfolge verarbeitet.
	Der Datentyp DATETIME enthält eine vierstellige Jahreszahl. Wenn in einen DATETIME-Datentyp das Jahr mit zwei Ziffern eingegeben wird, wird es als 00JJ interpretiert.
Beispiel	31-DEC-88 23:59:59
EDATE

Enthält ein gültiges europäisches Datum.

Standardwert	TT/MM/JJ
Einschränkungen	V3-Datentyp
	Muß eine NUMBER-Spalte in der Datenbank referenzieren.
	Ist aus Gründen der Abwärtskompatibilität enthalten. Statt dessen beachten Sie folgende Empfehlungen:
	Benutzen Sie den Datentyp DATE.
	Verwenden Sie eine Formatmaske, um das europäische Datumsformat zu erzeugen.
	Referenzieren Sie eine DATE-Spalte in der Datenbank und keine NUMBER-Spalte.
Beispiel	23/10/92 (Oktober 23, 1992)
	01/06/93 (Juni 1, 1993)
INT

Enthält eine beliebige Ganzzahl (mit oder ohne Vorzeichen).

Standardwert	0
Beispiel	1, 100, -1000
JDATE

Enthält ein gültiges Julianisches Datum.

Standardwert	MM/TT/JJ
Einschränkungen	V3-Datentyp
	Muß eine NUMBER-Spalte in der Datenbank referenzieren.
	Ist aus Gründen der Abwärtskompatibilität enthalten. Statt dessen beachten Sie folgende Empfehlungen:
	Benutzen Sie den Datentyp DATE.
	Wenden Sie eine Formatmaske an, um das Julianische Datumsformat zu erzeugen.
	Referenzieren Sie eine DATE-Spalte in der Datenbank und keine NUMBER-Spalte.
Beispiel	10/23/92 (Oktober 23, 1992)
	06/01/93 (Juni 1, 1993)
LONG

Enthält eine beliebige Kombination von Zeichen. Wird in ORACLE als Zeichenfolge mit variabler Länge gespeichert. In Forms können LONG-Felder bis zu 65.534 Byte enthalten. Bei PL/SQL ist die Größe auf 32.760 Byte begrenzt. Wenn eine LONG-Variable in einer PL/SQL-Anweisung als Bindevariable verwendet wird, darf diese Grenze von 32.760 Byte nicht überschritten werden.

Standardwert	Null
Einschränkungen	Als Referenz in WHERE- oder ORDER BY-Klauseln einer SELECT-Anweisung nicht zulässig.
	LONG-Objekte können im Abfragemodus nicht abgefragt werden.
MONEY

Enthält eine Zahl mit oder ohne Vorzeichen, die eine Geldsumme darstellt.

Einschränkungen	V3-Datentyp
	Aus Gründen der Abwärtskompatibilität enthalten. Benutzen Sie statt dessen eine Formatmaske mit einer Zahl, um dasselbe Ergebnis zu erzeugen.
Beispiel	10.95, 0.99, -15.47
NUMBER

Enthält Fest- oder Gleitkommazahlen in dem Bereich von 1.0x10-129 bis 9.99x10124 mit einer oder mehreren der folgenden Eigenschaften:

•	Mit Vorzeichen

•	Ohne Vorzeichen

•	Mit einem Dezimalzeichen

•	In regulärer Schreibweise

•	In Exponentialschreibweise

•	Genauigkeit von maximal 38 Ziffern

NUMBER-Objekte beziehen sich auf NUMBER-oder FLOAT-Spalten in der Datenbank, und Form Builder verarbeitet deren Werte als echte Zahlen (und nicht als Zeichenfolgen).

Standardwert	0
Einschränkungen	In ein Zahlenobjekt können keine Kommas eingegeben werden (z.B. 99,999). Benutzen Sie statt dessen eine Formatmaske.
Beispiel	-1, 1, 1.01, 10.001, 1.85E3
RINT

Zeigt ganzzahlige Werte rechtsbündig ausgerichtet an.

Einschränkungen	V3-Datentyp
	Ist aus Gründen der Abwärtskompatibilität enthalten. Statt dessen beachten Sie folgende Empfehlungen:
	Benutzen Sie den Datentyp NUMBER.
	Verwenden Sie eine Formatmaske wie 999, um eine rechtsbündig ausgerichtete Zahl zu erzeugen.
RMONEY

Zeigt MONEY-Werte rechtsbündig ausgerichtet an.

Einschränkungen	V3-Datentyp
	Ist aus Gründen der Abwärtskompatibilität enthalten. Statt dessen beachten Sie folgende Empfehlungen:
	Benutzen Sie den Datentyp NUMBER.
	Wenden Sie eine Formatmaske wie $999.99 an, um eine rechtsbündig ausgerichtete Zahl zu erzeugen.
RNUMBER

Zeigt NUMBER-Werte rechtsbündig ausgerichtet an.

Einschränkungen	V3-Datentyp
	Ist aus Gründen der Abwärtskompatibilität enthalten. Statt dessen beachten Sie folgende Empfehlungen:
	Benutzen Sie den Datentyp NUMBER.
	Verwenden Sie eine Formatmaske wie 999.999, um eine rechtsbündig ausgerichtete Zahl zu erzeugen.
TIME

Enthält Zahlen und Doppelpunkte, die NUMBER-Spalten in der Datenbank referenzieren.

Standardwert	HH24:MI[:SS]
Einschränkungen	V3-Datentyp
	Ist aus Gründen der Abwärtskompatibilität enthalten. Statt dessen beachten Sie folgende Empfehlungen:
	Benutzen Sie den Datentyp DATETIME.
	Wenden Sie eine Formatmaske an, um nur die Uhrzeit zu erzeugen.
	Als Referenz auf DATE-Spalten in der Datenbank nicht zulässig.
Beispiel	:10:23:05
	21:07:13


Attribut Datentyp (Datensatzgruppe)

Beschreibung

Siehe Spaltenspezifikation.


Attribut Datenbank-Datenblock

 Alle Attribute

Beschreibung

Gibt an, daß der Block auf einem der folgenden Typen von Block-Datenquellen basiert: Tabelle, Prozedur, Transaktionstrigger oder Unterabfrage. (Tabellenquellen umfassen relationale Tabelle, Objekttabellen und relationale Tabellen, die Spaltenobjekte oder REFs enthalten)  Gibt außerdem an, daß es sich bei dem Block nicht um einen Steuerblock handelt. Wenn für das Attribut Datenbank-Datenblock Nein angegeben wird, zeigt Form Builder die Datenquell-Attribute für den Block grau an und ignoriert sie.

Gilt für  Blöcke

Einstellung  Form Builder

Standardwert

Ja

Obligatorisch/Optional  Obligatorisch


Attribut Database_Value

 Alle Attribute

Beschreibung

Bei einem Basistabellenobjekt, das Bestandteil des Datenbankdatensatzes ist, dessen Status QUERY oder UPDATE ist, gibt Database_Value den Wert zurück, der ursprünglich aus der Datenbank abgerufen wurde. Wenn ein abgerufener Wert aktualisiert und danach gespeichert wurde, gibt Database_Value den gespeicherten Wert zurück.

Bei einem Steuerobjekt, das Bestandteil eines Datenbankdatensatzes ist, gibt Database_Value den Wert zurück, der dem Objekt ursprünglich zugewiesen wurde, als der Datensatz aus der Datenbank abgerufen wurde.

Bei einem Objekt, das Bestandteil eines Nicht-Datenbankdatensatzes ist, dessen Status NEW oder INSERT ist, gibt Database_Value den aktuellen Wert des Objekts zurück.

Hinweis:  Sie können das Attribut Database_Value überprüfen, um festzustellen, welchen Wert ein Objekt in einem Datenbankdatensatz hatte, bevor er vom Endbenutzer geändert wurde.

Hinweis:  Sie können die Systemvariable SYSTEM.RECORD_STATUS überprüfen oder die vordefinierte Prozedur GET_RECORD_PROPERTY verwenden, um festzustellen, ob ein Datensatz aus der Datenbank abgefragt wurde.

Gilt für:

Alle Objekte, mit Ausnahme von Schaltflächen, Diagrammobjekten und Bildobjekten

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_ITEM_PROPERTY


Attribut Datenquelle

 Alle Attribute

Beschreibung

Gibt den Namen der gerade benutzten Datenbank an.

Gilt für  Anwendungen

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_APPLICATION_PROPERTY

Standardwert

ORACLE

Verwendungshinweise

Dieses Attribut wird in Verbindung mit fremden Datenquellen benutzt. Es gibt den Namen der Datenbank für Verbindungen an, die von Form Builder hergestellt werden, und nicht für Verbindungen, die von On-Logon-Triggern aufgebaut werden. Die folgenden Einstellungen sind für dieses Attribut gültig:

•	ORACLE

•	DB2

•	NULL (Nicht angegebene Datenbank oder nicht angemeldet)

•	NONSTOP

•	TERADATA

•	NCR/3600

•	NCR/3700

•	SQLSERVER


Attribut Date_Format_Compatibility_Mode

 Alle Attribute

Beschreibung

Legt fest, welche Datumsformatmaske bei bestimmten Konvertierungsvorgängen verwendet wird. Bei 4.5 wird die Konvertierung nach der Methode aus Version 4.5 und früher durchgeführt. Bei 5.0 erfolgt die Konvertierung nach der Methode in Version 5.0 und höher.

Hinweise zu den von dieser Einstellung betroffenen Konvertierungen und Masken finden Sie unter Über Formatmasken für Datumsangaben.

Gilt für  Anwendungen

Einstellung  In Form Builder

Vordefinierte Prozedur

GET_APPLICATION_PROPERTY

SET_APPLICATION_PROPERTY

Standardwert

5.0

Obligatorisch/Optional  Obligatorisch

Verwendungshinweise

Wird für das Attribut Date_Format_Compatibility_Mode der Wert 4.5, für das Attribut Runtime_Compatibility_Mode jedoch der Wert 5.0 festgelegt, wird die Einstellung für das Attribut Date_Format_Compatibility_Mode durch den Wert 5.0 außer Kraft gesetzt.


Attribut Standard-Warnschaltfläche

 Alle Attribute

Beschreibung

Gibt an, welche von drei möglichen Warnschaltflächen als Standard-Warnschaltfläche benutzt werden soll. Die Standard-Warnschaltfläche ist normalerweise eindeutig eingerahmt oder wird auf eine bestimmte Weise hervorgehoben, um sie optisch von den anderen Schaltflächen zu unterscheiden.

Gilt für  Warnfenster

Einstellung  Form Builder

Standardwert

Schaltfläche 1

Obligatorisch/Optional  Optional


Attribut Standardschaltfläche

 Alle Attribute

Beschreibung

Gibt an, daß die Schaltfläche als Standardschaltfläche identifiziert werden soll. Zur Laufzeit kann der Endbenutzer die Standardschaltfläche aufrufen, indem er [Auswählen] drückt, wenn der Fokus innerhalb des Fensters steht, der die Standardschaltfläche enthält.

Bei einigen Fensterverwaltungsprogrammen ist die Standardschaltfläche eingerahmt oder wird auf eindeutige Weise hervorgehoben, um sie von den anderen Schaltflächen auf der Oberfläche zu unterscheiden.

Gilt für  Schaltflächen

Einstellung  Form Builder

Standardwert

Nein

Obligatorisch/Optional  Optional


Attribut Skalierung Standardschriftart

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, daß die zur Benutzung in einer Form angegebene Schriftart standardmäßig die relative Zeichenskalierung des benutzten Anzeigegeräts verwendet.

Gilt für  Formmodule

Einstellung  Form Builder

Standardwert

Ja


Einschränkungen bei Skalierung Standardschriftart

Ist nur gültig, wenn für das Attribut Koordinatensystem der Wert Zeicheneinheit angegeben wurde.


Attribut Ausgesetzt

 Alle Attribute

Beschreibung

Siehe Koordination.


Attribut Defer Required-Durchsetzung

  Verwandte Themen	 Alle Attribute

Beschreibung

Dieses Attribut gibt bei einem Objekt, dessen Attribut Obligatorisch auf True gesetzt wurde, an, ob Form Builder das Inkrafttreten des Objektattributs Erforderlich aussetzen soll, bis der Datensatz validiert wird.

Für dieses Attribut sind die folgenden drei Einstellungen gültig: Ja, 4.5 und Nein.

Gilt für  Forms

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY

Standardwert

Nein

Verwendungshinweise

Dieses Attribut ist nur dann anwendbar, wenn die Validierung auf Objektebene wirksam ist. Wenn für ein Objekt das Attribut Obligatorisch auf True gesetzt wurde, läßt Form Builder standardmäßig erst eine Navigation aus dem Objekt heraus zu, wenn ein gültiger Wert eingegeben wird. Dieses Verhalten tritt nur dann auf, wenn für Defer Required-Durchsetzung der Wert Nein festgelegt ist. (Eine Ausnahme liegt vor, wenn die Objektinstanz keine Aktualisierung durch den Endbenutzer zuläßt. In diesem seltenen Fall wird die Einstellung Nein für Defer Required-Durchsetzung ignoriert, und die Validierung auf Objektebene findet nicht statt.)

Wenn Defer Required-Durchsetzung auf Ja (PROPERTY_TRUE zur Laufzeit) oder auf 4.5 (PROPERTY_4_5 zur Laufzeit) eingestellt ist, kann der Endbenutzer sich frei zwischen den Objekten im Datensatz bewegen, selbst wenn sie Null entsprechen, wodurch sich die Durchsetzung des Attributs Obligatorisch verzögert, bis die Validierung auf Datensatzebene erfolgt.

Wenn Defer Required-Durchsetzung auf Ja eingestellt ist, werden Objekte mit dem Attribut Obligatorisch nicht validiert, wenn der Benutzer sich aus ihnen herausbewegt. Der WHEN-VALIDATE-ITEM-Trigger (falls vorhanden) wird folglich nicht ausgelöst, und das Attribut Objekt ist gültig bleibt unverändert. Wenn der Objektwert bei späterer Validierung auf Objektebene immer noch Null entspricht, gibt Form Builder einen Fehler aus.

Wenn Defer Required-Durchsetzung auf 4.5 eingestellt ist, werden Objekte mit dem Attribut Obligatorisch nicht validiert, wenn der Benutzer sich aus ihnen herausbewegt. Der WHEN-VALIDATE-ITEM-Trigger (falls vorhanden) wird jedoch ausgelöst. Wenn der Trigger nicht ausgelöst wird (Form_Trigger_Failure), wird davon ausgegangen, daß das Objekt die Validierung nicht bestanden hat, und Form Builder gibt einen Fehler aus. Wenn der Trigger normal beendet wird, wird die Verarbeitung ordnungsgemäß fortgesetzt. Wenn der Objektwert bei späterer Validierung auf Objektebene immer noch Null entspricht, gibt Form Builder zu diesem Zeitpunkt einen Fehler aus.

Wenn für Defer Required-Durchsetzung ein Wert von 4.5 eingestellt wird, kann für den WHEN-VALIDATE-ITEM-Trigger Code eingegeben werden, der ausgeführt wird, sobald der Endbenutzer den Wert des Objekts ändert (auch in Null) und dann das Objekt verläßt. Durch solchen Code ändern sich unter Umständen auch die Werte anderer Objekte. (Die Einstellung wird als 4.5 bezeichnet, da in Version 4.5 und in höheren Versionen, die im 4.5-Modus ausgeführt werden, der WHEN-VALIDATE-ITEM-Trigger während der Validierung auf Objektebene immer ausgelöst wird.)


Attribut Löschen zulässig

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob Datensätze aus dem Block gelöscht werden können.

Gilt für  Blöcke

Einstellung  Form Builder, programmgesteuert

Standardwert

Ja

Vordefinierte Prozedur

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY


Attribut Prozedurargumente löschen

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt Namen, Datentyp und Werte der Argumente an, die für das Löschen der Daten an die Prozedur übergeben werden müssen. Das Attribut Prozedurargumente löschen gilt nur, wenn für das Attribut DML-Datenzieltyp Prozedur angegeben wurde.

Gilt für  Blöcke

Einstellung  Form Builder

Standardwert

NULL

Obligatorisch/Optional  Optional


Attribut Prozedurname löschen

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen der Prozedur an, die für das Löschen von Daten benutzt werden soll. Das Attribut Prozedurname löschen ist nur gültig, wenn für das Attribut DML-Datenzieltyp Prozedur angegeben wurde.

Gilt für  Blöcke

Einstellung  Form Builder

Standardwert

NULL

Obligatorisch/Optional  Optional


Attribut Spalten für Prozedurergebnismengen löschen

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen und den Datentyp der Spalten der Ergebnismengen an, die mit der Prozedur für das Löschen von Daten verknüpft sind. Das Attribut Spalten für Prozedurergebnismengen löschen ist nur gültig, wenn für das Attribut DML-Datenzieltyp Prozedur angegeben wurde.

Gilt für  Blöcke

Einstellung  Form Builder

Standardwert

NULL

Obligatorisch/Optional  Optional


Attribut Verhalten bei Datensatz löschen

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

(Hinweis: Dieses Attribut hieß früher Master-Löschenvorgänge.)

Gibt an, wie sich das Löschen eines Datensatzes im Master-Block auf Datensätze im Detail-Block auswirken soll:

Einstellung	Beschreibung
Nicht isoliert	Standardeinstellung. Verhindert das Löschen eines Master-Datensatzes, wenn zugehörige Detail-Datensätze in der Datenbank vorhanden sind.
Isoliert	Läßt das Löschen des Master-Datensatzes zu und wirkt sich nicht auf Detail-Datensätze in der Datenbank aus.
Kaskadierend	Ermöglicht das Löschen des Master-Datensatzes und löscht automatisch zugehörige Detail-Datensätze in der Basistabelle des Detail-Blocks beim Speichern. In einer Master-Detail-Detail-Beziehung, bei der die Beziehungen verschachtelt sind, werden nur Datensätze in dem unmittelbaren Detail-Block gelöscht (es findet kein automatisches kaskadierendes Löschen auf mehreren Ebenen einer Beziehungskette statt).

Gilt für  Beziehungen

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_RELATION_PROPERTY

•	SET_RELATION_PROPERTY

Standardwert

Nicht isoliert


Einschränkungen bei Verhalten bei Datensatz löschen

•	Wenn Sie dieses Attribut zur Laufzeit einstellen, bleibt dies für eine standardmäßige Master-Detail-Beziehung wirkungslos. Beim Entwurf erstellt Form Builder die entsprechenden Trigger, um die Beziehung in Kraft zu setzen. Durch eine Änderung des Attributs Verhalten bei Datensatz löschen zur Laufzeit wird der Standard-Triggertext nicht geändert. Die Möglichkeit, dieses Attribut programmgesteuert einzustellen und einzulesen, ist für Entwickler vorgesehen, die eine benutzerdefinierte Master-Detail-Koordination codieren.


Attribut Detail-Datenblock

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt den Namen des Detail-Datenblocks in einer Master-Detail-Blockbeziehung an.

Gilt für  Beziehungen

Einstellung  Form Builder

Vordefinierte Prozedur

GET_RELATION_PROPERTY (Detail_Name)

Standardwert:

NULL

Obligatorisch/Optional  Obligatorisch


Einschränkungen bei Detail-Datenblock

Der angegebene Block muß in der aktiven Form vorhanden sein.


Attribut Detail-Referenzobjekt

 Alle Attribute

Beschreibung

Identifiziert das REF-Objekt in dem Detail-Datenblock der Beziehung, das den Link zu dem Master-Datenblock bildet. Dieses Attribut wird nur angewendet, wenn das Attribut Beziehungstyp auf REF eingestellt ist.

Gilt für  Beziehungen

Einstellung  Form Builder

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Null

Verwendungshinweise

Dieses Attribut gilt nur, wenn das Attribut Beziehungstyp auf REF eingestellt ist.


Attribut Richtung

  Verwandte Themen	 Alle Attribute

Beschreibung

Hinweis:  Dieses Attribut ist für bidirektionale National Language Support- (NLS-) Anwendungen spezifisch.

Mit ihm wird die Layoutrichtung für bidirektionale Objekte angegeben.

Für dieses Attribut soll davon ausgegangen werden, daß sich Lokal auf Sprachen bezieht, die von Rechts-nach-Links angezeigt werden, während sich Römisch auf Sprachen bezieht, die von Links-nach-Rechts angezeigt werden.

Richtung ist das übergeordnete Attribut, das soviel Funktionalität für jedes Objekt wie möglich bereitstellt. Mit Ausnahme von Textobjekten und Anzeigeobjekten ist das Attribut Richtung für alle Objekte das einzige bidirektionale Attribut. Mit der Einstellung dieses Attributs werden die anderen Aspekte der bidirektionalen Funktion gesteuert. (Listenobjekte verfügen jedoch sowohl über ein Attribut Richtung als auch ein Attribut Ursprünglicher Tastaturstatus.)

Das Attribut Richtung auf Formebene ist die Einstellung des Attributs auf höchster Ebene. Wenn Sie die Standardeinstellung für das Attribut Richtung auf Formebene akzeptieren, wird die Layoutrichtung für die Form von der natürlichen Schreibrichtung übernommen, die mit der NLS-Umgebungsvariablen für die jeweilige Sprache angegeben wird.

Wenn Sie alle anderen Attribute Richtung auf Standard eingestellt lassen, erhalten Sie in den meisten Fällen die gewünschte Funktionalität. Das heißt, die Layoutrichtung der NLS-Umgebungsvariablen wird auf jeder nachfolgenden Ebene übernommen. Sie müssen nur die bidirektionalen Attribute angeben, wenn Sie die vererbten Standardwerte außer Kraft setzen möchten.

In dem folgenden Diagramm wird die Vererbung für das Attribut Richtung zusammengefaßt.

	Standardeinstellung leitet Wert von diesem Objekt ab
Form	NLS-Umgebungsvariable
Alle Objekte, wie Warnfenster, Blöcke, Wertelisten, Fenster und Leinwand	Form
Alle Objekte, wie Textobjekt, Anzeigeobjekt, Kontrollkästchen, Schaltfläche, Optionsgruppe und Listenobjekt	Leinwand

 In dieser Tabelle werden die Funktionen zusammengefaßt, die von dem Attribut Richtung für jeden Objekttyp gesteuert werden. (Textobjekte und Anzeigeobjekte haben kein Attribut Richtung, statt dessen können Sie in Form Builder die Attribute Ausrichtung, Lesereihenfolge und Ursprünglicher Tastaturstatus für diese Objekte speziell festlegen. Programmgesteuert können Sie jedoch das Attribut Richtung nur für alle Objekte einlesen und einstellen, einschließlich Textobjekte und Anzeigeobjekte.)

	Layout-richtung	Text-Lesereihen-folge	Textaus-richtung	Position der Bildlauf-leiste	Ursprüng-licher Tastatur-status
Form	X
Warnfenster	X	X			X
Block (für späteren Gebrauch)
Werteliste (für späteren Gebrauch)
Fenster	X (von Menü)	X			X
Leinwand	X (auch Ursprung)	X (Boiler-plate-Text)		X (und Format-zeilen)
Kontrollkästchen	X	X			X
Schaltfläche	X	X			X
Optionsgruppe	X	X			X
Listenobjekt	X	X	X	X

Hinweis:  Die oben aufgeführten Überschriften stellen Funktionen und keine Attribute dar: So stellt z.B. das Attribut Richtung für Warnfenster nicht das Attribut Ursprünglicher Tastaturstatus ein, sondern steuert die Funktion Ursprünglicher Tastaturstatus.

Die zulässigen Werte für dieses Attribut sind:

Wert	Beschreibung
Standardwert	Richtung basierend auf dem in der Tabelle angegebenen Attribut.
Von rechts nach links	Die Richtung geht von rechts nach links.
Von links nach rechts	Die Richtung geht von links nach rechts.

Gilt für  Alle in der Tabelle aufgeführten Objekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_WINDOW_PROPERTY

•	GET_VIEW_PROPERTY

•	GET_ITEM_PROPERTY

•	SET_FORM_PROPERTY

•	SET_WINDOW_PROPERTY

•	SET_VIEW_PROPERTY

•	SET_ITEM_PROPERTY

Allgemeine Verwendungshinweise:

•	Wenn alle Objekte in Ihrer Form standardmäßig die natürliche Schreibrichtung verwenden sollen, die von der Sprach-Umgebungsvariablen angegeben wird, stellen Sie das Attribut Richtung auf Formebene auf Standard ein. Alle anderen Richtung-Attribute müssen ebenfalls auf Standard eingestellt sein.

•	In den meisten Fällen ermöglicht die Einstellung Standard die gewünschte Funktionalität. Gelegentlich müssen Sie jedoch den Standardwert außer Kraft setzen, indem Sie das Attribut Richtung für ein bestimmtes Objekt einstellen, das von dem Attribut Richtung der höheren Ebene anders angezeigt werden muß. Zum Beispiel sollen die meisten Objekte auf einer Leinwand das Attribut Richtung von dem Leinwandattribut Richtung übernehmen, bei einem bestimmten Textobjekt könnten Sie jedoch das Attribut Richtung auf einen anderen Wert als den Standardwert einstellen.

•	Wenn Sie eine zweisprachige Anwendung entwickeln und sowohl Lokale als auch Römische Menüs anzeigen müssen, erstellen Sie einen Trigger, um die richtige Version des Menüs basierend auf dem Attribut USER_NLS_LANG der vordefinierten Prozedur GET_APPLICATION_PROPERTY anzuzeigen.

•	Beachten Sie diese Richtlinien, wenn Sie einen Wert für das Attribut Richtung wählen.

•	Wenn Sie eine zweisprachige Anwendung entwickeln und ein Lokales Objekt im Modus Rechts-nach-Links und ein Römisches Objekt im Modus Links-nach-Rechts anzeigen möchten, verwenden Sie den Standardwert.

•	Wenn das Objekt normalerweise aus Lokalem Text besteht, wählen Sie den Wert Rechts-nach-Links.

•	Wenn das Objekt normalerweise aus Römischem Text besteht, wählen Sie den Wert Links-nach-Rechts.

Richtung (Warnfenster)

Gibt die Layoutrichtung für Objekte des Warnfensters an, einschließlich der Lesereihenfolge des Textes, der in dem Warnfenster angezeigt wird.

Richtung (Schaltfläche)

Gibt die Lesereihenfolge für den Schaltflächentext und den ursprünglichen Tastaturstatus an, wenn die Schaltfläche den Eingabefokus erhält.

Richtung (Leinwand)

Gibt die Layoutrichtung der Leinwand an, einschließlich:

•	Layoutrichtung im Layouteditor

•	Ursprung (bei Rechts-nach-Links ist der Ursprung die obere rechte Ecke, bei Links-nach-Rechts ist der Ursprung die obere linke Ecke)

•	Anzeige von Formatzeilen und Bildlaufleisten

•	Lesereihenfolge von Boilerplate-Text

Verwendungshinweise für Leinwände:

•	Unter den Verwendungshinweisen für das Attribut Richtung auf Formebene finden Sie den auszuwählenden Wert.

•	Um eine Anwendung zu entwickeln, bei der Blöcke in verschiedenen Richtungen angeordnet sind, setzen Sie jeden Block auf eine separate Leinwand. Dadurch wird folgendes gewährleistet:

•	Automatisches Layout von Blöcken im Leinwandattribut Richtung.

•	Lesereihenfolge für Boilerplate-Text entspricht standardmäßig dem Leinwandattribut Richtung.

•	Wenn ein Block über mehrere Leinwände geht, muß das Attribut Richtung für alle Leinwände identisch sein, es sei denn, ein Teil des Blocks soll mit einer anderen Richtung angezeigt werden.

•	Wenn Sie in Form Builder das Leinwandattribut Richtung ändern, während der Layouteditor geöffnet ist, wird die Änderung erst wirksam, wenn Sie den Layouteditor erneut öffnen.

Richtung (Kontrollkästchen)

Gibt die Layoutrichtung eines Kontrollkästchens an, einschließlich:

•	Position des Kontrollkästchens relativ zum Text

•	Lesereihenfolge der Kontrollkästchenbeschriftung

•	Ursprünglicher Tastaturstatus, wenn das Kontrollkästchen den Eingabefokus erhält.

Richtung (Form)

Gibt die Layoutrichtung einer Form an. Wenn Sie das Attribut Richtung auf Formebene auf Standard einstellen, kann die Form die Layoutrichtung von der natürlichen Schreibrichtung der Sprache übernehmen, die in der NLS-Umgebungsvariablen angegeben wird.

Verwendungshinweise für Forms:

•	Wenn Sie eine zweisprachige Anwendung entwickeln, die sowohl in der Richtung Rechts-nach-Links als auch der Richtung Links-nach-Rechts ausgeführt werden muß, benutzen Sie den Standardwert.

•	Beim Testen stellen Sie Richtung auf Rechts-nach-Links bzw. Links-nach-Rechts ein, um die Form in der Lokalen oder Römischen Richtung zu testen. Bevor Sie die endgültige ausführbare Datei generieren, stellen Sie das Attribut wieder auf den Standardwert ein.

•	Wenn Ihre Anwendung nur in einer Richtung ausgeführt werden muß, wählen Sie den entsprechenden Wert.

Richtung (Listenobjekt)

Gibt die Layoutrichtung der Listenobjekte in Popup-Listen und Kombinationsfeldern an, einschließlich:

•	Position der Bildlaufleiste

•	Ausrichtung von Listentext

•	Lesereihenfolge von Listentext

•	Ursprünglicher Tastaturstatus, wenn das Listenobjekt den Eingabefokus erhält.

Richtung (Optionsgruppe)

Gibt die Layoutrichtung der Optionsschaltflächen einer Gruppe an (Position des Kreises bezogen auf den Text), einschließlich:

•	Lesereihenfolge des Textes

•	Ursprünglicher Tastaturstatus, wenn die Optionsgruppe den Eingabefokus erhält

Richtung (Fenster)

Gibt die Layoutrichtung des Fensterobjekts an, einschließlich:

•	Layoutrichtung des Menüs

•	Lesereihenfolge von Text, der in dem Fensterbereich angezeigt wird und nicht Bestandteil eines Objektes ist, für das ein eigenes Attribut Richtung vorhanden ist (z.B. der Fenstertitel)


Attribut Hinweis automatisch anzeigen

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Bestimmt, wann der mit dem Objektattribut Hinweis angegebene Hilfetext angezeigt wird:

•	Geben Sie für Hinweis automatisch anzeigen Ja an, wenn Form Builder den Hinweistext immer dann anzeigen soll, wenn der Eingabefokus bei dem Objekt steht.

•	Geben Sie für Hinweis automatisch anzeigen Nein an, damit Form Builder den Hinweistext nur anzeigt, wenn der Eingabefokus in dem Objekt steht und der Benutzer [Hilfe] drückt oder den Hilfe-Befehl im Standardmenü auswählt.

Gilt für  Alle Objekte, mit Ausnahme von Diagrammobjekten, Anzeigeobjekten und benutzerdefinierten Objekten

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Nein

Verwendungshinweise

Wenn Form Builder aufgrund eines Triggers durch mehrere Objekte navigiert, bevor es bei dem Zielobjekt stoppt, wird der Hilfetext für die Objekte, durch die gegangen wird, nicht angezeigt, sondern nur für das Zielobjekt.


Einschränkungen bei Hinweis automatisch anzeigen

Dieses Attribut ist nicht anwendbar, wenn für das Attribut Hinweis NULL angegeben wurde.


Attribut Anzeige in Tastenbelegung
Attribut Anzeige in Tastenbelegung/Tastenbelegung-Hilfetext

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob eine Tastentrigger-Beschreibung in dem Bildschirm Tastenbelegung zur Laufzeit angezeigt wird. Ein Eintrag im Bildschirm Tastenbelegung umfaßt eine Textbeschreibung des Tastennamens und den Tastenanschlag, der mit der Taste verknüpft ist, z.B. Strg-S.

Gilt für  Trigger

Einstellung  Form Builder

Standardwert

Nein

Verwendungshinweise

•	Wenn der Name oder die Beschreibung nicht in dem Fenster Tastenbelegung angezeigt werden soll, geben Sie für das Attribut Anzeige in Tastenbelegung Nein an. Dies ist die Standardeinstellung.

•	Wenn der Name der Taste, die dem Trigger entspricht, und die Standardbeschreibung in dem Fenster Tasten angezeigt werden sollen, setzen Sie das Attribut Anzeige in Tastenbelegung auf Ja und lassen Tastenbelegung-Hilfetext leer.

•	Wenn Sie die Standard-Tastenbeschreibung ersetzen möchten, setzen Sie das Attribut Anzeige in Tastenbelegung auf Ja, und geben Sie die gewünschte Beschreibung für das Attribut Tastenbelegung-Hilfetext ein.


Einschränkungen bei Anzeige in Tastenbelegung

Nur bei Tasten-Triggern gültig.


Attribut Anzeigequalität

 Einschränkungen	 Alle Attribute

Beschreibung

Bestimmt die Qualität, die für die Anzeige eines Bildobjekts verwendet wird, so daß Sie den Kompromiß zwischen Bildqualität und Speicher/Leistung steuern können.

Für dieses Attribut sind die folgenden Einstellungen gültig:

Hoch	Zeigt das Bild mit hoher Qualität an, wobei mehr Ressourcen erforderlich sind.

Mittel 	Zeigt das Bild mit mittlerer Qualität an.

Niedrig	Zeigt das Bild mit niedriger Qualität an, wobei weniger Ressourcen erforderlich sind.

Gilt für  Bildobjekte

Einstellung  Form Builder

Standardwert

Hoch


Einschränkungen bei Anzeigequalität

Keine


Attribut Anzeigebreite (Werteliste)

 Alle Attribute

Beschreibung

Siehe Attribute Spaltenzuordnung.


Attribut Anzeige ohne Berechtigung

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Bestimmt, ob der aktuelle Menüpunkt angezeigt wird, wenn dem Endbenutzer der aktuellen Form keine Sicherheitsrolle zugewiesen wurde, die eine Zugriffsberechtigung für das Objekt hat:

•	Wenn für Anzeige ohne Berechtigung Nein angegeben wird, zeigt Form Builder das Objekt nicht an, wenn der Endbenutzer keine Zugriffsberechtigung für das Objekt hat.

•	Wenn für Anzeige ohne Berechtigung Ja angegeben wird, zeigt Form Builder das Objekt als deaktivierten (grauen) Menüpunkt an. Der Endbenutzer kann das Objekt in dem Menü sehen, kann jedoch den mit dem Objekt verknüpften Befehl nicht ausführen.

Sie können die Zugriffsberechtigung nur Benutzern dieser Rollen erteilen, die in der Rollenliste angezeigt werden. Um eine Datenbankrolle zu dieser Liste hinzuzufügen, stellen Sie das Menümodul-Attribut Menümodulrollen ein. Für weitere Informationen über das Festlegen der Rollenliste und die Zuweisung des Rollenzugriffs zu Menüpunkten wird auf das Online-Hilfesystem von Form Builder verwiesen.

Gilt für  Menüpunkte

Einstellung  Form Builder

Standardwert

Nein


Einschränkungen bei Anzeige ohne Berechtigung

Gilt nur, wenn der Name von mindestens einer Datenbankrolle in der Rollenliste definiert wurde.


Attribut Display_Height

 Alle Attribute

Beschreibung

Gibt die Höhe des Anzeigegeräts in den Einheiten an, die mit der aktuellen Einstellung des Formattributs Koordinateneinheiten festgelegt wurden. Benutzen Sie dieses Attribut, um die optimale Anzeigeposition für Fenster auf dem Bildschirm dynamisch zu berechnen.

Gilt für  Anwendungen

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_APPLICATION_PROPERTY


Attribut Display_Width

 Alle Attribute

Beschreibung

Gibt die Breite des Anzeigegeräts in den Einheiten an, die mit der aktuellen Einstellung des Formattributs Koordinateneinheiten festgelegt wurden. Verwenden Sie dieses Attribut, um die optimale Anzeigeposition für Fenster auf dem Bildschirm dynamisch zu berechnen.

Gilt für  Anwendungen

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_APPLICATION_PROPERTY


Attribut Angezeigt

 Einschränkungen	   Alle Attribute

Beschreibung

Blendet Objekte ein (aktivieren) oder aus (verbergen, deaktivieren). Wenn ein Objekt deaktiviert ist, sind Navigation, Abfragen und Aktualisierungen nicht möglich.

Werte: TRUE/FALSE

Gilt für  Objekte

Einstellung  Programmgesteuert

Verwendungshinweise

Achten Sie darauf, daß das Objekt nicht ausgewählt ist, wenn das Attribut Angezeigt auf FALSE eingestellt wird. Ansonsten wird der Fehler FRM-41016 ausgegeben.

Vordefinierte Prozedur

GET_ITEM_PROPERTY

SET_ITEM_PROPERTY


Einschränkungen bei Angezeigt

Das Attribut Angezeigt eines ausgewählten Objekts bzw. des Objekts mit Fokus kann nicht eingestellt werden.


Attribut Abstand zwischen Datensätzen

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Abstand zwischen Instanzen von Objekten in einem Block mit mehreren Datensätzen an. Ein Block mit mehreren Datensätzen ist ein Block, bei dem das Attribut Anzahl angezeigter Datensätze auf einen größeren Wert als 1 eingestellt ist.

Gilt für  Objekte

Einstellung  Form Builder

Standardwert

0

Obligatorisch/Optional  Optional

Verwendungshinweise

Wenn Sie mit Zeicheneinheiten arbeiten, muß der Abstand zwischen den Objektinstanzen mindestens so groß wie die Höhe einer einzelnen Zelle sein.

Um z.B. den Abstand zwischen Objektinstanzen in einem Objekt mit 5 Datensätzen zu erhöhen, müssen Sie für das Attribut Abstand zwischen Datensätzen mindestens einen Wert von 4 angeben  - eine Zelle für jeden Abstand zwischen Objektinstanzen.


Attribut Dithering

 Alle Attribute

Beschreibung

Gibt an, ob das Bild bei der Anzeige gedithert wird.

Gilt für  Grafikobjekte

Einstellung  Form Builder

Standardwert

Nein

Obligatorisch/Optional  Obligatorisch


Attribut DML-Array-Größe

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die maximale Array-Größe für das gleichzeitige Einfügen, Aktualisieren und Löschen von Datensätzen in der Datenbank an.

Gilt für  Blöcke

Einstellung  Form Builder

Standardwert

1

Verwendungshinweise

Mit einer größeren Größe wird die Dauer für die Transaktionsverarbeitung reduziert, indem der Netzwerkverkehr zu der Datenbank reduziert wird, erfordert jedoch mehr Speicherplatz. Die optimale Größe entspricht der Anzahl von Datensätzen, die ein Benutzer in einer Transaktion ändert.


Einschränkungen bei DML-Array-Größe

•	Die Mindestanzahl von Datensätzen beträgt 1; es gibt keinen Höchstwert.

•	Wenn DML-Array-Größe größer ist als 1 und für Einfügen zulässig Ja angegeben wurde, müssen Sie ein oder mehrere Objekte als Primärschlüssel angeben, da Sie die ROWID der Datensätze nicht einlesen können. ROWID ist das Standardkonstrukt, das Oracle zur Kennzeichnung jedes Datensatzes benutzt. Bei der einzelnen Datensatzverarbeitung wird die ROWID eines Datensatzes zur künftigen Referenz (Aktualisieren- oder Löschenvorgang) abgerufen. Während der Array-Verarbeitung wird die ROWID jedes Datensatzes in dem Array nicht zurückgegeben, so daß ein oder mehrere Primärschlüsselobjekte in dem Block angegeben werden müssen. Mit dem Primärschlüssel wird die zu sperrende Zeile angegeben, während die ROWID für das Aktualisieren und Löschen benutzt wird. BLOCK.ROWID ist erst verfügbar, wenn der Datensatz gesperrt ist. Sie sollten ein oder mehrere Objekte in dem Block als Primärschlüssel angeben, selbst wenn der Wert für Schlüsselmodus Eindeutig ist (Standardwert).

•	Wenn DML-Array-Größe größer ist als 1, wird Nur geänderte Spalten aktualisieren zur Laufzeit immer auf Nein gesetzt, selbst wenn für Nur geänderte Spalten aktualisieren in Form Builder Ja angegeben wurde. Mit Nur geänderte Spalten aktualisieren wird angegeben, daß nur Spalten, deren Werte tatsächlich geändert wurden, bei einem COMMIT-Vorgang in der UPDATE-Anweisung aufgenommen werden sollen.

•	Wenn ein Objekt vom Typ Long Raw (wie z.B. ein Bild-, Klang- oder OLE-Objekt) in dem Block angezeigt wird, wird DML-Array-Größe zur Laufzeit immer auf 1 gesetzt.


Attribut DML-Datenzielname

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen des DML-Datenziels für den Block an. Das Attribut DML-Datenzielname ist nur gültig, wenn für das Attribut DML-Datenzieltyp Tabelle angegeben wurde.

Gilt für  Blöcke

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_BLOCK_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

NULL

Obligatorisch/Optional  Optional


Einschränkungen bei DML-Datenzielname

Bevor Sie das Attribut DML-Datenzielname einstellen, müssen Sie einen COMMIT_FORM- oder CLEAR_FORM-Vorgang ausführen.


Attribut DML-Datenzieltyp

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den DML-Datenzieltyp für den Block an. Bei einem DML-Datenzieltyp kann es sich um einen Tabellen-, Prozedur- oder Transaktionstrigger handeln.

Gilt für  Blöcke

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

GET_BLOCK_PROPERTY

Standardwert

Tabelle

Obligatorisch/Optional  Obligatorisch


Attribut DML-Rückgabewert

 Alle Attribute

Beschreibung

Gibt an, ob Forms das neue oder alte Verhalten benutzen soll, wenn client-seitige Daten mit geänderten Werten nach einem Aktualisieren- oder Einfügenvorgang einer Datenbank aktualisiert werden. Wenn für dieses Attribut Ja eingestellt wird, wird das neue Verhalten (ab Release 6) ausgewählt. Bei Nein wird das alte Verhalten ausgewählt (Verhalten von Release 5 und früher).

Eine Aktualisieren- oder Einfügenaktion bei einer Datenbank kann server-seitige Trigger auslösen, die Modifizierungen oder zusätzliche Änderungen in den Daten verursachen. Wenn Sie in Release 6 einen Oracle8-Datenbankserver verwenden, benutzt Forms die Klausel DML-Rückgabewert, um derartige Änderungen sofort zurückzusetzen. Wenn dieses Attribut auf Ja eingestellt ist, aktualisiert Forms automatisch die client-seitige Version der Daten, und der Benutzer muß die Datenbank nicht erneut abfragen, um die geänderten Werte zu erhalten.

Wenn dieses Attribut auf Nein eingestellt ist, aktualisiert Forms die client-seitige Version der Daten nicht automatisch. (Dies ist das Verhalten vor Release 6). Wenn der Benutzer in diesem Fall danach versucht, eine Zeile zu aktualisieren, deren Werte auf der Server-Seite geändert wurden, erhält der Benutzer eine Warnmeldung und wird aufgefordert, eine erneute Abfrage durchzuführen, um die neuesten Werte zu erhalten. Diese Nein-Einstellung ist im Hinblick auf die Kompatibilität verfügbar.

Gilt für  Blöcke

Einstellung  Form Builder

Gültige Werte  Ja/Nein

Standardwert  Nein

Obligatorisch/Optional  Obligatorisch

Einschränkungen

•	Forms benutzt die Klausel DML-Rückgabewert nur mit einem Oracle8-Datenbankserver. Dieses Attribut wird bei einem anderen Server ignoriert.

•	Forms benutzt die Returning-Klausel mit Insert- und Update-Anweisungen, (momentan) jedoch nicht mit Delete-Anweisungen.

•	Forms benutzt die Returning-Klausel nicht bei der Verarbeitung von LONG-Datentypen.

•	Die Aktualisierung von nicht veränderten Spalten wird durch die Einstellung des Attributs Nur geänderte Spalten aktualisieren gesteuert, die wiederum von der Einstellung des Attributs DML-Array-Größe beeinflußt wird.


Attribut Rand-Hintergrundfarbe

 Alle Attribute

Beschreibung

Gibt die Hintergrundfarbe für den Rand des Grafikobjekts an.

Gilt für  Grafikschriftarten und -farbe

Einstellung  Form Builder

Standardwert

Null

Obligatorisch/Optional  Optional


Attribut Rand-Vordergrundfarbe

 Alle Attribute

Beschreibung

Gibt die Vordergrundfarbe für den Rand des Grafikobjekts an.

Gilt für  Grafikschriftarten und -farbe

Einstellung  Form Builder

Standardwert

Null

Obligatorisch/Optional  Optional


Attribut Randmuster

 Alle Attribute

Beschreibung

Gibt das Muster für den Rand des Grafikobjekts an.

Gilt für  Grafikschriftarten und -farbe

Einstellung  Form Builder

Standardwert

Null

Obligatorisch/Optional  Optional


Attribut Editor

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt an, daß einer der folgenden Editoren als Standardeditor für dieses Textobjekt benutzt werden soll:

•	Ein benutzerdefinierter Editor, den Sie in der Form definiert haben, oder

•	Ein Systemeditor außerhalb von Form Builder, den Sie durch Einstellung der Umgebungsvariablen SYSTEM_EDITOR angegeben haben.

Gilt für  Textobjekte

Einstellung  Form Builder

Vordefinierte Prozedur

GET_ITEM_PROPERTY

Standardwert

Leer, gibt den Standardeditor von Form Builder an.

Obligatorisch/Optional  Optional

Verwendungshinweise

So definieren Sie einen Systemeditor:

•	Definieren Sie den Systemeditor, indem Sie die Umgebungsvariable FORMS60_EDITOR einstellen.

•	Geben Sie den Wert SYSTEM_EDITOR in das Feld Editorname ein.


Einschränkungen bei Editor

Der angegebene Editor muß in der aktiven Form vorhanden sein.


Editor X-Position, Editor Y-Position

 Alle Attribute

Beschreibung

Gibt die horizontale (x) und vertikale (y) Koordinate der oberen linken Ecke des Editors relativ zur oberen linken Ecke der Inhaltsleinwand des Fensters an. Wenn Sie das Attribut Editor einstellen, können Sie die Attribute für die Editorposition einstellen, um die für den Editor angegebenen Standardkoordinaten außer Kraft zu setzen.

Gilt für  Textobjekte

Einstellung  Form Builder

Vordefinierte Prozedur

GET_ITEM_PROPERTY

Standardwert

0, 0; gibt an, daß Form Builder die Anzeigekoordinaten des Standardeditors verwenden soll, wie mit dem Attribut Editor-Position angegeben.

Obligatorisch/Optional  Optional


Attribut Elemente in Liste

 Einschränkungen	 Alle Attribute

Beschreibung

Die Attributgruppe Elemente in Liste umfaßt die Attribute Listenobjekt und Wert Listenobjekt.

Gilt für  Listenobjekte

Einstellung  Form Builder

Listenobjekt

Gibt die Textbeschriftung für jedes Element in einem Listenobjekt an.

Obligatorisch/Optional  Obligatorisch

Wert Listenobjekt

Gibt den mit einem bestimmten Element in einem Listenobjekt verknüpften Wert an.

Standardwert

NULL

Obligatorisch/Optional  Obligatorisch

Verwendungshinweise

Wenn Sie das Feld Wert Listenobjekt leer lassen, ist der mit dem Element verknüpfte Wert NULL.


Einschränkungen bei Elemente in Liste

•	Muß eindeutig unter den Werten sein, die mit Elementwerten verknüpft sind.


Attribute Aktiviert

 Alle Attribute

Attribut Aktiviert (Objekt)

Attribut Aktiviert(Menüpunkt)

Attribut Aktiviert (Register


Attribut Aktiviert (Objekt)

  Verwandte Themen	 Alle Attribute

Beschreibung

Bestimmt, ob Endbenutzer die Maus zur Bearbeitung eines Objekts verwenden können.

Wenn Aktiviert auf Nein eingestellt ist, wird das Objekt bei den meisten Fensterverwaltungsprogrammen grau angezeigt.

Gilt für  Alle Objekte, mit Ausnahme von Schaltflächen, Diagrammobjekten und Anzeigeobjekten

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY

Standardwert

Ja

Verwendungshinweise

Wenn Aktiviert auf Ja eingestellt ist, kann Tastatur-navigierbar auf Ja oder Nein eingestellt werden. Ist Aktiviert auf Nein eingestellt, ist das Objekt nie über die Tastatur navigierbar. Wenn das Attribut Aktiviert zur Laufzeit auf PROPERTY_FALSE eingestellt ist, weist das Attribut Keyboard_Navigable ebenfalls den Wert PROPERTY_FALSE auf.

Wenn für Aktiviert der Wert Nein angegeben wird, wird das Objekt grau angezeigt. Wenn das Objekt normal angezeigt werden soll, damit der Benutzer es überprüfen kann, ohne es ändern zu können, stellen Sie die Attribute wie folgt ein:

•	Einfügen erlaubt (Objekt) auf Nein

•	Aktualisieren erlaubt (Objekt) auf Nein

•	Aktiviert auf Ja


Attribut Aktiviert (Menüpunkt)

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob der Menüpunkt als aktivierter (normaler) Menüpunkt oder deaktivierter (grau angezeigter) Menüpunkt angezeigt werden soll.

Gilt für  Menüpunkte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_MENU_ITEM_PROPERTY

Standardwert

Ja


Einschränkungen bei Aktiviert (Menüpunkt)

Sie können einen Menüpunkt nicht programmgesteuert aktivieren oder deaktivieren, der wegen einer der folgenden Bedingungen verborgen ist:

•	Das Menümodulattribut Sicherheit verwenden ist auf Ja gesetzt.

•	Das Menüpunktattribut Anzeige ohne Berechtigung ist auf Nein gesetzt.

•	Dem aktuellen Endbenutzer ist keine Rolle zugewiesen, die eine Zugriffsberechtigung für den Menüpunkt hat.


Attribut Aktiviert (Register)

 Alle Attribute

Beschreibung

Gibt an, ob das Register als aktiviert (normal) oder deaktiviert (grau) angezeigt werden soll.

Gilt für  Register

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

Standardwert

Ja


Attribut Endwinkel

 Alle Attribute

Beschreibung

Gibt den Endwinkel des Bogens an, wobei die Horizontalachse als Ursprung benutzt wird.

Gilt für  Grafikbogen

Einstellung  Form Builder

Standardwert

180

Obligatorisch/Optional  Obligatorisch


Attribut Spaltensicherheit durchsetzen

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, wann Form Builder Aktualisierungsberechtigungen auf einer spaltenweisen Basis für die Basistabelle des Blocks durchsetzen soll. Wenn ein Endbenutzer keine Aktualisierungsberechtigung für eine bestimmte Spalte in der Basistabelle hat, macht Form Builder das entsprechende Objekt nur für diesen Endbenutzer nicht aktualisierbar, indem das Objektattribut Aktualisieren erlaubt beim Starten der Form ausgeschaltet wird.

In der folgenden Tabelle werden die Auswirkungen der zulässigen Werte für dieses Attribut beschrieben:

Status	Auswirkung
Ja	Form Builder setzt die Aktualisierungsberechtigungen durch, die in der Datenbank für den aktuellen Endbenutzer definiert sind.
Nein	Form Builder setzt die definierten Aktualisierungsberechtigungen nicht durch.

 Gilt für  Blöcke

Einstellung  Form Builder

Vordefinierte Prozedur

GET_BLOCK_PROPERTY

Standardwert

Nein


Attribut Primärschlüssel durchsetzen (Block)

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, daß jeder in dem Block eingefügte oder aktualisierte Datensatz einen eindeutigen Schlüssel haben muß, um zu vermeiden, daß duplizierte Zeilen in der Basistabelle des Blocks gespeichert werden.

Gilt für  Blöcke

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Standardwert

Nein


Einschränkungen bei Primärschlüssel durchsetzen (Block)

•	Das Objektattribut Primärschlüssel muß für ein oder mehrere Objekte in dem Block auf Ja gesetzt sein.


Attribut Enterable

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob der Block enterable ist.

Gilt für  Blöcke

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_BLOCK_PROPERTY

Verwendungshinweise

•	Ein Block ist Enterable, wenn der aktuelle Datensatz eine Objektinstanz enthält, deren Attribut Tastatur-navigierbar einen effektiven Wert True enthält. Weitere Informationen über die effektiven Werte von Tastatur-navigierbar finden Sie unter der Beschreibung des Attributs Tastatur-navigierbar und der vordefinierten Prozedur SET_ITEM_INSTANCE_PROPERTY.


Attribut Error_Date/Datetime_Format

  Verwandte Themen	 Alle Attribute

Beschreibung

Enthält die aktuelle Formatmaske für Fehlerdatum oder Datum/Zeit, die von der Umgebungsvariablen FORMSnn_ERROR_DATE_FORMAT bzw. FORMSnn_ERROR_DATETIME_FORMAT festgelegt wird. Forms verwendet diese Formatmasken als Standard bei der Laufzeit-Fehlerbearbeitung.

Es gibt zwei eigenständige Attribute: Error_Date_Format und Error_Datetime_Format.

Gilt für  Anwendungen

Einstellung  Nicht in Form Builder einstellbar

Vordefinierte Prozedur

GET_APPLICATION_PROPERTY


Attribute Ausführungsmodus

 Alle Attribute

Attribut Ausführungsmodus (Diagramm)

Attribut Ausführungsmodus (Bericht)


Attribut Ausführungsmodus (Diagramm)

 Alle Attribute

Beschreibung

Wenn Sie Graphics Builder aus Form Builder aufrufen, um ein Diagramm zu erstellen, gibt dieses Attribut den Ausführungsmodus mit Stapel oder Laufzeit an. Im Stapelmodus wird der Bericht oder die Grafik ohne Eingreifen des Benutzers ausgeführt. Im Laufzeitmodus kann der Benutzer während der Ausführung eingreifen.

Gilt für  Diagrammobjekte

Einstellung  Form Builder

Standardwert

Stapel

Obligatorisch/Optional  Obligatorisch


Attribut Ausführungsmodus (Bericht)

 Alle Attribute

Beschreibung

Bei der Integration eines Berichts mit einer Form gibt dieses Attribut den Ausführungsmodus des Berichts als Stapel oder Laufzeit an. Im Stapelmodus wird der Bericht oder die Grafik ohne Eingreifen des Benutzers ausgeführt. Im Laufzeitmodus kann der Benutzer während der Ausführung eingreifen.

Gilt für  Berichtintegration

Einstellung  Form Builder

Standardwert

Stapel

Obligatorisch/Optional  Obligatorisch


Attribut Ausführungshierarchie

 Alle Attribute

Beschreibung

Gibt an, wie der aktuelle Triggercode ausgeführt werden soll, wenn ein Trigger mit demselben Namen auf einer höheren Ebene in der Objekthierarchie definiert ist.

Für dieses Attribut sind die folgenden Einstellungen gültig:

Außer Kraft setzen	Gibt an, daß der aktuelle Trigger anstelle eines Triggers mit demselben Namen in einem höheren Geltungsbereich ausgelöst wird. Dieses Verhalten wird als "übergeordneten Trigger außer Kraft setzen" bezeichnet.

Vor	Gibt an, daß der aktuelle Trigger ausgelöst wird, bevor derselbe Trigger im nächsthöheren Geltungsbereich ausgelöst wird. Dieses Verhalten wird als "vor übergeordnetem Trigger auslösen" bezeichnet.

Nach	Gibt an, daß der aktuelle Trigger nach Auslösen desselben Triggers auf dem nächsthöheren Geltungsbereich ausgelöst wird. Dieses Verhalten wird als "nach übergeordnetem Trigger auslösen" bezeichnet.

Gilt für  Trigger

Einstellung  Form Builder

Standardwert

Außer Kraft setzen


Attribut Dateiname

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen der Datei an, in der das benannte Objekt gespeichert ist.

Gilt für  Forms, Berichte

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_FORM_PROPERTY

Obligatorisch/Optional  Optional

Verwendungshinweise

Dateiname auf Formebene entspricht Current_Form auf Anwendungsebene. Current_Form kann mit GET_APPLICATION_PROPERTY eingelesen werden.


Einschränkungen bei Dateiname

Wenn zwei oder mehr Forms denselben Namen haben, gibt Dateiname den Namen der Datei an, in der die als letztes aufgerufene Form gespeichert ist.


Attribut Füllen

 Alle Attribute

Beschreibung

Gibt die Füllform des Bogens als Kreis oder Bogen an. Bei Auswahl von Kreis wird der Bogen vom Mittelpunkt des Kreises gezeichnet, der von dem Bogen beschrieben wird. Bei Auswahl von Bogen wird der Bogen von einem Liniensegment zwischen den beiden Endpunkten des Bogens gezeichnet.

Gilt für  Grafikbogen

Einstellung  Form Builder

Standardwert

Kreis

Obligatorisch/Optional  Obligatorisch


Attribut Fill_Pattern

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt das Muster an, das für den Füllbereich des Objekts benutzt werden soll. Muster werden in den beiden Farben gerendert, die mit Background_Color und Foreground_Color angegeben werden.

Gilt für  Objekte, Register, Leinwände, Fenster, Optionsschaltflächen

Einstellung  Programmgesteuert

Standardwert

Nicht angegeben

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

•	GET_CANVAS_PROPERTY

•	SET_CANVAS_PROPERTY

•	GET_WINDOW_PROPERTY

•	SET_WINDOW_PROPERTY


Attribut Vor Anzeige filtern

 Einschränkungen	 Alle Attribute

Beschreibung

Wenn das Attribut Vor Anzeige filtern auf Ja eingestellt ist, zeigt Form Builder ein Dialogfeld mit Abfragekriterien an, bevor die Werteliste angezeigt wird. Endbenutzer können einen Wert in das Dialogfeld mit Abfragekriterien eingeben, um die Zeilen weiter einzugrenzen, die von der SELECT-Standardanweisung zurückgegeben werden, die die zugrundeliegende Datensatzgruppe der Werteliste auffüllt. Form Builder verwendet den in das Dialogfeld eingegebenen Wert, um eine WHERE-Klausel für die SELECT-Anweisung zu erstellen. Der Wert wird für die erste in der Werteliste angezeigte Spalte angewendet. Eine verborgene Spalte in einer Werteliste wird nicht angezeigt.

Die von Form Builder erzeugte WHERE-Klausel hängt das Stellvertreterzeichen an den vom Endbenutzer eingegebenen Wert an. Wenn der Endbenutzer z.B. 7 eingibt, liest die WHERE-Klausel LIKE '7%' und gibt 7, 712 und 7290 zurück.

Sobald der Endbenutzer einen Wert in das Dialogfeld mit Abfragekriterien eingibt und die Werteliste angezeigt wird, enthält die Werteliste effektiv nur die Zeilen, die sowohl der SELECT-Standardanweisung als auch der WHERE-Klausel entsprechen, die mit dem Wert im Dialogfeld mit den Abfragekriterien erstellt werden. Betrachten Sie z.B. eine Werteliste, deren SELECT-Standardanweisung die Werte FOO, FAR und BAZ zurückgibt. Wenn der Endbenutzer den Wert F oder F% in das Dialogfeld mit den Abfragekriterien eingibt, enthält die Ergebnis-Werteliste nur die Werte FOO und FAR. Wenn der Benutzer den Wert B% in das Auswahlfeld der Werteliste eingibt, wird nichts zurückgegeben, weil BAZ schon in dem Dialogfeld mit den Abfragekriterien ausgewählt wurde.

Gilt für  Wertelisten

Einstellung  Form Builder

Standardwert

Nein


Einschränkungen bei Vor Anzeige filtern

•	Wenn mit der SELECT-Anweisung für die zugrundeliegende Datensatzgruppe der Werteliste Tabellen verknüpft werden, muß der Name der ersten Spalte, die in der Werteliste angezeigt wird, eindeutig unter allen Spalten in allen verknüpften Tabellen sein. Wenn dies nicht der Fall ist, kommt es zu einem Fehler, wenn der Endbenutzer versucht, die Funktion Vor Anzeige filtern zu benutzen. Wenn z.B. die Tabellen EMP und DEPT verknüpft werden, wäre die Spalte DEPTNO nicht eindeutig, da sie in beiden Tabellen auftritt. Eine Alternative besteht darin, eine Ansicht in der Datenbank zu erstellen und der Spalte, die die Endbenutzer in dem Dialogfeld mit den Abfragekriterien referenzieren sollen, einen eindeutigen Namen zuzuweisen.

•	Wenn eine lange Werteliste für die Objektvalidierung verwendet wird, wird das Dialogfeld mit den Abfragekriterien nicht angezeigt, so daß die Wertelistenvalidierung für die Endbenutzer der Forms transparent ist. Statt dessen verwendet Form Builder den aktuellen Wert des Textobjekts, um die WHERE-Klausel zu erzeugen, mit der die Größe der Liste reduziert wird, indem Stellvertreterkriterien für die erste sichtbare Spalte in der Werteliste verwendet werden.


Attribut In Abfragemodus auslösen

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, daß der Trigger ausgelöst werden soll, wenn sich die Form im Abfragemodus und im Normalmodus befindet.

Gilt für  Trigger

Einstellung  Form Builder

Standardwert

Nein

Verwendungshinweise

Gilt nur für die folgenden Trigger:

•	Tasten

•	On-Error

•	On-Message

•	When-Trigger, mit Ausnahme von:

•	When-Database-Record

•	When-Image-Activated

•	When-New-Block-Instance

•	When-New-Form-Instance

•	When-Create-Record

•	When-Remove-Record

•	When-Validate-Record

•	When-Validate-Item


Attribut Erster Navigationsdatenblock

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen des Blocks an, zu dem Form Builder beim Starten der Form und nach einem Vorgang CLEAR_FORM navigieren soll. Standardmäßig ist der Erste Navigationsdatenblock der erste Block in der Commit-Folge der Form, wie mit der Folge von Blöcken im Objektnavigator angegeben. Sie können das Attribut Erster Navigationsblock programmgesteuert so festlegen, daß ein anderer Block als erster Navigationsdatenblock angegeben wird.

Gilt für  Formmodule

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY

Standardwert

Der erste Block in der Form, d.h. der Block, der zuerst im Objektnavigator aufgeführt wird.

Obligatorisch/Optional  Optional

Verwendungshinweise

Sie können dieses Attribut aus einem When-New-Form-Instance-Trigger einstellen, der beim Starten der Form ausgelöst wird, bevor Form Builder intern zum ersten Block in der Form navigiert.


Attribut First_Block

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den ersten Block in der Form an, wie mit der Folge von Blöcken im Objektnavigator angegeben. Beim Starten navigiert Form Builder zum ersten Objekt im ersten Block.

Gilt für  Forms

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_FORM_PROPERTY


Attribut First_Detail_Relation

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen der ersten Master-Detail-Blockbeziehung an, bei der der angegebene Block der Detail-Block ist.

Gilt für  Blöcke

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_BLOCK_PROPERTY

Verwendungshinweise

Dieses Attribut wird besonders dann benutzt, wenn Sie ein eigenes Master-Detail-Koordinationsschema schreiben. Es kann in Verbindung mit den Attributen Next_Master_Relation und Next_Detail_Relation benutzt werden, um durch eine Liste mit Beziehungen zu gehen.


Attribut First_Item

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt das Objekt an, bei dem es sich um das erste Objekt in dem Block handelt, wie mit der Folge von Objekten im Objektnavigator angegeben. Beim Starten navigiert Form Builder zum ersten Objekt im ersten Block.

Gilt für  Blöcke

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_BLOCK_PROPERTY


Attribut First_Master_Relation

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen der ersten Master-Detail-Blockbeziehung an, bei der der angegebene Block der Masterblock ist.

Gilt für  Blöcke

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_BLOCK_PROPERTY

Verwendungshinweise

Dieses Attribut wird besonders dann benutzt, wenn Sie ein eigenes Master-Detail-Koordinationsschema schreiben. Es kann in Verbindung mit den Attributen Next_Master_Relation und Next_Detail_Relation benutzt werden, um durch eine Liste mit Beziehungen zu gehen.


Attribut Feste Umrandung

 Alle Attribute

Beschreibung

Gibt an, ob die Umrandung des Textobjekts eine feste Größe behalten soll. Wenn dieses Attribut auf Ja eingestellt ist, bestimmen die Werte der Attribute Breite und Höhe die Größe der Umrandung.

Gilt für  Grafiktext

Einstellung  Form Builder

Standardwert

Nein

Obligatorisch/Optional  Obligatorisch


Attribut Feste Länge (Objekt)

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Wenn für Feste Länge Ja angegeben wird, bedeutet dies, daß das Objekt nur dann als gültig betrachtet werden kann, wenn es die maximal zulässige Anzahl von Zeichen enthält. Die maximal zulässige Anzahl von Zeichen wird mit dem Attribut Maximale Länge bestimmt.

Gilt für  Textobjekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Nein


Einschränkungen bei Feste Länge (Objekt)

•	Die Attribute Sichtbar und Aktiviert müssen auf Ja eingestellt sein.

•	Ein Textobjektwert vom Datentyp NUMBER darf keine führenden Nullen enthalten. Form Builder entfernt führende Nullen automatisch und interpretiert das Textobjekt als "nicht ausgefüllt".


Attribut Feste Länge (Menüsubstitutionsparameter)

  Verwandte Themen	 Alle Attribute

Beschreibung

Wenn für Feste Länge Ja angegeben wurde, bedeutet dies, daß der Parameter nur als gültig betrachtet werden kann, wenn er die maximal zulässige Anzahl von Zeichen enthält. Die maximal zulässige Anzahl von Zeichen wird mit dem Attribut Maximale Länge bestimmt.

Gilt für  Menüsubstitutionsparameter

Einstellung  Form Builder

Standardwert

Nein


Attribut Flag Benutzerwert zu lang

 Alle Attribute

Beschreibung

Legt fest, wie Forms vom Benutzer eingegebene Werte behandeln soll, die die maximale Länge des Objekts überschreiten.

Dieses Attribut gilt nur in einer dreischichtigen Umgebung, in der die mittlere Schicht (der Forms-Server) einen anderen Mehr-Byte-Zeichensatz als UTF8 festlegt.

Gilt für  Anwendungen

Einstellung  programmgesteuert

Standardwert

Property_False ( 'FALSE ')

Vordefinierte Prozedur

GET_APPLICATION_PROPERTY

SET_APPLICATION_PROPERTY

Verwendungshinweise

In einer dreischichtigen Umgebung mit einem anderen Mehr-Byte-Zeichensatz als UTF8 kann es vorkommen, daß der Endbenutzer beim Eingeben von Informationen zu einem Objekt mehr Bytes verwendet, als im Attribut Maximale Länge des Objekts festgelegt sind.

Wenn das Attribut Flag Benutzerwert zu lang standardmäßig auf FALSE eingestellt ist bzw. vom Benutzer darauf eingestellt wurde und die zuvor beschriebene Situation eintritt, wird der vom Benutzer eingegebene Wert so auf Zeichenbasis abgeschnitten, daß die Größe in Byte nicht die maximal zulässige Länge für das Objekt überschreitet. Wenn die Validierung auf Objektebene durchgeführt wird, erfolgt auch eine Validierung des abgeschnittenen Wertes. Ist die Validierung (einschließlich eventueller Navigations-Trigger) erfolgreich, kann der Endbenutzer aus dem Objekt navigieren. Es wird keine Fehler- oder Warnmeldung angezeigt.

Wenn das Attribut Flag Benutzerwert zu lang auf TRUE eingestellt ist und diese Situation eintritt, wird der vom Benutzer eingegebene Wert nicht abgeschnitten. Bei der Validierung auf Objektebene wird ein Fehler ausgegeben (in der Fehlermeldung wird darauf hingewiesen, daß der Wert abgeschnitten werden müßte). Der Endbenutzer kann daher die aktuelle Validierungseinheit nicht verlassen (wie im Attribut Validierungseinheit der aktuellen Form eingestellt).


Attribut Font_Name

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Schriftartfamilie an, die für den Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

Gilt für  Objekte, Register, Leinwände, Fenster, Optionsschaltflächen

Einstellung  Programmgesteuert

Standardwert

Nicht angegeben

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

•	GET_CANVAS_PROPERTY

•	SET_CANVAS_PROPERTY

•	GET_WINDOW_PROPERTY

•	SET_WINDOW_PROPERTY


Attribut Font_Size

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Schriftgrad in Punkt an.

Gilt für  Objekte, Register, Leinwände, Fenster, Optionsschaltflächen

Einstellung  Programmgesteuert

Standardwert

Nicht angegeben

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

•	GET_CANVAS_PROPERTY

•	SET_CANVAS_PROPERTY

•	GET_WINDOW_PROPERTY

•	SET_WINDOW_PROPERTY


Attribut Font_Spacing

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Breite der Schriftart an (d.h. den Abstand zwischen den Zeichen bzw. das Kerning). Gültige Werte sind:

FONT_NORMAL

FONT_ULTRADENSE

FONT_EXTRADENSE

FONT_DENSE

FONT_SEMIDENSE

FONT_SEMIEXPAND

FONT_EXPAND

FONT_EXTRAEXPAND

FONT_ULTRAEXPAND

Gilt für  Objekte, Register, Leinwände, Fenster, Optionsschaltflächen

Einstellung  Programmgesteuert

Standardwert

FONT_NORMAL

Vordefinierte Prozedur

•	GET_CANVAS_PROPERTY

•	SET_CANVAS_PROPERTY

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

•	GET_VA_PROPERTY

•	SET_VA_PROPERTY

•	GET_WINDOW_PROPERTY

•	SET_WINDOW_PROPERTY


Attribut Font_Style

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Schriftstil an. Gültige Werte sind:

FONT_PLAIN

FONT_ITALIC

FONT_OBLIQUE

FONT_UNDERLINE

FONT_OUTLINE

FONT_SHADOW

FONT_INVERTED

FONT_OVERSTRIKE

FONT_BLINK

Gilt für  Objekte, Register, Leinwände, Fenster, Optionsschaltflächen

Einstellung  Programmgesteuert

Standardwert

FONT_PLAIN

Vordefinierte Prozedur

•	GET_CANVAS_PROPERTY

•	SET_CANVAS_PROPERTY

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

n	GET_VA_PROPERTY

n	SET_VA_PROPERTY

•	GET_WINDOW_PROPERTY

•	SET_WINDOW_PROPERTY


Attribut Font_Weight

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Schriftstärke an. Gültige Werte sind:

FONT_MEDIUM

FONT_ULTRALIGHT

FONT_EXTRALIGHT

FONT_LIGHT

FONT_DEMILIGHT

FONT_DEMIBOLD

FONT_BOLD

FONT_EXTRABOLD

FONT_ULTRABOLD

Gilt für  Objekte, Register, Leinwände, Fenster, Optionsschaltflächen

Einstellung  Programmgesteuert

Standardwert

FONT_MEDIUM

Vordefinierte Prozedur

•	GET_CANVAS_PROPERTY

•	SET_CANVAS_PROPERTY

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

•	GET_VA_PROPERTY

•	SET_VA_PROPERTY

•	GET_WINDOW_PROPERTY

•	SET_WINDOW_PROPERTY


Attribut Foreground_Color

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Farbe für den Vordergrundbereich des Objekts an. Definiert bei Objekten die Farbe des Textes, der in dem Objekt angezeigt wird.

Gilt für  Objekte, Register, Leinwände, Fenster, Optionsschaltflächen

Einstellung  Programmgesteuert

Standardwert

Nicht angegeben

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

•	GET_CANVAS_PROPERTY

•	SET_CANVAS_PROPERTY

•	GET_WINDOW_PROPERTY

•	SET_WINDOW_PROPERTY


Attribut Form Horizontale Symbolleisten-Leinwand

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt bei Microsoft Windows die Leinwand an, die als horizontale Symbolleiste im MDI-Anwendungsfenster angezeigt werden soll. Für die angegebene Leinwand muß das Attribut Leinwandtyp auf Horizontale Symbolleiste gesetzt sein.

Gilt für  Forms

Einstellung  Form Builder

Standardwert

Null

Obligatorisch/Optional  Optional


Einschränkungen bei Form Horizontale Symbolleisten-Leinwand

Ist nur bei Microsoft Windows gültig. Bei anderen Plattformen wird das Attribut Form Horizontale Symbolleisten-Leinwand ignoriert, und die Leinwand wird dem Fenster zugeordnet, das mit dem Attribut Fenster angegeben wird.


Attribut Form Vertikale Symbolleisten-Leinwand

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt bei Microsoft Windows die Symbolleisten-Leinwand an, die als vertikale Symbolleiste im MDI-Anwendungsfenster angezeigt werden soll. Für die angegebene Leinwand muß das Attribut Leinwandtyp auf Vertikale Symbolleiste eingestellt sein.

Gilt für  Forms

Einstellung  Form Builder

Standardwert

Null

Obligatorisch/Optional  Optional


Einschränkungen bei Form Vertikale Symbolleisten-Leinwand

Gilt nur bei Microsoft Windows. Bei anderen Plattformen wird das Attribut Form Vertikale Symbolleisten-Leinwand ignoriert, und die Symbolleisten-Leinwand wird dem Fenster zugeordnet, das mit dem Attribut Fenster angegeben wird.


Attribut Formatmaske

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt das Anzeigeformat und die Eingabe an, die für Daten in Textobjekten akzeptiert werden.

Gilt für  Textobjekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Obligatorisch/Optional  Optional

Verwendungshinweise

Gültige Formatmasken für Zeichenfolgen, Zahlen und Datumsangaben werden in den folgenden Tabellen beschrieben.

Zeichenfolgen

In der folgenden Tabelle werden gültige Formatmasken für Zeichenfolgen beschrieben.

Element	Beispiel	Beschreibung
FM	FMXX99	Füllmodus: Akzeptiert die Zeichenfolge wie eingegeben, keine rechtsbündige Ausrichtung. Läßt zu, daß die Eingabefolge des Endbenutzers kürzer ist als die Formatmaske.
X	XXXX	Beliebiges alphabetisches, numerisches oder Sonderzeichen. Die Eingabefolge des Endbenutzers muß genau die von der Formatmaske angegebene Länge haben.
9	9999	Nur numerische Zeichen. Die Eingabefolge des Endbenutzers muß genau die von der Formatmaske angegebene Länge haben.
A	AAAA	Nur alphabetische Zeichen. Die Eingabefolge des Endbenutzers muß genau die von der Formatmaske angegebene Länge haben.
Beispiele für Zeichenfolgen

Formatmaske	Beschreibung
XXAA	Akzeptiert: --ab, abcd, 11ab; akzeptiert nicht: --11, ab11 oder ab--(XX muß benutzt werden, um Bindestriche und andere Sonderzeichen zu akzeptieren).
XXXX	Akzeptiert eine beliebige Kombination von alphabetischen, numerischen oder Sonderzeichen: --ab, abcd, 11ab, --11, ab11 oder ab--. Akzeptiert 1234 oder abcd; akzeptiert 123 oder abc nicht. (Um eine Eingabefolge zu akzeptieren, die kürzer ist als die Maske, verwenden Sie FMXXXX.)
FMXX99	Akzeptiert ab12, ab1, ab gefolgt von zwei Leerstellen; akzeptiert 12ab oder abcd nicht. (Um den Datentyp Alpha von Form Builder Version 3.0 zu erzeugen, verwenden Sie FMAAAAAA.)
•	Um zusätzliche Zeichen einzubetten, wie z.B. einen Bindestrich (-) oder ein Komma (,), setzen Sie das Zeichen in doppelte Anführungszeichen (").

•	Eingebettete Zeichen sind von Textobjektwerten separat und werden nicht mit Textobjektwerten sortiert, selbst wenn der Endbenutzer sie eingibt.

ZAHLEN

In der folgenden Tabelle werden gültige Formatmasken für Zahlen beschrieben.

Element	Beispiel	Beschreibung
9	9999	Anzahl von Neunen bestimmt die Anzeigebreite. Führende Nullen werden als Leerzeichen angezeigt.
0	0999	Führende Nullen werden angezeigt.
0	9990	Nullwert wird als null und nicht als leer angezeigt.
$	$9999	Vor den Wert wird ein Dollarzeichen gesetzt.
B	B9999	Nullwert wird als leer und nicht als "0" angezeigt.
MI	9999MI	Zeigt "-" nach einem negativen Wert an.
PR	9999PR	Zeigt einen Wert in <spitzen Klammern> an.
Komma	9,999	Zeigt ein Komma an dieser Stelle an. Um ein korrektes Verhalten in mehrsprachigen Anwendungen zu gewährleisten, verwenden Sie statt dessen G, um das entsprechende Gruppen-(Tausender-)Trennzeichen zurückzugeben.
Punkt	99.99	Zeigt einen Dezimalpunkt an dieser Stelle an. Um ein korrektes Verhalten in mehrsprachigen Anwendungen zu gewährleisten, verwenden Sie statt dessen D, um das entsprechende Dezimalzeichen zurückzugeben.
E	9.999EEEE	Anzeige in Exponentialschreibweise (das Format muß genau vier "E" enthalten).
FM	FM999	Füllmodus: Akzeptiert Zeichenfolge wie eingegeben, keine rechtsbündige Ausrichtung.
•	Wenn Sie eine Zahl mit Neunen (9) maskieren, fügt Form Builder ein Leerzeichen vor der Zahl ein, um das Plus- (+) oder Minus- (-) Zeichen aufzunehmen. Da das Pluszeichen jedoch nicht angezeigt wird, sieht es so aus, als würde Form Builder ein Leerzeichen vor der Zahl hinzufügen. (Das Minuszeichen wird angezeigt).

•	Um zusätzliche Zeichen einzubetten, wie z.B. einen Bindestrich (-) oder ein Komma (,), setzen Sie das Zeichen in doppelte Anführungszeichen (").

•	Eingebettete Zeichen sind von Textobjektwerten separat und werden nicht mit Textobjektwerten sortiert, selbst wenn der Endbenutzer sie eingibt.

Beispiele für NUMBER

Formatmaske	Beschreibung
FM099"-"99"-"9999	Zeigt eine Sozialversicherungsnummer (US-Format) wie formatiert an, einschließlich Bindestrichen, selbst wenn der Benutzer nur neun Ziffern eingibt. Um eine Spalte Sozialversicherung zu erstellen, erzeugen Sie eine 11 Zeichen umfassende Spalte, und setzen Sie diese mit einer Formatmaske von 099"-"99"-"9999 auf eine feste Länge. Diese Maske nimmt Sozialversicherungsnummern auf, die mit null beginnen, wobei 012-34-5678 oder 012345678 akzeptiert werden (beide sind als 012345678 gespeichert).
99999PR	Akzeptiert -123; formatiert als <123> um.
999MI	Akzeptiert -678; formatiert als 678- um.
9.999EEEE	Zeigt als 1.00E+20 an.
So behandelt Forms nicht übereinstimmende Längen

Wenn ein Laufzeitbenutzer eine numerische Zeichenfolge eingibt, die die Angaben der Formatmaske überschreitet, wird der Wert zurückgewiesen. Zum Beispiel:

Formatmaske	Benutzereingabe	Ergebnis
99.9	321.0	Ungültig
99.9	21.01	Ungültig
99.9	21.1	21.1
99.9	01.1	1.1
Wenn dagegen ein numerischer Wert, der aus der Datenbank abgerufen wird, die Angabe der Formatmaske für das Anzeigefeld überschreitet, wird der Wert angezeigt, allerdings mit Rundung abgeschnitten, so daß er in die Formatmaske paßt. (Das Objekt selbst innerhalb der Forms-Anwendung behält den vollständigen Wert bei.) Wenn die Datenbank z.B. den Wert 2.0666 enthält und die Formatmaske 99.9 ist, wird für den Benutzer der Wert 2.1 angezeigt. Der Wert des Objekts innerhalb der Form bleibt jedoch bei den vollen 2.0666.

Datumsangaben

In der folgenden Tabelle werden gültige Formatmasken für Datumsangaben beschrieben.

Element	Beschreibung
YYYY oder SYYYY	Jahr mit 4 Ziffern; bei "S" wird vor ein "BC"-Datum (v.Chr.) "-" gesetzt
YYY oder YY oder Y	Letzte 3, 2 oder 1 Ziffern des Jahres
Y,YYY	Jahr mit einem Komma an dieser Stelle
BC oder AD	BC/AD-Indikator
B.C. oder A.D.	BC/AD-Indikator mit Punkten
RR	Verwendet standardmäßig das richtige Jahrhundert. Das vollständige Datum leitet sich aus der zweistelligen Jahresangabe verglichen mit der Einstellung von Jahrzehnt und Jahrhundert der internen Uhr des Computers ab. Für eingegebene Werte zwischen 00 und 49 wird das 21. Jahrhundert angenommen, für Jahreszahlen zwischen 50 und 99 das 20. Jahrhundert.
MM	Monat (01-12; JAN = 01)
MONTH	Name des Monats, mit Leerzeichen auf eine Länge von 9 Zeichen aufgefüllt
MON	Name des Monats, 3 Buchstaben umfassende Abkürzung
DDD	Tag des Jahres (1-366)
DD	Tag des Monats (1-31)
D	Wochentag (1-7; Sonntag=1)
DAY	Name des Tages, mit Leerzeichen auf eine Länge von 9 Zeichen aufgefüllt
DY	Name des Tages, 3 Buchstaben umfassende Abkürzung
J	Tag im Julianischen Format; die Anzahl von Tagen seit dem 1. Januar 4712 v.Chr.
AM oder PM	Meridian-Indikator
A.M. oder P.M.	Meridian-Indikator mit Punkten
HH oder HH12	Stunde des Tages (1-12)
HH24	Stunde des Tages (0-23)
MI	Minute (0-59)
SS	Sekunde (0-59)
SSSSS	Sekunden nach Mitternacht (0-86399)
/. , .	Satzzeichen wird im Ergebnis reproduziert
"..."	Zeichenfolge in Anführungszeichen wird im Ergebnis reproduziert
FM	Füllmodus: Geht von impliziten Zeichen aus, wie z.B. O oder Leerzeichen; zeigt signifikante Zeichen linksbündig ausgerichtet an. Mit dieser Formatmaske kann die Eingabe des Endbenutzers kürzer als die Formatmaske sein. (In Verbindung mit FX benutzen, um bestimmte Begrenzungszeichen anzufordern.)
FX	Alle Datumsliterale müssen genau mit der Formatmaske übereinstimmen, einschließlich Begrenzungszeichen.
•	Wenn Sie vor eine Datumsmaske FX setzen, muß der Endbenutzer das Datum genau so eingeben, wie Sie die Maske definieren, einschließlich der angegebenen Begrenzungszeichen:

Datumsbeispiele

Formatmaske	Beschreibung
FXDD-MON-YY	Akzeptiert 12-JAN-94, akzeptiert 12.JAN.94 oder 12/JAN/94 jedoch nicht, da die Begrenzungszeichen der Maske nicht entsprechen. Akzeptiert 12JAN94 nicht, weil keine Begrenzungszeichen vorhanden sind.  Akzeptiert 01-JAN-94, jedoch 1-JAN-94 nicht.
FMFXDD-MON-YY	Akzeptiert 01-JAN-94.  Akzeptiert auch die Eingabe anderer Begrenzungszeichen, z.B. 01/JAN/94 und 01 JAN 94.  Akzeptiert jedoch  01JAN94 nicht.  Akzeptiert 1-JAN-94 und konvertiert es in 01-JAN-94.
TT-MON-JJ	Akzeptiert 12.JAN.94, 12/JAN/94 oder 12-JAN-94. Hinweis: Jedes beliebige Begrenzungszeichen wird akzeptiert, wenn der Endbenutzer jedoch Begrenzungszeichen wegläßt, interpretiert diese Maske Datumszeichen als Begrenzungszeichen. Akzeptiert 12-JAN94 (interpretiert es jedoch fälschlicherweise als 12-JAN-04); akzeptiert jedoch 12JAN94 nicht, da "AN" kein gültiger Monatsname ist.
•	Die Benutzung einer Formatmaske wirkt sich nur auf das Aussehen der Daten aus. Form Builder speichert das Datum mit der vollen Genauigkeit, unabhängig davon, wie die Daten dargestellt werden.

•	Eingebettete Zeichen sind von Textobjektwerten separat und werden nicht mit Textobjektwerten sortiert, selbst wenn der Endbenutzer sie eingibt.

•	Um zusätzliche Zeichen einzubetten, wie z.B. einen Bindestrich (-) oder ein Komma (,), setzen Sie das Zeichen in doppelte Anführungszeichen ("). Beachten Sie jedoch, daß doppelte Anführungszeichen selbst nicht als ein Zeichen benutzt werden können. Anders ausgedrückt, eine Ausgabe von DD"MM durch Angabe einer Maske DD"""MM funktioniert nicht.

Formatmaske	Beschreibung
FMMONTH" "DD", "YYYY	Zeigt Textobjektdaten im angegebenen Datumsformat an: JANUAR 12, 1994, einschließlich den entsprechenden Leerzeichen und dem Komma.
FMDD-MONTH-YYYY	Wird als 12-JANUAR-1994 angezeigt.
DY-DDD-YYYY	Wird als DON-012-1994 angezeigt. Hinweis: Für eine Eingabevalidierung, einschließlich dem Wochentag, ist eine Maske erforderlich, die eine spezifische Bestimmung des Tages ermöglicht, wie in diesem Beispiel oder DY-DD-MM-YY.
•	Wenn Sie Wochentag-Formate verwenden, müssen die Daten unbedingt die Wochentaginformation umfassen. Um unlogische Masken zu vermeiden, zeigen Sie also entweder den Tag des Jahres (1-366) oder den Monat in einem beliebigen Format an.

Formatmaske	Beschreibung
DD-MONTH-YYYY	Wird als 12-JANUAR-1994 angezeigt.
DY-DDD-YYYY	Wird als DON-012-1994 angezeigt.
DY-DD-MON-YY	Wird als DON-12-JAN-94 angezeigt. Sie müssen unbedingt den Monat angeben. Vermeiden Sie Masken wie DY-DD-YY, die zu einem Fehler führen könnten.
NLS-Formatmasken

In der folgenden Tabelle werden die gültigen National Language Support (NLS)-Formatmasken beschrieben.

Element	Beispiel	Beschreibung
C	C999	Gibt das internationale Währungssymbol zurück.
L	L9999	Gibt das lokale Währungssymbol zurück.
D	99D99	Gibt das Dezimalzeichen zurück.
G	9G999	Gibt das Gruppen- (Tausender-)Trennzeichen zurück.
Komma	9,999	Zeigt ein Komma an dieser Stelle an.
Punkt	9.999	Zeigt einen Dezimalpunkt an dieser Stelle an.
Beispiele für NLS-Formatmasken

Formatmaske	Beschreibung
L99G999D99	Zeigt das lokale Währungssymbol, Gruppen- und Dezimaltrennzeichen an: Bei NLS_LANG=American wird dieses Objekt als $1,600.00 angezeigt; bei NLS_LANG=Norwegian wird dieses Objekt als Kr.1.600,00 angezeigt.
C99G999D99	Zeigt das entsprechende internationale Währungssymbol an: Bei NLS_LANG=American wird dieses Objekt als USD1,600.00 angezeigt; bei NLS_LANG=French wird das Objekt als FRF1.600,00 angezeigt.


Einschränkungen bei Formatmaske

•	Wenn Sie das Attribut Maximale Länge für ein Textobjekt einstellen, nehmen Sie ein Leerzeichen für eingebettete Zeichen auf, die von der angegebenen Formatmaske eingefügt werden.

•	Formatmasken können maximal 30 Zeichen umfassen.

•	Form Builder unterstützt nur ORACLE-Formatmasken, die sowohl für die Eingabe als auch die Ausgabe benutzt werden. Nur-Ausgabe-Formatmasken, wie z.B. WW, werden nicht unterstützt.


Attribut Form_Name

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen der Form an.

Gilt für  Forms

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_FORM_PROPERTY

Verwendungshinweise

Form_Name auf Formebene entspricht Current_Form_Name auf Anwendungsebene. Current_Form_Name kann mit GET_APPLICATION_PROPERTY eingelesen werden.


Attribut Formel

 Alle Attribute

Beschreibung

Gibt einen einzelnen PL/SQL-Ausdruck an, der den Wert für ein mit einer Formel berechnetes Objekt bestimmt. Der Ausdruck kann vordefinierte oder benutzerdefinierte Unterprogramme referenzieren.

Gilt für  Objekte

Einstellung  Form Builder

Vordefinierte Prozedur

RECALCULATE

Verwendungshinweise

Sie können keine ganze PL/SQL-Anweisung als Formel eingeben; deshalb schließen Sie den Berechnungsausdruck nicht mit einem Semikolon ab. Form Builder fügt den aktuellen Zuweisungscode intern der Formel hinzu  - codieren Sie nicht selbst. Anstatt z.B. eine ganze Zuweisungsanweisung zu codieren, codieren Sie nur den Ausdruck:

   :emp.sal + :emp.comm

Form Builder konvertiert dies intern in eine vollständige Anweisung, zum Beispiel

   :emp.gross_comp := (:emp.sal + :emp_comm);

Obligatorisch/Optional  Obligatorisch, wenn für das Attribut Berechnungsmodus Formel angegeben wird


Attribut Rahmenausrichtung

 Bitte zeigen	 Alle Attribute

Beschreibung

Gibt an, wie Objekte innerhalb der Rahmenbreite ausgerichtet werden sollen, d.h. Anfang, Ende, Zentriert, Ausfüllen oder Spalte. Dieses Attribut ist gültig, wenn für das Attribut Layoutstil Form angegeben wurde.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Ausfüllen

Obligatorisch/Optional  Obligatorisch


Rahmenausrichtung


Attribut Rahmentitel

 Alle Attribute

Beschreibung

Gibt den Rahmentitel an.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Leer

Obligatorisch/Optional  Optional


Attribut Ausrichtung Rahmentitel

 Bitte zeigen	 Alle Attribute

Beschreibung

Gibt die Titelausrichtung für einen Rahmen an, d.h. Anfang, Ende oder Zentriert.

Hinweis:  Die Titelausrichtung erfolgt relativ zur Richtung der Leinwand, auf der die Leinwand angezeigt wird.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Anfang

Obligatorisch/Optional  Obligatorisch


Ausrichtung Rahmentitel


Attribut Rahmentitel Hintergrundfarbe

 Alle Attribute

Beschreibung

Gibt die Farbe an, die für den Hintergrund des Rahmentitels verwendet werden soll.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Standardmäßig wird die Standardfarbe des Betriebssystems für Schriftarten verwendet (im allgemeinen Weiß).

Obligatorisch/Optional  Obligatorisch


Attribut Rahmentitel Schriftartname

 Alle Attribute

Beschreibung

Gibt den Namen der Schriftart an, die für den Rahmentitel benutzt werden soll.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Standardmäßig wird die Standardschriftart des Betriebssystems benutzt.

Obligatorisch/Optional  Obligatorisch


 Attribut Rahmentitel Schriftgrad

 Alle Attribute

Beschreibung

Gibt den Schriftgrad der Schriftart an, der für den Rahmentitel benutzt werden soll.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Standardmäßig wird der Standardschriftgrad des Betriebssystems benutzt.

Obligatorisch/Optional  Obligatorisch


 Attribut Rahmentitel Zeichenabstand

 Alle Attribute

Beschreibung

Gibt den Zeichenabstand für den Text des Rahmentitels an.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Standardmäßig wird der Standardzeichenabstand des Betriebssystems benutzt.

Obligatorisch/Optional  Obligatorisch


Attribut Rahmentitel Schriftstil

 Alle Attribute

Beschreibung

Gibt den Schriftstil (z.B. Kursiv) für den Text des Rahmentitels an.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Standardmäßig wird der Standardschriftstil des Betriebssystems benutzt.

Obligatorisch/Optional  Obligatorisch


Attribut Rahmentitel Schriftstärke

 Alle Attribute

Beschreibung

Gibt die Schriftstärke (z.B. Fett) für den Text des Rahmentitels an.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Standardmäßig wird die Standardschriftstärke des Betriebssystems benutzt.

Obligatorisch/Optional  Obligatorisch


Attribut Rahmentitel Vordergrundfarbe

 Alle Attribute

Beschreibung

Gibt die Farbe an, die für den Text des Rahmentitels benutzt werden soll.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Standardmäßig wird die Standardfarbe des Betriebssystems für Schriftarten verwendet (im allgemeinen Schwarz).

Obligatorisch/Optional  Obligatorisch


Attribut Versatz Rahmentitel

 Bitte zeigen	 Alle Attribute

Beschreibung

Gibt den Abstand zwischen dem Rahmen und seinem Titel an.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

2 Zeicheneinheiten (oder der entsprechende Wert, je nach Koordinatensystem der Form)

Obligatorisch/Optional  Obligatorisch


Versatz Rahmentitel Bitte zeigen


Attribut Lesereihenfolge für Titel

 Alle Attribute

Beschreibung

Gibt die Lesereihenfolge für Rahmentitel an, d.h. Standard, Links-nach-rechts oder Rechts-nach-links.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Standardwert

Obligatorisch/Optional  Obligatorisch


Attribut Abstand Rahmentitel

 Bitte zeigen	 Alle Attribute

Beschreibung

Gibt den Platz an, der rechts und links neben dem Rahmentitel reserviert ist.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

1 Zeicheneinheit (oder der entsprechende Wert, je nach Koordinatensystem der Form)

Obligatorisch/Optional  Obligatorisch


Abstand Rahmentitel


Attribut Rahmentitel Visuelle Attributgruppe

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, wie die einzelnen Attributeinstellungen (Schriftartname, Hintergrundfarbe, Füllmuster usw.) für den Rahmentitel abgeleitet werden. Für dieses Attribut sind folgende Einstellungen gültig:

Standardwert	Gibt an, daß das Objekt mit der Standardfarbe, dem Standardmuster und den standardmäßigen Schriftarteinstellungen angezeigt werden soll. Wenn Visuelle Attributgruppe auf Standard eingestellt ist, berücksichtigen die einzelnen Attributeinstellungen die aktuellen Standardwerte des Systems. Die tatsächlichen Einstellungen werden von einer Kombination von Faktoren bestimmt, einschließlich Objekttyp, benutzter Resource-Datei und Plattform.
Benanntes visuelles Attribut	Gibt ein benanntes visuelles Attribut an, das für das Objekt angewendet werden soll. Benannte visuelle Attribute sind separate Objekte, die Sie im Objektnavigator erstellen und dann für Schnittstellenobjekte anwenden, etwa wie Stile in einem Textverarbeitungsprogramm. Wenn das Attribut Visuelle Attributgruppe auf ein benanntes visuelles Attribut eingestellt ist, berücksichtigen die individuellen Attributeinstellungen die Attributeinstellungen, die für das benannte visuelle Attributobjekt definiert sind. Wenn die aktuelle Form keine benannten visuellen Attribute enthält, wird in der Popup-Liste für dieses Attribut Standard angezeigt.

Gilt für  Rahmentitel

Einstellung  Form Builder

Standardwert

Standardwert

Verwendungshinweise

•	Standardattribute und benannte visuelle Attribute können die folgenden individuellen Attribute umfassen, in der Reihenfolge aufgeführt, in der sie in der Attributpalette angezeigt werden:

Schriftartname  Die Schriftart, die für den Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist vom System abhängig.

Schriftgrad  Größe der Schriftart, in Punkt angegeben.

Schriftstil  Stil der Schriftart.

Zeichenabstand  Breite der Schriftart, d.h. Abstand zwischen den einzelnen Zeichen (Kerning).

Schriftstärle  Die Schriftstärke der Schriftart.

Vordergrundfarbe  Die Farbe für den Vordergrundbereich des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

Hintergrundfarbe  Die Farbe für den Hintergrundbereich des Objekts.

Füllmuster  Das Muster, das für den Füllbereich des Objekts benutzt werden soll. Füllmuster werden in zwei Farben dargestellt, die mit der Hintergrundfarbe und der Vordergrundfarbe angegeben werden.

Logisches Attribut Zeichenmodus  Gibt den Namen des logischen Attributs für den Zeichenmodus an, wie in einer Resource-Datei von Oracle Terminal definiert, das als Basis für die Geräteattribute bei einer Version der Anwendung im Zeichenmodus benutzt werden soll.

Weiß auf Schwarz  Gibt an, daß das Objekt auf einem Schwarz-/Weiß-Bitmap-Anzeigegerät mit weißem Text auf schwarzem Hintergrund angezeigt werden soll.

Nicht alle Attribute sind bei jedem Objekttyp gültig. Wenn Sie z.B. Schriftartattribute für ein Fensterobjekt einstellen, bleibt dies wirkungslos. (Die in der Titelleiste des Fensters benutzte Schriftart wird vom System abgeleitet.)

•	Ein neues Objekt in einer neuen Form benutzt die standardmäßigen visuellen Attribute. Die Standardeinstellungen werden intern definiert. Sie können die Standardschriftart für neue Objekte und Boilerplate außer Kraft setzen, indem Sie die optionale Umgebungsvariable FORMS60_DEFAULTFONT einstellen. Bei Microsoft Windows können Sie diese Variable z.B. in der Datei ORACLE.INI wie folgt einstellen: FORMS60_DEFAULTFONT="COURIER.10". Die angegebene Standardschriftart bestimmt die Schriftart, die für neuen Boilerplate-Text benutzt wird, der von dem Fenster Neuer Block generiert wird, und für Objekte, bei denen das Attribut Visuelle Attributgruppe auf Standard eingestellt ist.

•	Wenn Sie ein Objekt im Layouteditor erstellen, werden die anfänglichen visuellen Attributeinstellungen von den aktuellen Einstellungen für Schriftart, Farbe und Muster im Layouteditor bestimmt, wie mit dem Dialogfeld Schriftart und den Farb- bzw. Musterpaletten angegeben.

•	Bei Microsoft Windows werden die Farben von Schaltflächen, Titelleisten in Fontfenstern und Fensterrahmen von den Farbeinstellungen in der Windows-Systemsteuerung bestimmt, die für diese Elemente angegeben wurden. Sie können diese Farben in Form Builder nicht außer Kraft setzen.

•	Wenn das Formattribut 3D-Steuerelemente verwenden bei Microsoft Windows auf Ja eingestellt ist (Standardwert), werden Objekte mit einer Schattierung dargestellt, die ihnen ein dreidimensionales Aussehen verleiht. Ein Nebeneffekt der Einstellung dieses Attributs besteht darin, daß Leinwände, für die das Attribut Visuelle Attributgruppe auf Standard eingestellt ist, die Farbeinstellung von der Windows-Systemsteuerung ableiten (bei den meisten Farbschemata grau). Sie können diese Einstellung außer Kraft setzen, indem Sie explizit benannte visuelle Attribute für die Leinwand anwenden.

•	Ein Objekt, bei dem das Attribut Visuelle Attributgruppe auf Standard eingestellt ist oder bei dem individuelle Attributeinstellungen nicht angegeben werden, übernimmt diese Einstellungen von der Leinwand, der es zugewiesen ist. Bei einer Leinwand, bei der das Attribut Visuelle Attributgruppe auf Standard eingestellt ist oder bei der individuelle Attributeinstellungen nicht angegeben werden, werden diese Einstellungen von dem Fenster übernommen, in dem die Leinwand angezeigt wird. Wenn Sie z.B. die Hintergrundfarbe eines Fensters auf ZYAN einstellen und für die dem Fenster zugewiesene Leinwand keine Hintergrundfarbe angeben, übernimmt die Leinwand zur Laufzeit die Hintergrundfarbe ZYAN von dem Fenster. Visuelle Attributeinstellungen, die durch Fenstervererbung abgeleitet werden, sind nur zur Laufzeit und nicht beim Entwurf sichtbar.

•	Sie können Attributklassen für Objekte anwenden, um visuelle Attributeinstellungen anzugeben. Eine Attributklasse kann das Attribut Visuelle Attributgruppe oder eine bzw. mehrere individuelle Attributeinstellungen enthalten. (Wenn eine Attributklasse die Attribute Visuelle Attributgruppe und Individuelle Attribute enthält, ist das Attribut Visuelle Attributgruppe vorrangig.

•	Wenn Sie sowohl ein benanntes visuelles Attribut als auch eine Attributklasse, die visuelle Attributeinstellungen enthält, für dasselbe Objekt anwenden, sind die benannten visuellen Attributeinstellungen vorrangig, und die Einstellungen für das visuelle Attribut der Attributklasse werden ignoriert.

•	In der Resource-Datei definierte logische Attributdefinitionen sind gegenüber visuellen Attributen, die in Form Builder angegeben werden, lokalen Definitionen von Umgebungsvariablen und Standardattributen von Form Builder vorrangig. Die Resource-Datei kann mit dem Dienstprogramm Oracle Terminal bearbeitet werden.


Attribut Grafiktyp

 Alle Attribute

Beschreibung

Ein schreibgeschütztes Attribut, mit dem der Typ des Grafikobjekts angegeben wird. Mögliche Werte umfassen: Bogen, Diagramm, Gruppe, Bild, Linie, Polygon, Rechteck, Abgerundetes Rechteck, Symbol und Text. (Dieselben möglichen Werte wie bei dem Graphics Builder-Attribut Objekttyp.)

Gilt für  Grafiken im allgemeinen

Einstellung  Form Builder

Standardwert

Typ

Obligatorisch/Optional  Obligatorisch


Attribut Group_Name

 Alle Attribute

Beschreibung

Gibt den Namen der Datensatzgruppe an, auf der eine Werteliste basiert.

Gilt für  Wertelisten

Einstellung  programmgesteuert

Vordefinierte Prozedur

•	GET_LOV_PROPERTY

•	SET_LOV_PROPERTY

Standardwert

Name der zugrundeliegenden Datensatzgruppe

Verwendungshinweise

Stellen Sie Group_Name ein, um die aktuelle Datensatzgruppe der Werteliste zur Laufzeit durch eine andere Datensatzgruppe zu ersetzen. Die Spaltennamen und -typen in der neuen Datensatzgruppe müssen mit den Spaltennamen und -typen in der zu ersetzenden Datensatzgruppe übereinstimmen.


Attribut Hilfe

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Dieses Attribut gibt bei Zeichenmodus-Plattformen den Hilfetext für den Menüpunkt an. Der Hilfetext wird in einem Fenster angezeigt, wenn der Endbenutzer [Hilfe] drückt, während der Menüpunkt ausgewählt ist.

Gilt für  Menüpunkte

Einstellung  Form Builder

Obligatorisch/Optional  Optional


Einschränkungen bei Hilfe

Gilt nur für Anwendungen im Zeichenmodus.


Attribut Beim Beenden verbergen

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Dieses Attribut bestimmt bei nicht-modalen Fenstern, ob Form Builder das Fenster automatisch verbirgt, wenn der Endbenutzer zu einem Objekt in einem anderen Fenster navigiert.

Gilt für  Fenster

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_WINDOW_PROPERTY

•	SET_WINDOW_PROPERTY

Standardwert

Nein


Einschränkungen bei Beim Beenden verbergen

•	Dieses Attribut kann nicht für ein Hauptfenster eingestellt werden: Ein Hauptfenster bleibt immer sichtbar, wenn der Endbenutzer zu einem Objekt in einem anderen Fenster navigiert.


Attribut Höchster zulässiger Wert/Niedrigster zulässiger Wert

  Verwandte Themen	 Alle Attribute

Beschreibung

Bestimmt den höchsten oder niedrigsten Wert einschließlich, den Form Builder in dem Textobjekt zuläßt.

Gilt für  Textobjekte

Einstellung  Form Builder

Vordefinierte Prozedur

GET_ITEM_PROPERTY

Obligatorisch/Optional  Optional

Verwendungshinweise

•	Die folgenden Werte sind für Bereichseinstellungen gültig:

•	Beliebige gültige Konstante

•	Formobjekt (:Blockname.Objektname)

•	Globale Variable (:GLOBAL.my_global)

•	Formparameter (:PARAMETER.my_param)

•	Form Builder wertet die Werte in Objekten nach Datentyp wie folgt aus:

ALPHA	Alphabetisch entsprechend der Sortierforlge bei Ihrem System

CHAR	Alphabetisch entsprechend der Sortierfolge bei Ihrem System

DATE	Chronologisch

DATETIME	Chronologisch

INT	Nmerisch aufsteigend

NUMBER	Numerisch aufsteigend

•	Bei allen Objekten können Sie Datumsangaben

•	im Standardformat für Ihre NLS_LANG-Einstellung oder

•	im Format eingeben, das Sie als Formatmaske angegeben haben.

•	Aus Gründen der Kompatibilität mit früheren Versionen kann der Verweis auf ein Formobjekt oder eine Sequenz auch mit einem voranstehenden Et-Zeichen (&) statt eines voranstehenden Doppelpunkts (:) angegeben werden.

•	Um einen RAW-Wert mit einem voranstehenden Et-Zeichen oder Doppelpunkt anzugeben, fügen Sie ein weiteres Et-Zeichen bzw. einen weiteren Doppelpunkt hinzu (d.h. "&&" bzw. "::"). (Diese Änderung gilt ab Version 6.5 von Forms.)


Attribute Hinweis

 Alle Attribute

Attribut Hinweis (Objekt)

Attribut Hinweis (Menüpunkt)

Attribut Hinweis (Menüsubstitutionsparameter)


Attribut Hinweis (Objekt)

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt objektspezifische Hilfetexte an, die zur Laufzeit auf der Meldungszeile des Hauptfensters angezeigt werden. Ein Hinweistext ist verfügbar, wenn der Eingabefokus in dem Objekt steht.

Gilt für  Alle Objekte, mit Ausnahme von Diagrammobjekten, Anzeigeobjekten und individuellen Objekten

Einstellung  Form Builder

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY (HINT_TEXT)

Standardwert

"Wert eingeben für: <Objektname>"	Für Objekte, die mit dem Datenblock-Assistenten erstellt wurden
NULL	Für alle anderen Objekte
Obligatorisch/Optional  Optional

Verwendungshinweise

Lassen Sie das Attribut Hinweis auf NULL, wenn für das Objekt kein Hinweistext angezeigt werden soll.


Attribut Hinweis (Menüpunkt)

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Bei einer Anwendung im Zeichenmodus gibt dieses Attribut Hinweistext für einen Menüpunkt an. Wenn Menüs in Form von Pulldown-Menüs oder Menüleisten angezeigt werden, wird der Hinweistext auf der Meldungszeile angezeigt, wenn der Eingabefokus in dem Menüpunkt steht.

Bei einer Gesamtbildschirmanzeige wird der Hinweistext, sofern angegeben, als Objektdeskriptor angezeigt, und der Name des Menüpunkts wird ignoriert. (Wenn kein Hinweistext angegeben wird, zeigt Form Builder den Objektnamen als Deskriptor an.)

Gilt für  Menüpunkte

Einstellung  Form Builder

Obligatorisch/Optional  Optional


Einschränkungen bei Hinweis (Menüpunkt)

•	Gilt nur für Anwendungen im Zeichenmodus.


Attribut Hinweis (Menüsubstitutionsparameter)

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt eine Beschreibung oder Instruktion an, die auf der Meldungszeile angezeigt werden soll, wenn der Endbenutzer einen Wert für den Menüsubstitutionsparameter eingibt.

Gilt für  Menüsubstitutionsparameter

Einstellung  Form Builder

Obligatorisch/Optional  Optional


Attribut Horizontale Justierung

 Alle Attribute

Beschreibung

Gibt die horizontale Justierung des Textobjektes mit Links, Rechts, Mitte, Anfang oder Ende an.

Gilt für  Grafiktext

Einstellung  Form Builder

Standardwert

Anfang

Obligatorisch/Optional  Obligatorisch


Attribut Horizontaler Rand

 Bitte zeigen	 Alle Attribute

Beschreibung

Gibt den Abstand zwischen dem linken und rechten Rahmenrand und den Objekten innerhalb des Rahmens an.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

1 Zeicheneinheit (oder der entsprechende Wert, je nach Koordinatensystem der Form)

Obligatorisch/Optional  Obligatorisch


Horizontaler Rand


Attribut Horizontaler Objektversatz

 Bitte zeigen	 Alle Attribute

Beschreibung

Gibt den horizontalen Abstand zwischen den Objekten innerhalb eines Rahmens an.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

2 Zeicheneinheiten (oder der entsprechende Wert, je nach Koordinatensystem der Form)

Obligatorisch/Optional  Obligatorisch


Horizontaler Objektversatz


Attribut Horizontaler Ursprung

 Alle Attribute

Beschreibung

Gibt die Horizontalposition des Textobjektes relativ zum Ursprung mit Links, Rechts oder Mitte an.

Gilt für  Grafiktext

Einstellung  Form Builder

Standardwert

Links

Obligatorisch/Optional  Obligatorisch


Attribut Horizontale Symbolleisten-Leinwand

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Leinwand an, die als horizontale Symbolleiste in dem Fenster angezeigt werden soll. Bei der angegebenen Leinwand muß es sich um eine horizontale Symbolleisten-Leinwand handeln (Attribut Leinwandtyp ist auf Horizontale Symbolleiste gesetzt) und muß dem aktuellen Fenster über das Attribut Fenster zugeordnet sein.

Gilt für  Fenster

Einstellung  Form Builder

Standardwert

Null

Obligatorisch/Optional  Obligatorisch, wenn Sie eine horizontale Symbolleiste erstellen

Verwendungshinweise

•	Im Fenster Attribute zeigt die Popup-Liste für dieses Attribut nur Leinwände an, bei denen das Attribut Leinwandtyp auf Horizontale Symbolleiste eingestellt ist.

•	Zur Laufzeit versucht Form Builder, die angegebene horizontale Symbolleiste in dem Fenster anzuzeigen. Wenn jedoch demselben Fenster mehr als eine Symbolleiste desselben Typs zugewiesen wurde (in diesem Fall wurde das Attribut Leinwandfenster so gesetzt, daß auf das angegebene Fenster verwiesen wird), kann Form Builder bei Navigationsereignissen oder einer Programmsteuerung möglicherweise eine andere Symbolleiste anzeigen.

•	Bei Microsoft Windows wird die angegebene horizontale Symbolleisten-Leinwand nicht in dem Fenster angezeigt, wenn Sie angegeben haben, daß sie in dem MDI-Anwendungsfenster angezeigt werden soll, indem Sie das Formattribut Form Horizontale Symbolleisten-Leinwand eingestellt haben.


Attribut Symbol-Dateiname

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen der Symbol-Ressource an, mit der die Schaltfläche, der Menüpunkt oder das Fenster in Symbolform dargestellt werden soll.

Gilt für  Schaltflächen, Menüpunkte, Fenster

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_MENU_ITEM_PROPERTY

•	SET_MENU_ITEM_PROPERTY

•	GET_WINDOW_PROPERTY

•	SET_WINDOW_PROPERTY

Standardwert

NULL

Obligatorisch/Optional  Optional

Verwendungshinweise

Wenn Sie das Attribut Symbol-Dateiname definieren, geben Sie die Dateinamenerweiterung der Symboldatei nicht an (.ico, .xpm usw.). So geben Sie z.B. my_icon und nicht my_icon.ico an.

Der Symbol-Dateiname sollte nicht mit einem der folgenden Buchstaben enden: A, L, M, S und X (weder Groß- noch Kleinbuchstaben). Diese Buchstaben sind intern für die Symbolskalierung reserviert. Wenn Sie einen der Buchstaben verwenden, werden die Symbole unter Umständen an der falschen Stelle plaziert.

Mit der plattformspezifischen Umgebungsvariablen geben Sie den Ordner an, in dem die Symbol-Ressourcen gespeichert sind. Der Microsoft Windows-Name für diese Variable lautet z.B. UI60_ICON. (Für weitere Informationen zu diesem Variablennamen wird auf die Form Builder-Dokumentation für Ihr Betriebssystem verwiesen.)


Einschränkungen bei Symbol-Dateiname

•	Bei einem Fenster ist dieses Attribut nur gültig, wenn das Attribut Minimieren zulässig auf Ja gesetzt ist.

•	Symbol-Ressourcen müssen in dem zur Laufzeit benutzten Betriebssystem vorhanden sein und dürfen nicht in der Formdefinition enthalten sein. Deshalb sind die Resource-Dateien für Symbole nicht plattformübergreifend portierbar.


Attribut Symbol in Menü

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob ein Symbol in dem Menü neben dem Menüpunkt angezeigt werden soll. Wenn Ja, gibt das Attribut Symbol-Dateiname das Symbol an, das angezeigt wird.

Gilt für  Menüpunkte

Einstellung  Form Builder

Standardwert

Nein

Obligatorisch/Optional  Optional


Attribut Als Symbol

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, daß eine Schaltfläche in Form eines Symbols angezeigt werden soll.

Gilt für  Schaltflächen

Einstellung  Form Builder

Vordefinierte Prozedur

GET_ITEM_PROPERTY

Standardwert

Nein

Obligatorisch/Optional  Optional

Verwendungshinweise

Wenn für Als Symbol Ja angegeben wurde, gibt das Attribut Symbol-Dateiname der Schaltfläche die Symbol-Ressource an, die Form Builder für die Schaltfläche anzeigen soll.


Einschränkungen bei Als Symbol

Ein gültiger Name für eine Symbol-Resource-Datei muß angegeben werden.


Attribut Bildtiefe

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Bildtiefeneinstellung an, die Form Builder für ein Bild verwendet, das aus einer Datei im Dateisystem eingelesen bzw. in eine Datei im Dateisystem geschrieben wird. Gültige Werte sind:

•	Original

•	Monochrom

•	Grau

•	Verweistabelle

•	RGB (Rot, Grün, Blau)

Gilt für  Bildobjekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	WRITE_IMAGE_FILE

Standardwert

Original

Obligatorisch/Optional  Obligatorisch


Attribut Bildformat

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt das Format an, in dem ein Bildobjekt in der Datenbank gespeichert wird. Gültige Werte sind:

•	BMP

•	CALS

•	GIF

•	JFIF

•	PICT

•	RAS

•	TIFF

•	TPIC

Gilt für  Bildobjekte

Einstellung  Form Builder

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	WRITE_IMAGE_FILE

Standardwert

TIFF

Obligatorisch/Optional  Obligatorisch

Verwendungshinweise

•	Das Standardformat zur Bildspeicherung von Oracle ist nicht mehr gültig.

•	Der Wert, den Sie für dieses Attribut festlegen, setzt das Originalformat eines Bildes außer Kraft, wenn der Datensatz, der das Bildobjekt enthält, in der Datenbank gespeichert wird. Wenn das Attribut Bildformat für ein Bildobjekt z.B. auf GIF gesetzt ist und ein TIFF-Bild zur Laufzeit in das Bildobjekt eingefügt wird, wird das eingefügte Bild im GIF-Format gespeichert, wenn der Datensatz in der Datenbank gespeichert wird.


Attribut Implementierungsklasse

  Verwandte Themen	 Alle Attribute

Beschreibung

Identifiziert den Klassennamen eines JavaBean-Containers bzw. einer benutzerdefinierten Implementierung für einen Steuerelementtyp, wenn Sie eine Alternative zu dem standardmäßigen Steuerelement von Form Builder bereitstellen möchten.

Gilt für

Die folgenden Steuerelementtypen:

•	Bean-Bereiche

•	Kontrollkästchen

•	Listenobjekte

•	Schaltflächen

•	Optionsgruppen

•	Textobjekte

Einstellung

Form Builder

Standardwert

Keiner

Obligatorisch/Optional

Für den Bean-Bereich immer obligatorisch. Dieses Attribut identifiziert den Klassennamen des JavaBean-Containers, den Sie der Anwendung hinzufügen. (Wenn dieses Attribut nicht enthalten ist, wird bei der Verwendung der Form ein leeres Quadrat angezeigt.)

Außerdem für jeden anderen oben aufgeführten Steuerelementtyp obligatorisch, wenn die Form eine benutzerdefinierte Implementierung dieses Typs verwenden soll. In diesem Fall wird der Klassenname des alternativen Steuerelements identifiziert.

Einstellung zur Laufzeit

Nein

Verwendungshinweise

•	Das Attribut Implementierungsklasse ist nur für die oben aufgeführten Steuerelementtypen verfügbar und nicht für alle Steuerelementtypen.


Attribut REF-Objekt aufnehmen

 Alle Attribute

Beschreibung

Erstellt ein verborgenes Objekt mit der Bezeichnung REF für diesen Block. Dieses Objekt wird intern benutzt, um Master-Detail-Beziehungen zu koordinieren, die auf einem REF-Link aufgebaut sind. Dieses Objekt kann auch programmgesteuert benutzt werden, um auf die Objekt-ID (OID) einer Zeile in einer Objekttabelle zuzugreifen.

Gilt für

Blöcke, die auf Objekttabellen basieren; insbesondere Master-/Detail-REF-Links

Einstellung  Form Builder

Standardwert

Der Standardwert ist Nein. Wenn jedoch eine Beziehung basierend auf einem REF-Pointer erstellt wird, stellt Form Builder dieses Attribut auf Ja ein.

Obligatorisch/Optional

Für einen Master-Block in einer Master-Detail-Beziehung basierend auf einem REF-Pointer obligatorisch.

Verwendungshinweise

Dieses REF-Objekt wird benutzt, um die Objekt-IDs (OIDs) der Zeilen in einer Objekttabelle zu ermitteln.

Jede Zeile in einer Objekttabelle wird durch eine eindeutige Objekt-ID (OID) identifiziert. Die OID ist ein eindeutiger Bezeichner für diese Zeile. Diese OIDs bilden eine implizite Spalte in einer Objekttabelle.

In einer REF-Pointer-Beziehung zwischen zwei Tabellen enthält die REF-Spalte in der zeigenden Tabelle Kopien der OID-Werte (Adressen) der Tabelle, auf die gezeigt wird. Dies bildet den Link zwischen den beiden Tabellen.

Der Datenblock-Assistent stellt dieses Attribut auf Ja ein und erstellt dieses REF-Objekt, wenn Sie eine Master-Detail-Beziehung basierend auf einem REF-Pointer generieren. Das Objekt hat die Bezeichnung REF und ist im Master-Block gespeichert. Es ist für den Endbenutzer nicht sichtbar. Außerdem stellt der Assistent das Attribut Copy_Value_From_Item in dem Detail-Block so ein, daß auf dieses neue REF-Objekt zugegriffen wird. Auf diese Weise koordiniert Form Builder die Master-Detail-Beziehung zur Laufzeit.


Attribut Menü vererben

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt an, ob das Fenster das aktuelle Formmenü in Fensterverwaltungsprogrammen anzeigen soll, die diese Funktion unterstützen.

Gilt für  Fenster

Einstellung  Form Builder

Standardwert

Ja

Obligatorisch/Optional  Optional


Einschränkungen bei Menü vererben

•	Bei Microsoft Windows nicht gültig.


Attribut Ursprünglicher Tastaturstatus

  Verwandte Themen	 Alle Attribute

Beschreibung

Hinweis:  Dieses Attribut ist für bidirektionale National Language Support- (NLS-) Anwendungen spezifisch.

Mit Ursprünglicher Tastaturstatus wird festgelegt, daß die Tastatur Lokale oder Römische Zeichen generiert, wenn der Eingabefokus zu dem Objekt gesetzt wird, damit der Benutzer sofort mit der Eingabe beginnen kann, ohne den Tastaturstatus umschalten zu müssen.

Wert	Beschreibung
Standardwert	Der anfängliche Tastaturstatus basiert auf dem Wert des Attributs Lesereihenfolge.
Lokal	Der anfängliche Tastaturstatus ist Lokal (Sprache von rechts nach links).
Römisch	Der anfängliche Tastaturstatus ist Römisch (Sprache von links nach rechts).
Gilt für  Anzeigeobjekte, Textobjekte

Einstellung  Form Builder

Verwendungshinweise

•	In den meisten Fällen wird dieses Attribut nur für Textobjekte benutzt.

•	Der Endbenutzer kann die Einstellung  für Ursprünglicher Tastaturstatus außer Kraft setzen, indem er den Umschalter für den Tastaturstatus drückt.


Attribut Ausgangsmenü

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt den Namen des individuellen Menüs in dem Menümodul an, das Form Builder als Hauptmenü bzw. Menü der obersten Ebene für diesen Aufruf benutzen soll. Endbenutzer können nicht über das als Ausgangsmenü angegebene Menü hinausgehen.

Standardmäßig ist das Ausgangsmenü das Menü, das mit dem Menümodulattribut Hauptmenü angegeben wird. Mit dem Attribut Ausgangsmenü können Sie das Attribut Hauptmenü außer Kraft setzen.

Gilt für  Formmodule

Einstellung  Form Builder

Standardwert

Leer (Form Builder benutzt das Standard-Hauptmenü als Ausgangsmenü.)

Obligatorisch/Optional  Optional


Einschränkungen bei Ausgangsmenü

•	Das angegebene Menü muß in dem Menümodul vorhanden sein.


Attribut Ausgangswert (Objekt)

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Standardwert an, den Form Builder dem Objekt zuweisen soll, wenn ein Datensatz erstellt wird. Als Standardwert kann einer der folgenden Werte benutzt werden:

•	RAW-Wert (216, 'TOKYO')

•	Formobjekt (:Blockname.Objektname)

•	Globale Variable (:GLOBAL.my_global)

•	Formparameter (:PARAMETER.my_param)

•	Eine Sequenz (:SEQUENCE.my_seq.NEXTVAL)

Gilt für Kontrollkästchen, Anzeigeobjekte, Listenobjekte, Optionsgruppen, Textobjekte und Benutzerbereiche

Einstellung  Form Builder

Standardwert

Null

Obligatorisch/Optional  Optional für alle Objekte, mit Ausnahme von Optionsgruppen, Kontrollkästchen und Listenobjekten

Bei einer Optionsgruppe ist ein gültiges Attribut Ausgangswert erforderlich, es sei denn,

a) 	die Optionsgruppe gibt Zuordnung anderer Werte anoder

b) 	der mit einer der Optionsschaltflächen in der Gruppe verknüpfte Wert ist NULL.

Bei einem Listenobjekt ist ein gültiger Ausgangswert obligatorisch, es sei denn,

a) 	das Listenobjekt gibt Zuordnung anderer Werte an oder

b) 	der mit einem der Listenenelemente verknüpfte Wert ist NULL.

Bei einem Kontrollkästchen ist ein gültiger Ausgangswert obligatorisch, es sei denn,

a) 	das Kontrollkästchen gibt Zuordnung anderer Werte an oder

b) 	der mit Ausgewählt oder Nicht ausgewählt verknüpfte Wert ist NULL.

Verwendungshinweise

Wenn Sie den Standardwert benutzen, um den Status von Objekten, wie z.B. Kontrollkästchen, Optionsgruppen oder Listenobjekten zu initialisieren, berücksichtigen Sie, daß der Standardwert erst zugewiesen wird, wenn Form Builder einen Datensatz in dem Block erstellt.

•	Untergeordnete Spiegelobjekte werden aus dem Attribut Ausgangswert des Master-Spiegelobjekts initialisiert. Der ON-SEQUENCE-NUMBER-Trigger stammt ebenfalls aus dem Master-Objekt. Wenn das untergeordnete Spiegelobjekt Ausgangswert und ON-SEQUENCE-NUMBER angibt, ignoriert Form Builder diese und gibt eine Warnmeldung aus.

•	Zur Laufzeit wird der von diesem Attribut festgelegte Ausgangswert ignoriert, wenn alle folgenden Bedingungen für das Objekt (oder das Spiegelobjekt) zutreffend sind:

•	Das Objekt ist eine Popup-Liste, T-Liste, Optionsgruppe oder ein Kontrollkästchen.

•	Es ist kein Element vorhanden, das dem Ausgangswert entspricht.

•	Das Objekt läßt keine anderen Werte zu.

•	Aus Gründen der Kompatibilität mit früheren Versionen kann der Verweis auf ein Formobjekt oder eine Sequenz auch mit einem voranstehenden Et-Zeichen (&) statt eines voranstehenden Doppelpunkts (:) angegeben werden.

•	Um einen RAW-Wert mit einem voranstehenden Et-Zeichen oder Doppelpunkt anzugeben, fügen Sie ein weiteres Et-Zeichen bzw. einen weiteren Doppelpunkt hinzu (d.h. "&&" bzw. "::"). (Diese Änderung gilt ab Version 6.5 von Forms.)


Einschränkungen bei Ausgangswert (Objekt)

•	Bei einem Textobjekt darf der Wert nicht außerhalb des Bereichs liegen, der mit den Attributen Niedrigster zulässiger Wert und Höchster zulässiger Wert definiert wird.

•	Bei einer Optionsgruppe muß der Standardwert entweder der Name (nicht die Beschriftung) von einer der Optionsschaltflächen oder der mit einer der Optionsschaltflächen verknüpfte Wert sein. Form Builder prüft zuerst auf den Namen einer Optionsschaltfläche.

•	Bei einem Listenobjekt muß der Standardwert entweder dem Namen eines der Listenelemente oder dem Wert entsprechen, der mit einem der Listenelemente verknüpft ist. Form Builder prüft zuerst auf den Namen eines Listenelements.


Attribut Einsetzen zulässig (Block)

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob Datensätze in den Block eingesetzt werden können.

Gilt für  Blöcke

Einstellung   Form Builder, Programmgesteuert

Vordefinierte Prozedur

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Standardwert

Ja


Attribut Einsetzen zulässig (Objekt)

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob ein Endbenutzer den Wert eines Objekts in einem neuen Datensatz ändern kann (d.h. wenn Record_Status NEW oder INSERT ist).

Wenn Sie Einsetzen zulässig für ein Objekt auf Nein setzen, kann der Endbenutzer das Objekt in einem neuen Datensatz nicht bearbeiten. So kann der Benutzer z.B. keinen Text in ein Textobjekt eingeben, kein Kontrollkästchen ankreuzen bzw. keine Optionsschaltfläche auswählen.

Gilt für  Textobjekte, Kontrollkästchen, Listenobjekte, Optionsschaltflächen, Bildobjekte, benutzerdefinierte Objekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_INSTANCE_PROPERTY

•	GET_ITEM_PROPERTY

•	SET_ITEM_INSTANCE_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Ja

Verwendungshinweise

•	Setzen Sie Einsetzen zulässig auf Nein, wenn der Benutzer in der Lage sein soll, ein Objekt zu überprüfen, es jedoch nicht ändern darf. Bei einem systemgenerierten Schlüsselfeld könnten Sie das Attribut Einsetzen zulässig z.B. auf Nein setzen, um eine Änderung des Schlüssels zu verhindern, während dieser weiter normal angezeigt wird (nicht grau).

•	Setzen Sie das Attribut Aktiviert auf Nein, wenn Sie verhindern möchten, daß ein Objekt auf Mausereignisse reagiert. Deaktivierte Objekte werden grau angezeigt, um die Tatsache hervorzuheben, daß sie im Augenblick nicht anwendbar sind, während der Benutzer bei aktivierten Objekten, für die das Attribut Einsetzen zulässig auf Nein gesetzt ist, den Wert eines Objekts mit der Maus oder der Tastatur durchsuchen kann, den Objektwert jedoch nicht ändern kann.

•	Das Attribut Einsetzen zulässig entspricht im wesentlichen Aktualisieren zulässig, das für Datensätze mit einem Record_Status von QUERY oder CHANGED angewendet wird. Bei Objekten in Datenbankblöcken können Sie mit Einsetzen zulässig in Verbindung mit Aktualisieren zulässig festlegen, ob der Endbenutzer den von einem Objekt angezeigten Wert eingeben oder ändern kann. Bei Objekten in Nicht-Datenbank-Blöcken können Sie ein Nur-Anzeige-Objekt erstellen, ohne dieses zu deaktivieren, wenn Sie Einsetzen zulässig auf Nein einstellen.

•	Wenn Aktiviert oder Sichtbar auf Nein (oder PROPERTY_FALSE zur Laufzeit) eingestellt ist, ist das Attribut Einsetzen zulässig des Objekts oder der Objektinstanz effektiv False.

•	Wenn Sie INSERT_ALLOWED auf Ja (oder PROPERTY_TRUE zur Laufzeit) einstellen, hat dies keine Auswirkung auf Objektinstanzebene, es sei denn, die Einstellung ist konsistent auf Block- und Objektebenen. Der Benutzer kann z.B. keine Daten in eine Objektinstanz eingeben, wenn INSERT_ALLOWED auf Instanzebene auf True eingestellt ist, auf den Objekt- oder Blockebenen jedoch nicht.


Einschränkungen bei Einsetzen zulässig

•	Wenn Sie SET_ITEM_PROPERTY verwenden, um Einsetzen zulässig auf True einzustellen, müssen Sie die Objektattribute wie folgt einstellen:

•	Aktiviert auf Ja (PROPERTY_TRUE zur Laufzeit)

•	Sichtbar auf Ja (PROPERTY_TRUE zur Laufzeit)

•	Wenn Einsetzen zulässig auf mehreren Ebenen (Objektinstanz-, Objekt- und Blockebene) angegeben wird, werden die Werte mit AND miteinander verknüpft. Dies bedeutet, daß die Einstellung von INSERT_ALLOWED auf Ja (PROPERTY_TRUE zur Laufzeit) auf Objektinstanzebene wirkungslos bleibt, es sei denn, die Einstellung ist konsistent auf Block- und Objektebenen. Der Benutzer kann z.B. keine Daten in eine Objektinstanz eingeben, wenn INSERT_ALLOWED auf Instanzebene True ist, auf Objekt- oder Blockebene jedoch nicht.


Attribut Prozedurargumente einfügen

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt Namen, Datentyp und Werte der Argumente an, die an die Prozedur übergeben werden müssen, um Daten in den Datenblock einzufügen. Das Attribut Prozedurargumente einfügen ist nur gültig, wenn das Attribut DML-Datenzieltyp auf Prozedur gesetzt ist.

Gilt für  Blöcke

Einstellung  Form Builder

Standardwert

NULL

Obligatorisch/Optional  Optional


Attribut Prozedurname einfügen

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen der Prozedur an, die für das Einfügen von Daten in den Datenblock benutzt werden soll. Das Attribut Prozedurname einfügen ist nur gültig, wenn das Attribut DML-Datenzieltyp auf Prozedur eingestellt ist.

Gilt für  Blöcke

Einstellung  Form Builder

Standardwert

NULL

Obligatorisch/Optional  Optional


Attribut Spalten für Prozedurergebnismengen einfügen

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt Namen und Datentyp der Spalten für Ergebnismengen an, die mit der Prozedur für das Einfügen von Daten in den Datenblock verknüpft sind. Das Attribut Spalten für Prozedurergebnismengen einfügen ist nur gültig, wenn das Attribut DML-Datenzieltyp auf Prozedur gesetzt ist.

Gilt für  Blöcke

Einstellung  Form Builder

Standardwert

NULL

Obligatorisch/Optional  Optional


Attribut Interaktionsmodus

 Alle Attribute

Beschreibung

Gibt den Interaktionsmodus für das Formmodul an. Mit dem Interaktionsmodus wird festgelegt, wie ein Benutzer während einer Abfrage mit einer Form kommunizieren kann. Wenn Interaktionsmodus auf Blockierend eingestellt ist, können die Benutzer die Form nicht skalieren oder anderweitig mit der Form kommunizieren, bis alle Datensätze für eine Abfrage aus der Datenbank abgerufen wurden. Wenn das Attribut auf Nicht-blockierend eingestellt ist, können Endbenutzer beim Abrufen von Datensätzen mit der Form kommunizieren.

Der nicht-blockierende Interaktionsmodus wird besonders dann benutzt, wenn Sie erwarten, daß die Abfrage zeitaufwendig ist und der Benutzer in der Lage sein soll, die Abfrage zu unterbrechen oder abzubrechen. In diesem Modus zeigt Forms Runtime ein Dialogfeld an, in dem der Benutzer die Abfrage abbrechen kann.

Sie können den Interaktionsmodus nicht programmgesteuert festlegen, können jedoch den Interaktionsmodus mit der vordefinierten Prozedur GET_FORM_PROPERTY programmgesteuert einlesen.

Gilt für  Formmodule

Einstellung  Form Builder

Vordefinierte Prozedur

•	GET_FORM_PROPERTY

Standardwert  Blockierend

Obligatorisch/Optional  Obligatorisch


Attribut Isolationsmodus

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob Transaktionen in einer Sitzung serialisierbar sind oder nicht. Wenn Isolationsmodus auf isolierbar eingestellt ist, sieht der Endbenutzer eine konsistente Ansicht  der Datenbank während der gesamten Dauer der Transaktion unabhängig davon, ob Updates von anderen Benutzern aus anderen Sitzungen festgeschrieben werden oder nicht. Wenn der Endbenutzer eine Zeile in einer Anwendung abfragt, bei der Isolationsmodus auf Serialisierbar eingestellt ist, und ein zweiter Benutzer dieselbe Zeile aus einer anderen Sitzung aktualisiert und festschreibt, erhält der erste Benutzer eine Oracle-Fehlermeldung, daß der Zugriff nicht serialisiert werden kann  (ORA-08177).

Gilt für  Formmodule

Einstellung  Form Builder

Verwendungshinweise

Der serialisierbare Modus wird am besten bei einer Implementierung benutzt, bei der wenige Benutzer eine begrenzte Anzahl von Transaktionen mit einer großen Datenbank durchführen, anders ausgedrückt, bei einer Implementierung, bei der die Gefahr gering ist, daß dieselbe Zeile durch zwei gleichzeitige Transaktionen geändert wird, und bei der lange Transaktionen Abfragen sind. Bei transaktionsintensiven Implementierungen sollte für Isolationsmodus Beim Lesen gespeichert (Standardwert) belassen werden. Der serialisierbare Modus wird am besten benutzt, wenn das Attribut Sperrmodus auf Blockebene auf Verzögert eingestellt ist.

Standardwert

Beim Lesen gespeichert

Obligatorisch/Optional  Obligatorisch


Attribut Objektrollen

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, welche Menürollen eine Zugriffsberechtigung zu einem Menüpunkt haben.

Gilt für  Menüpunkte

Einstellung  Form Builder

Obligatorisch/Optional  Optional

Verwendungshinweise

Sie können nur Benutzern, denen Rollen zugewiesen wurden, die in der Rollenliste angezeigt werden, eine Zugriffsberechtigung erteilen. Um eine Rolle zu dieser Liste hinzuzufügen, stellen Sie das Menümodulattribut Modulrollen ein.


Einschränkungen bei Objektrollen

Ist nur gültig, wenn der Name von mindestens einer Rolle in der Rollenliste für das Menümodul angegeben wurde.


Attribut Objekttyp

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Objekttyp an. Es gibt folgende Objekttypen:

•	ActiveX-Steuerelemente (32-Bit Windows-Plattformen)

•	Bean-Bereiche

•	Diagrammobjekte

•	Kontrollkästchen

•	Anzeigeobjekte

•	Hierarchische Bäume

•	Bilder

•	Listenobjekte

•	OLE-Container

•	Schaltflächen

•	Optionsgruppen

•	Klang

•	Textobjekte

•	Benutzerbereiche

•	VBX-Steuerelemente (nur Microsoft Windows 3.1)

Gilt für: Objekte

Einstellung   Form Builder

StandardwertTextobjekt

Obligatorisch/Optional  Obligatorisch


Attribut Item_Is_Valid

 Alle Attribute

Beschreibung

Gibt an, ob ein Objekt intern als gültig markiert ist.

Gilt für  Objekte

Einstellung  programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Objekt in einem neuen Datensatz: Nein; Objekt in einem abgefragten Datensatz: Ja

Verwendungshinweise

•	Verwenden Sie Item_Is_Valid, um zu prüfen, ob der aktuelle Status eines Textobjekts gültig ist.

•	Setzen Sie Item_Is_Valid auf Ja, damit Form Builder aktuelle Daten in einem Objekt als gültig behandelt und die nachfolgende Validierung überspringt. Setzen Sie Item_Is_Valid auf Nein, damit Form Builder aktuelle Daten in einem Textobjekt als ungültig behandelt und diese einer nachfolgenden Validierung unterwirft.


Attribut Item_Tab_Page

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt das Register an, in das ein Objekt gesetzt werden kann.

Gilt für  Objekte

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

Standardwert

Kein


Einschränkungen bei Item_Tab_Page


Attribut Join-Bedingung

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Definiert die Beziehung, die einen Datensatz im Detail-Block mit einem Datensatz im Master-Block verknüpft.

Gilt für  Beziehungen

Einstellung  Form Builder

Obligatorisch/Optional  Obligatorisch für ein Beziehungsobjekt

Verwendungshinweise

Sie können eine Join-Bedingung mit folgenden Einträgen angeben:

•	Einem Objektnamen, der sowohl im Master-Block als auch im Detail-Block vorhanden ist (block_2.item_3)

•	Einer Gleichheitsbedingung von zwei Objektnamen, wobei ein Objekt im Master-Block und das andere Objekt im Detail-Block vorhanden ist

•	Eine Kombination von Objektnamen und Gleichheitsbedingungen


Einschränkungen bei Join-Bedingung

•	Die maximale Länge einer Join-Bedingung beläuft sich auf 255 Zeichen.


Beispiele für Join-Bedingung

Beispiele:

Um einen Detail-Block über das Textobjekt ORDID, das für beide Blöcke gemeinsam vorhanden ist, mit dem zugehörigen Master-Block zu verknüpfen, definieren Sie die folgende Join-Bedingung:

ORDID

Um den Detail-Block über eine Reihe von Textobjekten mit dem zugehörigen Master-Block zu verknüpfen, definieren Sie die Join-Bedingung wie folgt:

block1.item1 = block2.item1 AND block1.item2 = block2.item2

Beachten Sie, daß die Join-Bedingung die Beziehung zwischen den Objekten in jedem Block und nicht zwischen den Spalten in den Tabellen angibt, auf denen diese Blöcke basieren. Somit müssen die angegebenen Objekte tatsächlich in der Form vorhanden sein, damit die Join-Bedingung gültig ist.


Attribut Join-Stil

 Alle Attribute

Beschreibung

Gibt den Join-Stil des Grafikobjekts als Eckig, Abgerundet oder Rund an.

Gilt für  Grafikobjekte

Einstellung  Form Builder

Standardwert

Eckig

Obligatorisch/Optional  Optional


Attribut Justierung

 Alle Attribute

Beschreibung

Gibt die Textjustierung innerhalb des Objekts an. Die zulässigen Werte für dieses Attribut sind:

Wert	Beschreibung
Links	Linksbündig ausgerichtet, ungeachtet des Attributs Lesereihenfolge.
Zentriert	Zentriert, ungeachtet des Attributs Lesereihenfolge.
Rechts	Rechtsbündig ausgerichtet, ungeachtet des Attributs Lesereihenfolge.
Anfang	Objekttext wird mit dem Anfangsrand an der Einrahmung des Objekts ausgerichtet. Der Anfangsrand hängt von dem Wert des Attributs Lesereihenfolge für das Objekt ab. Anfang wird als rechtsbündige Ausrichtung ausgewertet, wenn als Lesereihenfolge Rechts nach links angegeben wurde, und als linksbündige Ausrichtung, wenn als Lesereihenfolge Links nach rechts angegeben wurde.
Ende	Das Textobjekt ist an dem Endrand der Einrahmung des Objekts ausgerichtet. Der Endrand hängt von dem Wert des Attributs Lesereihenfolge für das Objekt ab. Ende wird als linksbündige Ausrichtung ausgewertet, wenn als Lesereihenfolge Rechts nach links angegeben wurde, und als rechtsbündige Ausrichtung, wenn als Lesereihenfolge Links nach rechts angegeben wurde.

Gilt für  Anzeigeobjekte, Textobjekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Anfang

Verwendungshinweise

•	Bei eindirektionalen Anwendungen (Lesereihenfolge von links nach rechts) sollten Sie in den meisten Fällen den Standardwert, Anfang, akzeptieren. Bei eindirektionalen Anwendungen führt Anfang genau zu denselben Ergebnissen wie Links, während Ende zu denselben Ergebnissen wie Rechts führt.

•	In bidirektionalen Anwendungen gilt folgendes:

•	Wenn die Daten an der Lesereihenfolge des Objekts ausgerichtet werden müssen, wählen Sie Anfang (Standardwert).

•	Wenn die Daten der Lesereihenfolge des Objekts entgegengesetzt ausgerichtet werden müssen, wählen Sie Ende.

•	Dieses Attribut wird bei einigen Fensterverwaltungsprogrammen nicht unterstützt.


Attribut Cursor-Position beibehalten

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt an, daß die Cursor-Position beim erneuten Aufruf des Textobjektes der Cursor-Position beim Verlassen des Textobjektes entsprechen muß.

Gilt für  Textobjekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Nein

Verwendungshinweise

Benutzen Sie dieses Attribut, wenn der Endbenutzer die Möglichkeit haben soll, den Cursor zu einem Objekt zu setzen und dann wieder zu dem teilweise ausgefüllten Objekt zurückzugehen, wobei der Cursor automatisch an das Ende des teilweise ausgefüllten Textes geht.


Einschränkungen bei Cursor-Position beibehalten

Wird bei einigen Fensterverwaltungsprogrammen nicht unterstützt.


Attribut Schlüsselmodus

 Alle Attribute

Beschreibung

Gibt an, wie Form Builder Zeilen in der Datenbank eindeutig kennzeichnet. Dieses Attribut ist für Anwendungen vorgesehen, die mit fremden Datenquellen ausgeführt werden. Bei Anwendungen, die mit ORACLE-Datenquellen benutzt werden, verwenden Sie die Standardeinstellung.

Standardmäßig benutzt die ORACLE-Datenbank eindeutige ROWID-Werte, um jede Zeile zu kennzeichnen. Fremde Datenbanken enthalten das Konstrukt ROWID nicht, sondern verlassen sich ausschließlich auf eindeutige Primärschlüsselwerte zur Kennzeichnung eindeutiger Zeilen. Wenn Sie eine Form zur Ausführung mit einer Nicht-ORACLE-Datenquelle erstellen, müssen Sie Primärschlüssel benutzen und das Blockattribut Schlüsselmodus entsprechend einstellen.

Wert	Beschreibung
Automatisch (Standardwert)	Standardeinstellung. Weist Form Builder an, ROWID-Konstrukte zur Kennzeichnung eindeutiger Zeilen in einer ORACLE-Datenbank zu verwenden, jedoch nur, wenn die Datenquelle ROWID unterstützt.
Nicht aktualisierbar	Gibt an, daß Form Builder keine Primärschlüsselspalten in UPDATE-Anweisungen aufnehmen soll. Benutzen Sie diese Einstellung, wenn die Datenbank die Aktualisierung von Primärschlüsselwerten nicht zuläßt.
Eindeutig	Standardeinstellung. Weist Form Builder an, ROWID-Konstrukte zur Kennzeichnung eindeutiger Zeilen in einer ORACLE-Datenbank zu verwenden.
Aktualisierbar	Gibt an, daß Form Builder UPDATE-Anweisungen ausgeben muß, die Primärschlüsselwerte enthalten. Verwenden Sie diese Einstellung, wenn Primärschlüsselspalten bei Ihrer Datenbank aktualisiert werden können und wenn Sie die Anwendung zur Aktualisierung von Primärschlüsselwerten benutzen möchten.

Gilt für  Blöcke

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Standardwert

Eindeutig

Verwendungshinweise

Wenn das Attribut Schlüsselmodus auf einen der Primärschlüsselmodi gesetzt ist, müssen Sie die Primärschlüsselobjekte in Ihrer Form kennzeichnen, indem Sie das Blockattribut Primärschlüssel durchsetzen für den Block auf Ja einstellen und das Objektattribut Primärschlüssel mindestens für ein Objekt in dem Block auf Ja einstellen.


Attribut Schnelltaste

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt eine logische Funktionstaste an, die mit einem Menüpunkt verknüpft werden soll. Schnelltasten haben die Bezeichnung SCHNELLTASTE1, SCHNELLTASTE2 usw. bis SCHNELLTASTE5. Endbenutzer können den Menüpunkt auswählen, indem sie die Taste bzw. Tastenkombination drücken, die der logischen Schnelltaste zugeordnet ist.

Gilt für  Menüpunkte

Einstellung  Form Builder

Obligatorisch/Optional  Optional

Verwendungshinweise

Die Zuordnung von logischen Schnelltasten an physikalische Gerätetasten wird in der Laufzeit-Resource-Datei definiert. Sie müssen die Resource-Datei in Oracle Terminal bearbeiten, um die Tastenzuordnungen zu ändern. Sie können außerdem in Oracle Terminal zusätzliche Schnelltasten (SCHNELLTASTE6, SCHNELLTASTE7 usw.) erstellen, die Sie dann mit Menüpunkten in einem Menümodul verknüpfen können.


Einschränkungen bei Schnelltasten

•	Sind für Menüpunkte in Form von Trennlinien nicht gültig.

•	Tastenzuordnungen dürfen nicht in Konflikt mit den Standard-Tastenzuordnungen von Form Builder stehen.

•	Bei der Benutzung mit Menüs in Form von Menüleisten können Schnelltasten nur für Menüpunkte in dem gerade angezeigten Menü verwendet werden.


Attribut Tastenbelegung-Hilfetext

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Tasten-Trigger-Beschreibung an, die in dem Tasten-Hilfetext zur Laufzeit angezeigt wird, wenn das Attribut Anzeige in Tastenbelegung auf Ja gesetzt ist. Ein Eintrag in dem Tasten-Bildschirm umfaßt eine Textbeschreibung für den Tastennamen und den damit verknüpften physikalischen Tastenanschlag, z.B. Strg-S.

Gilt für  Trigger

Einstellung  Form Builder

Standardwert

Leer

Verwendungshinweise

•	Wenn der Name oder die Beschreibung nicht in dem Fenster Tasten angezeigt werden soll, setzen Sie das Attribut Tastenbelegung-Hilfetext auf Nein. Dies ist die Standardeinstellung.

•	Wenn der Name der Taste, die dem Trigger entspricht, und die Standardbeschreibung in dem Fenster Tasten angezeigt werden sollen, setzen Sie das Attribut Anzeige in Tastenbelegung auf Ja und lassen Tastenbelegung-Hilfetext leer.

•	Wenn Sie die Standard-Tastenbeschreibung ersetzen möchten, setzen Sie das Attribut Anzeige in Tastenbelegung auf Ja, und geben Sie die gewünschte Beschreibung in das Feld Tastenbelegung-Hilfetext ein.


Einschränkungen bei Tastenbelegung-Hilfetext

Nur bei Tasten-Triggern gültig.


Attribut Tastatur-navigierbar

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Bestimmt, ob der Endbenutzer oder die Anwendung den Eingabefokus während der Standardnavigation in ein Objekt setzen kann. Wenn für ein Objekt Ja angegeben wird, ist das Objekt navigierbar. Wenn Nein angegeben wird, überspringt Form Builder das Objekt und geht in das nächste navigierbare Objekt in der Standard-Navigationsfolge. Die Standard-Navigationsfolge für Objekte wird durch die Reihenfolge der Objekte im Objektnavigator bestimmt.

Gilt für  Alle Objekte, mit Ausnahme von Diagrammobjekten und Anzeigeobjekten

Einstellung   Form Builder, programmgesteuert [NAVIGABLE]

Vordefinierte Prozedur

•	GET_ITEM_INSTANCE_PROPERTY

•	GET_ITEM_PROPERTY

•	SET_ITEM_INSTANCE_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Ja

Verwendungshinweise

•	Wenn Aktiviert oder Sichtbar auf Nein (PROPERTY_FALSE zur Laufzeit) eingestellt ist, ist das Attribut Tastatur-navigierbar des Objekts oder der Objektinstanz effektiv False. Wenn das Attribut Aktiviert zur Laufzeit auf PROPERTY_FALSE eingestellt ist, weist das Attribut Tastatur-navigierbar ebenfalls den Wert PROPERTY_FALSE auf. Wenn das Attribut Aktiviert jedoch nachträglich wieder auf PROPERTY_TRUE eingestellt wird, weist das Attribut Tastatur-navigierbar nicht ebenfalls den Wert PROPERTY_TRUE auf. Dieser Wert muß explizit eingestellt werden.

•	Wenn Tastatur-navigierbar auf mehreren Ebenen (Objektinstanz-, Objekt- und Blockebene) angegeben wird, werden die Werte mit AND miteinander verknüpft. Dies bedeutet, daß die Einstellung von Tastatur-navigierbar auf Ja (bzw. die Einstellung von NAVIGABLE auf PROPERTY_TRUE zur Laufzeit) auf Objektinstanzebene wirkungslos bleibt, es sei denn, dieses Attribut wird konsistent auf Objektebene eingestellt. Der Benutzer kann z.B. nicht zu einer Objektinstanz navigieren, wenn Tastatur-navigierbar auf Instanzebene True ist, auf Objektebene jedoch nicht.

•	Sie können die vordefinierte Prozedur GO_ITEM verwenden, um zu einem Objekt zu navigieren, dessen Attribut Tastatur-navigierbar auf Nein (PROPERTY_FALSE zur Laufzeit) eingestellt ist.


Einschränkungen bei Tastatur-navigierbar

•	Wenn Sie SET_ITEM_PROPERTY verwenden, um NAVIGABLE auf True einzustellen, müssen Sie die Objektattribute wie folgt einstellen:

•	Aktiviert auf Ja (PROPERTY_TRUE zur Laufzeit)

•	Sichtbar auf Ja (PROPERTY_TRUE zur Laufzeit)


Attribut Tastaturstatus

 Alle Attribute

Beschreibung

Gibt unterstützte internationale Tastaturstatus als Beliebig, Nur Roman oder Nur Lokal an.

Gilt für  Internationale Objekte

Einstellung  Form Builder

Standardwert

Beliebig

Obligatorisch/Optional  Obligatorisch


Attribute Beschriftung

 Alle Attribute

Attribut Beschriftung (Objekt)

Attribut Beschriftung (Menüpunkt)

Attribut Beschriftung (Menüsubstitutionsparameter)

Attribut Beschriftung (Register)


Attribut Beschriftung (Objekt)

 Alle Attribute

Beschreibung

Gibt die Textbeschriftung an, die für eine Schaltfläche, ein Kontrollkästchen oder eine Optionsschaltfläche in einer Optionsgruppe angezeigt wird.

Gilt für  Schaltflächen, Kontrollkästchen, Optionsgruppen

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_ITEM_INSTANCE_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY

Standardwert

Leer

Obligatorisch/Optional  Optional


Attribut Beschriftung (Menüpunkt)

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Textbeschriftung für jeden Menüpunkt an.

Gilt für  Menüpunkte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_MENU_ITEM_PROPERTY

•	SET_MENU_ITEM_PROPERTY

Obligatorisch/Optional  Optional

Verwendungshinweise

Jeder Menüpunkt verfügt sowohl über einen Namen als auch eine Beschriftung. Die Beschriftung, die nur in der grafischen Benutzeroberfläche zur Laufzeit benutzt wird, kann sich vom Namen unterscheiden, der programmgesteuert verwendet werden kann.

Im Gegensatz zu dem Namen, der den Namensregeln für PL/SQL entsprechen muß, kann die Beschriftung mehrere Wörter und Satzzeichen enthalten. So ist z.B. Mehr Info... eine zulässige Beschriftung, während der entsprechende Name Mehr_Info wäre.

Wenn Sie einen neuen Menüpunkt im Menüeditor erstellen, gibt Form Builder diesem einen Standard-Namen, wie z.B. MENÜPUNKT2, und eine Standard-Beschriftung <Neuer Menüpunkt>. Wenn Sie die Beschriftung im Menüeditor bearbeiten, z.B. in "Tastenbelegung" ändern, bleibt der Name des Menüpunkts MENÜPUNKT2, bis Sie diesen entweder im Objektnavigator oder in der Attributpalette ändern.


Attribut Beschriftung (Menüsubstitutionsparameter)

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Beschriftung an, die den Endbenutzer zur Eingabe eines Wertes für den Substitutionsparameter auffordert.

Gilt für  Menüsubstitutionsparameter

Einstellung  Form Builder

Obligatorisch/Optional  Optional


Einschränkungen bei Beschriftung (Menüsubstitutionsparameter)

Keine


Attribut Beschriftung (Register)

 Einschränkungen	 Alle Attribute

Beschreibung

Die Beschriftung, die das Register kennzeichnet. Endbenutzer klicken auf das beschriftete Registertab, um die einzelnen Register einer Register-Leinwand anzuzeigen.

Gilt für  Register

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

Obligatorisch/Optional  Optional


Einschränkungen bei Beschriftung (Register)

Keine


Attribut Last_Block

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen des Blocks mit der höchsten Folgenummer in der Form an, wie mit der Blockfolge im Objektnavigator angegeben.

Gilt für  Formmodule

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_FORM_PROPERTY


Attribut Last_Item

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen des Objekts mit der höchsten Folgenummer in dem angegebenen Block an, wie mit der Folge von Objekten im Objektnavigator festgelegt.

Gilt für  Blöcke

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_BLOCK_PROPERTY


Attribut Last_Query

 Alle Attribute

Beschreibung

Gibt die SQL-Anweisung für die letzte Abfrage des angegebenen Blocks an.

Gilt für  Blöcke

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_BLOCK_PROPERTY


Attribut Layout-Datenblock

 Alle Attribute

Beschreibung

Gibt den Namen des Datenblocks an, mit dem der Rahmen verknüpft ist; die Objekte innerhalb dieses Blocks werden innerhalb des Rahmens angeordnet. Ein Block kann nur mit einem Rahmen verknüpft sein. Sie können die Objekte eines Blocks nicht innerhalb mehrerer Rahmen anordnen.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

NULL

Obligatorisch/Optional  Obligatorisch


Attribut Layoutstil

 Bitte zeigen	 Alle Attribute

Beschreibung

Gibt den Layoutstil für die Objekte innerhalb des Rahmens an.

Form	Der Standard-Rahmenstil. Wenn für Rahmenstil Form angegeben wird, ordnet Form Builder die Objekte in einem zweispaltigen Format an, wobei links neben jedem Objekt grafische Text-Prompts angezeigt werden.

Tabellarisch	Wenn Tabellarisch als Rahmenstil angegeben wird, ordnet Form Builder die Objekte in einer einzelnen Zeile nebeneinander an, wobei über jedem Objekt grafische Text-Prompts angezeigt werden.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Form

Obligatorisch/Optional  Obligatorisch


Layoutstile


Attribut Länge (Datensatzgruppe)

 Alle Attribute

Beschreibung

Siehe Spaltenspezifikation.


Attribut Zeilenabstand

 Alle Attribute

Beschreibung

Gibt den Zeilenabstand des Textobjekts als Einfach, Eineinhalbfach, Doppelt, Benutzerdefiniert an. Wenn Benutzerdefiniert ausgewählt wird, bestimmt das Attribut Benutzerdefinierter Abstand den Zeilenabstand.

Gilt für  Grafiktext

Einstellung  Form Builder

Standardwert

Einfach

Obligatorisch/Optional  Obligatorisch


Attribut Linienbreite

 Alle Attribute

Beschreibung

Gibt die Breite des Objektrandes in Punkt (1/72 Zoll) an. (Identisch mit dem Graphics Builder-Attribut Randbreite).

Gilt für  Grafikobjekte

Einstellung  Form Builder

Obligatorisch/Optional  Optional


Attribut Wert Listenobjekt

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt den Wert an, der mit einer bestimmten Optionsschaltfläche verknüpft ist.

Gilt für  Optionsschaltflächen

Einstellung  Form Builder

Standardwert

NULL

Obligatorisch/Optional  Obligatorisch

Verwendungshinweise

Wenn Sie das Feld Wert Listenobjekt leer lassen, ist der mit der Optionsschaltfläche verknüpfte Wert NULL.


Einschränkungen bei Wert Listenobjekt

•	Der Wert muß unter den mit Optionsschaltflächen verknüpften Werten eindeutig sein.


Attribut Werteliste

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Werteliste an, die dem Textobjekt zugeordnet werden soll. Wenn eine Werteliste einem Textobjekt zugeordnet ist, können Endbenutzer zu dem Objekt navigieren und [Werteliste] drücken, um die Werteliste aufzurufen. Um Endbenutzer zu unterrichten, daß eine Werteliste verfügbar ist, zeigt Form Builder die Wertelisten-Anzeige in der Meldungszeile an, wenn der Eingabefokus in einem Textobjekt steht, dem eine Werteliste zugeordnet ist.

Gilt für  Textobjekte

Einstellung  Form Builder

Vordefinierte Prozedur

GET_ITEM_PROPERTY

Obligatorisch/Optional  Optional


Einschränkungen bei Werteliste

Die Werteliste muß in dem aktiven Formmodul vorhanden sein.


Attribut Listenstil

 Alle Attribute

Beschreibung

Gibt den Anzeigestil für das Listenobjekt an, d.h. Popup-Liste, Kombinationsfeld oder T-Liste. Die Anzeigestile für Popup-Liste und Kombinationsfeld belegen weniger Platz als eine T-Liste, die Endbenutzer müssen die Popup-Liste oder das Kombinationsfeld jedoch öffnen, um Listenelemente zu sehen. Eine T-Liste bleibt "geöffnet", und die Benutzer können mehr als einen Wert gleichzeitig sehen, wenn die Liste groß genug zur Anzeige mehrerer Werte ist.

Gilt für  Listenobjekte

Einstellung  Form Builder

Standardwert

Popup-Liste

Verwendungshinweise

Der Anzeigestil, den Sie für das Listenobjekt auswählen, hat keine Auswirkungen auf die Datenstruktur des Listenobjekts.


Attribut Listentyp

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt an, wie Sie das Datensatzgruppen-Objekt referenzieren wollen, auf dem die Werteliste basiert. Jeder Werteliste ist eine Datensatzgruppe zugewiesen, aus der die Werte zur Laufzeit abgeleitet werden.

Gilt für

Wertelisten

Einstellung  Form Builder

Standardwert

Abfrage

Obligatorisch/Optional  Obligatorisch

Verwendungshinweise

Für dieses Attribut sind die folgenden Einstellungen gültig:

Datensatzgruppe	Gibt an, daß Sie die Werteliste auf einer bestehenden Datensatzgruppe aufbauen möchten. Wenn Sie diese Option auswählen, müssen Sie den Namen der Datensatzgruppe in der Dropdwon-Liste Datensatzgruppe wählen. Bei der angegebenen Datensatzgruppe kann es sich entweder um eine statische Datensatzgruppe oder eine Abfrage-Datensatzgruppe handeln. Sie muß schon in der aktiven Form vorhanden sein..

Alt	Diese Option ist aus Kompatibilitätsgründen mit früheren Versionen von Form Builder enthalten. Sie kann in neuen Anwendungen nicht benutzt werden.


Einschränkungen bei Listentyp

Keine


Attribut X-Position Liste

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die horizontale (x-) Koordinate der oberen linken Ecke der Werteliste bezogen auf den Bildschirm an. Wenn Sie eine Werteliste einem Textobjekt zuordnen, indem Sie das Attribut Werteliste einstellen, können Sie auch die Attribute X-Position Liste und Y-Position Liste einstellen, um die Standard-Anzeigekoordinaten außer Kraft zu setzen, die für die Werteliste angegeben sind.

Gilt für  Textobjekte

Einstellung  Form Builder

Vordefinierte Prozedur

GET_ITEM_PROPERTY

Standardwert

0; gibt an, daß Form Builder die standardmäßige horizontale (x-) Koordinate für die Werteliste verwenden soll, wie mit dem Attribut X-Position Liste angegeben.

Obligatorisch/Optional  Obligatorisch

Verwendungshinweise

•	Wenn Sie das Attribut X-Position Liste auf 0 und das Attribut Y-Position Liste ebenfalls auf 0 einstellen, zeigt Form Builder die Werteliste bei den Bildschirmkoordinaten an, die Sie beim Erstellen der Werteliste angegeben haben. Wenn Sie Positionskoordinaten angeben, setzen diese Koordinaten die Standard-Positionskoordinaten der Werteliste außer Kraft.

•	Das Attribut Werteliste muß angegeben sein.


Attribut Y-Position Liste

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die vertikale (y-) Koordinate der oberen linken Ecke der Werteliste bezogen auf den Bildschirm an. Wenn Sie eine Werteliste einem Textobjekt zuordnen, indem Sie das Attribut Werteliste einstellen, können Sie auch die Attribute Y-Position Liste und X-Position Liste angeben, um die standardmäßigen Bildschirmkoordinaten außer Kraft zu setzen, die für die Werteliste angegeben wurden.

Gilt für  Textobjekte

Einstellung  Form Builder

Vordefinierte Prozedur

GET_ITEM_PROPERTY

Standardwert

0; gibt an, daß Form Builder die standardmäßige vertikale (y-) Koordinate für die Werteliste benutzen soll, wie mit dem Attribut Y-Position Liste angegeben.

Obligatorisch/Optional  Obligatorisch

Verwendungshinweise

•	Wenn Sie das Attribut X-Position Liste auf 0 und das Attribut Y-Position Liste ebenfalls auf 0 einstellen, zeigt Form Builder die Werteliste bei den Bildschirmkoordinaten an, die Sie beim Erstellen der Werteliste angegeben haben. Wenn Sie Positionskoordinaten angeben, setzen diese Koordinaten die Standard-Positionskoordinaten der Werteliste außer Kraft.

•	Das Attribut Werteliste muß angegeben sein.


Attribut In Datenblockmenü aufgelistet/Blockbeschreibung

 Einschränkungen

Gibt an, ob der Block im Blockmenü aufgelistet werden soll. Wenn ja, wird die Beschreibung angegeben, die für den Block benutzt werden soll.

Form Builder verfügt über ein vordefiniertes Blockmenü, mit dem Endbenutzer eine Liste mit Blöcken in der aktuellen Form aufrufen können, indem sie [Blockmenü] drücken. Wenn der Endbenutzer einen Block aus der Liste auswählt, navigiert Form Builder zu dem ersten eingebbaren Objekt in dem Block.

Gilt für  Blöcke

Einstellung  Form Builder

Standardwert

Ja. Blockbeschreibung: Bei einem neuen Block NULL. Bei einem bestehenden Block der Blockname zu dem Zeitpunkt, an dem der Block erstellt wurde.

Obligatorisch/Optional  Optional


Einschränkungen bei In Datenblockmenü aufgelistet/Blockbeschreibung

Der Block wird nicht im Blockmenü angezeigt, wenn Sie das Attribut In Datenblockmenü aufgelistet auf Ja einstellen, das Attribut Blockbeschreibung jedoch leer lassen.


Attribut Prozedurargumente sperren

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Namen, Datentypen und Werte der Argumente an, die für das Sperren von Daten an die Prozedur übergeben werden müssen. Das Attribut Prozedurargumente sperren ist nur gültig, wenn für das Attribut DML-Datenzieltyp Prozedur angegeben wurde.

Gilt für  Blöcke

Einstellung  Form Builder

Standardwert

NULL

Obligatorisch/Optional  Optional


Attribut Prozedurname sperren

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen der Prozedur an, die für das Sperren von Daten benutzt werden soll. Das Attribut Prozedurname sperren ist nur gültig, wenn für das Attribut DML-Datenzieltyp Prozedur angegeben wird.

Gilt für  Blöcke

Einstellung  Form Builder

Standardwert

NULL

Obligatorisch/Optional  Optional


Attribut Spalten für Prozedurergebnismengen sperren

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Namen und Datentypen für Spalten von Ergebnismengen an, die mit der Prozedur für das Sperren von Daten verknüpft sind. Das Attribut Spalten für Prozedurergebnismengen sperren ist nur gültig, wenn das Attribut DML-Datenzieltyp auf Prozedur eingestellt ist.

Gilt für  Blöcke

Einstellung  Form Builder

Standardwert

NULL

Obligatorisch/Optional  Optional


Attribut Datensatz sperren

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt an, daß Form Builder versuchen soll, die Zeile in der Datenbank zu sperren, die dem aktuellen Datensatz in dem Block entspricht, sobald der Wert des Textobjektes entweder vom Endbenutzer oder programmgesteuert geändert wird.

Gilt für  Textobjekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Nein

Verwendungshinweise

•	Geben Sie für dieses Attribut Ja an, wenn es sich bei dem Textobjekt um ein Steuerobjekt handelt (ein Objekt, das nicht mit einer Spalte einer Basistabelle verknüpft ist), Form Builder die Zeile, die dem aktuellen Datensatz in dem Block entspricht, jedoch dennoch in der Datenbank sperren soll.

•	Wird besonders für Verweis-Textobjekte verwendet, wenn der zugrundeliegende Datensatz gesperrt werden muß.

•	Um das Attribut Datensatz sperren mit SET_ITEM_PROPERTY einzustellen, verwenden Sie die Konstante LOCK_RECORD_ON_CHANGE.


Einschränkungen bei Datensatz sperren

Ist nur gültig, wenn es sich bei dem Objekt um ein Steuerobjekt (Objektattribut Basistabelle auf Nein eingestellt) in einem Datenblock handelt.


Attribut Sperrmodus

 Alle Attribute

Beschreibung

Gibt an, wann Form Builder versuchen soll, Datenbanksperren für Zeilen zu erhalten, die abgefragten Datensätzen in der Form entsprechen. In der folgenden Tabelle werden die zulässigen Einstellungen für das Attribut Sperrmodus angegeben.

Wert	Beschreibung
Automatisch (Standardwert)	Identisch mit Sofort, wenn die Datenquelle eine Oracle-Datenbank ist. Bei anderen Datenquellen bestimmt Form Builder die verfügbaren Sperrfunktionen und versucht, das Verhalten von Sofort so weit wie möglich durchzuführen.
Sofort	Form Builder sperrt den Datensatz, sobald der Endbenutzer eine Taste drückt, um den Wert in einem Textobjekt einzugeben oder zu bearbeiten.
Verzögert	Form Builder sperrt den Datensatz nur, während die Transaktion an die Datenbank abgeschickt wird. Der Datensatz ist nicht gesperrt, während er vom Benutzer bearbeitet wird. Form Builder verhindert den vom Benutzer ausgelösten Commit-Vorgang, wenn sich Feldwerte im Block geändert haben.

Gilt für  Blöcke

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Standardwert

Automatisch

Verwendungshinweise

Bei den meisten Anwendungen benutzen Sie die Standardeinstellung Automatisch.

Die Einstellung Sofort bleibt bestehen, um die Kompatibilität mit bestehenden Anwendungen zu gewährleisten, es gibt jedoch keinen Grund, diese Einstellung in neuen Anwendungen zu verwenden. Benutzen Sie statt dessen Automatisch.

Die Einstellung Verzögert wird besonders bei Anwendungen eingesetzt, die die Anzahl von Sperren oder die Zeit minimieren müssen, während der Zeilen gesperrt bleiben. Verwenden Sie die verzögerte Sperre, wenn das Attribut Isolationsmodus der Form auf Serialisierbar eingestellt ist.

Die wichtigsten Nachteile der verzögerten Sperre sind:

•	Die Änderungen, die ein Endbenutzer an einem Block vornimmt, müssen möglicherweise beim Speichern erneut durchgeführt werden.

•	Die Sperre eines anderen Benutzers kann den ersten Endbenutzer zwingen, entweder endlos zu warten oder seine Änderungen aufzugeben.


Attribut Magischer Menüpunkt

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt einen der folgenden vordefinierten Menüpunkte für benutzerdefinierte Menüs an: Ausschneiden, Kopieren, Einfügen, Löschen, Rückgängig, Info, ?, Beenden oder Fenster. Magische Menüpunkte werden automatisch in dem ursprünglichen Stil der Plattform angezeigt, auf der die Form ausgeführt wird, wobei die entsprechende Schnelltaste zugewiesen wird.

Die Befehle Ausschneiden, Kopieren, Einfügen, Löschen, Fenster und Beenden verfügen über eine von Form Builder bereitgestellte vordefinierte Funktionalität, während den anderen magischen Menüpunkten Befehle zugeordnet sein können.

Gilt für  Menüpunkte

Einstellung  Form Builder

Standardwert

Ausschneiden

Obligatorisch/Optional  Optional

Verwendungshinweise

Für dieses Attribut sind die folgenden Einstellungen gültig:

Einstellung	Beschreibung
Ausschneiden, Kopieren, Einfügen, Löschen	Diese Menüpunkte führen die üblichen Vorgänge zur Textbearbeitung durch. Form Builder stellt deren Funktionalität bereit, so daß der Entwickler keinen Befehl für diese Menüpunkte eingeben kann.
Rückgängig, Info	Für diese Menüpunkte gibt es keine vordefinierte Funktionalität, so daß der Entwickler einen Befehl für diese Menüpunkte eingeben muß. Für diese Menüpunkte kann ein beliebiger Befehlstyp benutzt werden, mit Ausnahme von Menü.
Hilfe	Der Befehl für den Menüpunkt ? (Hilfe) muß Menu lauten. Der Entwickler stellt die Funktionalität für die Menüpunkte in diesem Untermenü bereit.
Beenden	Beenden verfügt ebenfalls über eine vordefinierte Funktionalität, so daß der Entwickler diesem Menüpunkt keinen Befehl zuweisen kann.
Fenster	Der magische Menüpunkt Fenster enthält ein Untermenü mit allen geöffneten Fenstern, so daß der Benutzer einen dieser Menüpunkte aktivieren kann. Wenn der magische Menüpunkt Fenster über einen Befehl verfügt, mit dem ein Untermenü aufgerufen wird, enthält dieses Untermenü sowohl die Liste mit geöffneten Fenstern als auch die benutzerdefinierten Untermenüpunkte in einer von Form Builder festgelegten Reihenfolge. Der Befehlstyp für einen magischen Menüpunkt Fenster ist Null oder Menü.


Einschränkungen bei Magischer Menüpunkt

•	Ein bestimmter magischer Menüpunkt kann nur einmal in der ganzen Menühierarchie für ein bestimmtes Menümodul angezeigt werden. So kann es sich z.B. bei einem Menü, das den magischen Menüpunkt Ausschneiden enthält, nicht um ein Untermenü mit zwei verschiedenen Optionen in dem Menümodul handeln.

•	Lassen Sie die Attribute Symbol, Schnelltaste und Hinweis für den magischen Menüpunkt leer.


Attribut Hauptmenü

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen des individuellen Menüs in dem Dokument an, das zur Laufzeit als Haupt- oder Ausgangsmenü benutzt werden soll.

Wenn Sie ein Pulldown-Menü erstellen, müssen Sie dieses Attribut nicht ändern: Es wird automatisch auf den Namen des ersten erstellten Menüs gesetzt und danach aktualisiert, wenn Sie den Namen dieses Menüs ändern.

Das Attribut Hauptmenü wird in den meisten Fällen mit Gesamtbildschirmmenüs benutzt, um die Menüs zu begrenzen, auf die der Benutzer zugreifen kann. Endbenutzer können nicht zu einem Menü navigieren, das in der Menümodulhierarchie über dem Hauptmenü steht.

Gilt für  Menümodule

Einstellung  Form Builder

Standardwert

Leer

Obligatorisch/Optional  Obligatorisch

Verwendungshinweise

Wenn Sie das Menümodul einer Form zuordnen, indem Sie die entsprechenden Attribute im Attributblatt Formmodul einstellen, können Sie ein anderes Menü in dem Dokument als Hauptmenü angeben, indem Sie das Attribut Ausgangsmenü festlegen.


Attribut Zuordnung anderer Werte

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, wie ein abgerufener oder zugewiesener Wert, bei dem es sich nicht um einen der vordefinierten Werte handelt, die mit einem bestimmten Listenelement oder einer Optionsschaltfläche verknüpft sind, interpretiert werden soll.

Gilt für  Listenobjekte, Schaltflächen

Einstellung  Form Builder

Standardwert

Leer

Obligatorisch/Optional  Optional

Verwendungshinweise

•	Lassen Sie dieses Attribut leer, um anzugeben, daß für dieses Objekt bzw. diese Optionsschaltfläche keine anderen Werte zulässig sind. Abgefragte Datensätze, die einen anderen Wert enthalten, als den vom Benutzer definierten Elementwert, werden schweigend zurückgewiesen. Jeder Versuch, einen anderen Wert zuzuweisen, ist unzulässig.

•	Ein Wert, den Sie angeben, muß als eine der folgenden Referenzen ausgewertet werden:

•	Wert, der einem der Listenelemente oder einer der Optionsschaltflächen zugewiesen ist

•	Name (nicht Beschriftung) eines der Listenelemente


Attribut Maximieren zulässig

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt an, daß Endbenutzer die Größe des Fensters ändern können, indem sie die vom Laufzeit-Fensterverwaltungsprogramm zur Verfügung gestellten Zoom-Funktionen verwenden.

Gilt für  Fenster

Einstellung  Form Builder

Standardwert

Ja


Einschränkungen bei Maximieren zulässig

•	Nur gültig, wenn für Skalieren zulässig Nein angegeben wurde.


Attribut Maximale Länge

 Alle Attribute

Beschreibung

Gibt die maximale Länge des Datenwertes an, der in dem Objekt gespeichert werden kann.

Gilt für  Alle Objekte, mit Ausnahme von Schaltflächen, Bildobjekten und Diagrammobjekten

Einstellung  Form Builder

Vordefinierte Prozedur

GET_ITEM_PROPERTY

Standardwert

•	Bei einem Datenbankobjekt die Länge der entsprechenden Spalte in der Datenbanktabelle. Hinweis: Wenn der Datentyp des Objekts NUMBER ist, wird die maximale Länge auf die definierte Spaltelänge plus zwei eingestellt, um die mögliche Benutzung eines Minuszeichens (bei negativen Werten) und eines Dezimalzeichens zu berücksichtigen.

•	Bei einem Steuerelement 30

•	Bei einem LONG-Objekt 240 Byte

Obligatorisch/Optional  Obligatorisch

Verwendungshinweise

1	Zur Laufzeit erhöht Forms den Wert des Attributs Maximale Länge, wenn die Formatmaske des Objekts eine größere Länge erfordert. (Bei der Formatmaske kann es sich um eine explizite Maksse handelt, die vom Entwickler der Form für dieses Objekt angegeben wird, oder um eine der impliziten Masken, die von Forms in den internen Konvertierungsvorgängen benutzt wird.)

2	2  Bei CHAR-Werten beläuft sich die Maximale Länge auf 2.048 Zeichen.

Hinweis:  Berücksichtigen Sie folgendes, wenn Sie Anwendungen für einen Multi-Byte-Zeichensatz schreiben:

•	Mit Form Builder können Endbenutzer die volle Anzahl von Ein-Byte-Zeichen eingeben bis zu der angegebenen maximalen Länge.

•	Wenn der Endbenutzer eine Kombination aus Ein-Byte- und Multi-Byte-Zeichen eingibt, die eine Zeichenfolge erzeugt, deren Gesamtlänge in Byte die maximale Länge für das Objekt überschreitet, wird die Zeichenfolge auf die nächste Ganzzahl abgeschnitten, und eine Warnmeldung wird angezeigt. Um diese Situation zu umgehen, sollten Sie die maximale Länge für das Objekt auslösen. (Wenn Maximale Länge die Anzeigebreite des Objekts überschreitet, kann der Endbenutzer automatisch einen Bildlauf durch den Inhalt des Objekts vornehmen.)


Attribut Maximale Länge (Formparameter)

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt die maximale Länge in Zeichen eines Formparameters vom Typ CHAR an.

Gilt für  Formparameter

Einstellung  Form Builder

Standardwert

Bei einem Parameter vom Typ CHAR 30

Obligatorisch/Optional  Obligatorisch


Einschränkungen bei Maximale Länge (Formparameter)

•	Die maximale Länge eines CHAR-Parameters beläuft sich auf 2.048 Byte.


Attribut Maximale Länge (Menüsubstitutionsparameter)

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die maximale Länge eines Menüsubstitutionsparameters in Zeichen an.

Gilt für  Menüsubstitutionsparameter

Einstellung  Form Builder

Standardwert

30

Obligatorisch/Optional  Obligatorisch


Attribut Max. Objekte pro Zeile

 Alle Attribute

Beschreibung

Gibt die maximale Anzahl von Objekten an, die innerhalb eines Rahmens auf jeder Zeile angezeigt werden können.

Wenn für  Max. Objekte pro Zeile 0 (Standardwert) angegeben wird, gibt es keinen Höchstwert - Form Builder ordnet die maximale Anzahl von Objekten pro Zeile innerhalb eines Rahmens an.

Dieses Attribut ist gültig, wenn für das Attribut Rahmenstil Form und für das Attribut Vertikales Füllen Nein angegeben wurde.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

0

Obligatorisch/Optional  Obligatorisch


Attribut Maximale Abfragezeit

 Alle Attribute

Beschreibung

Dieses Attribut bietet die Möglichkeit, eine Abfrage abzubrechen, wenn die abgelaufene Zeit der Abfrage den Wert dieses Attributs überschreitet.

Gilt für  Forms, Blöcke

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_FORM_PROPERTY

•	GET_BLOCK_PROPERTY

Obligatorisch/Optional  Optional

Verwendungshinweise

Dieses Attribut ist nur sinnvoll, wenn für das Attribut Alle Datensätze abfragen Ja angegeben wurde.


Attribut Maximal abgerufene Datensätze

 Alle Attribute

Beschreibung

Gibt an, nach wie vielen abgerufenen Datensätzen eine Abfrage abgebrochen wird.

Gilt für  Forms, Blöcke

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_FORM_PROPERTY

•	GET_BLOCK_PROPERTY

Obligatorisch/Optional  Optional

Verwendungshinweise

Das Attribut Maximal abgerufene Datensätze ist nur dann sinnvoll, wenn die Attribute Abfrage erlaubt und Alle Datensätze abfragen auf Ja eingestellt sind. Mit dem Attribut Maximal abgerufene Datensätze können Sie die Anzahl der bei einer Abfrage zurückgegebenen Datensätze begrenzen.


Attribut Menübeschreibung

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Für Anwendungen, die im Zeichenmodus in den Pulldown- und Leisten-Menüstilen ausgeführt werden, gibt dieses Attribut die Zeichenfolge an, die auf der Meldungszeile angezeigt wird, wenn der Endbenutzer zu dem Menü navigiert. Beim Gesamtbildschirmstil gibt dieses Attribut die Zeichenfolge an, die das Menümodul identifiziert.

Gilt für  Menümodule

Einstellung  Form Builder

Standardwert

Standard-Dokumentname

Obligatorisch/Optional  Optional


Einschränkungen bei Menübeschreibung

•	Gilt nur für Anwendungen im Zeichenmodus.


Attribut Menüordner

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Ordner an, in dem Form Builder nach der Laufzeit-Menüdatei .MMX suchen soll. Dieses Attribut gilt nur, wenn Form Builder die Laufzeit-Menüdatei .MMX beim Durchsuchen einer Datenbank suchen soll, und nicht als direkte Referenz.

Wenn Sie die Datenbank durchsuchen, muß das Menümodul in der Datenbank gespeichert sein. Zur Laufzeit fragt Form Builder die in der Datenbank gespeicherte Menümoduldefinition ab, um den Ordner und Dateinamen der Laufzeit-Menüdatei .MMX zu ermitteln. Mit den Attributen Menüordner und Menüdateiname wird der Pfad angegeben, in dem Form Builder nach der .MMX-Menüdatei suchen soll.

Gilt für  Menümodule

Einstellung  Form Builder

Standardwert

Leer

Obligatorisch/Optional  Optional

Verwendungshinweise

Wenn der Verzeichnispfad nicht angegeben wird, sucht Form Builder zuerst im Standardordner für die Datei und dann in den vordefinierten Suchpfaden. Weitere Informationen über Suchpfade finden Sie in der Form Builder-Dokumentation für Ihre Plattform.


Einschränkungen bei Menüordner

Nicht gültig, wenn eine direkte Referenz benutzt wird, um den Speicherort der Laufzeit-Menüdatei .MMX anzugeben. Die direkte Referenz wird benutzt, wenn Sie einer Form ein Menü zuordnen, indem Sie das Formmodul-Attribut Menüquelle auf Ja einstellen.


Attribut Menüdateiname

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen der Laufzeit-Menüdatei .MMX an, nach der Form Builder beim Starten der Form suchen soll. Dieses Attribut gilt nur, wenn Form Builder die Laufzeit-Menüdatei beim Durchsuchen der Datenbank suchen soll und nicht bei einer direkten Referenzierung.

Wenn Sie die Datenbank durchsuchen, muß das Menümodul in der Datenbank gespeichert sein. Zur Laufzeit fragt Form Builder die Menümoduldefinition ab, die in der Datenbank gespeichert ist, um den Ordner und Dateinamen der Laufzeit-Menüdatei .MMX zu ermitteln. Mit den Menümodulattributen Menüordner und Menüdateiname wird der Pfad angegeben, in dem Form Builder nach der Menüdatei .MMX suchen soll.

Gilt für  Menümodule

Einstellung  Form Builder

Standardwert

Attribut Modulname

Obligatorisch/Optional  Obligatorisch

Verwendungshinweise

Wenn Sie keine Angabe für den Ordner machen, sucht Form Builder zuerst im Standardordner nach der Datei und danach in den vordefinierten Suchpfaden. Für weitere Informationen über Suchpfade wird auf die Form Builder-Dokumentation für Ihre Plattform verwiesen.


Einschränkungen bei Menüdateiname

•	Die Dateinamenerweiterung .MMX ist nicht obligatorisch.


Attribut Menüpunkt-Code

 Alle Attribute

Beschreibung

Enthält die PL/SQL-Befehle für einen Menüpunkt.

Gilt für  Menüpunkte

Einstellung  Form Builder

Obligatorisch/Optional  Obligatorisch

Verwendungshinweise

Wenn Sie auf die Schaltfläche Weitere... klicken, wird der PL/SQL-Editor für den Menüpunkt geöffnet, so daß Sie die PL/SQL-Befehle bearbeiten können.


Attribut Menüpunkt Optionsgruppe

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen der Optionsgruppe an, zu der der aktuelle Menüpunkt in Form einer Optionsgruppe gehört.

Gilt für  Menüpunkte

Einstellung  Form Builder

Obligatorisch/Optional  Obligatorisch

Verwendungshinweise

Geben Sie dieselbe Optionsgruppe für alle Options-Menüpunkte an, die zu derselben logischen Gruppe gehören.


Einschränkungen bei Menüpunkt Optionsgruppe

•	Options-Menüpunkte müssen in demselben Menü nebeneinander stehen.

•	Nur eine Optionsgruppe pro einzelnem Menü ist zulässig.


Attribut Menüpunkttyp

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Typ des Menüpunkts an: Normal, Ausgewählt, Magisch, Option oder Trennlinie. Der Typ bestimmt, wie der Menüpunkt angezeigt wird und ob der Menüpunkt über einen zugehörigen Befehl verfügt.

Gilt für

Menüpunkte

Einstellung  Form Builder

Standardwert

Normal

Verwendungshinweise

Die folgenden Menüpunkttypen sind verfügbar:

Normal	Standardwert. Standard-Textmenüpunkt.

Ausgewählt	Gibt einen Booleschen Menüpunkt an, der Ja oder Nein ist, d.h. ausgewählt oder nicht ausgewählt.

Wann immer der Endbenutzer einen Menüpunkt Ausgewählt wählt, schaltet Form Builder den Status dieses Menüpunkts um und führt den mit diesem Menüpunkt verknüpften Befehl aus, sofern vorhanden.

Magisch	Gibt einen der folgenden vordefinierten Menüpunkte an: Ausschneiden, Kopieren, Einfügen, Löschen, Rückgängig, Info, ?, Beenden und Fenster. Magische Menüpunkte werden automatisch im ursprünglichen Stil der Plattform angezeigt, auf der die Form ausgeführt wird, an der von den Regeln der Plattform bestimmten Position und mit der entsprechenden zugewiesenen Schnelltaste. Ausschneiden, Kopieren, Einfügen, Löschen, Fenster und Beenden verfügen über eine von Form Builder bereitgestellte vordefinierte Funktionalität, während mit anderen magischen Menüpunkten Befehle verknüpft werden müssen.

Option	Gibt einen Booleschen Menüpunkt an, der Bestandteil einer Optionsgruppe ist. Geben Sie den Namen der Optionsgruppe in das Attributfeld Optionsgruppe ein. Es ist immer nur ein Options-Menüpunkt in einer Gruppe ausgewählt.

Wenn der Endbenutzer einen Options-Menüpunkt auswählt, schaltet Form Builder den Auswahlstatus des Menüpunkts um und führt den entsprechenden Befehl aus, sofern vorhanden.

Trennlinie	Eine Linie oder ein anderes grafisches Objekt. Sie geben den Menüpunkt Trennlinie an, um Menüpunkte in einem Menü voneinander zu trennen. Ein Menüpunkt Trennlinie kann nicht ausgewählt werden. Deshalb kann diesem Menüpunkt kein Befehl zugewiesen werden.

•	Mit den vordefinierten Prozeduren GET_MENU_ITEM_PROPERTY und SET_MENU_ITEM_PROPERTY können Sie den Status von Ausgewählt- und Option-Menüpunkten einlesen und einstellen.

•	Die magischen Menüpunkte Ausschneiden, Kopieren, Löschen und Einfügen werden automatisch von Form Builder aktiviert und deaktiviert. Sie können außerdem die vordefinierten Prozeduren GET_MENU_ITEM_PROPERTY und SET_MENU_ITEM_PROPERTY verwenden, um den Status von magischen Menüpunkten programmgesteuert einzulesen und einzustellen, das Ergebnis der Deaktivierung magischer Menüpunkte variiert jedoch je nach Verhalten der anfänglichen Plattform.


Einschränkungen bei Menüpunkttyp

Das Menü der obersten Ebene darf nur normale oder magische Menüpunkte enthalten.


Attribut Menümodul

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen des Menüs an, das mit dieser Form benutzt werden soll. Wenn dieses Attribut auf Standard eingestellt ist, führt Form Builder die Form mit dem Standardmenü aus, das in jede Form integriert ist. Wenn NULL angegeben wird, führt Form Builder die Form ohne ein Menü aus.

Wenn ein anderer Wert als Standard oder Null angegeben wird, bestimmt das Attribut Menüquelle, wie die Einstellung des Attributs Menümodul interepretiert wird:

•	Wenn für das Attribut Menüquelle Ja angegeben wird, gibt das Menümodul den Namen der Laufzeit-Menüdatei .MMX an, die Form Builder mit dieser Form benutzen soll.

•	Wenn das Attribut Menüquelle auf Nein eingestellt ist, wird der Name des Menümoduls in der Datenbank angegeben, das Form Builder beim Starten der Form abfragen soll, um den Namen der Menüdatei .MMX zu ermitteln, die mit dieser Form benutzt werden soll.

Gilt für  Formmodule

Einstellung  Form Builder

Standardwert

Standard, gibt an, daß Form Builder die Form mit dem Standard-Formmenü ausführen soll.

Obligatorisch/Optional  Optional


Attribut Menürolle

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Sicherheitsrolle an, die Form Builder zur Ausführung des Menüs benutzen soll. Wenn das Attribut Menürolle angegeben wird, führt Form Builder das angegebene Menü so aus, als wäre dem aktuellen Endbenutzer die Zugriffsberechtigung zu der Sicherheitsrolle zugewiesen worden.

Gilt für  Formmodule

Einstellung  Form Builder

Obligatorisch/Optional  Optional

Verwendungshinweise

Das Attribut Menürolle ist nur aus Gründen der Abwärtskompatibilität enthalten. Es wird empfohlen, dieses Attribut in neuen Anwendungen nicht zu benutzen.

In früheren Versionen von Form Builder konnten Entwickler mit dem Attribut Menürolle ein Menü testen, indem sie eine Master-Rolle erstellt haben, die die Zugriffsberechtigung zu allen Menüpunkten in dem Menü hatte, und indem sie das Menü dann unter dieser Rolle ausgeführt haben. Sie können dasselbe Ergebnis erzielen, indem Sie das Menümodulattribut Sicherheit verwenden auf Nein einstellen. Wenn für Sicherheit verwenden Nein angegeben wird, haben alle Endbenutzer Zugang zu allen Menüpunkten, und Sie brauchen keine Zugriffsberechtigung zu einer bestimmten Rolle, um Ihre Anwendung zu testen.


Attribut Menüquelle

  Verwandte Themen	 Alle Attribute

Beschreibung

Mit dem Attribut Menüquelle können Sie den Speicherort der ausführbaren .MMX-Datei angeben, wenn Sie einem Formmodul ein benutzerdefiniertes Menü zuordnen. Form Builder lädt die Datei .MMX beim Starten der Form.

Gilt für  Formmodule

Einstellung  Form Builder

Standardwert

Ja

Obligatorisch/Optional  Optional

Verwendungshinweise

Durch Einstellung des Attributs Menüquelle können Sie den Speicherort der ausführbaren Menüdatei .MMX entweder über eine direkte Referenz oder durch Durchsuchen der Datenbank angeben. In den meisten Fällen werden Sie die direkte Referenz zum Dateisystem verwenden. Das Durchsuchen der Datenbank ist aus Gründen der Abwärtskompatibilität enthalten.

Direkte Referenz	Um die .MMX-Datei direkt zu referenzieren, setzen Sie das Attribut Menüquelle auf Ja, und geben Sie dann Pfad und Dateiname der .MMX-Datei in dem Feld Menümodul an.
Durchsuchen der Datenbank	Um das Menü durch ein Durchsuchen der Datenbank zu referenzieren, stellen Sie das Attribut Menüquelle auf Nein ein, und geben Sie dann den Namen des Menümoduls ein, das in der Datenbank gespeichert ist. Beim Starten der Form fragt Form Builder die Menümoduldefinition ab, um den Namen der benötigten ausführbaren .MMX-Datei zu ermitteln. (Mit den Menümodulattributen Menüdateiname und Menüordner wird der Pfad zu der .MMX-Datei in dem Dateisystem definiert.) Wenn die Form zur Laufzeit geladen wird, sucht Form Builder die .MMX-Datei, indem die Datenbank auf den Zeiger zu der .MMX-Datei abgefragt wird, die von den Menümodulattributen Menüdateiname und Menüordner definiert wird.
In der folgenden Tabelle werden die Attributeinstellungen und Datenbankbedingungen verglichen, die erforderlich sind, wenn ein Menü einer Form über die direkte Referenz zugeordnet wird oder über das Durchsuchen der Datenbank.

Bedingung oder Attribut	Direkte Referenz	Durchsuchen der Datenbank
Formmodulattribut: Menüquelle	Ja	Nein
Formmmodulattribut: Menümodul	Name der ausführbaren .MMX-Datei	Name des .MMB-Menüentwurfsdokuments in der Datenbank
Menümodulattribut: Menüordner/Menüdateiname	n.a.	Pfad/Dateiname der .MMX-Datei im Dateisystem
Datenbankverbindung	Nicht obligatorisch	Beim Starten der Form obligatorisch
Speicherort der Menüdatei .MMB beim Laden	n.a.	Muß in der Datenbank gespeichert sein
Die folgenden Diagramme vergleichen die direkte Referenz mit dem Durchsuchen der Datenbank, wenn ein benutzerdefiniertes Menü einer Form zugeordnet wird.


Attribut Menüstil

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Anzeigestil für das Menü an, den Form Builder bei der Ausführung eines benutzerdefinierten Menüs verwenden soll, das mit dem Attribut Menümodul angegeben wird. Die Optionen für den Anzeigestil umfassen Pulldown oder Leiste.

Gilt für  Formmodule

Einstellung  Form Builder

Standardwert

Pulldown

Obligatorisch/Optional  Optional


Einschränkungen bei Menüstil

Ist nicht gültig, wenn das Attribut Menümodul auf STANDARD eingestellt ist. (Das Standardmenü kann nur als Pulldown-Menü angezeigt werden.)


Attribut Meldung

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt die Meldung an, die in einem Warnfenster angezeigt werden soll.

Gilt für  Warnfenster

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

SET_ALERT_PROPERTY

Obligatorisch/Optional  Optional


Einschränkungen bei Meldung

Maximal 200 Zeichen. Beachten Sie jedoch, daß die maximale Anzahl von angezeigten Zeichen von mehreren Faktoren beeinflußt wird, einschließlich der ausgewählten Schriftart und den Einschränkungen des Laufzeit-Fensterverwaltungsprogramms.


Attribut Minimieren zulässig

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt ein Fenster an, das bei Fensterverwaltungsprogrammen, die diese Funktion unterstützen, als Symbol angezeigt werden kann.

Gilt für  Fenster

Einstellung  Form Builder

Standardwert

Ja

Obligatorisch/Optional  Optional


Einschränkungen bei Minimieren zulässig

Kann nicht für ein Hauptfenster eingestellt werden; ein Hauptfenster kann immer als Symbol angezeigt werden.


Attribut Minimierter Titel

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Textfolge an, die unter einem Fenster in Form eines Symbols angezeigt werden soll.

Gilt für  Fenster

Einstellung  Form Builder

Standardwert

Nein

Obligatorisch/Optional  Optional


Einschränkungen bei Minimierter Titel

Ist nur zutreffend, wenn für das Attribut Minimieren zulässig Ja angegeben wurde.


Attribut Modal

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob ein Fenster modal sein soll. Bei modalen Fenstern muß ein Endbenutzer das Fenster schließen, bevor mit der Verarbeitung fortgefahren werden kann.

Gilt für  Fenster

Einstellung  Form Builder

Standardwert

Nein


Einschränkungen bei Modal

•	Wenn für Modal Ja angegeben wird, werden die folgenden Fensterattribute ignoriert:

• Schließen zulässig	• Skalieren zulässig
• Symbol-Dateiname	• Minimierter Titel
• Minimieren zulässig	• Menü vererben
• Verschieben zulässig	• Maximieren zulässig
• Vertikale/Horizontale Bildlaufleiste anzeigen


Attribut Module_NLS_Lang

 Alle Attribute

Beschreibung

Gibt den vollständigen aktuellen Wert der für die Form definierten Umgebungsvariablen NLS_LANG zur Unterstützung von Ländereinstellungen an. MODULE_NLS_LANG ist gleichbedeutend mit dem Verketten der folgenden Attribute:

•	MODULE_NLS_LANGUAGE (nur Sprache)

•	MODULE_NLS_TERRITORY (nur Gebiet)

•	MODULE_NLS_CHARACTER_SET (nur Zeichensatz)

Gilt für  Forms

Einstellung  Kann aus Form Builder nicht eingestellt werden. Muß auf Betriebssystemebene eingestellt werden.

Vordefinierte Prozedur

GET_FORM_PROPERTY

Standardwert

Der Standardwert ist im allgemeinen "America_American.WE8ISO8859P1", alle Standardwerte können jedoch anschlußspezifisch sein.


Attribut Modulrollen

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, welche Datenbankrollen für die Menüpunkte in diesem Menümodul verfügbar sind.

Gilt für  Menümodule

Einstellung  Form Builder

Obligatorisch/Optional  Optional

Verwendungshinweise

Benutzen Sie Menümodulrollen, um die ganze Liste mit Rollen mit Zugriffsberechtigung zu diesem Menümodul zu erstellen. Danach geben Sie mit Menürollen an, welche dieser Rollen eine Zugriffsberechtigung zu einem spezifischen Menüpunkt haben soll.


Attribut Mausnavigation

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob Form Builder die Navigation zu dem Menüpunkt durchführen soll, wenn der Endbenutzer den Menüpunkt mit einer Maus aktiviert.

Gilt für  Schaltflächen, Kontrollkästchen, Listenobjekte, Optionsgruppen

Einstellung  Form Builder

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Ja

Verwendungshinweise

Wenn für Mausnavigation Nein angegeben wird, führt Form Builder keine Navigation zu dem Menüpunkt durch, wenn der Endbenutzer diesen mit der Maus aktiviert. So wird z.B. ein Mausklick in einer Schaltfläche oder einem Kontrollkästchen nicht als Navigationsereignis behandelt. Form Builder löst für die Schaltfläche oder das Kontrollkästchen definierte Trigger (wie z.B. When-Button-Pressed) aus, der Eingabefokus bleibt jedoch im aktuellen Menüpunkt.

Wenn für Mausnavigation Ja angegeben wurde, navigiert Form Builder zu dem Menüpunkt und löst dabei die entsprechenden Navigations- und Validierungstrigger aus.


Einschränkungen bei Mausnavigation

Gilt nur bei mausgesteuerten Umgebungen.


Attribut Maus-Navigationsbegrenzung

 Alle Attribute

Beschreibung

Gibt an, wie weit außerhalb des aktuellen Menüpunkts ein Endbenutzer mit der Maus navigieren kann. Das Attribut Maus-Navigationsbegrenzung kann auf folgende Werte eingestellt werden:

Form	(Standard) Mit dieser Einstellungen können Endbenutzer zu jedem beliebigen Objekt in der aktuellen Form navigieren.

Block.	Mit dieser Einstellung können Endbenutzer nur zu Objekten navigieren, die innerhalb des aktuellen Blocks liegen.

Datensatz	Mit dieser Einstellung können Endbenutzer nur zu Objekten navigieren, die innerhalb des aktuellen Datensatzes liegen.

Objekt	Diese Einstellung verhindert, daß Endbenutzer aus dem aktuellen Objekt heraus navigieren können. Mit dieser Einstellung wird jede Mausnavigation durch die Endbenutzer verhindert.

Gilt für  Forms

Einstellung  Form Builder

Standardwert

Form


Attribut Verschieben zulässig

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob ein Fenster verschoben werden kann oder nicht.

Fenster können vom Endbenutzer von einer Position zu einer anderen auf dem Bildschirm verschoben werden. Sie können auch programmgesteuert über die entsprechende vordefinierte Prozedur verschoben werden kann.

Gilt für  Fenster

Einstellung  Form Builder

Standardwert

Ja

Obligatorisch/Optional  Optional

Verwendungshinweise

Im allgemeinen wird empfohlen, daß Fenster immer verschoben werden können.


Einschränkungen bei Verschieben zulässig

Dieses Attribut kann für ein Fenster mit der Bezeichnung ROOT_WINDOW nicht auf Nein eingestellt werden.  Diese Fenster können immer verschoben werden.


Attribut Mehrzeilig

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Bestimmt, ob es sich bei dem Textobjekt um einen einzeiligen oder mehrzeiligen Editierbereich handelt.

Gilt für  Textobjekte

Einstellung  Form Builder

Vordefinierte Prozedur

GET_ITEM_PROPERTY

Standardwert

Nein

Verwendungshinweise

Wenn Sie Ja für das Attribut Mehrzeilig angeben, kann ein Textobjekt mehrere Textzeilen speichern. Allerdings wird das Textobjekt nicht automatisch groß genug zur Anzeige von mehreren Zeilen gemacht. Sie müssen die Attribute Breite, Höhe, Schriftgrad und Maximale Länge einstellen, um sicherzustellen, daß die gewünschte Anzahl von Zeilen und Zeichen angezeigt wird.

Einzeilig	Wenn Sie die Zeilenschaltungstaste drücken, während der Eingabefokus in einem einzeiligen Textobjekt steht, wird eine Funktion [Nächstes Objekt] ausgelöst.

Mehrzeilig	Wenn Sie die Zeilenschaltungstaste drücken, während der Eingabefokus in einem mehrzeiligen Textobjekt steht, wird in dem Objekt eine neue Zeile begonnen.


Einschränkungen bei Mehrzeilig

Gilt nur für Textobjekte mit dem Datentyp CHAR, ALPHA oder LONG.


Attribut Mehrfachauswahl

 Alle Attribute

Beschreibung

Gibt an, ob mehrere Knoten gleichzeitig ausgewählt werden können. Wenn dieses Attribut auf FALSE eingestellt ist, wird die Auswahl des ersten Knotens aufgehoben, wenn versucht wird, einen zweiten Knoten auszuwählen, so daß nur der zweite Knoten ausgewählt ist.

Gilt für  Hierarchische Bäume

Einstellung  Form Builder

Standardwert

False

Obligatorisch/Optional  Obligatorisch


Attribut Name

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den internen Namen des Objekts an. Jedes Objekt muß einen gültigen Namen haben, der den Oracle-Benennungsregeln entspricht.

Gilt für  Alle Objekte

Einstellung  Form Builder

Standardwert

OBJECT_CLASS N, wobei OBJECT_CLASS dem Typ des Objekts entspricht, und N die nächste verfügbare Nummer in dem Dokument ist, z.B. BLOCK5 oder EDITOR3.

Obligatorisch/Optional  Obligatorisch

Verwendungshinweise

Bei Menüpunkten und Optionsschaltflächen hat das Attribut Name eindeutige Eigenschaften:

•	Mit dem Attribut Name wird ein internes Handle angegeben, das zur Laufzeit nicht angezeigt wird.

•	Mit dem Attribut Name wird der Menüpunkt bzw. die Optionsschaltfläche im PL/SQL-Code referenziert.

•	Mit dem Attribut Beschriftung wird die Textbeschriftung angegeben, die für den Menüpunkt oder die aktuelle Optionsschaltfläche angezeigt wird.

Bei Menüsubstitutionsparametern gelten die folgenden Einschränkungen:

•	Ist auf einen zwei Zeichen umfassenden Bezeichner bei Substitutionsparametern beschränkt.

•	Muß alphanumerisch sein.

•	Muß mit einem Buchstaben beginnen.

•	Wenn der Parameter in einer Menübefehlszeile referenziert wird, muß vor dem Parameter ein Et-Zeichen (&RN) stehen.

•	In einer PL/SQL-Referenz muß vor dem Parameter ein Doppelpunkt stehen (:SS).


Einschränkungen bei Name

•	Kann maximal 30 Zeichen umfassen.

•	Muß mit einem Buchstaben beginnen.

•	Kann Buchstaben, Zahlen und die Sonderzeichen $, #, @ und _ (Unterstreichungszeichen) umfassen.

•	Groß- und Kleinschreibung muß  nicht berücksichtigt werden.

•	Muß das Objekt eindeutig identifizieren:

•	Objektnamen müssen unter den Objektnamen in demselben Block eindeutig sein.

•	Beziehungsnamen müssen unter Beziehungen eindeutig sein, die denselben Master-Block haben.

•	Kann für das Hauptfenster nicht eingestellt werden.


Beispiele für Name

Beispiel

ENAME, ADDRESS1, PHONE_NO1


Attribut Navigationsstil

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, wie ein Vorgang Nächtes Objekt oder Vorheriges Objekt verarbeitet wird, wenn der Eingabefokus im letzten navigierbaren Objekt bzw. ersten navigierbaren Objekt in dem Block steht.

Gilt für  Blöcke

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Standardwert

Selber Datensatz

Verwendungshinweise

Für dieses Attribut sind die folgenden Einstellungen gültig:

Selber Datensatz	Der Standard-Navigationsstil. Ein Vorgang Nächstes Objekt aus dem letzten navigierbaren Objekt in dem Block setzt den Eingabefokus zu dem ersten navigierbaren Objekt in dem Block in diesem Datensatz.

Datensatz ändern	Ein Vorgang Nächstes Objekt aus dem letzten navigierbaren Objekt des Blocks setzt den Eingabefokus zu dem ersten navigierbaren Objekt in dem Block im nächsten Datensatz. Wenn es sich bei dem aktuellen Datensatz um den letzten Datensatz in dem Block handelt und keine Abfrage geöffnet ist, erstellt Form Builder einen neuen Datensatz. Wenn eine geöffnete Abfrage in dem Block vorhanden ist (der Block enthält abgefragte Datensätze), lädt Form Builder zusätzliche Datensätze nach Bedarf.

Block ändern	Ein Vorgang Nächstes Objekt aus dem letzten navigierbaren Objekt des Blocks versetzt den Eingabefokus zu dem ersten navigierbaren Objekt im ersten Datensatz des nächsten Blocks. Gleichermaßen versetzt ein Vorgang Vorheriges Objekt aus dem ersten navigierbaren Objekt in dem Block den Eingabefokus zum letzten Objekt im aktuellen Datensatz des vorherigen Blocks. Die Attribute Nächster Navigationsblock und Vorheriger Navigationsblock können so eingestellt werden, daß ein "nächster" oder "vorheriger" Navigationsblock neu definiert wird.


Attribut Nächster Navigationsblock

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen des Blocks an, der als "nächster Navigationsblock" bezogen auf diesen Block definiert ist. Standardmäßig ist dies der Block mit der nächsthöheren Sequenznummer in der Form, wie mit der Reihenfolge von Blöcken im Objektnavigator angegeben. Sie können dieses Attribut einstellen, um den "nächsten" Block für Navigationszwecke neu zu definieren.

Gilt für  Blöcke

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Standardwert

Der Name des Blocks mit der nächsthöheren Sequenznummer, wie mit der Reihenfolge der Blöcke im Objektnavigator angegeben.

Obligatorisch/Optional  Optional

Verwendungshinweise

Durch Einstellung dieses Attributs wird der Wert des Attributs NextBlock nicht geändert.


Attribut Nächstes Navigationsobjekt

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen des Objekts an, das als "nächstes Navigationsobjekt" bezogen auf dieses aktuelle Objekt definiert ist. Standardmäßig ist das nächste Navigationsobjekt das Objekt mit der nächsthöheren Sequenznummer, wie mit der Reihenfolge von Objekten im Objektnavigator angegeben. Sie können dieses Attribut jedoch einstellen, um das "nächste Objekt" für Navigationszwecke neu zu definieren.

Gilt für  Objekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

NULL. NULL gibt die Standardfolge an, die dem Namen des Objekts mit der nächsthöheren Sequenznummer entspricht.


Einschränkungen bei Nächstes Navigationsobjekt

Das als Nächstes Navigationsobjekt angegebene Objekt muß in demselben Block wie das aktuelle Objekt stehen.


Attribut NextBlock

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen des Blocks mit der nächsthöheren Sequenznummer in der Form an, wie mit der Reihenfolge von Blöcken im Objektnavigator angegeben.

Gilt für  Blöcke

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_BLOCK_PROPERTY

Verwendungshinweise

•	Sie können alle Blöcke in einer Form programmgesteuert ansprechen, indem Sie mit GET_BLOCK_PROPERTY die Werte für First_Block und NextBlock ermitteln.

•	Der Wert von NextBlock ist NULL, wenn kein Block mit einer höheren Sequenznummer als der aktuelle Block vorhanden ist.

•	Die Einstellung des Attributs Nächster Navigationsblock hat keine Auswirkung auf den Wert von NextBlock.


Attribut NextItem

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen des Objekts mit der nächsthöheren Sequenznummer in dem Block an, wie mit der Reihenfolge von Objekten im Objektnavigator angegeben.

Gilt für  Objekte

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_ITEM_PROPERTY


Attribut Next_Detail_Relation

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen der Beziehung zurück, die denselben Detail-Block wie die angegebene Beziehung hat. Wenn keine derartige Beziehung vorhanden ist, wird NULL zurückgegeben.

Gilt für  Beziehungen

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_RELATION_PROPERTY

Verwendungshinweise

Benutzen Sie dieses Attribut mit dem Attribut FIRST_DETAIL_RELATION, um durch eine Liste mit Beziehungen für einen bestimmten Master-Block zu gehen.


Attribut Next_Master_Relation

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen der nächsten Beziehung zurück, die denselben Master-Block wie die angegebene Beziehung hat. Wenn keine derartige Beziehung vorhanden ist, wird NULL zurückgegeben.

Gilt für  Beziehungen

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_RELATION_PROPERTY

Verwendungshinweise

Benutzen Sie dieses Attribut mit dem Attribut FIRST_MASTER_RELATION, um durch eine Liste mit Beziehungen für einen bestimmten Master-Block zu gehen.


Attribut Anzahl angezeigter Objekte

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Anzahl von Objektinstanzen an, die für das Objekt angezeigt werden, wenn das Objekt in einem Block mit mehreren Datensätzen steht.

Wenn Sie Anzahl angezeigter Objekte auf > 0 einstellen, wird das Blockattribut Anzahl angezeigter Datensätze außer Kraft gesetzt.

Gilt für  Objekte

Einstellung  Form Builder

Standardwert

Null. Mit Null wird angegeben, daß das Objekt die Anzahl von Instanzen anzeigen soll, die mit dem Blockattribut Anzahl angezeigter Datensätze angegeben wird.

Obligatorisch/Optional  Optional

Verwendunghinweise

Benutzen Sie Anzahl angezeigter Objekte, um einzelne Schaltflächen, Diagramme, OLE-Objekte, Bilder, VBX-Steuerelemente (bei 16-Bit Microsoft Windows) oder ActiveX-Steuerelemente (bei 32-Bit Windows) als Bestandteil eines Blocks mit mehreren Datensätzen zu erstellen. Wenn Anzahl angezeigter Datensätze z.B. auf 5 eingestellt ist, um einen Block mit mehreren Datensätzen zu erstellen, und Sie eine Schaltfläche erstellen, werden standardmäßig 5 Schaltflächen erstellt, eine pro Datensatz. Um nur eine Schaltfläche zu erhalten, setzen Sie Anzahl angezeigter Objekte auf 1.


Einschränkungen bei Anzahl angezeigter Objekte

Der Wert für Anzahl angezeigter Objekte muß <= Anzahl angezeigter Datensätze sein.


Attribut Anzahl gepufferter Datensätze

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt die Mindestanzahl von Datensätzen an, die während einer Abfrage in dem Block im Speicher gepuffert werden.

Gilt für  Blöcke

Einstellung  Form Builder

Standardwert

NULL; das heißt die zulässige Mindesteinstellung (der Wert für das Attribut Anzahl angezeigter Datensätze plus einer Konstanten von 3).

Obligatorisch/Optional  Optional

Verwendungshinweise

•	Form Builder puffert zusätzliche Datensätze über den angegebenen Maximalwert hinaus in einer temporären Datei auf der Festplatte.

•	Die Verarbeitungsgeschwindigkeit kann verbessert werden, indem die Anzahl gepufferter Datensätze erhöht wird.

•	Sparen Sie Speicherplatz, indem Sie die Anzahl von gepufferten Datensätzen verringern. Dies kann jedoch zu einer langsameren Platten-E/A führen.

•	Wenn Sie erwarten, daß der Block eine große Anzahl von Datensätzen entweder als Ergebnis einer Abfrage oder aufgrund einer umfangreichen Dateneingabe enthält, sollten Sie den Wert für Anzahl gepufferter Datensätze erhöhen, um die Leistung zu verbessern.

•	Verringern Sie den Wert für Anzahl gepufferter Datensätze, wenn Sie wahrscheinlich große Objekte abrufen werden, wie z.B. Bildobjekte, da die Objekte möglicherweise viel Speicherplatz belegen.


Einschränkungen bei Anzahl gepufferter Datensätze

•	Wenn Sie einen Wert unter dem Mindestwert angeben, gibt Form Builder eine Fehlermeldung zurück, wenn Sie versuchen, den Wert zu akzeptieren.


Attribut Anzahl angezeigter Datensätze

 Alle Attribute

Beschreibung

Gibt die maximale Anzahl von Datensätzen an, die gleichzeitig in dem Block angezeigt werden können. Der Standardwert ist 1 Datensatz. Wenn Sie für Anzahl angezeigter Datensätze einen größeren Wert als 1 angeben, wird ein Block mit mehreren Datensätzen erstellt.

Gilt für  Blöcke

Einstellung  Form Builder

Vordefinierte Prozedur

GET_BLOCK_PROPERTY

Standardwert

1

Obligatorisch/Optional  Obligatorisch


Attribut OLE-Aktivierungsstil

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt das Ereignis an, das das OLE-enthaltende Objekt aktiviert.

Gilt für  OLE-Container

Einstellung  Form Builder

Standardwert

Doppelklick

Verwendungshinweise

Für dieses Attribut sind die folgenden Einstellungen gültig:

Doppelklicken	Der standardmäßige OLE-Aktivierungsstil. Ein OLE-Objekt wird durch Doppelklicken an einer beliebigen Stelle in dem OLE-Objekt aktiv.

Fokus	Das OLE-Objekt wird durch Navigieren zu dem OLE-Objekt aktiv.

Manuell	Ein OLE-Objekt wird aktiv, indem Bearbeiten oder Öffnen aus dem Untermenü Objekt des OLE-Popup-Menüs ausgewählt wird. Das Attribut OLE-Popup-Menü anzeigen muß auf Ja eingestellt sein, und der Menüpunkt Objekt muß so eingestellt sein, daß er angezeigt und aktiviert wird. Auf das OLE-Popup-Menü kann zugegriffen werden, wenn der Maus-Cursor in dem OLE-Objekt steht und die rechte Maustaste gedrückt wird.

Wenn für das Attribut OLE-Popup-Menü anzeigen Ja angegeben ist und der Menüpunkt Objekt angezeigt und aktiviert ist, können Sie das OLE-Objekt auch manuell über das OLE-Popup-Menü aktivieren, wenn als OLE-Aktivierungsstil Doppelklicken oder Fokus angegeben wurde.


Einschränkungen bei OLE-Aktivierungsstil

Nur bei Microsoft Windows und Macintosh gültig.


Attribut OLE-Klasse

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Bestimmt, welche Klasse von OLE-Objekten in einem OLE-Container enthalten sein kann. Für dieses Attribut sind die folgenden Einstellungen gültig:

NULL	Die standardmäßige OLE-Klasse. Sie können eine beliebige OLE-Objektklasse einfügen, die in der Registrierungsdatenbank in einem OLE-Container angegeben wird.

Anderer Wert als NULL	Nur OLE-Objekte aus der angegebenen Klasse können zur Laufzeit in einen OLE-Container eingefügt werden. Die OLE-Objektklassen, die zur Auswahl verfügbar sind, hängen von den Informationen ab, die in der Registrierungsdatenbank enthalten sind. Der Inhalt der Registrierungsdatenbank wird von den OLE-Server-Anwendungen bestimmt, die in Ihrem Rechner installiert sind.

Gilt für  OLE-Container

Einstellung  Form Builder

Standardwert

NULL

Verwendungshinweise

Sie wählen eine bestimmte Klasse aus, wenn Sie eine Anwendung erstellen möchten, mit der Endbenutzer das aktuelle OLE-Objekt im OLE-Container ändern können, jedoch verhindern möchten, daß Endbenutzer OLE-Objekte aus einer bestimmten Klasse erstellen.


Einschränkungen bei OLE-Klasse

Nur bei Microsoft Windows und Macintosh gültig.


Attribut OLE in Forms aktiviert

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob OLE in Forms aktiviert benutzt wird, um eingebettete OLE-Objekte zu bearbeiten. Für dieses Attribut sind folgende Einstellungen gültig:

Ja	Schaltet OLE in Forms aktiviert ein. OLE in Forms aktiviert wird benutzt, um eingebettete OLE-Objekte zu bearbeiten; verknüpfte Objekte werden mit der externen Aktivierung aktiviert.

Nein	Schaltet OLE in Forms aktiviert aus und schaltet die externe Aktivierung ein. Die externe Aktivierung wird für das Bearbeiten von eingebetteten oder verknüpften OLE-Objekten benutzt.

Gilt für  OLE-Container

Einstellung  Form Builder

Standardwert

Nein


Einschränkungen bei OLE in Forms aktiviert

•	Nur bei Microsoft Windows und Macintosh gültig.


Attribut OLE-Austauschunterstützung

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob der OLE-Server des eingebetteten Objekts die Austauschunterstützung während der internen Aktivierung zuläßt. Bei der Austauschaktivierung kann mehr als ein eingebettetes Objekt ein aktives Bearbeitungsfenster innerhalb eines OLE-Containers enthalten. Für dieses Attribut gelten die folgenden Einstellungen:

Ja	Schaltet die Austauschunterstützung für eingebettete Objekte ein, bei denen das Attribut OLE in Forms aktiviert auf Ja eingestellt ist.

Nein	Schaltet die Austauschunterstützung bei eingebetteten Objekten aus, bei denen das Attribut OLE in Forms aktiviert auf Ja eingestellt ist.

Gilt für  OLE-Container

Einstellung  Form Builder

Standardwert

Ja


Einschränkungen bei OLE-Austauschunterstützung

•	Nur bei Microsoft Windows und Macintosh gültig.


Attribut OLE-Popup-Menüpunkte

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, welche OLE-Popup-Menübefehle angezeigt und aktiviert sind, wenn der Maus-Cursor auf dem OLE-Objekt steht und die rechte Maustaste gedrückt wird. Mit den OLE-Popup-Menübefehlen werden OLE-Objekte bearbeitet. OLE-Popup-Menübefehle und deren Aktionen umfassen:

OLE-Popup-Menübefehl	Aktion
AUSSCHNEIDEN	Schneidet ein OLE-Objekt aus und setzt den Inhalt in die Zwischenablage.
KOPIEREN	Kopiert ein OLE-Objekt und setzt den Inhalt in die Zwischenablage.
EINFÜGEN	Fügt den Inhalt aus der Zwischenablage in einen OLE-Container ein.
INHALTE EINFÜGEN	Fügt ein OLE-Objekt aus der Zwischenablage in einen OLE-Container in einem anderen Format als dem Originalformat ein.
OBJEKT EINFÜGEN	Fügt ein OLE-Objekt in einen OLE-Container ein.
OBJEKT LÖSCHEN	Löscht ein OLE-Objekt aus einem OLE-Container.
LINKS	Ruft ein Dialogfeld auf, mit dessen Einstellungen bestimmt wird, wie Verknüpfungen aktualisiert, verknüpfte Quelldateien bearbeitet und Links von einer Quelldatei zu einer anderen Quelldatei geändert werden.
OBJEKT	Je nach OLE-Server können verschiedene Vorgänge mit einem OLE-Objekt ausgeführt werden. Einige Beispiele umfassen das Öffnen eines OLE-Objekts, das Bearbeiten eines OLE-Objekts und die Konvertierung eines OLE-Objekts von einem Format in ein anderes.
Gilt für  OLE-Container

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Anzeigen und Aktivieren für alle Menübefehle

Obligatorisch/Optional  Obligatorisch

Verwendungshinweise

•	In Form Builder können Sie jeden OLE-Popup-Menübefehl so einstellen, daß die folgenden Eigenschaften verfügbar sind, wenn das entsprechende Kontrollkästchen ausgewählt wird:

Anzeigen	Gibt an, ob der ausgewählte Menübefehl angezeigt wird.

Aktivieren	Gibt an, ob für einen Menübefehl Anzeigen aktiviert oder deaktiviert ist. Ein deaktiviertes Objekt wird grau angezeigt.

•	Sie können nicht nur die Attribute von OLE-Popup-Menübefehlen in Form Builder einstellen, sondern können die OLE-Popup-Menübefehle auch programmgesteuert einstellen und einlesen. Um die OLE-Popup-Menübefehle programmgesteuert einzustellen oder einzulesen, verwenden Sie einen programmgesteuerten Attributnamen, der einem Menübefehl entspricht. In der folgenden Liste wird jeder der OLE-Popup-Menübefehle und ein entsprechender programmgesteuerter Attributname aufgeführt:

Menübefehl	Programmgesteuerter Attributname
Ausschneiden	POPUPMENU_CUT_ITEM
Kopieren	POPUPMENU_COPY_ITEM
Einfügen	POPUPMENU_PASTE_ITEM
Inhalte einfügen	POPUPMENU_PASTESPEC_ITEM
Objekt einfügen	POPUPMENU_INSOBJ_ITEM
Objekt löschen	POPUPMENU DELOBJ ITEM
Links	POPUPMENU_LINKS_ITEM
Objekt	POPUPMENU_OBJECT_ITEM
•	Sie können das Attribut OLE-Popup-Menübefehl auf einen der folgenden Werte einstellen:

ANGEZEIGT	Gibt an, daß ein OLE-Popup-Menübefehl angezeigt und aktiviert ist.

AKTIVIERT	Gibt an, daß ein OLE-Popup-Menübefehl angezeigt und deaktiviert ist. Ein deaktivierter Menüpunkt wird grau angezeigt.

VERBORGEN	Gibt an, daß ein OLE-Popup-Menübefehl im OLE-Popup-Menü nicht angezeigt wird. Ein Befehl, der nicht angezeigt wird, ist nicht aktiviert.

•	Neben den Werten, die Sie programmgesteuert einstellen können, können Sie die folgenden Werte programmgesteuert aus jedem der OLE-Popup-Menübefehle einlesen:

ANGEZEIGT	Rückgabewert, wenn ein OLE-Popup-Menübefehl angezeigt und aktiviert ist.

AKTIVIERT	Rückgabewert, wenn ein OLE-Popup-Menübefehl angezeigt und deaktiviert ist. Ein deaktivierter Menüpunkt wird grau angezeigt.

VERBORGEN	Rückgabewert, wenn ein OLE-Popup-Menübefehl im OLE-Popup-Menü nicht angezeigt wird. Ein Befehl, der nicht angezeigt ist, ist nicht aktiviert.

NICHT UNTERSTÜTZT	Rückgabewert, wenn das OLE-Popup-Menü nicht unterstützt wird. Dies ist der Rückgabewert für jede Plattform, mit Ausnahme von Microsoft Windows.


Einschränkungen bei OLE-Popup-Menüpunkte

Nur bei Microsoft Windows gültig.


Attribut OLE-Skalierungssstil

 Einschränkungen	 Alle Attribute

Beschreibung

Bestimmt, wie ein OLE-Objekt in einem OLE-Container angezeigt wird. Für dieses Attribut sind die folgenden Einstellungen gültig:

ABGESCHNITTEN	Der standardmäßige OLE-Skalierungsstil. Ein OLE-Objekt wird abgeschnitten, damit es in einen OLE-Container paßt.

MASSTAB	Ein OLE-Objekt wird so skaliert, daß es in einen OLE-Container paßt.

ANFÄNGLICH	Ein OLE-Container wird so skaliert, daß ein OLE-Objekt beim Erstellen aufgenommen werden kann.

DYNAMISCH	Ein OLE-Container wird so skaliert, daß ein OLE-Objekt aufgenommen werden kann, wenn sich die OLE-Objektgröße ändert.

Gilt für  OLE-Container

Einstellung  Form Builder

Obligatorisch/Optional  Obligatorisch

Standardwert

ABGESCHNITTEN


Einschränkungen bei OLE-Skalierungsstil

Nur bei Microsoft Windows und Macintosh gültig.


Attribut OLE-Bewohnerdarstellung

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Bestimmt, wie ein OLE-Objekt in einem OLE-Container angezeigt wird.

Gilt für  OLE-Container

Einstellung  Form Builder

Standardwert

INHALT

Verwendungshinweise

Für dieses Attribut sind die folgenden Einstellungen gültig:

INHALT	Die standardmäßige OLE-Bewohnerdarstellung. Der Inhalt eines OLE-Objekts wird in einem OLE-Container angezeigt. Der Inhalt des OLE-Objekts hängt von dem Wert des Attributs OLE-Skalierungsstil ab und kann Abgeschnitten, Skaliert oder Ganze Größe sein.

SYMBOL	Ein Symbol eines OLE-Objekts wird in einem OLE-Container angezeigt. Das Standardsymbol stellt die OLE-Server-Anwendung dar, die das OLE-Objekt erstellt hat. In dem Dialogfeld Objekt einsetzen können Sie das zu benutzende Symbol auswählen.

THUMBNAIL-VORSCHAU	Eine reduzierte Ansicht des OLE-Objekts wird in einem OLE-Container angezeigt.

•	Ein OLE-Objekttyp wird in der Datenbank in einer Spalte vom Typ LONG RAW gespeichert. Wenn das OLE-Objekt von der Datenbank abgefragt wird, muß es unbedingt dieselbe Attributeinstellung für OLE-Bewohnerdarstellung haben, wie das OLE-Objekt, das in der Datenbank gespeichert ist. Wenn sich das Attribut OLE-Bewohnerdarstellung des gespeicherten OLE-Objekts von dem Attribut des abgefragten OLE-Objekts unterscheidet, wird der Datensatz, der das Objekt enthält, automatisch GESPERRT.


Einschränkungen bei OLE-Bewohnerdarstellung

Nur bei Microsoft Windows gültig.


Attribut OLE-Bewohnertypen

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Typ von OLE-Objekten an, die Bewohner des OLE-Containers sein können. Für dieses Attribut gelten folgende Einstellungen:

BELIEBIG	Der standardmäßige OLE-Bewohnertyp. Ein beliebiges OLE-Objekt kann Bewohner des OLE-Containers sein.

KEIN	In dem OLE-Container kann kein Objekt gespeichert sein.

STATISCH	Nur statische OLE-Objekte können Bewohner des OLE-Containers sein. Ein statisches OLE-Objekt ist ein Snapshot-Bild eines verknüpften OLE-Objekts, dessen Link zu der Quelle unterbrochen ist. Ein statisches OLE-Objekt kann nicht geändert werden.

EINGEBETTET	Nur ein eingebettetes OLE-Objekt kann Bewohner des OLE-Containers sein.

VERKNÜPFT	Nur ein verknüpftes OLE-Objekt kann Bewohner des OLE-Containers sein.

Gilt für  OLE-Container

Einstellung  Form Builder

Standardwert

BELIEBIG


Einschränkungen bei OLE-Bewohnertypen

Nur bei Microsoft Windows und Macintosh gültig.


Attribut Operating_System

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen des aktuellen Betriebssystems an, wie z.B. Microsoft WINDOWS, WIN32COMMON, UNIX, Sun OS, MACINTOSH, VMS und HP-UX.

Gilt für  Anwendungen

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_APPLICATION_PROPERTY

Verwendungshinweise

Da der von diesem Attribut zurückgegebene Wert plattformspezifisch ist, wird auf die Form Builder-Dokumentation für Ihr Betriebssystem verwiesen, wenn die von Ihnen benutzte Plattform hier nicht aufgeführt wird.


Attribut Optimizer-Hinweis

 Alle Attribute

Beschreibung

Gibt eine Hinweisfolge an, die Form Builder beim Erstellen von Abfragen an den RDBMS-Optimizer übergibt. Durch Benutzung des Optimizers kann die Leistung von Datenbanktransaktionen verbessert werden.

Gilt für  Blöcke

Einstellung  Designer, programmgesteuert

Vordefinierte Prozedur

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Einschränkungen

Ist nur für Anwendungen gültig, die mit Oracle7 oder Oracle8 Server ausgeführt werden.

Verwendungshinweise

Betrachten Sie eine Form, die einen Block namens DeptBlock basierend auf der Tabelle DEPT enthält. Wenn der Endbenutzer ein Kriterium in Form von " > 25 " für die Spalte DEPTNO eingibt und die Abfrage ausführt, sieht die SELECT-Standardanweisung, die Form Builder zur Abfrage der entsprechenden Zeilen aus der Datenbank generiert, wie folgt aus:

SELECT DEPTNO,DNAME,LOC,ROWID
FROM DEPT
WHERE (DEPTNO > 25)

Der Entwickler kann die vordefinierte Prozedur SET_BLOCK_PROPERTY verwenden, um das Attribut Optimizer-Hinweis so einzustellen, daß Oracle7 Server versucht, die SQL-Anweisung im Hinblick auf eine optimale Antwortzeit zu optimieren.

Set_Block_Property('DeptBlock',OPTIMIZER_HINT,'FIRST_ROWS');
SELECT /*+ FIRST_ROWS */ DEPTNO,DNAME,LOC,ROWID
FROM DEPT
WHERE (DEPTNO > 25)

Weitere Informationen über die Benutzung dieser Funktion mit Oracle7 finden Sie in den folgenden Handbüchern:

•	Oracle7 Server Application Developer's Guide, Kapitel 5, "Tuning SQL Statements"

•	Oracle7 Server Concepts Manual, Kapitel 13, "The Optimizer"


Attribut Order By

Beschreibung

Siehe WHERE-Klausel/ORDER BY-Klausel


Attribute Andere Berichtparameter

 Alle Attribute

Beschreibung

Eine <Schlüsselwort>=<Wert> Liste mit Parametern zur Aufnahme in dem laufenden Bericht. Eine Liste der gültigen Parameter finden Sie in der Liste mit Schlüsselwörtern in der Online-Hilfe zu Report Builder.

Gilt für  Report Builder-Berichte

Einstellung  Form Builder

Standardwert

Leer

Obligatorisch/Optional  Optional

Verwendungshinweise

Wenn die WHERE-Klausel Parameterausdrücke mit mehreren Wörtern enthält, sollte die gesamte WHERE-Klausel in einfache Anführungszeichen gesetzt werden. Wenn ein solcher Parameter mit mehreren Wörtern einen Namen enthält, sollte der Name in doppelte Anführungszeichen gesetzt werden. Der Parameterausdruck where ename = 'MILLER' muß entsprechend wie folgt eingegeben werden:

'where ename = ''MILLER'''


Attribut Output_Date/Datetime_Format

  Verwandte Themen	 Alle Attribute

Beschreibung

Enthält die aktuelle Formatmaske für Ausgabedatum oder Datum/Zeit, die von der Umgebungsvariablen FORMSnn_OUTPUT_DATE_FORMAT bzw. FORMSnn_OUTPUT_DATETIME_FORMAT festgelegt wird. Forms verwendet diese Formatmasken als Standard bei der Laufzeit-Ausgabebearbeitung.

Es gibt zwei eigenständige Attribute: Output_Date_Format und Output_Datetime_Format.

Gilt für  Anwendungen

Einstellung  Nicht in Form Builder einstellbar

Vordefinierte Prozedur

GET_APPLICATION_PROPERTY


Attribut Parameter-Datentyp

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, welche Art von Werten Form Builder als Eingabe zuläßt, und wie Form Builder diese Werte anzeigt.

Gilt für  Kontrollkästchen, Anzeigeobjekte, Listenobjekte, Optionsgruppen, Textobjekte, Benutzerdefinierte Objekte, Formparameter

Hinweis:  Nicht alle Datentypen sind für jeden Objekttyp zutreffend.

Einstellung  Form Builder

Verwendungshinweise

•	Es werden nur die Standard-Datentypen CHAR, DATE, LONG und NUMBER empfohlen. Diese Datentypen basieren auf den ursprünglichen ORACLE-Datentypen und bieten eine bessere Leistung und Anwendungsportabilität. Die anderen Datentypen sind nur für Textobjekte gültig und sind in erster Linie aus Kompatibilitätsgründen mit früheren Versionen vorhanden. Sie können dieselben Formatierungseigenschaften erzielen, indem Sie einen Standard-Datentyp mit einer entsprechenden Formatmaske benutzen.

•	Der Datentyp des Basistabellenobjekts muß mit dem Datentyp der entsprechenden Datenbankspalte kompatibel sein. Benutzen Sie den Datentyp CHAR für Objekte, die Datenbankspalten vom Typ VARCHAR2 von ORACLE entsprechen.

•	Erstellen Sie keine Objekte, die CHAR-Datenbankspalten entsprechen, wenn diese Objekte in Abfragen oder als Join-Bedingung für eine Master-Detail-Beziehung benutzt werden. Verwenden Sie statt dessen VARCHAR2-Datenbankspalten.

•	Form Builder führt je nachdem die folgenden Aktionen bei den Objekten durch:

•	Entfernt abschließende Leerstellen.

•	Ändert das Objekt in NULL, wenn es nur aus Leerzeichen besteht.

•	Entfernt führende Nullen, wenn der Datentyp NUMBER, INT, MONEY, RINT, RMONEY oder RNUMBER ist (es sei denn, die Formatmaske des Objekts läßt führende Nullen zu).

•	Das Attribut Datentyp des Formparameters unterstützt die Datentypen CHAR, DATE und NUMBER.

ALPHA

Enthält eine beliebige Kombination von Buchstaben (Groß- und/oder Kleinbuchstaben).

Standardwert	Leerzeichen
Beispiel	"Employee", "SMITH"
CHAR

Unterstützt VARCHAR2 mit maximal 2000 Zeichen. Enthält eine beliebige Kombination der folgenden Zeichen:

•	Buchstaben (Groß- und Kleinbuchstaben)

•	Ziffern

•	Leerstellen

•	Sonderzeichen ($, #, @ und _)

Standardwert	Leerzeichen
Beispiel	"100 Main Street", "CHAR_EXAMPLE_2"
DATE

Enthält ein gültiges Datum. Sie können ein DATE-Objekt in einem anderen beliebigen Format anzeigen, indem Sie die Formatmaske des Objekts ändern.

Standardwert	TT-MON-JJ
Einschränkungen	Bezieht sich auf eine DATE-Spalte in der Datenbank und wird als tatsächliches Datum und nicht als Zeichenfolge verarbeitet.
Der DATE-Datentyp enthält eine ZERO-Zeitkomponente	.
Beispiel	01-JAN-92
DATETIME

Enthält ein gültiges Datum und eine gültige Uhrzeit.

Standardwert	TT-MON-JJ HH24:MI[:SS]
Einschränkungen	Bezieht sich auf eine DATE-Spalte in der Datenbank und wird als tatsächliches Datum und nicht als Zeichenfolge verarbeitet.
	Der Datentyp DATETIME enthält eine vierstellige Jahreszahl. Wenn in einen DATETIME-Datentyp das Jahr mit zwei Ziffern eingegeben wird, wird es als 00JJ interpretiert.
Beispiel	31-DEC-88 23:59:59
EDATE

Enthält ein gültiges europäisches Datum.

Standardwert	TT/MM/JJ
Einschränkungen	V3-Datentyp
	Muß eine NUMBER-Spalte in der Datenbank referenzieren.
	Ist aus Gründen der Abwärtskompatibilität enthalten. Statt dessen beachten Sie folgende Empfehlungen:
	Benutzen Sie den Datentyp DATE.
	Verwenden Sie eine Formatmaske, um das europäische Datumsformat zu erzeugen.
	Referenzieren Sie eine DATE-Spalte in der Datenbank und keine NUMBER-Spalte.
Beispiel	23/10/92 (Oktober 23, 1992)
	01/06/93 (Juni 1, 1993)
INT

Enthält eine beliebige Ganzzahl (mit oder ohne Vorzeichen).

Standardwert	0
Beispiel	1, 100, -1000
JDATE

Enthält ein gültiges Julianisches Datum.

Standardwert	MM/TT/JJ
Einschränkungen	V3-Datentyp
	Muß eine NUMBER-Spalte in der Datenbank referenzieren.
	Ist aus Gründen der Abwärtskompatibilität enthalten. Statt dessen beachten Sie folgende Empfehlungen:
	Benutzen Sie den Datentyp DATE.
	Wenden Sie eine Formatmaske an, um das Julianische Datumsformat zu erzeugen.
	Referenzieren Sie eine DATE-Spalte in der Datenbank und keine NUMBER-Spalte.
Beispiel	10/23/92 (Oktober 23, 1992)
	06/01/93 (Juni 1, 1993)
LONG

Enthält eine beliebige Kombination mit maximal 65.534 Zeichen. Wird in ORACLE als Zeichenfolge mit variabler Länge gespeichert.

Standardwert	Leerzeichen
Einschränkungen	Als Referenz in WHERE- oder ORDER BY-Klauseln einer SELECT-Anweisung nicht zulässig.
	LONG-Objekte können im Abfragemodus nicht abgefragt werden.
MONEY

Enthält eine Zahl mit oder ohne Vorzeichen, die eine Geldsumme darstellt.

Einschränkungen	V3-Datentyp
	Aus Gründen der Abwärtskompatibilität enthalten. Benutzen Sie statt dessen eine Formatmaske mit einer Zahl, um dasselbe Ergebnis zu erzeugen.
Beispiel	10.95, 0.99, -15.47
NUMBER

Enthält Fest- oder Gleitkommazahlen in dem Bereich von 1.0x10-129 bis 9.99x10124 mit einer oder mehreren der folgenden Eigenschaften:

•	Mit Vorzeichen

•	Ohne Vorzeichen

•	Mit einem Dezimalzeichen

•	In regulärer Schreibweise

•	In Exponentialschreibweise

•	Genauigkeit von maximal 38 Ziffern

NUMBER-Objekte beziehen sich auf NUMBER-Spalten in der Datenbank, und Form Builder verarbeitet deren Werte als echte Zahlen (und nicht als Zeichenfolgen).

Standardwert	0
Einschränkungen	In ein Zahlenobjekt können keine Kommas eingegeben werden (z.B. 99,999). Benutzen Sie statt dessen eine Formatmaske.
Beispiel	-1, 1, 1.01, 10.001, 1.85E3
RINT

Zeigt ganzzahlige Werte rechtsbündig ausgerichtet an.

Einschränkungen	V3-Datentyp
	Ist aus Gründen der Abwärtskompatibilität enthalten. Statt dessen beachten Sie folgende Empfehlungen:
	Benutzen Sie den Datentyp NUMBER.
	Verwenden Sie eine Formatmaske wie 999, um eine rechtsbündig ausgerichtete Zahl zu erzeugen.
RMONEY

Zeigt MONEY-Werte rechtsbündig ausgerichtet an.

Einschränkungen	V3-Datentyp
	Ist aus Gründen der Abwärtskompatibilität enthalten. Statt dessen beachten Sie folgende Empfehlungen:
	Benutzen Sie den Datentyp NUMBER.
	Wenden Sie eine Formatmaske wie $999.99 an, um eine rechtsbündig ausgerichtete Zahl zu erzeugen.
RNUMBER

Zeigt NUMBER-Werte rechtsbündig ausgerichtet an.

Einschränkungen	V3-Datentyp
	Ist aus Gründen der Abwärtskompatibilität enthalten. Statt dessen beachten Sie folgende Empfehlungen:
	Benutzen Sie den Datentyp NUMBER.
	Verwenden Sie eine Formatmaske wie 999.999, um eine rechtsbündig ausgerichtete Zahl zu erzeugen.
TIME

Enthält Zahlen und Doppelpunkte, die NUMBER-Spalten in der Datenbank referenzieren.

Standardwert	HH24:MI[:SS]
Einschränkungen	V3-Datentyp
	Ist aus Gründen der Abwärtskompatibilität enthalten. Statt dessen beachten Sie folgende Empfehlungen:
	Benutzen Sie den Datentyp DATETIME.
	Wenden Sie eine Formatmaske an, um nur die Uhrzeit zu erzeugen.
	Als Referenz auf DATE-Spalten in der Datenbank nicht zulässig.
Beispiel	:10:23:05
	21:07:13


Attribut Parameter-Ausgangswert (Formparameter)

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Wert an, den Form Builder dem Parameter beim Starten der Form zuweist.

Gilt für  Formparameter

Einstellung  Form Builder

Standardwert

NULL

Obligatorisch/Optional  Optional

Verwendungshinweise

Eine beliebige gültige Konstante ist ein gültiger Wert für dieses Attribut.


Attribut Menüparameter-Ausgangswert (Menüsubstitutionsparameter)

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Wert an, den Form Builder dem Parameter beim Starten der Form zuweist.

Einstellung  Form Builder

Obligatorisch/Optional  Obligatorisch


Attribut Kennwort

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt das Kennwort für den aktuellen Endbenutzer an.

Gilt für  Anwendungen

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_APPLICATION_PROPERTY

Verwendungshinweise

Das Attribut Kennwort gibt nur das Kennwort zurück. Wenn Sie auch die DB-Adresse ermitteln möchten, überprüfen Sie das Attribut Connect_String.


Attribut PLSQL_Date_Format

  Verwandte Themen	 Alle Attribute

Beschreibung

Dieses Attribut bestimmt die Formatmaske, die bei der Konvertierung von Datumswerten bei der Ausführung von PL/SQL (für einen Trigger bzw. eine aufgerufene Funktion oder Prozedur) innerhalb von Forms in folgenden Fällen benutzt wird:

•	Auswertung von TO_DATE (char_value) oder TO_DATE (date_value) ohne explizite Formatmaske

•	Zuweisung eines CHAR-Wertes an eine Datumsvariable oder umgekehrt

Gilt für  Gesamte Forms-Anwendung (globaler Wert)

Einstellung  programmgesteuert

Vordefinierte Prozedur

•	Vordefinierte Prozedur GET_APPLICATION_PROPERTY

•	Vordefinierte Prozedur SET_APPLICATION_PROPERTY

Obligatorisch/Optional  Optional. Es wird jedoch UNBEDINGT EMPFOHLEN, daß Sie dieses Attribut bei neuen Anwendungen auf eine Formatmaske einstellen, die vollständige Jahrhundert- und Zeitinformationen enthält. Außerdem wird empfohlen, daß diese Formatmaske identisch mit der Formatmaske in dem Attribut Builtin_Date_Format ist.

Standardwert

Wie oben angegeben, wird unbedingt empfohlen, daß Sie diesen Wert für eine neue Anwendung explizit festlegen. Wenn nicht, ist der Standardwert TT-MON-JJ. (Dieser Wert wird aus Kompatibilitätsgründen mit Release 4.5 und früher verwendet.)

Kompatibilität mit anderen Oracle-Produkten

In anderen Oracle-Produkten als Form Builder benutzt PL/SQL Version 2 nicht unbedingt eine Standard-Datumsformatmaske von TT-MON-JJ. Statt dessen wird typischerweise eine Formatmaske benutzt, die von der aktuellen NLS-Umgebung abgeleitet wird. Wenn Ihre Forms-Anwendung aus irgendeinem Grund dasselbe Verhalten aufweisen soll, können Sie das Anwendungsattribut USER_NLS_DATE_FORMAT verwenden und diese dann dem Anwendungsattribut PLSQL_DATE_FORMAT zuweisen.


Attribut Speicherort von PL/SQL-Bibliothek

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Speicherort der zugeordneten PL/SQL-Bibliothek an.

Dieses Attribut wird eingestellt, wenn Sie eine PL/SQL-Bibliothek einem Forms-Modul zuordnen. Wenn Sie festgelegt haben, daß der Verzeichnispfad beibehalten wird, entspricht dieses Attribut dem vollständigen Pfadnamen der Bibliothek. Wenn Sie festgelegt haben, daß der Verzeichnispfad entfernt wird, wird mit diesem Attribut nur der Bibliotheksname angegeben.

Dieses Attribut wird nur zu Informationszwecken angezeigt. Sie können es über die Attributpalette nicht einstellen oder ändern.

Gilt für  PL/SQL-Bibliotheken

Einstellung  Form Builder

Obligatorisch/Optional  Nur Anzeige

Standardwert  Keiner


Attribut Speicherort von PL/SQL-Quelle

  Verwandte Themen	 Alle Attribute

Beschreibung

Dieses Attribut wird eingestellt, wenn Sie eine PL/SQL-Bibliothek einem Forms-Modul zuordnen. In ihm wird die Quelle der PL/SQL-Bibliothek angegeben - Datei oder Datenbank.

Dieses Attribut wird nur zu Informationszwecken angezeigt. Sie können es über die Attributpalette nicht einstellen oder ändern.

Gilt für  PL/SQL-Bibliotheken

Einstellung  Form Builder

Obligatorisch/Optional  Nur Anzeige

Standardwert  Datei


Attribut Popup-Menü

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt das Popup-Menü an, das für die Leinwand oder das Objekt angezeigt werden soll.

Gilt für  Leinwände und Objekte

Einstellung  Nicht einstellbar

Obligatorisch/Optional  Optional

Standardwert

NULL

Vordefinierte Prozedur

•	GET_MENU_ITEM_PROPERTY

•	SET__MENU_ITEM_PROPERTY

Hinweis:  AKTIVIERT, DEAKTIVIERT und BESCHRIFTUNG sind die einzigen Attribute, die für Popup-Menüs gültig sind.


Einschränkungen bei Popup-Menü

•	Das Popup-Menü muß innerhalb des aktuellen Formmoduls definiert sein.

•	Es ist nicht möglich, ein Popup-Menü einzelnen Optionsschaltflächen zuzuordnen. Popup-Menüs können nur Optionsgruppen zugeordnet werden.


Attribut Summen im voraus berechnen

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, daß der Wert eines summierten Objekts in einem Datenblock berechnet wird, bevor die normale Abfrage an den Block ausgegeben wird. Form Builder gibt eine besondere Abfrage aus, mit der alle Datensätze (in der Datenbank) des summierten Objekts ausgewählt werden, und führt den Summenvorgang (Summe, Anzahl usw.) für alle Datensätze durch.

Gilt für  Blöcke

Einstellung  Form Builder

Obligatorisch/Optional  Obligatorisch, wenn der Block summierte Objekte enthält und das Attribut Alle Datensätze abfragen für den Block auf Nein eingestellt ist.

Standardwert

Nein

Verwendungshinweise

Wenn ein Endbenutzer eine Abfrage in einem Block durchführt, während das Attribut Summen im voraus berechnen auf Ja gesetzt ist, löst Form Builder den Pre-Query-Trigger (gegebenenfalls) einmal aus: bevor die Spezialabfrage ausgeführt wird. Form Builder löst den Pre-Select-Trigger (gegebenenfalls) zweimal aus: einmal direkt vor der Ausführung der Spezialabfrage und erneut vor Ausführung der normalen Abfrage.


Einschränkungen bei Summen im voraus berechnen

•	Sie können das Attribut Summen im voraus berechnen nicht auf Ja einstellen, wenn eine der folgenden Bedingungen gilt: (1) Der Block enthält ein summiertes Steuerelement, (2) ein Minimieren- oder Maximieren-Vorgang wird für ein summiertes Objekt in dem Block durchgeführt, (3) Datenquelle abfragen für den Block ist eine gespeicherte Prozedur oder Transaktionstrigger (muß eine Tabelle oder eine Unterabfrage sein), oder (4) der Block enthält ein Kontrollkästchen, Listenobjekt oder eine Optionsgruppe mit einem leeren Attribut Andere Werte.

•	Die Lesekonsistenz kann nur garantiert werden, wenn (1) die Form mit einer Oracle7.3-Datenbank ausgeführt wird und (2) das Attribut Isolationsmodus auf Formebene auf Serialisierbar gesetzt ist.


Attribut Masterlose Vorgänge verhindern

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob Endbenutzer Datensätze in einem Block abfragen oder einfügen können, bei dem es sich um einen Detail-Block in einer Master-Detail-Beziehung handelt. Wenn dieses Attribut auf Ja eingestellt ist, läßt Form Builder nicht zu, daß Datensätze in den Detail-Block eingefügt werden, wenn in dem Master-Block kein Master-Datensatz vorhanden ist, und läßt die Abfrage in dem Detail-Block nicht zu, wenn kein Master-Datensatz vorhanden ist, der aus der Datenbank stammt.

Wenn für Masterlose Vorgänge verhindern Ja angegeben wird, zeigt Form Builder eine entsprechende Meldung an, wenn Endbenutzer versuchen, einen Datensatz einzufügen oder abzufragen:

FRM-41105: Keine Abfrage ohne gespeicherten übergeordneten Datensatz.
FRM-41106: Ohne übergeordneten Datensatz können keine Sätze erstellt werden.

Gilt für  Beziehungen

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_RELATION_PROPERTY

•	SET_RELATION_PROPERTY

Standardwert

Nein


Attribut Vorheriger Navigationsblock

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen des Blocks an, der als "vorheriger Navigationsblock" bezogen auf diesen Block definiert ist. Standardmäßig ist dies der Block mit der nächstniedrigeren Sequenznummer in der Form, wie mit der Reihenfolge der Blöcke im Objektnavigator angegeben. Sie können dieses Attribut jedoch einstellen, um einen "vorherigen" Block zu Navigationszwecken neu zu definieren.

Gilt für  Blöcke

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Standardwert

Der Name des Blocks mit der nächstniedrigeren Sequenznummer in der Form

Obligatorisch/Optional  Optional

Verwendungshinweise

Die Einstellung dieses Attributs hat keine Auswirkung auf den Wert des Attributs PreviousBlock.


Attribut Vorheriges Navigationsobjekt

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen des Objekts an, das als "vorheriges Navigationsobjekt" bezogen auf das aktuelle Objekt definiert ist. Standardmäßig handelt es sich um das Objekt mit der nächstniedrigeren Sequenznummer in der Form, wie mit der Reihenfolge der Objekte im Objektnavigator angegeben. Sie können dieses Attribut jedoch so einstellen, daß das "vorherige Objekt" für Navigationszwecke neu definiert wird.

Gilt für  Objekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

NULL. Mit NULL wird der Standardwert angegeben, d.h. der Name des Objekts mit der nächstniedrigeren Sequenznummer in der Form.

Obligatorisch/Optional  Optional


Einschränkungen bei Vorheriges Navigationsobjekt

Das Objekt, das als Vorheriges Navigationsobjekt angegeben wird, muß in demselben Block wie das aktuelle Objekt stehen.


Attribut Previous_Block

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen des Blocks mit der nächstniedrigeren Sequenznummer in der Form an, wie mit der Reihenfolge von Blöcken im Objektnavigator angegeben.

Gilt für  Blöcke

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_BLOCK_PROPERTY

Obligatorisch/Optional  Optional

Verwendungshinweise

•	Sie können dieses Attribut mit den Formattributen First_Block oder Last_Block verwenden, um durch eine Liste mit Blöcken zu gehen.

•	Der Wert von Previous_Block ist NULL, wenn kein Block mit einer niedrigeren Sequenznummer als der aktuelle Block vorhanden ist.

•	Die Einstellung des Attributs Vorheriger Navigationsblock hat keine Auswirkung auf den Wert von Previous_Block.


Attribut Previous_Item

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen des Objekts mit der nächstniedrigeren Sequenznummer in dem Block an, wie mit der Reihenfolge von Objekten im Objektnavigator angegeben.

Gilt für  Objekte

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_ITEM_PROPERTY

Obligatorisch/Optional  Optional


Attribut Primäre Leinwand

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Leinwand an, die als primäre Inhaltsansicht des Fensters benutzt werden soll. Zur Laufzeit versucht Form Builder immer, die primäre Ansicht in dem Fenster anzuzeigen. Wenn Sie z.B. ein Fenster das erste Mal während einer Sitzung anzeigen, indem Sie die vordefinierte Prozedur SHOW_WINDOW ausführen, zeigt Form Builder das Fenster mit der primären Inhaltsansicht an.

Wenn Form Builder jedoch eine andere Inhaltsansicht aufgrund der Navigation zu einem Objekt in dieser Ansicht anzeigen muß, wird die primäre Inhaltsansicht durch die Zielansicht außer Kraft gesetzt.

Gilt für  Fenster

Einstellung  Form Builder

Standardwert

 NULL

Obligatorisch/Optional  Nur bei einem Fenster obligatorisch, das programmgesteuert angezeigt wird und nicht als Folge der Navigation zu einem Objekt auf einer Leinwand, die dem Fenster zugewiesen ist.


Einschränkungen bei Primäre Leinwand

Bei der angegebenen Ansicht muß es sich um eine Inhaltsansicht handeln (das Attribut Leinwandtyp ist auf Inhalt eingestellt) und muß dem angegebenen Fenster zugewiesen sein (durch Einstellung des Attributs Fenster).


Attribut Primärschlüssel (Objekt)

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, daß es sich bei dem Objekt um ein Basistabellenobjekt in einem Datenblock handelt und daß es der Primärschlüsselspalte in der Basistabelle entspricht. Bei Form Builder müssen Werte in Primärschlüsselobjekten eindeutig sein.

Gilt für  Alle Objekte, mit Ausnahme von Schaltflächen, Diagrammobjekten und Bildobjekten

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Nein

Obligatorisch/Optional  Optional


Einschränkungen bei Primärschlüssel (Objekt)

Das Blockattribut Primärschlüssel durchsetzen muß für den übergeordneten Block des Objekts auf Ja eingestellt sein.


Attribut Programmblocktext

 Alle Attribute

Beschreibung

Gibt den PL/SQL-Code an, den ein Programmblock enthält. Wenn Sie in der Attributpalette auf Weitere Optionen... klicken, wird der Programmblöcke-Editor aufgerufen.

Gilt für  Programmblöcke

Einstellung  Form Builder

Obligatorisch/Optional  Obligatorisch


Attribut Prompt

 Alle Attribute {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Beschreibung

Gibt die Textbeschriftung an, die für ein Objekt angezeigt wird.

Gilt für  Objekt-Prompts

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Leer

Obligatorisch/Optional  Optional


Attribut Prompt-Ausrichtung

 Alle Attribute {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Beschreibung

Gibt an, wie der Prompt am Rand des Objekts ausgerichtet werden soll, d.h. am Anfang, Ende oder Zentriert.

Gilt für  Objekt-Prompts

Einstellung  Form Builder, programmgesteuert (Hinweis: Wenn dieses Attribut in einem PL/SQL-Programm verwendet wird, ersetzen Sie Prompt-Ausrichtung durch Prompt_Alignment.)

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Anfang

Obligatorisch/Optional  Obligatorisch


Attribut Versatz Prompt-Ausrichtung

 Alle Attribute {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Beschreibung

Gibt den Versatz für die Prompt-Ausrichtung an.

Gilt für  Objekt-Prompts

Einstellung  Form Builder, programmgesteuert (Hinweis: Wenn dieses Attribut in einem PL/SQL-Programm verwendet wird, ersetzen Sie Versatz Prompt-Ausrichtung durch Prompt_Alignment_Offset.)

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Leer

Obligatorisch/Optional  Optional


Attribut Rand Prompt-Zuordnung

 Alle Attribute {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Beschreibung

Gibt an, welchem Rand der Prompt zugeordnet werden soll, d.h. Anfang, Ende, Oben oder Unten.

Gilt für  Objekt-Prompts

Einstellung  Form Builder, programmgesteuert (Hinweis: Wenn dieses Attribut in einem PL/SQL-Programm verwendet wird, ersetzen Sie Rand Prompt-Zuordnung durch Prompt_Attachment_Edge.)

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Anfang

Obligatorisch/Optional  Obligatorisch


Attribut Versatz Prompt-Zuordnung

 Alle Attribute {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Beschreibung

Gibt den Abstand zwischen dem Objekt und dem zugehörigen Prompt an.

Gilt für  Objekt-Prompts

Einstellung  Form Builder, programmgesteuert (Hinweis: Wenn dieses Attribut in einem PL/SQL-Programm verwendet wird, ersetzen Sie Versatz Prompt-Zuordnung durch Prompt_Attachment_Offset.)

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Leer

Obligatorisch/Optional  Optional


Attribut Prompt-Hintergrundfarbe

  Verwandte Themen	Alle Attribute {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Beschreibung

Die Farbe des Objekt- oder Hintergrundbereichs.

Gilt für  Objekt-Prompts, Optionsschaltflächen

Einstellung  Form Builder, programmgesteuert (Hinweis: Wenn dieses Attribut in einem PL/SQL-Programm verwendet wird, ersetzen Sie Prompt-Hintergrundfarbe durch Prompt_Background_Color.)

Standardwert

Nicht angegeben

Obligatorisch/Optional  Optional

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY


Attribut Prompt-Anzeigestil

 Alle Attribute {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Beschreibung

Gibt den Anzeigestil für den Prompt an.

Erster Datensatz	Form Builder zeigt einen Prompt neben dem ersten Datensatz an.

•	VerborgenForm Builder zeigt keinen Prompt an.

Alle Datensätze	Form Builder zeigt einen Prompt neben jedem Datensatz an.

Gilt für  Objekt-Prompts

Einstellung  Form Builder, programmgesteuert (Hinweis: Wenn dieses Attribut in einem PL/SQL-Programm verwendet wird, ersetzen Sie Prompt-Anzeigestil durch Prompt_Display_Style.)

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Erster Datensatz

Obligatorisch/Optional  Obligatorisch


Attribut Prompt-Füllmuster

  Verwandte Themen	Alle Attribute {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Beschreibung

Gibt das Muster an, das für den Füllbereich des Objekts benutzt werden soll. Muster werden in den beiden Farben gerendert, die mit Background_Color und Foreground_Color angegeben werden.

Gilt für  Objekte, Objekt-Prompts, Optionsschaltflächen

Einstellung  Form Builder, programmgesteuert (Hinweis: Wenn dieses Attribut in einem PL/SQL-Programm verwendet wird, ersetzen Sie Prompt-Füllmuster durch Prompt_Fill_Pattern.)

Standardwert

Nicht angegeben

Obligatorisch/Optional  Optional

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY


Attribut Prompt-Schriftartname

  Verwandte Themen	Alle Attribute {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Beschreibung

Gibt die Schriftartfamilie an, die für den Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

Gilt für  Objekte, Objekt-Prompts, Optionsschaltflächen

Einstellung  Form Builder, programmgesteuert (Hinweis: Wenn dieses Attribut in einem PL/SQL-Programm verwendet wird, ersetzen Sie Prompt-Schriftartname durch Prompt_Font_Name.)

Standardwert

Nicht angegeben

Obligatorisch/Optional  Optional

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY


Attribut Prompt-Schriftgrad

  Verwandte Themen	Alle Attribute {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Beschreibung

Der Schriftgrad in Punkt.

Gilt für  Objekte, Objekt-Prompts, Optionsschaltflächen

Einstellung  Form Builder, programmgesteuert (Hinweis: Wenn dieses Attribut in einem PL/SQL-Programm verwendet wird, ersetzen Sie Prompt-Schriftgrad durch Prompt_Font_Size.)

Standardwert

Nicht angegeben

Obligatorisch/Optional  Optional

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY


Attribut Prompt-Zeichenabstand

  Verwandte Themen	Alle Attribute {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Beschreibung

Gibt die Breite der Schriftart an (d.h. den Abstand zwischen den Zeichen bzw. das Kerning).

Gilt für  Objekte, Objekt-Prompts, Optionsschaltflächen

Einstellung  Form Builder, programmgesteuert (Hinweis: Wenn dieses Attribut in einem PL/SQL-Programm verwendet wird, ersetzen Sie Prompt-Zeichenabstand durch Prompt_Font_Spacing.)

Standardwert

Nicht angegeben

Obligatorisch/Optional  Optional

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY


Attribut Prompt-Schriftstil

  Verwandte Themen	Alle Attribute {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Beschreibung

Gibt den Schriftstil an.

Gilt für  Objekte, Objekt-Prompts, Optionsschaltflächen

Einstellung  Form Builder, programmgesteuert (Hinweis: Wenn dieses Attribut in einem PL/SQL-Programm verwendet wird, ersetzen Sie Prompt-Schriftstil durch Prompt_Font_Style.)

Standardwert

Nicht angegeben

Obligatorisch/Optional  Optional

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY


Attribut Prompt-Schriftstärke

  Verwandte Themen	Alle Attribute {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Beschreibung

Gibt die Schriftstärke an.

Gilt für  Objekte, Objekt-Prompts, Optionsschaltflächen

Einstellung  Form Builder, programmgesteuert (Hinweis: Wenn dieses Attribut in einem PL/SQL-Programm verwendet wird, ersetzen Sie Prompt-Schriftstärke durch Prompt_Font_Weight.)

Standardwert

Nicht angegeben

Obligatorisch/Optional  Optional

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY


Attribut Prompt-Vordergrundfarbe

  Verwandte Themen	Alle Attribute {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Beschreibung

Gibt die Farbe für den Vordergrundbereich des Objekts an. Definiert bei Objekten die Farbe des Textes, der in dem Objekt angezeigt wird.

Gilt für  Objekte, Objekt-Prompts, Optionsschaltflächen

Einstellung  Form Builder, programmgesteuert (Hinweis: Wenn dieses Attribut in einem PL/SQL-Programm verwendet wird, ersetzen Sie Prompt-Vordergrundfarbe durch Prompt_Foreground_Color.)

Standardwert

Nicht angegeben

Obligatorisch/Optional  Optional

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY


Attribut Prompt-Justierung

 Alle Attribute {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Beschreibung

Gibt die Justierung des Prompts mit Links, Rechts, Mitte, Anfang oder Ende an.

Gilt für  Objekt-Prompts

Einstellung  Form Builder

Standardwert

Anfang

Obligatorisch/Optional  Obligatorisch


Attribut Prompt-Lesereihenfolge

 Alle Attribute {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Beschreibung

Gibt die Prompt-Lesereihenfolge an, d.h. Standard, Von links nach rechts oder Von rechts nach links.

Gilt für  Objekt-Prompts

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Standardwert

Obligatorisch/Optional  Obligatorisch


Attribut Prompt Visuelle Attributgruppe

 Alle Attribute {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Beschreibung

Gibt das benannte visuelle Attribut an, das zur Laufzeit für den Prompt angewendet werden soll.

Gilt für  Objekt-Prompts

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Standardwert

Obligatorisch/Optional  Obligatorisch


Attribut Prompt_White_on_Black;
Attribut Prompt_White_On_Black

  Verwandte Themen	Alle Attribute {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Beschreibung

Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

Gilt für  Objekte, Optionsschaltflächen

Einstellung  Programmgesteuert

Standardwert

Nicht angegeben

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY


Attribut Attributklasse

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen der Attributklasse an, von der das Objekt Attributeinstellungen erben kann.

Gilt für  Alle Objekte

Einstellung  Form Builder

Standardwert

Null

Obligatorisch/Optional  Optional


Attribut Alle Datensätze abfragen

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob alle Datensätze, die den Abfragekriterien gerecht werden, bei der Ausführung einer Abfrage in den Datenblock abgerufen werden sollen.

Ja - Ruft alle Datensätze aus der Abfrage ab. Diese Option ist gleichbedeutend mit der vordefinierten Prozedur EXECUTE_QUERY (ALL_RECORDS).

Nein - Ruft die Anzahl von Datensätzen ab, die mit dem Attribut Array-Größe abfragen angegeben werden.

Gilt für  Blöcke

Einstellung  Form Builder

Vordefinierte Prozedur

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Standardwert

Nein

Obligatorisch/Optional  Obligatorisch, wenn ein Datenblock summierte Objekte enthält und wenn für das Blockattribut Summen im voraus berechnen Nein angegeben wurde.


Attribut Abfrage zulässig (Block)

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob Form Builder dem Endbenutzer oder der Anwendung die Ausführung einer Abfrage in dem Block gestatten soll. Wenn für Abfrage zulässig Nein angegeben wird, zeigt Form Builder folgende Meldung an, wenn der Endbenutzer versucht, den Block abzufragen:

FRM-40360: Die Datensätze zu der Abfrage können nicht abgerufen werden.

Gilt für  Blöcke

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Standardwert

Ja

Einschränkungen

Wenn für das Blockattribut Abfrage zulässig Ja angegeben wird, muß das Objektattribut Abfrage zulässig für mindestens ein Objekt in dem Block auf Ja eingestellt werden.


Attribut Abfrage zulässig (Objekt)

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Bestimmt, ob das Objekt in einer Abfrage für eine Basistabelle des Eigentümerblocks aufgenommen werden kann.

Gilt für  Alle Objekte, mit Ausnahme von Schaltflächen, Diagrammobjekten und Bildobjekten

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Ja; wenn das Objekt jedoch Bestandteil des Fremdschlüssels im Detail-Block einer Master-Detail-Blockbeziehung ist, setzt Form Builder dieses Attribut auf Nein.

Verwendungshinweise

Um das Attribut Abfrage zulässig (Objekt) programmgesteuert einzustellen, verwenden Sie die Konstante QUERYABLE.


Einschränkungen bei Abfrage zulässig (Objekt)

•	Das Attribut Sichtbar muß ebenfalls auf Ja eingestellt sein.

•	Objekte mit dem Datentyp LONG können nicht direkt abgefragt werden.


Attribut Abfrage-Array-Größe

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt die Höchstzahl von Datensätzen an, die Form Builder gleichzeitig aus der Datenbank abrufen soll.

Gilt für  Blöcke

Einstellung  Form Builder

Vordefinierte Prozedur

GET_BLOCK_PROPERTY

Standardwert

Die Anzahl von Datensätzen, die der Block anzeigen kann, wie mit dem Attribut Anzahl angezeigter Datensätze angegeben.

Obligatorisch/Optional  Obligatorisch

Verwendungshinweise

Bei einer Größe von 1 erhalten Sie die schnellste Reaktionszeit, da Form Builder immer nur einen Datensatz gleichzeitig abruft und anzeigt. Bei einer Größe von 10 werden hingegen bis zu 10 Datensätze abgerufen, bevor diese angezeigt werden. Die größere Größe reduziert jedoch die Gesamt-Verarbeitungszeit, indem weniger Aufrufe für Datensätze an die Datenbank abgesetzt werden.


Einschränkungen bei Abfrage-Array-Größe

•	Es gibt keinen Höchstwert.


Attribut Abfrage-Datenquellargumente

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt Namen, Datentypen und Werte der Argumente an, die zur Abfrage von Daten an die Prozedur übergeben werden müssen. Das Attribut Abfrage-Prozedurargumente ist nur gültig, wenn für das Attribut Abfrage-Datenquellargumente Prozedur angegeben wurde.

Gilt für  Blöcke

Einstellung  Form Builder

Standardwert

NULL

Obligatorisch/Optional  Optional


Attribut Abfrage-Datenquellspalten

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen und Datentyp der Spalten an, die mit der Datenquelle der Blockabfrage verknüpft sind. Das Attribut Abfrage-Datenquellspalten ist nur gültig, wenn für das Attribut Abfrage-Datenquelltyp Tabelle, Unterabfrage oder Prozedur angegeben wurde.

Gilt für  Blöcke

Einstellung  Form Builder

Standardwert

NULL

Obligatorisch/Optional  Optional


Attribut Abfrage-Datenquellname

 Einschränkungen	   Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen der Datenquelle für die Blockabfrage an.

Das Attribut Abfrage-Datenquellname ist nur gültig, wenn für das Attribut Abfrage-Datenquelltyp Tabelle, Unterabfrage oder Prozedur angegeben wurde.

Gilt für  Blöcke

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	 GET_BLOCK_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

NULL

Obligatorisch/Optional  Optional


Einschränkungen bei Abfrage-Datenquellname

Bevor Sie das Attribut Abfrage-Datenquellname einstellen, müssen Sie einen COMMIT_FORM- oder  CLEAR_FORM-Vorgang durchführen.


Attribut Abfrage-Datenquelltyp

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt einen Datenquelltyp für die Blockabfrage an. Ein Datenquelltyp für die Abfrage kann eine Tabelle, eine Prozedur, ein Transaktionstrigger oder eine WHERE-Klausel sein.

Gilt für  Blöcke

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

GET_BLOCK_PROPERTY

Standardwert

Tabelle

Obligatorisch/Optional  Obligatorisch


Attribut Abfragelänge

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Anzahl von Zeichen an, die ein Endbenutzer in das Textobjekt eingeben kann, wenn sich die Form im Abfragemodus befindet.

Gilt für  Textobjekte

Einstellung  Form Builder

Standardwert

Der Wert des Objektattributs Maximale Länge

Verwendungshinweise

Sie können für die Abfragelänge einen größeren Wert als für Maximale Länge angeben, wenn der Endbenutzer komplexe Abfragebedingungen eingeben muß. So kann ein Endbenutzer bei einer Abfragelänge von 5 z.B. die Abfragebedingung !=500 in ein Textobjekt mit einer Maximalen Länge von 3 eingeben.


Einschränkungen bei Abfragelänge

•	Die maximale Abfragelänge beläuft sich auf 255 Zeichen.


Attribut Abfragename

 Alle Attribute

Beschreibung

Gibt den Namen der Abfrage in dem Bericht an, mit dem der Forms-Block verknüpft werden soll.

Gilt für  Berichtintegration

Einstellung  Form Builder

Standardwert

Leer

Obligatorisch/Optional  Optional


Attribut Nur Abfrage

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, daß ein Objekt abgefragt werden kann, daß es jedoch nicht in einer INSERT- oder UPDATE-Anweisung aufgenommen werden soll, die Form Builder zur Laufzeit für den Block ausgibt.

Gilt für  Kontrollkästchen, Optionsgruppen, Listenobjekte, Bildobjekte, Textobjekte, benutzerdefinierte Objekte (OLE)

Einstellung  programmgesteuert

Standardwert

Nein

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


Attribut Query_Hits

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt den NUMBER-Wert an, der der Anzahl von Datensätzen entspricht, die von dem Vorgang COUNT_QUERY identifiziert werden. Wenn dieser Wert überprüft wird, während Datensätze aus einer Abfrage abgerufen werden, gibt QUERY_HITS die Anzahl von Datensätzen an, die abgerufen wurden.

Dieses Attribut ist in erster Linie für Anwendungen vorgesehen, die mit fremden Datenquellen ausgeführt werden.

Gilt für  Blöcke

Einstellung  programmgesteuert

Vordefinierte Prozedur

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Verwendungshinweise

Dieses Attribut kann auf verschiedene Art benutzt werden:

•	In einer Anwendung, die mit einer fremden Datenquelle ausgeführt wird, benutzen Sie SET_BLOCK_PROPERTY(QUERY_HITS) in einem On-Count-Trigger, um Form Builder über die Anzahl von Datensätzen zu unterrichten, die von einer Abfrage zurückgegeben werden. Auf diese Weise können Sie eine Treffer-zählen-Verarbeitung implementieren, die der Standardverarbeitung Treffer zählen von Form Builder voll entspricht.

•	Benutzen Sie GET_BLOCK_PROPERTY(QUERY_HITS) während der Treffer-zählen-Verarbeitung, um die Anzahl von Datensätzen zu überprüfen, die wahrscheinlich von einer Abfrage abgerufen werden.

•	Benutzen Sie GET_BLOCK_PROPERTY(QUERY_HITS) während des Abrufens, um die Anzahl von Datensätzen zu überprüfen, die bislang von der Abfrage abgerufen und in die Liste mit Datensätzen des Blocks gesetzt wurden.


Einschränkungen bei Query_Hits

Geben Sie für dieses Attribut einen Wert größer als oder gleich 0 an.


Attribut Query_Options

 Alle Attribute

Beschreibung

Gibt die Art des Abfragevorgangs an, den Form Builder standardmäßig ausführen würde, wenn Sie die Standardverarbeitung nicht umgangen hätten. Dieses Attribut ist für Anwendungen vorgesehen, die mit fremden Datenquellen ausgeführt werden.

Dieses Attribut kann folgende Werte annehmen:

•	VIEW

•	FOR_UPDATE

•	COUNT_QUERY

•	NULL

Gilt für  Blöcke

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_BLOCK_PROPERTY


 Attribut Optionsschaltflächenwert

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Wert an, der mit einem Optionsschaltflächenobjekt in einer Optionsgruppe verknüpft ist.

Gilt für  Optionsschaltflächen

Einstellung  Form Builder

Standardwert

Leer


Attribut Automatisch anzeigen

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Bei einer Leinwand, die in demselben Fenster mit einer oder mehreren anderen Leinwänden angezeigt wird, wird mit dem Attribut Automatisch anzeigen angegeben, wie Form Builder die Leinwand anzeigen soll, wenn der Endbenutzer oder die Anwendung zu einem Objekt auf der Leinwand navigiert.

•	Wenn für Automatisch anzeigen Nein angegeben wird, zeigt Form Builder die Ansicht nur vor allen anderen Ansichten in dem Fenster an, wenn das Zielobjekt hinter einer anderen Ansicht liegt.

•	Wenn für Automatisch anzeigen Ja angegeben wird, zeigt Form Builder die Ansicht immer an vorderster Stelle in dem Fenster an, wenn der Endbenutzer oder die Anwendung zu einem beliebigen Objekt in der Ansicht navigiert.

Gilt für  Leinwände

Einstellung  Form Builder

Standardwert

Nein


Einschränkungen bei Automatisch anzeigen

Kann nur benutzt werden, wenn mehr als eine Leinwand demselben Fenster zugewiesen ist.


Attribut Lesereihenfolge

  Verwandte Themen	 Alle Attribute

Beschreibung

Hinweis:  Dieses Attribut ist für bidirektionale National Language Support- (NLS-) Anwendungen spezifisch.

Mit diesem Attribut wird die Lesereihenfolge für Wortgruppen (Segmente) in derselben Sprache innerhalb eines einzelnen Textobjekts angegeben.

Mit dem Attribut Lesereihenfolge können Sie die Anzeige von zweisprachigen Textobjekten, Textobjekten, die Segmente sowohl in Römischer als auch Lokaler Sprache enthalten, steuern. (Das Attribut Lesereihenfolge hat keine Auswirkung auf Textobjekte, die in einer einzigen Sprache erstellt werden.)

Die zulässigen Werte für dieses Attribut sind:

Wert	Beschreibung
Standardwert	Das Textobjekt übernimmt die Lesereihenfolge, wie mit dem entsprechenden Leinwandattribut Richtung angegeben.
Von rechts nach links	Die Lesereihenfolge für das Objekt geht von rechts nach links.
Von links nach rechts	Die Lesereihenfolge für das Attribut geht von links nach rechts.

Gilt für  Anzeigeobjekte, Textobjekte

Einstellung  Form Builder

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Standardwert

Verwendungshinweise

•	In den meisten Fällen müssen Sie das Attribut Lesereihenfolge nicht ausdrücklich festlegen (die Standard-Einstellung bietet die benötigte Funktionalität). Benutzen Sie das Attribut Lesereihenfolge nur, wenn Sie die Standardreihenfolge für ein Objekt außer Kraft setzen müssen.

•	Um das Attribut Lesereihenfolge programmgesteuert einzulesen oder festzulegen, verwenden Sie das Attribut Richtung.

•	Um ein Lokales Segment im Von-rechts-nach-links-Modus und ein Römisches Segment im Von-links-nach-rechts-Modus anzuzeigen, benutzen Sie den Standardwert.

•	Wenn der Objekttext im wesentlichen Lokal ist, wählen Sie den Wert Von rechts nach links.

•	Wenn das Textobjekt im wesentlichen Römisch ist, verwenden Sie den Wert Von links nach rechts.


Attribut Reelle Einheit

 Einschränkungen	 Alle Attribute

Beschreibung

Wenn für das Attribut Koordinatensystem Reell angegeben wurde, werden mit dem Attribut Reelle Einheit die reellen Einheiten angegeben, die zur Angabe von Größe und Positionskoordinaten in der Form verwendet werden sollen. Bei reellen Einheiten kann es sich um Zentimeter, Zoll, Pixel, Punkt oder Zehntelpunkte handeln. (Ein Punkt entspricht 1/72 Zoll.)

Form Builder interpretiert alle Größen- und Positionskoordinaten, die in der Form angegeben werden, in den hier angegebenen reellen Einheiten. Wenn Sie von einer reellen Einheit zu einer anderen konvertieren, kann es bei bestehenden Objektgrößen- und -positionswerten zu einem gewissen Genauigkeitsverlust kommen.

Gilt für  Formmodule

Einstellung  Form Builder

Standardwert

Zentimeter

Obligatorisch/Optional  Optional


Einschränkungen bei Reelle Einheit

Ist nur gültig, wenn für das Attribut Koordinatensystem Reell angegeben wurde.


Attribut Datensatzgruppe

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen der Datensatzgruppe an, aus der die Werteliste die Werte ableitet.

Gilt für

Wertelisten, hierarchische Bäume

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

GET_LOV_PROPERTY (GROUP_NAME)

SET_LOV_PROPERTY (GROUP_NAME)

POPULATE_TREE

POPULATE_GROUP_FROM_TREE

Standardwert

Null

Obligatorisch/Optional  Obligatorisch bei Werteliste, Optionale bei hierarchischen Bäumen

Verwendungshinweise

Eine Werteliste zeigt die Datensätze an, die in der zugrundeliegenden Datensatzgruppe gespeichert sind. Jede Werteliste muß auf einer Datensatzgruppe basieren. Eine Datensatzgruppe kann von einer Abfrage (Abfrage-Datensatzgruppe) oder festen Werten (statische Datensatzgruppe) aufgefüllt werden.


Attribut Datensatzgruppe Abrufgröße

 Alle Attribute

Beschreibung

Gibt die Größe der abzurufenden Datensatzgruppe an. Mit einer größeren Abrufgröße wird die Anzahl von Abrufvorgängen für die Datensatzgruppe reduziert. So sind zum Abrufen einer Datensatzgruppe von 5000 Datensätzen 500 Abrufvorgänge erforderlich, wenn Datensatzgruppe-Abrufgröße auf 10 eingestellt ist, aber nur 5 Abrufvorgänge, wenn das Attribut auf 1000 eingestellt ist.

Gilt für  Datensatzgruppen

Einstellung  Form Builder

Standardwert

20

Obligatorisch/Optional  Obligatorisch

Verwendungshinweise

Dieses Attribut ist nur verfügbar, wenn das Attribut Datensatzgruppentyp auf Abfrage eingestellt ist.


Attribut Datensatzgruppenabfrage

 Alle Attribute

Beschreibung

Gibt die SELECT-Anweisung für die Abfrage an, die mit der Datensatzgruppe verknüpft ist.

Gilt für  Datensatzgruppen

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

POPULATE_GROUP_WITH_QUERY

Obligatorisch/Optional  Optional


Attribut Datensatzgruppentyp

 Alle Attribute

Beschreibung

Gibt den Typ der Datensatzgruppe an, d.h. Statisch oder Abfrage:

Statisch	Gibt an, daß die Datensatzgruppe aus explizit definierten Spaltennamen und Spaltenwerten besteht. Die Werte einer statischen Datensatzgruppe werden beim Entwurf angegeben und können zur Laufzeit nicht geändert werden.

Abfrage	Gibt an, daß die Datensatzgruppe mit einer SELECT-Anweisung verknüpft ist und somit dynamisch zur Laufzeit aufgefüllt werden kann. Wenn Sie diese Option auswählen, geben Sie die SELECT-Anweisung in das vorgesehene mehrzeilige Feld ein, und wählen Sie dann Anwenden.

Gilt für

Datensatzgruppen

Einstellung  Form Builder

Standardwert

Abfrage


Attribut Datensatzdarstellung

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Bestimmt die Darstellung der Datensätze in dem Block, d.h. horizontale oder vertikale Datensätze. Wenn Sie dieses Attribut festlegen, paßt Form Builder die Anzeigeposition von Objekten in dem Block entsprechend an.

Gilt für  Blöcke

Einstellung  Form Builder

Standardwert

Vertikale Datensätze

Obligatorisch/Optional  Optional

Verwendungshinweise

Sie können dieses Attribut auch einstellen, wenn Sie einen Block im Fenster Neuer Block erstellen, indem Sie für die Option Darstellung Vertikal oder Horizontal angeben.


Einschränkungen bei Datensatzdarstellung

Gilt nur für einen Block mit mehreren Datensätzen (einen Block, bei dem das Attribut Anzahl angezeigter Datensätze auf einen größeren Wert als 1 eingestellt ist).


Attribut Records_to_Fetch

 Beispiele	 Alle Attribute

Beschreibung

Gibt die Anzahl von Datensätzen zurück, die ein On-Fetch-Trigger abfragen und als abgefragte Datensätze erstellen soll.

Sie können den Wert von Records_To_Fetch programmgesteuert überprüfen, wenn Sie Transaktionstrigger verwenden, um die Standard-Transaktionsverarbeitung von Form Builder zu ersetzen, wenn die Abfrage mit einer fremden Datenquelle durchgeführt wird.

Gilt für  Blöcke

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_BLOCK_PROPERTY

Verwendungshinweise

Records_To_Fetch wird nur innerhalb des Geltungsbereichs eines On-Fetch-Triggers definiert.

Wenn der On-Fetch-Trigger das erste Mal ausgelöst wird, entspricht der Wert von Records_To_Fetch entweder der Array-Größe (wie mit dem Blockattribut Abfrage-Array-Größe angegeben) oder der Anzahl angezeigter Datensätze + 1, je nachdem, welcher Wert größer ist.

Wenn der On-Fetch-Trigger die entsprechende Anzahl von abgefragten Datensätzen erstellt, entspricht der Wert von Records_To_Fetch dieser Anzahl, wenn der On-Fetch-Trigger das nächste Mal ausgelöst wird.

Wenn der On-Fetch-Trigger jedoch weniger Datensätze erstellt, als mit dem Wert von Records_To_Fetch angegeben, und Form_Trigger_Failure nicht auslöst, löst Form Builder den On-Fetch-Trigger erneut aus. Records_To_Fetch wird auf den vorherigen Wert minus der Anzahl abgefragter Datensätze gesetzt, die vom vorherigen Auslösen des On-Fetch-Triggers erstellt wurden.

Dieses Verhalten wird fortgesetzt, bis eines der folgenden Ereignisse eintritt:

•	Der Trigger erstellt keinen einzigen abgefragten Datensatz (und gibt somit ein erfolgreiches Ende des Abrufenvorgangs an).

•	Die erwartete Anzahl von abgerufenen Datensätzen wird erstellt.

•	Der Trigger löst Form_Trigger_Failure aus (womit angegeben wird, daß der Abrufenvorgang mit einem Fehler abgebrochen wurde und die Abrufenverarbeitung angehalten werden soll).


Beispiele für Records_to_Fetch

Beispiel

/*

** Call a client-side package function to retrieve
** the proper number of rows from a package cursor.
*/
DECLARE
   j NUMBER := Get_Block_Property(RECORDS_TO_FETCH);
   emprow emp%ROWTYPE;
BEGIN
   FOR ctr IN 1..j LOOP
      /* Try to get the next row.*/
      EXIT WHEN NOT MyPackage.Get_Next_Row(emprow);
      Create_Queried_Record;
      :Emp.rowid := emprow.ROWID;
      :Emp.empno := emprow.EMPNO;
      :Emp.ename := emprow.ENAME;
         :
         :
   END LOOP;
END;


Attribut Beziehungstyp

 Alle Attribute

Beschreibung

Gibt an, ob es sich bei dem Link zwischen dem Master-Block und dem Detail-Block um einen relationalen Join oder einen REF-Objekt-Pointer handelt.

Gilt für  Master-Detail-Beziehungen

Einstellung  Form Builder

Standardwert

Join

Verwendungshinweise

Gültige Werte sind Join (gibt einen relationalen Join an) oder REF (gibt eine REF-Spalte in einem Block an, die auf referenzierte Daten in dem anderen Block zeigt).

Wenn der Link über REF erfolgt, wird auch auf das Attribut Detail-Referenz verwiesen.

Wenn der Link über einen Join erfolgt, wird auch auf das Attribut Join-Bedingung verwiesen.


Attribut Gerendert

 Alle Attribute

Beschreibung

Gibt an, daß das Objekt als gerendertes Objekt angezeigt werden soll, wenn es den Fokus nicht hat.

Gilt für  Textobjekte, Anzeigeobjekte

Einstellung  Form Builder

Standardwert

Ja

Verwendungshinweise

Benutzen Sie das Attribut Gerendert, um Systemressourcen zu sparen. Ein gerendertes Objekt benötigt erst dann Systemressourcen, wenn es den Fokus erhält. Wenn ein gerendertes Objekt den Fokus nicht mehr hat, werden die zur Anzeige benötigten Ressourcen freigegeben.


Attribut Bericht-Zielformat

 Alle Attribute

Beschreibung

In Bitmap-Umgebungen gibt dieses Attribut den Druckertreiber an, der benutzt werden soll, wenn für das Attribut Bericht-Zieltyp Datei angegeben wurde. In Zeichenmodus-Umgebungen gibt dieses Attribut die Eigenschaften des Druckers an, der in dem Attribut Bericht-Zielname benannt wird.

Mögliche Werte sind gültige Zielformate mit einer Länge von maximal 1 K. Beispiele für gültige Werte für dieses Schlüsselwort sind hpl, hplwide, dec, decwide, decland, dec180, dflt, wide usw. Bitten Sie Ihren Systemadministrator um eine Liste mit gültigen Zielformaten. Außerdem unterstützt Report Builder die folgenden Zielformate:

PDF	Bedeutet, daß die Berichtausgabe an eine Datei gesendet wird, die von einem PDF-Viewer gelesen werden kann. Die PDF-Ausgabe basiert auf dem momentan für Ihr System konfigurierten Drucker. Mit den Treibern für den momentan ausgewählten Drucker wird die Ausgabe erzeugt. Sie müssen einen Drucker für den Rechner konfiguriert haben, auf dem der Bericht ausgeführt wird.
HTML	Bedeutet, daß die Berichtausgabe an eine Datei gesendet wird, die von einem HTML 3.0-konformen Browser gelesen werden kann (z.B. Netscape 2.2).
HTMLCSS	Bedeutet, daß die an eine Datei gesendete Berichtausgabe Dokumentvorlagenerweiterungen umfaßt, die von einem HTML 3.0-konformen Browser gelesen werden können, der überlappende Dokumentvorlagen unterstützt.
HTMLCSSIE	Bedeutet, daß die an eine Datei gesendete Berichtausgabe Dokumentvorlagenerweiterungen umfaßt, die von Microsoft Internet Explorer 3.x gelesen werden können.
RTF	Bedeutet, daß die Berichtausgabe an eine Datei gesendet wird, die von Standard-Textverarbeitungsprogrammen (wie z.B. Microsoft Word) gelesen werden kann. Wenn Sie die Datei in MS Word öffnen, müssen Sie Ansicht [image] Seitenlayout wählen, um alle Grafiken und Objekte in Ihrem Bericht anzuzeigen.
MIT BEGRENZUNGSZEICHEN	Bedeutet, daß die Berichtausgabe an eine Datei gesendet wird, die von Standard-Tabellenkalkulationsprogrammen wie Microsoft Excel gelesen werden kann. Bei diesem Format muß außerdem ein BEGRENZUNGSZEICHEN angegeben werden.
Weitere Informationen über dieses Attribut finden Sie unter DESFORMAT in der Index-Kategorie Befehlszeilenargumente in der Online-Hilfe für Report Builder.

Gilt für  Berichte

Einstellung  Form Builder

Standardwert

Leer

Obligatorisch/Optional  Optional


Attribut Bericht-Zielname

 Alle Attribute

Beschreibung

Name der Datei, des Druckers, des Interoffice-Ordners oder der E-Mail-Benutzer-ID (oder Verteilerliste), an die die Berichtausgabe gesendet wird. Die möglichen Werte werden unten aufgeführt, wobei diese nicht länger sein dürfen als 1 K.

•	Dateiname (wenn für das Attribut Bericht-Zieltyp Datei oder Lokale Datei angegeben wurde)

•	Druckername (wenn für das Attribut Bericht-Zieltyp Drucker angegeben wurde)

•	E-Mail-Name oder Verteilerliste (wenn für das Attribut Bericht-Zieltyp Mail angegeben wurde)

Um die Berichtausgabe über E-Mail zu verschicken, geben Sie die E-Mail-ID genau wie in Ihrer E-Mail-Anwendung an (beliebige MAPI-konforme Anwendung unter Windows, wie z.B. Oracle InterOffice oder Ihr eigene Mail-Anwendung bei UNIX). Sie können mehrere Benutzernamen angeben, indem Sie die Namen in Klammern setzen und durch Kommas voneinander trennen (z.B. (name, name, . . .name)). Bei Druckernamen können Sie optional einen Port angeben. Zum Beispiel:

printer,LPT1:

printer,FILE:

Wenn für das Attribut Bericht-Zieltyp Interoffice angegeben wurde:

/FOLDERS/directory/reportname

Weitere Informationen über dieses Attribut finden Sie unter DESNAME in der Index-Kategorie Befehlszeilenargumente in der Online-Hilfe für Report Builder.

Gilt für  Berichte

Einstellung  Form Builder

Standardwert

Leer

Obligatorisch/Optional  Optional


Attribut Bericht-Zieltyp

 Alle Attribute

Beschreibung

Ziel, an das die Ausgabe gesendet werden soll. Mögliche Werte sind Screen, File, Printer, Preview, Mail und Interoffice. Weitere Informationen über dieses Attribut finden Sie unter DESTYPE in der Index-Kategorie Befehlszeilenargumente in der Online-Hilfe für Report Builder.

SCREEN	Bei Auswahl von Screen wird die Ausgabe für die interaktive Anzeige an die Vorschau weitergeleitet. Dieser Wert ist nur gültig, wenn der Bericht im Laufzeitmodus (nicht im Stapelmodus) ausgeführt wird. Schriftart-Alias werden nicht benutzt.
FILE	Bei Auswahl von File wird die Ausgabe in einer Datei gespeichert, die mit Bericht-Zielname angegeben wird.
PRINTER	Bei Auswahl von Printer wird die Ausgabe an den Drucker weitergeleitet, der mit Bericht-Zielname angegeben wird.
PREVIEW	Bei Auswahl von Preview wird die Ausgabe zur interaktiven Anzeige an die Vorschau weitergeleitet. Bei Auswahl von Preview wird die Ausgabe jedoch als Postscript-Ausgabe formatiert. Die Vorschau bestimmt anhand des Attributs Bericht-Zielname, welche Druckerschriftarten zur Anzeige der Ausgabe benutzt werden sollen. Schriftart-Alias werden bei Preview benutzt.
MAIL	Bei Auswahl von Mail wird die Ausgabe an die Mail-Benutzer weitergeleitet, die mit Bericht-Zielname angegeben werden. Sie können Mails an jedes Mail-System senden, das MAPI-konform ist oder für das ein Treiber des Diensteanbieters installiert ist. Der Bericht wird als Dateianhang gesendet.
INTEROFFICE	Bei Auswahl von InterOffice wird die Ausgabe an die Benutzer von Oracle InterOffice weitergeleitet, die in Bericht-Zielname angegeben werden. Bei Angabe dieses Wertes können Sie die Berichtausgabe in InterOffice als Repository speichern.
Gilt für  Berichte

Einstellung  Form Builder

Standardwert

Datei

Obligatorisch/Optional  Obligatorisch


Attribut Bericht-Server

 Alle Attribute

Beschreibung

Gibt den Bericht-Server an, mit dem Sie Ihren Bericht ausführen können.

Gilt für  Berichte

Einstellung  Form Builder

Obligatorisch/Optional  Optional

Standardwert

Leer


Attribut Obligatorisch (Objekt)

  Verwandte Themen	 Alle Attribute

Beschreibung

Wenn ein neuer Datensatz eingegeben wird, gibt dieses Attribut an, daß das Objekt ungültig ist, wenn es den Wert NULL hat.

Gilt für  Listenobjekte, Textobjekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_INSTANCE_PROPERTY

•	GET_ITEM_PROPERTY

•	SET_ITEM_INSTANCE_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Nein

Verwendungshinweise

Wenn das Attribut Obligatorisch bei einem Objekt auf Ja eingestellt ist und die Validierung auf Objektebene benutzt wird, läßt Form Builder standardmäßig keine Navigation außerhalb des Objektes zu, bis ein gültiger Wert eingegeben wird. Damit der Endbenutzer frei unter den Objekten in dem Datensatz navigieren kann, müssen Sie das Attribut Defer Required-Durchsetzung auf Ja setzen. Dadurch wird das Inkraftsetzen des Attributs Obligatorisch von der Objektvalidierung zur Datensatzvalidierung verschoben.

Selbst wenn für das Attribut Obligatorisch Ja angegeben wurde, gibt es Fälle, bei denen der Wert eines Objekts NULL sein kann. Form Builder prüft auf obligatorische Objekte im Rahmen des Validierungsvorgangs: Jedes Objekt in einem neuen Datensatz muß validiert werden, es wird jedoch davon ausgegangen, daß abgefragte Daten gültig sind, und ein Objekt wird nur validiert, wenn es geändert wurde. Wenn der Datensatz z.B. schon vorhanden ist und aus der Datenbank abgefragt wird, könnte das Objekt, das Obligatorisch ist, mit einem NULL-Wert abgerufen werden.

Wenn Sie das Attribut Obligatorisch einer Popup-Liste oder T-Liste einstellen, kann sich dies auf die Werte auswirken, die in der Liste angezeigt werden: Wenn dieses Attribut ausgewählt wird, zeigt eine Instanz einer Popup-Liste einen zusätzlichen Null-Wert an, wenn der aktuelle Wert NULL ist oder wenn das effektive Attribut Obligatorisch Nein (False) ist. Wenn Sie den aktuellen Wert einer Instanz einer T-Liste auswählen, wird die Auswahl aufgehoben (wobei die T-Liste keinen ausgewählten Wert mehr enthält), wenn das effektive Attribut Obligatorisch Nein (False) ist. Wenn das effektive Attribut Obligatorisch jedoch Ja (True) ist, bleibt die Auswahl des aktuellen Wertes einer Instanz einer T-Liste wirkungslos. Der Wert bleibt weiterhin ausgewählt.


Attribut Obligatorisch (Menüparameter)

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, daß der Endbenutzer einen Wert für den Menüsubstitutionsparameter eingeben muß.

Gilt für  Menüsubstitutionsparameter

Einstellung  Form Builder

Standardwert

Nein


Attribut Skalieren zulässig

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, daß das Fenster eine feste Größe haben muß und zur Laufzeit nicht skaliert werden kann. Dieses Attribut ist GUI-Hinweis und wird möglicherweise nicht auf allen Plattformen unterstützt.

Gilt für  Fenster

Einstellung  Form Builder

Standardwert

Nein

Verwendungshinweise

Das Attribut Skalieren zulässig verhindert, daß ein Endbenutzer das Fenster skaliert, verhindert jedoch nicht, daß Sie das Fenster programmgesteuert mit RESIZE_WINDOW oder SET_WINDOW_PROPERTY skalieren.


Einschränkungen bei Skalieren zulässig

•	Das Attribut Skalieren zulässig ist nur gültig, wenn das Attribut Maximieren zulässig auf Nein eingestellt ist.


Attribut Rückgabeobjekt (Werteliste)

 Alle Attribute

Beschreibung

Siehe Attribute Spaltenzuordnung.


Attribut Drehwinkel

 Alle Attribute

Beschreibung

Gibt den Drehwinkel des Grafikobjekts an. Es wird davon ausgegangen, daß das Objekt anfänglich mit einem Winkel von 0 erstellt wird. Mit diesem Attribut wird die Anzahl von Graden im Uhrzeigersinn angegeben, um die das Objekt momentan von diesem Anfangswinkel abweicht. Sie können ein Objekt mit einem absoluten Winkel drehen, indem Sie dieses Attribut festlegen.

Gilt für  Grafiken

Einstellung  Form Builder

Standardwert  0

Obligatorisch/Optional  Obligatorisch


Attribut Laufzeit-Kompatibilitätsmodus

 Alle Attribute

Beschreibung

Gibt die Form Builder-Version an, mit der das Laufzeitverhalten der aktuellen Form kompatibel ist (4.5 oder 5.0 bis 6.0). Standardmäßig sind neue Forms, die mit Form Builder 5.0 bis 6.0 erstellt werden, mit 5.0 kompatibel. Bestehende Forms, die von 4.5 umgestellt werden, sind mit 4.5 kompatibel. Damit diese Forms das neue Laufzeitverhalten von 5.0 bis 6.0 verwenden, stellen Sie dieses Attribut auf 5.0 ein. Das Laufzeitverhalten, das von diesem Attribut betroffen ist, besteht im wesentlichen aus Validierung und Initialisierung. Weitere Informationen über das Laufzeitverhalten von 5.0 bis 6.0 finden Sie in den Abschnitten Initialisierung und Validierung im Kapitel Standardverarbeitung der Online-Referenz für Form Builder. Weitere Informationen über das 4.5-Laufzeitverhalten finden Sie in dem Abschnitt Laufzeitverhalten von Form Builder 4.5 im Kapitel Kompatibilität mit früheren Releases in der Online-Referenz für Form Builder.

Gilt für  Forms-Kompatibilität

Einstellung  Form Builder

Standardwert

5.0 bei neuen Forms, 4.5 bei Forms, die mit Form Builder 4.5 erstellt wurden

Obligatorisch/Optional  Obligatorisch


Attribut Savepoint-Modus

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt an, ob Form Builder während einer Sitzung Savepoints ausgeben soll. Dieses Attribut ist in erster Linie für Anwendungen gedacht, die mit fremden Datenquellen ausgeführt werden. Bei Anwendungen, die mit ORACLE verwendet werden, benutzen Sie die Standardeinstellung.

In der folgenden Tabelle werden die Einstellungen für dieses Attribut erläutert:

Einstellung	Beschreibung
Ja (Standard)	Gibt an, daß Form Builder einen Savepoint beim Starten der Form und beim Starten jedes Abschicken- und Speichern-Prozesses ausgeben soll.
Nein	Gibt an, daß Form Builder keine Savepoints ausgeben soll und daß keine Rollbacks zu Savepoints ausgeführt werden sollen.

 Gilt für  Formmodule

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY

Standardwert

Ja

Obligatorisch/Optional  Optional


Einschränkungen bei Savepoint-Modus

Wenn für Savepoint-Modus Nein angegeben wird, läßt Form Builder nicht zu, daß eine Form mit nicht gespeicherten Änderungen eine andere Form mit der Prozedur CALL_FORM aufruft.


Attribut Savepoint_Name

 Alle Attribute

Beschreibung

Gibt den Namen des Savepoints an, der eingestellt  bzw. auf den ein Rollback vorgenommen werden soll.

Gilt für  Anwendungen

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_APPLICATION_PROPERTY

Verwendungshinweise

Der Wert dieses Attributs darf nur mit einem On-Savepoint- oder On-Rollback-Trigger überprüft werden.

•	Benutzen Sie Savepoint_Name in einem On-Savepoint-Trigger, um den Savepoint zu bestimmen, der durch einen Aufruf von ISSUE_SAVEPOINT gesetzt werden soll.

•	In einem On-Rollback-Trigger überprüfen Sie Savepoint_Name, um den Savepoint zu bestimmen, zu dem Form Builder mit einem Aufruf von ISSUE_ROLLBACK einen Rollback durchführen soll. Bei einem Savepoint-Namen NULL wird ein voller Rollback erwartet.


Attribut Bildlaufleisten-Darstellung

 Alle Attribute

Beschreibung

Gibt an, ob die Bildlaufleiste am Anfang oder Ende des Rahmens angezeigt wird.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Ende

Obligatorisch/Optional  Optional


Attribut Bildlaufleisten-Höhe

 Alle Attribute

Beschreibung

Gibt die Höhe der Bildlaufleiste an.

Gilt für Bildlaufleisten

Einstellung  Form Builder

Obligatorisch/Optional  Optional


Attribut Bildlaufleisten-Breite

 Alle Attribute

Beschreibung

Gibt die Breite der Bildlaufleiste an.

Gilt für Bildlaufleisten

Einstellung  Form Builder

Obligatorisch/Optional  Optional


Attribut Verdeckte Eingabe (Menüparameter)

  Verwandte Themen	 Alle Attribute

Beschreibung

Verbirgt Zeichen, die der Endbenutzer für den Substitutionsparameter eingibt.

Gilt für  Menüsubstitutionsparameter

Einstellung  Form Builder

Standardwert

Nein

Obligatorisch/Optional  Optional


Attribut Bibliothek mit Form gemeinsam benutzen

  Verwandte Themen	 Alle Attribute

Beschreibung

Forms, denen identische Bibliotheken zugeordnet sind, können Daten von vordefinierten Bibliotheksprozeduren gemeinsam benutzen. (Weitere Informationen finden Sie unter dem Parameter data_mode für die vordefinierten Prozeduren CALL_FORM, OPEN_FORM und NEW_FORM unter Verwandte Themen oben.) Mit dem Attribut Bibliothek mit Form gemeinsam benutzen können Menüs, die mit den Forms verknüpft sind, ebenfalls Daten von vordefinierten Bibliotheksprozeduren gemeinsam benutzen.

Gilt für  Menüs

Einstellung  Form Builder

Standardwert

Ja

Verwendungshinweise

1	Wenn zwei Forms ein Objekt gemeinsam benutzen und beide Forms beim Entwurf geöffnet sind und Sie Änderungen an dem Objekt in Form A vornehmen, sind diese Änderungen in Form B erst sichtbar, nachdem die Änderungen zuerst von Form A gespeichert wurden und Form B danach geschlossen und erneut geöffnet wurde.

2	Wenn Sie OPEN_FORM benutzen, um eine Form in einer anderen Datenbanksitzung zu öffnen, können Sie die Bibliotheksdaten nicht mit der Form oder den verknüpften Menüs gemeinsam benutzen. Versuche, Bibliotheksdaten gemeinsam zu benutzen, indem das Attribut auf Ja eingestellt wird, werden ignoriert.


Attribut Show_Fast_Forward_Button

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob das Steuerelement für das Klangobjekt angezeigt wird [image] (sowohl im Layouteditor als auch zur Laufzeit).

Gilt für  Klangobjekt-Steuerelemente

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Nein

Obligatorisch/Optional  Obligatorisch


Attribut Horizontale Bildlaufleiste anzeigen

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob eine Leinwand, ein Sekundärfenster oder ein Bildobjekt mit einer Bildlaufleiste angezeigt wird.

Gilt für  Leinwände, Fenster, Editoren, Bildobjekte

Einstellung  Form Builder

Standardwert

Nein

Obligatorisch/Optional  Optional


Einschränkungen bei Horizontale Bildlaufleiste anzeigen

•	Dieses Attribut ist bei einem Fenster nur gültig, wenn das Attribut Modal auf Nein eingestellt ist.

•	Bei Fensterverwaltungsprogrammen gültig, die horizontale Bildlaufleisten unterstützen.


Attribut Linien zeigen

 Alle Attribute

Beschreibung

Bestimmt, ob in einem hierarchischen Baum Linien angezeigt werden, die zu jedem Knoten nach oben führen.

Gilt für  Hierarchische Bäume

Einstellung  Form Builder

Standardwert

True

Obligatorisch/Optional  Obligatorisch


Attribut OLE-Popup-Menü anzeigen

  Verwandte Themen	 Alle Attribute

Beschreibung

Bestimmt, ob mit der rechten Maustaste ein Popup-Menü mit Befehlen für die Arbeit mit dem OLE-Objekt angezeigt wird. Für dieses Attribut gibt es folgende Einstellungen:

Ja	Die Standardauswahl für OLE-Popup-Menü. Das OLE-Popup-Menü wird angezeigt, wenn der Maus-Cursor auf dem OLE-Objekt steht und die rechte Maustaste gedrückt wird.

Nein	Das OLE-Popup-Menü wird nicht angezeigt, wenn der Maus-Cursor auf dem OLE-Objekt steht und die rechte Maustaste gedrückt wird.

Gilt für  OLE-Container

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Ja

Obligatorisch/Optional  Obligatorisch

Verwendungshinweise

•	Sie können das OLE-Popup-Menü nicht nur über Form Builder, sondern auch programmgesteuert einstellen und einlesen, indem Sie das Attribut SHOW_POPUPMENU verwenden. Bei der vordefinierten Prozedur SET_ITEM_PROPERTY wird das OLE-Popup-Menü angezeigt, wenn das Attribut SHOW_POPUPMENU auf PROPERTY_TRUE eingestellt ist. Wenn das Attribut SHOW_POPUPMENU auf PROPERTY_FALSE eingestellt ist, wird das OLE-Popup-Menü nicht angezeigt. Sie können das Attribut SHOW_POPUPMENU auch mit der vordefinierten Prozedur GET_ITEM_PROPERTY verwenden, um die aktuelle Einstellung für OLE-Popup-Menü zu ermitteln. Die vordefinierte Prozedur GET_ITEM_PROPERTY ergibt TRUE, wenn das OLE-Popup-Menü angezeigt wird, und FALSE, wenn das OLE-Popup-Menü nicht angezeigt wird.

•	Nur bei Microsoft Windows und Macintosh gültig.


Attribut OLE-Bewohnertyp anzeigen

 Einschränkungen	     Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob der OLE-Container mit einer Umrandung versehen ist, die den OLE-Objekttyp definiert. Die Art der Umrandung variiert je nach Objekttyp.

Gilt für  OLE-Container

Einstellung  Form Builder

Standardwert

Ja


Einschränkungen bei OLE-Bewohnertyp anzeigen

Nur bei Microsoft Windows und Macintosh gültig.


Attribut Show_Palette

  Verwandte Themen	 Alle Attribute

Beschreibung

Bestimmt, ob Form Builder neben dem zugehörigen Bildobjekt zur Laufzeit eine Palette zur Bildbearbeitung anzeigt. Die Palette enthält drei Werkzeuge, mit denen die Endbenutzer ein angezeigtes Bild bearbeiten können:

•	Zoom - Klicken Sie auf das Werkzeug, und klicken Sie dann wiederholt auf das Bild, um den Teil des Quellbildes schrittweise zu reduzieren, der innerhalb der Umrandung des Bildobjekts angezeigt wird.

•	Schwenken - Klicken Sie auf das Werkzeug, und verwenden Sie die Zugriffsmarkierung, um die nicht sichtbaren Teile des Quellbildes in die Ansicht zu schwenken (gilt nur, wenn das Quellbild über mindestens einen Rand des Bildobjekts hinausgeht).

•	Drehen - Klicken Sie auf das Werkzeug, und klicken Sie dann wiederholt auf das Bild, um es in Schritten von jeweils 90 Grad im Uhrzeigersinn zu drehen.

Gilt für  Bildobjekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Nein

Obligatorisch/Optional  Obligatorisch


Attribut Show_Play_Button

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob das Klangobjekt-Steuerelement angezeigt wird [image] (sowohl im Layouteditor als auch zur Laufzeit).

Gilt für  Klangobjekt-Steuerelemente

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Ja

Obligatorisch/Optional  Obligatorisch

Verwendungshinweise

•	Wenn Sie das Attribut Show_Play_Button auf Nein setzen, während das Attribut Show_Record_Button schon auf Nein eingestellt ist, zeigt Form Builder [image] automatisch zur Laufzeit an.


Attribut Show_Record_Button

  Verwandte Themen	 Alle Attribute

Beschreibung

Bestimmt, ob das Klangobjekt-Steuerelement angezeigt wird [image] (sowohl im Layouteditor als auch zur Laufzeit).

Gilt für  Klangobjekt-Steuerelemente

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Nein

Obligatorisch/Optional  Obligatorisch

Verwendungshinweise

•	Wenn Sie das Attribut Show_Record_Button auf Nein einstellen, während das Attribut Show_Play_Button schon auf Nein gesetzt ist, zeigt Form Builder [image] automatisch zur Laufzeit an.


Attribut Show_Rewind_Button

  Verwandte Themen	 Alle Attribute

Beschreibung

Bestimmt, ob das Klangobjekt-Steuerelement angezeigt wird [image] (sowohl im Layouteditor als auch zur Laufzeit).

Gilt für  Klangobjekt-Steuerelemente

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Nein

Obligatorisch/Optional  Obligatorisch


Attribut Bildlaufleiste anzeigen

  Verwandte Themen	 Alle Attribute

Beschreibung

Mit der Option Bildlaufleiste anzeigen wird angegeben, ob Form Builder eine Block-Bildlaufleiste für den zu definierenden Block erstellen soll. Wenn für Bildlaufleiste anzeigen Ja angegeben wird, erstellt Form Builder die Bildlaufleiste auf der Leinwand, die mit dem Attribut Bildlaufleisten-Leinwand angegeben wird.

Wenn Sie eine Block-Bildlaufleiste erstellen, können Sie die Attribute des Bildlaufleisten-Objekts selbst einstellen, einschließlich Bildlaufleisten-Leinwand, Bildlaufleisten-Darstellung, Bildlaufleiste X-Position, Bildlaufleiste Y-Position, Bildlaufleisten-Breite, Bildlaufleisten-Höhe, Umgekehrte Richtung und Visuelle Attributgruppe.

Gilt für  Blöcke

Einstellung  Form Builder

Standardwert

Nein

Obligatorisch/Optional  Optional

Verwendungshinweise

Wenn Sie für Umgekehrte Richtung Ja angeben, ruft Form Builder die nächste Gruppe mit Datensätzen ab, wenn der Endbenutzer einen Bildlauf nach oben durchführt. Bei einem Bildlauf nach unten zeigt Form Builder die schon abgerufenen Datensätze an.

Attribut	Beschreibung
Bildlaufleisten-Leinwand	Gibt die Leinwand an, auf der die Block-Bildlaufleiste angezeigt werden soll. Die angegebene Leinwand muß in der Form vorhanden sein.
Bildlaufleisten-Darstellung	Gibt an, ob die Block-Bildlaufleiste horizontal oder vertikal angezeigt werden soll.
Bildlaufleiste X-Position	Gibt die X-Position einer Block-Bildlaufleiste gemessen in der oberen linken Ecke der Bildlaufleiste an. Der Standardwert ist 0.
Bildlaufleiste Y-Position	Gibt die Y-Position einer Block-Bildlaufleiste gemessen in der oberen linken Ecke der Bildlaufleiste an. Der Standardwert ist 0.
Bildlaufleisten-Breite	Gibt die Breite einer Block-Bildlaufleiste an. Der Standardwert ist 2.
Bildlaufleisten-Höhe	Gibt die Höhe einer Block-Bildlaufleiste an. Der Standardwert ist 10.
Umgekehrte Richtung	Gibt an, daß der Bildlauf in umgekehrter Richtung durchgeführt wird. Der Standardwert ist Nein.
Visuelle Attributgruppe	Gibt Schriftart, Farbe und Musterattribute für die Bildlaufleiste an. Weitere Informationen finden Sie unter der Beschreibung des Attributs Visuelle Attributgruppe. Die Standardeinstellung wird von der Plattform und der Definition in der Resource-Datei bestimmt.


Attribut Show_Slider

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob das Klangobjekt-Steuerelement das Steuerelement für die Schieberegler-Position anzeigt (sowohl im Layouteditor als auch zur Laufzeit).

Gilt für  Klangobjekt-Steuerelemente

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Ja

Obligatorisch/Optional  Obligatorisch


Attribut Symbole zeigen

 Alle Attribute

Beschreibung

Gibt an, ob in einem hierarchischen Baum + oder - Symbole vor jedem Zweigknoten angezeigt werden sollen. Das Symbol + gibt an, daß der Knoten über untergeordnete Knoten verfügt, jedoch nicht eingeblendet ist. Mit dem Symbol - wird angegeben, daß der Knoten eingeblendet ist.

Gilt für  Hierarchische Bäume

Einstellung  Form Builder

Standardwert

True

Obligatorisch/Optional  Obligatorisch


Attribut Show_Time_Indicator

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob das Klangobjekt-Steuerelement angezeigt wird [image] (sowohl im Layouteditor als auch zur Laufzeit).

Gilt für  Klangobjekt-Steuerelemente

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Ja

Obligatorisch/Optional  Obligatorisch


Attribut Vertikale Bildlaufleiste anzeigen

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, daß an der Seite einer Leinwand oder eines Fensters eine vertikale Bildlaufleiste angezeigt wird.

Gilt für  Leinwände, Fenster, Bildobjekte, Editoren, Objekte

Einstellung  Form Builder

Standardwert

Nein

Obligatorisch/Optional  Optional


Einschränkungen bei Vertikale Bildlaufleiste anzeigen

•	Ist bei Fensterverwaltungsprogrammen gültig, die vertikale Bildlaufleisten unterstützen.

•	Ist bei einem Hauptfenster nicht gültig: Ein Hauptfenster kann keine Bildlaufleisten haben.

•	Ist bei Fensterverwaltungsprogrammen gültig, die vertikale Bildlaufleisten unterstützen.

•	Bei Textobjekten muß das Attribut Mehrzeilig auf Ja eingestellt sein.


Attribut Show_Volume_Control

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob das Klangobjekt-Steuerelement angezeigt wird [image] (sowohl im Layouteditor als auch zur Laufzeit).

Gilt für  Klangobjekt-Steuerelemente

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Ja

Obligatorisch/Optional  Obligatorisch


Attribut Shrinkwrap

 Alle Attribute

Beschreibung

Gibt an, ob leerer Platz automatisch aus dem Rahmen entfernt werden soll. Wenn für Shrinkwrap Ja angegeben wird, reduziert Form Builder den Rahmen um die Objekte innerhalb des Rahmens automatisch.

Hinweis:  Die Skalierung eines Rahmens bleibt wirkungslos, wenn für Shrinkwrap Ja angegeben ist. Wenn Sie z.B. den Rahmen vergrößern, reduziert Form Builder den Rahmen automatisch auf die entsprechende Shrinkwrap-Größe. Wenn Sie einen Rahmen skalieren möchten, müssen Sie für Shrinkwrap Nein angeben.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Ja

Obligatorisch/Optional  Optional


Attribut Ausrichtung einzelnes Objekt

 Alle Attribute

Beschreibung

Gibt die Ausrichtung für einzeilige Objekte an, wenn für das Attribut Rahmenausrichtung Füllung angegeben wurde.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Anfang

Obligatorisch/Optional  Obligatorisch


Attribut Einzelner Datensatz

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, daß der Steuerblock immer einen Datensatz enthalten muß. Beachten Sie, daß sich dies von der Anzahl angezeigter Datensätze in einem Block unterscheidet.

Gilt für  Blöcke

Einstellung  Form Builder

Standardwert

Nein

Verwendungshinweise

•	Setzen Sie Einzelner Datensatz für einen Steuerblock auf Ja, der ein berechnetes Summenobjekt oder ein a VBX- (bei Microsoft Windows 3.x 16-Bit) oder ActiveX-Steuerelement (bei 32-Bit Windows) enthält. Einzelner Datensatz muß hingegen für den Block auf Nein eingestellt werden, der das Objekt enthält, dessen Werte summiert und in dem berechneten Objekt angezeigt werden.

•	Für einen Datenblock kann Einzelner Datensatz nicht auf Ja eingestellt werden.


Attribut Größe

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt Breite und Höhe der Leinwand in den aktuellen Koordinateneinheiten für die Form an, wie mit dem Attribut Koordinatensystem angegeben.

Gilt für  Leinwände

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_CANVAS_PROPERTY

•	SET_CANVAS_PROPERTY

Größe (Objekt)

Gibt Breite und Höhe des Objekts in den aktuellen Koordinateneinheiten der Form an, wie mit dem Formattribut Koordinatensystem angegeben.

Gilt für  Objekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY

Größe (Editor)

Gibt Breite und Höhe des Editors in den aktuellen Koordinateneinheiten der Form an, wie mit dem Formattribut Koordinatensystem angegeben.

Gilt für  Editoren

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	EDIT_TEXTITEM

•	SHOW_EDITOR

Verwendungshinweise

•	Bei einem Text- oder Anzeigeobjekt wird die Anzahl von Zeichen, die in dem Objekt gespeichert werden können, mit dem Attribut Max. Länge bestimmt und ist von dem Attribut Größe nicht betroffen.

•	In Anwendungen, die auf Plattformen im Zeichenmodus ausgeführt werden, muß die Höhe von Objekten, mit denen Textbeschriftungen angezeigt werden, mindestens 2 Zeicheneinheiten betragen, damit der Text richtig angezeigt werden kann.

Größe (Werteliste)

Gibt Breite und Höhe der Werteliste in den aktuellen Koordinateneinheiten der Form an, wie mit dem Formattribut Koordinatensystem angegeben.

Gibt Breite und Höhe der Werteliste in den aktuellen Koordinateneinheiten der Form an, wie mit dem Formattribut Koordinatensystem angegeben.

Gilt für  Wertelisten

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_LOV_PROPERTY

•	SET_LOV_PROPERTY

Einschränkungen

Form Builder garantiert, daß die Mindestbreite der Werteliste breit genug zur Anzeige der Schaltflächen am unteren Rand der Werteliste ist. (Bei Plattformen, bei denen Wertelisten skaliert werden können, können Sie die Werteliste auf einen Mindestwert skalieren, bei dem nicht alle Schaltflächen angezeigt werden.)

Größe (Fenster)

Gibt Breite und Höhe des Fensters in den aktuellen Koordinateneinheiten der Form an, wie mit dem Formattribut Koordinatensystem angegeben.

Gilt für  Fenster

Einstellung  Form Builder, programmgesteuert

Standardwert

80 Zeichen mal 24 Zeichen

Vordefinierte Prozedur

•	GET_WINDOW_PROPERTY

•	SET_WINDOW_PROPERTY


Einschränkungen bei Größe

Form Builder gewährleistet, daß die Mindestbreite des Editors breit genug zur Anzeige der Schaltflächen am unteren Rand des Editors ist. (Bei Plattformen, bei denen Editoren skaliert werden können, können Sie den Editor auf einen Mindestwert skalieren, bei dem nicht alle Schaltflächen angezeigt werden.)


Attribut Skalierungsstil

 Alle Attribute

Beschreibung

Bestimmt den Anzeigestil eines Bildes, wenn die Bildgröße nicht mit der Größe des Bildobjekts übereinstimmt.

Für dieses Attribut sind die folgenden Einstellungen gültig:

Abschneiden	Zeigt nur den Teil des ganzen Bildes an, der in das Anzeigerechteck paßt.

Anpassen	Skaliert das Bild so, daß es in das Anzeigerechteck paßt.

Gilt für  Bildobjekte

Einstellung  Form Builder

Standardwert

Abschneiden


Attribut Klangformat

 Alle Attribute

Beschreibung

Gibt das Format an, in dem das Klangobjekt in der Datenbank gespeichert wird, d.h. AU, AIFF, AIFF-C oder WAVE.

Wenn Sie die vordefinierten Unterprogramme READ_SOUND_FILE oder WRITE_SOUND_FILE verwenden, um mit Klangdaten zu arbeiten, die aus dem Dateisystem gelesen bzw. in das Dateisystem geschrieben werden, verwenden Sie den Parameter file_type, um das Klangformat der gelesenen oder geschriebenen Klangdaten zu steuern.

Gilt für  Klangobjekte

Einstellung  Form Builder

Vordefinierte Prozedur

•	READ_SOUND_FILE

•	WRITE_SOUND_FILE

Standardwert

WAVE

Obligatorisch/Optional  Obligatorisch


Attribut Klangqualität

 Alle Attribute

Beschreibung

Gibt die Qualität an, mit der das Klangobjekt in der Datenbank gespeichert wird: Automatisch, Höchste, Hoch, Mittel, Niedrig oder Niedrigste.

Wenn Sie das vordefinierte Unterprogramm WRITE_SOUND_FILE benutzen, um Klangdaten in das Dateisystem zu schreiben, verwenden Sie den Parameter sound_quality, um das Klangformat der geschriebenen Klangdaten zu steuern.

Gilt für  Klangobjekte

Einstellung  Form Builder

Vordefinierte Prozedur

•	WRITE_SOUND_FILE

Standardwert

Automatisch

Obligatorisch/Optional  Obligatorisch


Attribut Anfangswinkel

 Alle Attribute

Beschreibung

Gibt den Anfangswinkel des Bogens an, wobei die Horizontalachse als Ursprung verwendet wird.

Gilt für  Grafikbogen

Einstellung  Form Builder

Standardwert

90

Obligatorisch/Optional  Obligatorisch


Attribut Start Prompt-Ausrichtung

 Bitte zeigen	 Alle Attribute

Beschreibung

Gibt an, wie der Prompt am horizontalen Rand des Objekts ausgerichtet wird, d.h. Anfang, Mitte oder Ende. Dieses Attribut ist nur gültig, wenn das Attribut Layoutstil auf Form eingestellt ist..

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Anfang

Obligatorisch/Optional  Obligatorisch


Start Prompt-Ausrichtung


Attribut Start Prompt-Versatz

 Bitte zeigen	 Alle Attribute

Beschreibung

Gibt den Abstand zwischen dem Prompt und dem zugehörigen Objekt an, wenn für das Attribut Start Prompt-Ausrichtung Anfang angegeben wurde.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

0 (Zeicheneinheit)

Obligatorisch/Optional  Obligatorisch


Start Prompt-Versatz oberer Prompt


Attribut Startcode

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den optionalen PL/SQL-Code an, den Form Builder ausführt, wenn das Menümodul beim Starten der Form in den Speicher geladen wird. Stellen Sie sich den Startcode wie einen Trigger vor, der ausgelöst wird, wenn das Menümodul geladen wird.

Gilt für  Menümodule

Einstellung  Form Builder

Obligatorisch/Optional  Optional

Verwendungshinweise

Der Startcode wird nicht ausgeführt, wenn Form Builder aus einer aufgerufenen Form zurückkehrt.


Attribut Status (Block)

 Alle Attribute

Beschreibung

Gibt den aktuellen Status eines angegeben Blocks an. Der Blockstatus kann Neu, Geändert oder Abfrage sein.

Gilt für  Blöcke

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_BLOCK_PROPERTY

Verwendungshinweise

Sie können den Status des aktuellen Blocks in der Form bestimmen, indem Sie die Systemvariable SYSTEM.BLOCK_STATUS überprüfen. Der Formstatus kann mit der Systemvariablen SYSTEM.FORM_STATUS geprüft werden.


Attribut Status (Datensatz)

 Alle Attribute

Beschreibung

Gibt den aktuellen Status des angegebenen Datensatzes an. Der Datensatzstatus kann Neu, Geändert, Abfrage oder Einfügen sein.

Gilt für  Datensätze

Einstellung  programmgesteuert

Vordefinierte Prozedur

•	GET_RECORD_PROPERTY

•	SET_RECORD_PROPERTY

Verwendungshinweise

Mit dem Attribut Status können Sie den Status eines angegebenen Datensatzes überprüfen. Sie können den Status des aktuellen Datensatzes in der Form auch mit der Systemvariablen SYSTEM.RECORD_STATUS prüfen.

In der Regel wird durch jede Zuweisung zum Datenbankobjekt der Status des Datensatzes von QUERY in CHANGED (oder von NEW in INSERT) geändert, selbst wenn sich der zugewiesene Wert nicht vom vorherigen Wert unterscheidet. Die Übergabe eines Objekts an eine Prozedur als OUT- oder IN OU-Parameter wird als Zuweisung gezählt.


Attribut Unterklassen-Information

 Alle Attribute

Beschreibung

Gibt die folgenden Informationen über das Quellobjekt und Quellmodul für referenzierte Objekte an.

Modul	Der Name des Quellmoduls.

Speicher	Der Quellmodultyp (Form oder Menü) und Speicherort (Dateisystem oder Datenbank).

Name	Der Name des Quellobjekts im Quellmodul. (Der Name eines Referenzobjekts kann sich von dem Namen des zugehörigen Quellobjekts unterscheiden.)

Gilt für  Alle Referenzobjekte

Einstellung  Form Builder

Obligatorisch/Optional  Optional


Attribut Untermenüname

 Alle Attribute

Beschreibung

Gibt den Namen des Untermenüs an, das mit einem Hauptmenü verknüpft ist. Das Attribut Befehlstyp muß auf Menü eingestellt sein, um das Attribut Untermenüname aufrufen zu können.

Gilt für  Menüpunkte

Einstellung  Form Builder

Obligatorisch/Optional  Obligatorisch

Standardwert

Null


Attribut Summierter Block

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt einen Form Builder-Block an, über dem alle Zeilen eines berechneten Summenobjekts summiert werden (d.h. Ermittlung von Summe, Mittelwert usw.), um dem Objekt einen Wert zuzuweisen.

Gilt für  Blöcke

Einstellung  Form Builder

Obligatorisch/Optional  Obligatorisch, wenn das Attribut Berechnungsmodus des zugehörigen Objekts auf Summe gesetzt ist


Attribut Summiertes Objekt

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt ein Form Builder-Objekt an, dessen Wert summiert wird (d.h. Summe, Mittelwert usw. wird ermittelt), damit einem berechneten Summenobjekt ein Wert zugewiesen werden kann.

Gilt für  Objekte

Einstellung  Form Builder

Obligatorisch/Optional  Obligatorisch, wenn das Attribut Berechnungsmodus des zugehörigen Objekts auf Summe gesetzt ist


Einschränkungen bei Summiertes Objekt

•	Bei dem summierten Objekt kann es sich nicht um ein Summenobjekt handeln.

•	Wenn das summierte Objekt nicht in demselben Block wie das Summenobjekt steht, muß das Summenobjekt in einem Steuerblock stehen, für den das Attribut Einzelner Datensatz auf Ja eingestellt ist.


Attribut Summenfunktion

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Typ der Berechnungsfunktion an, die Form Builder für das summierte Objekt ausführt.

Mittelwert	Mittelwert (arithmetischer Mittelwert) des summierten Objekts über allen Datensätzen in dem Block.

Anzahl	Anzahl aller Nicht-Null-Instanzen des summierten Objekts über allen Datensätzen in dem Block.

Max	Maximalwert des summierten Objekts über allen Datensätzen in dem Block.

Min	Minimalwert des summierten Objekts über allen Datensätzen in dem Block.

Stdabw	Standardabweichung der Werte des summierten Objekts über allen Datensätzen in dem Block.

Summe	Summe aller Werte des summierten Objekts über allen Datensätzen in dem Block.

Varianz	Varianz der Werte des summierten Objekts über allen Datensätzen in dem Block. (Die Varianz wird als Quadrat der Standardabweichung definiert.)

Hinweis:  Für weitere Informationen zu diesen arithmetischen Operationen wird auf das Oracle8 Server SQL Language Reference Manual verwiesen.

Gilt für  Objekte

Einstellung  Form Builder

Obligatorisch/Optional  Obligatorisch (nur wenn das Attribut Berechnungsmodus des zugehörigen Objekts auf Summe eingestellt ist)

Standardwert

Kein


Einschränkungen bei Summenfunktion

Sie müssen das Attribut Parameter-Datentyp auf Number einstellen, es sei denn, für den Summentyp des Objekts wird Max. oder Min. angegeben. In diesem Fall muß der Datentyp dem Datentyp des zugehörigen summierten Objekts entsprechen. So muß z.B. ein berechnetes Objekt, mit dem das jüngste Datum (d.h. Maximum) in der Spalte HIRE_DATE angezeigt wird, den Datentyp Date haben.


Attribut Mit Objekt synchronisieren

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt den Namen des Objekts an, von dem das aktuelle Objekt seinen Wert ableiten muß. Durch Einstellung dieses Attributs wird der Wert von zwei Objekten synchronisiert, damit diese sich gegenseitig spiegeln. Wenn der Endbenutzer oder die Anwendung den Wert eines Objekts ändert, ändert sich auch der Wert des anderen Objekts.

Gilt für  Alle Objekte, mit Ausnahme von OLE-Containern

Einstellung  Form Builder

Obligatorisch/Optional  Optional

Standardwert

NULL

Verwendungshinweise

•	In früheren Versionen hieß doeses Attribut Spiegelobjekt.

•	Sie können Mit Objekt synchronisieren für Basistabellen- oder Steuerblöcke einstellen. Wenn Mit Objekt synchronisieren angegeben wird, wird das Objektattribut Basistabelle des aktuellen Objekts ignoriert, und das Objekt leitet seinen Wert von dem angegebenen Spiegelobjekt ab und nicht von einer Spalte in der Datenbank.

•	Wenn Sie die vordefinierte Prozedur GET_ITEM_PROPERTY verwenden, um ein Objektattribut Basistabelle einzulesen, wird der Wert aus dem Spiegelobjekt eingelesen.

•	Sie können ein Spiegelobjekt benutzen, um mehr als ein Objekt in einem Block zu erstellen, das denselben Datenbankspaltenwert anzeigt.


Einschränkungen bei Mit Objekt synchronisieren

•	Die maximale Anzahl von Objekten in einer Form, die auf dasselbe Spiegelobjekt zeigen können, beläuft sich auf 100.


Attribut Register-Zuordnungskante

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt den Ort an, an dem sich die Register auf der Registerleinwand befinden.

Gilt für  Registerleinwände

Einstellung  Form Builder

Standardwert

Oben

Obligatorisch/Optional  Obligatorisch


Einschränkungen bei Register-Zuordnungskante

Nur bei Registerleinwänden gültig.


Attribut Registerseite

  Verwandte Themen	 Alle Attribute

Beschreibung

Der Name der Registerseite, auf der sich das Objekt befindet.

Gilt für  Objekte

Einstellung  Form Builder

Standardwert

Keine

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY (der programmgesteuerte Attributname lautet Item_Tab_Page)

Obligatorisch/Optional  Obligatorisch (falls sich das Objekt auf einer Registerleinwand befindet)


Attribut Registerseite X-Versatz

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Der Abstand zwischen dem linken Rand der Registerleinwand und dem linken Rand der Registerseite. Der zurückgegebene Wert hängt von dem Koordinatensystem der Form ab - Pixel, Zentimeter, Zoll oder Punkt.

Gilt für  Registerleinwände

Vordefinierte Prozedur

•	GET_CANVAS_PROPERTY


Einschränkungen bei Registerseite X-Versatz

•	Der Attributwert kann zwar abgerufen, nicht aber eingestellt werden.

•	Nur gültig für Registerleinwände. Bei allen anderen Leinwandtypen wird der Wert 0 zurückgegeben.


Attribut Registerseite Y-Versatz

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Der Abstand zwischen dem oberen Rand der Registerleinwand und dem oberen Rand der Registerseite. Der zurückgegebene Wert hängt von dem Koordinatensystem der Form ab -- Pixel, Zentimeter, Zoll oder Punkt.

Gilt für  Registerleinwände

Vordefinierte Prozedur

•	GET_CANVAS_PROPERTY


Einschränkungen bei Registerseite Y-Versatz

•	Der Attributwert kann zwar abgerufen, nicht aber eingestellt werden.

•	Nur gültig für Registerleinwände. Bei allen anderen Leinwandtypen wird der Wert 0 zurückgegeben.


Attribut Registerstil

 Alle Attribute

Beschreibung

Die Form des/der beschrifteten Registerkarten auf einer Registerleinwand.

Gilt für  Registerleinwände

Einstellung  Form Builder

Standardwert

Abgeschrägt

Obligatorisch/Optional  Obligatorisch


Abtrennbares Menü

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Definiert ein Menü als abtrennbares Menü.

Gilt für  Menüs

Einstellung  Form Builder

Standardwert

Nein


Einschränkungen bei Abtrennbares Menü

Die Option wird nur bei Pulldown-Menüs unterstützt, insofern das Fensterverwaltungsprogramm diese Funktion unterstützt.


Attribut Timer_Name

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen des zuletzt abgelaufenen Timers an.

Gilt für  Anwendungen

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_APPLICATION_PROPERTY

Obligatorisch/Optional  Optional


Einschränkungen bei Timer_Name

Das Attribut ist nur gültig, wenn es in einem When-Timer-Expired-Trigger geprüft wurde.


Attribut Titel

 Alle Attribute

Beschreibung

Gibt den Titel an, der für das Objekt angezeigt werden soll.

Gilt für  Warnfenster, Formmodule, Wertelisten, Fenster

Einstellung  Form Builder

Obligatorisch/Optional  Optional

Titel (Werteliste)

Standardwert

NULL

Obligatorisch/Optional  Optional

Titel (Fenster)

Vordefinierte Prozedur

•	GET_WINDOW_PROPERTY

•	SET_WINDOW_PROPERTY

Obligatorisch/Optional  Optional

Verwendungshinweise

•	Die Längenbegrenzung für den Fenstertitel hängt von dem verwendeten Grafiktreiber ab. (Bei einer SVGA-Auflösung von 1280 x 1024 unter NT beträgt die Beschränkung beispielsweise 78 Zeichen.)

•	Wenn Sie für ein Fenster (mit Ausnahme der Hauptfenster) keinen Titel angeben, verwendet Form Builder den Objektnamen des Fensters entsprechend dem Attribut Fenstername.

•	Wenn Sie keinen Titel für ein Hauptfenster angeben und es sich bei dem aktuellen Menü um das Standardmenü handelt, verwendet Form Builder den Namen des Formmoduls für den Titel des Hauptfensters. Dieser Name wird anhand des Attributs Name des Formmoduls ermittelt. Handelt es sich bei dem aktuellen Menü um ein benutzerdefiniertes Menü, das wie ein Pulldown-Menü oder eine Menüleiste aufgemacht ist, verwendet Form Builder den Namen des Hauptmenüs im Modul als Titel des Hauptfensters. Die erforderlichen Informationen werden mit Hilfe des Attributs Hauptmenü des Menümoduls ermittelt.


Attribut Tooltip

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Hilfetext an, der in einem kleinen Textfeld unter dem Bildschirmelement angezeigt werden soll, auf dem sich der Mauszeiger im Moment befindet.

Gilt für  Objekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Leer

Obligatorisch/Optional  Optional


Attribut Hintergrundfarbe Tooltip

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Farbe des Hintergrundbereichs des Objekts an.

Gilt für  Objekte

Einstellung  Programmgesteuert

Standardwert

Nicht angegeben

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


Attribut Füllmuster Tooltip

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt das Muster an, das für den Füllbereich des Objekts benutzt werden soll. Muster werden in den beiden Farben gerendert, die mit Background_Color und Foreground_Color angegeben werden.

Gilt für  Objekte

Einstellung  Programmgesteuert

Standardwert

Nicht angegeben

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


Attribut Schriftartname Tooltip

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Schriftartfamilie an, die für den Text in dem Objekt benutzt werden soll. Die Liste der verfügbaren Schriftarten ist systemabhängig.

Gilt für  Objekte

Einstellung  Programmgesteuert

Standardwert

Nicht angegeben

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


Attribut Schriftgrad Tooltip

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Schriftgrad in Punkt an.

Gilt für  Objekte

Einstellung  Programmgesteuert

Standardwert

Nicht angegeben

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


Attribut Zeichenabstand Tooltip

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Breite der Schriftart an (d.h. den Abstand zwischen den Zeichen bzw. das Kerning).

Gilt für  Objekte

Einstellung  Programmgesteuert

Standardwert

Nicht angegeben

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


Attribut Schriftstil Tooltip

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Schriftstil an.

Gilt für  Objekte

Einstellung  Programmgesteuert

Standardwert

Nicht angegeben

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


Attribut Schriftstärke Tooltip

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Schriftstärke an.

Gilt für  Objekte

Einstellung  Programmgesteuert

Standardwert

Nicht angegeben

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


Attribut Vordergrundfarbe Tooltip

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Farbe für den Vordergrundbereich des Objekts an. Definiert bei Objekten die Farbe des Textes, der in dem Objekt angezeigt wird.

Gilt für  Objekte

Einstellung  Programmgesteuert

Standardwert

Nicht angegeben

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


Attribut Tooltip Visuelle Attributgruppe

 Alle Attribute

Beschreibung

Gibt das benannte visuelle Attribut an, das zur Laufzeit für den Tooltip angewendet werden soll.

Gilt für  Objekt-Tooltips

Einstellung  Form Builder

Standardwert

Standard

Obligatorisch/Optional  Obligatorisch


Attribut Weiß auf Schwarz Tooltip

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

Gilt für  Objekte

Einstellung  Programmgesteuert

Standardwert

Nicht angegeben

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


Attribut Ausrichtung oberer Prompt

 Bitte zeigen	 Alle Attribute

Beschreibung

Gibt an, wie der Prompt am oberen Rand des Objekts ausgerichtet wird, d.h. Anfang, Mitte oder Ende. Dieses Attribut ist nur gültig, wenn das Attribut Layoutstil auf Tabellarisch eingestellt ist.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Anfang

Obligatorisch/Optional  Obligatorisch


Ausrichtung oberer Prompt


Attribut Versatz oberer Prompt

 Bitte zeigen	 Alle Attribute

Beschreibung

Gibt den Abstand zwischen dem Prompt und dem zugehörigen Objekt an, wenn für das Attribut Ausrichtung oberer Prompt der Wert Oben angegeben wurde.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

0 (Zeicheneinheit)

Obligatorisch/Optional  Obligatorisch


Versatz oberer Prompt


Attribut Top_Record

 Alle Attribute

Beschreibung

Gibt die Nummer des obersten sichtbaren Datensatzes im angegebenen Block an. (Datensätze sind in der Reihenfolge numeriert, in der sie in der internen Datensatzliste des Blocks erscheinen.)

Gilt für  Blöcke

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_BLOCK_PROPERTY

Verwendungshinweise

Mit Hilfe der beiden Attribute TOP_RECORD und RECORDS_DISPLAYED können Sie die Nummer des untersten angezeigten Datensatzes ermitteln, d.h. den Datensatz mit der höchsten Nummer unter den aktuell im Block angezeigten Datensätzen.


Attribut Oberer Titel

 Alle Attribute

Beschreibung

Gibt einen Titel mit maximal 72 Zeichen an, der am oberen Rand des Editor-Fensters angezeigt wird.

Gilt für  Editoren

Einstellung  Form Builder

Obligatorisch/Optional  Optional


Attribut Topmost_Tab_Page

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt die oberste Registerseite auf einer Registerleinwand an.

Gilt für  Registerleinwände

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_CANVAS_PROPERTY

•	SET_CANVAS_PROPERTY

Standardwert

Die erste Registerseite, die unterhalb des Knotens Registerseite angezeigt wird.


Einschränkungen bei Topmost_Tab_Page

Nur bei Registerleinwänden gültig.


Attribut Transaktionstrigger

 Alle Attribute

Beschreibung

Identifiziert einen Block als Transaktions-Steuerblock, d.h. als Nicht-Datenbank-Block, den Form Builder als Transaktionsblock verwalten soll. Dieses Attribut ist in erster Linie für Anwendungen vorgesehen, die mit fremden Datenquellen ausgeführt werden und Transaktionstrigger enthalten. Wenn die Anwendung mit ORACLE ausgeführt wird, sollte dieses Attribut auf Nein eingestellt sein.

Bei der Erstellung einer Anwendung für fremde Datenquellen wird im wesentlichen die Funktionalität eines Datenblocks durch die Erstellung eines Transaktions-Steuerblocks simuliert. Bei einem solchen Block handelt es sich um einen Steuerblock, da die Basistabelle nicht zum Zeitpunkt der Erstellung angegeben wird (das Blockattribut Basistabelle entspricht NULL), aber es ist gleichzeitig ein Transaktionsblock, da die Funktionsweise aufgrund von Transaktionstriggern der eines Datenblocks entspricht.

Weitere Informationen finden Sie in Form Builder Advanced Techniques, Kapitel 4, "Connecting to Non-Oracle Data Sources".

Gilt für  Blöcke

Einstellung  Form Builder

Standardwert

Nein

Verwendungshinweise

•	Das Attribut Transaktionstrigger ist nur dann gültig, wenn das Attribut Basistabelle den Wert NULL aufweist.

•	Wenn Sie das Attribut Transaktionstrigger auf Ja einstellen, werden die Attribute Primärschlüssel durchsetzen und Spaltensicherheit durchsetzen aktiviert.


Attribut Triggerstil

 Alle Attribute

Beschreibung

Gibt an, ob es sich um einen PL/SQL-Trigger oder um einen V2-Trigger handelt. Oracle Corporation empfiehlt die ausschließliche Entwicklung von PL/SQL-Triggern. Die Unterstützung von V2-Triggern ist nur aus Gründen der Kompatibilität mit älteren Versionen enthalten.

Gilt für  Trigger

Einstellung  Form Builder

Standardwert

PL/SQL

Verwendungshinweise

Bei Auswahl von V2-Triggern wird die Schaltfläche Zoom aktiviert, mit der das Attributblatt Triggerschritt geöffnet wird.


Attribut Trigger-Text

 Alle Attribute

Beschreibung

Gibt den PL/SQL-Code an, den Form Builder beim Auslösen des Triggers ausführt.

Gilt für  Trigger

Einstellung  Form Builder

Obligatorisch/Optional  Obligatorisch


Attribut Trigger-Typ

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob es sich um einen vordefinierten oder einen benutzerdefinierten Trigger handelt. Benutzerdefinierte Trigger werden nur in bestimmten Situationen eingesetzt und sind für die meisten Anwendungen nicht erforderlich.

Gilt für

Trigger

Einstellung  Form Builder

Standardwert

PL/SQL

Obligatorisch/Optional  Obligatorisch

Verwendungshinweise

Trigger sind einem der folgenden Typen zuzuordnen:

Vordefiniert	Gibt an, daß es sich um einen in Form Builder enthaltenen Trigger handelt, der einem bestimmten, im voraus definierten Laufzeitereignis zugeordnet werden kann.

Benutzerdefiniert	Gibt an, daß es sich um einen nicht im Lieferumfang von Form Builder enthaltenen Trigger handelt. Ein benutzerdefinierter Trigger kann nur durch einen Aufruf der vordefinierten Prozedur EXECUTE_TRIGGER ausgeführt werden.


Attribut Aktualisieren erlaubt (Block)

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob Endbenutzer die Werte von Objekten im Block, deren Attribut Aktualisieren erlaubt auf Ja eingestellt ist, ändern können. (Wenn das Attribut Aktualisieren erlaubt für den Block auf Nein eingestellt ist, wird die Einstellung für die einzelnen Objekte im Block außer Kraft gesetzt.)

Gilt für  Blöcke

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Standardwert

Ja


Einschränkungen bei Aktualisieren erlaubt (Block)
Einschränkung bei Aktualisieren erlaubt (Block)

Wenn das Blockattribut Aktualisieren erlaubt auf Ja eingestellt ist, muß zumindest für ein Objekt im Block das Objektattribut Aktualisieren erlaubt auf Ja eingestellt sein, damit der Block aktualisiert werden kann.


Attribut Aktualisieren erlaubt (Objekt)

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob Endbenutzer den Wert der Objekte in der Basistabelle in einem abgefragten Datensatz ändern können. Wenn Aktualisieren erlaubt auf Nein eingestellt ist, können Endbenutzer zu dem Objekt in einem abgefragten Datensatz navigieren, nicht jedoch dessen Wert ändern. Bei dem Versuch wird folgende Fehlermeldung angezeigt: FRM-40200: Feld ist gegen Aktualisierungen geschützt.

Wenn Aktualisieren erlaubt auf Ja eingestellt ist, können Endbenutzer Werte in NEUE Datensätze eingeben (INSERT).

Gilt für  Alle Objekte, mit Ausnahme von Schaltflächen, Diagrammobjekten und Bildobjekten

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_INSTANCE_PROPERTY

•	GET_ITEM_PROPERTY

•	SET_ITEM_INSTANCE_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Ja

Verwendungshinweise

•	Verwenden Sie zur programmgesteuerten Einstellung des Attributs Aktualisieren erlaubt (Objekt) die Konstante UPDATE_ALLOWED bzw. UPDATEABLE. Die Konstante UPDATEABLE ist aus Gründen der Kompatibilität mit älteren Versionen enthalten.

•	Wenn Aktiviert auf PROPERTY_FALSE zur Laufzeit eingestellt ist, ist das Attribut Aktualisieren erlaubt des Objekts oder der Objektinstanz ebenfalls auf PROPERTY_FALSE eingestellt.

•	Wenn Aktualisieren erlaubt auf mehreren Ebenen (Objektinstanz-, Objekt- und Blockebene) angegeben wird, werden die Werte durch AND miteinander verknüpft. Dies bedeutet, daß die Einstellung von Aktualisieren erlaubt auf Ja (PROPERTY_TRUE zur Laufzeit) auf Objektinstanzebene wirkungslos bleibt, wenn die Einstellung nicht konsistent auch auf Block- und Objektebenen vorgenommen wurde. Der Benutzer kann z.B. keine Objektinstanz aktualisieren, wenn Aktualisieren erlaubt auf Instanzebene aktiviert ist, auf Objekt- oder Blockebene jedoch nicht.


Einschränkungen bei Aktualisieren erlaubt (Objekt)

•	Wenn Sie SET_ITEM_PROPERTY verwenden, um UPDATE_ALLOWED erlaubt auf True einzustellen, müssen Sie die Objektattribute wie folgt einstellen:

•	Aktiviert auf Ja (PROPERTY_TRUE zur Laufzeit)

•	Sichtbar auf Ja (PROPERTY_TRUE zur Laufzeit)

•	Basistabelle auf Ja (PROPERTY_TRUE zur Laufzeit)

•	Nur aktualisieren, wenn Null auf Nein (PROPERTY_FALSE zur Laufzeit)


Attribut Nur geänderte Spalten aktualisieren

 Alle Attribute

Beschreibung

Wenn abgefragte Datensätze als aktualisiert markiert sind, wird mit diesem Attribut angegeben, daß nur Spalten, deren Werte sich tatsächlich geändert haben, in die SQL-Anweisung UPDATE aufgenommen werden sollen, die während eines Speichervorgangs an die Datenbank gesendet wird. Standardmäßig ist Nur geänderte Spalten aktualisieren auf Nein eingestellt, und alle Spalten sind in der UPDATE-Anweisung enthalten.

Gilt für  Blöcke

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Standardwert

Nein

Obligatorisch/Optional  Optional

Verwendungshinweise

•	Wenn das Attribut DML-Array-Größe einen Wert größer 1 aufweist, wird dieses Attribut Nur geänderte Spalten aktualisieren zur Laufzeit ignoriert. Bei einer DML-Array-Größe von über 1 werden folglich alle Spalten aktualisiert, selbst wenn das Attribut Nur geänderte Spalten aktualisieren auf Ja eingestellt ist.

•	Wenn das Attribut Nur geänderte Spalten aktualisieren auf Nein eingestellt ist, kann Form Builder ein und dieselbe SQL-Anweisung für mehrere Aktualisierungen verwenden, ohne jedesmal eine neue Analyse durchführen zu müssen. Bei der Einstellung von Ja für Nur geänderte Spalten aktualisieren kann die Leistung sinken, da die UPDATE-Anweisung jedesmal neu analysiert werden muß. Im allgemeinen sollte Nur geänderte Zeilen aktualisieren nur dann auf Ja eingestellt sein, wenn nur selten Werte in Spalten geändert werden, die dann allerdings bei der Übertragung das Netzwerk stark auslasten (beispielsweise Spalten vom Typ LONG).

•	Stellen Sie unter folgenden Umständen Ja für Nur geänderte Spalten aktualisieren ein:

Zur Vermeidung von überflüssigem Datenverkehr im Netzwerk, wenn in der Regel meist nur ein oder zwei Spalten aktualisiert werden.

Zur Vermeidung der Übertragung von großen Datenmengen, die nicht aktualisiert wurden, wie beispielsweise Grafiken oder Daten vom Typ LONG.

Zur Auslösung von Datenbank-Triggern ausschließlich bei geänderten Spalten, beispielsweise, wenn Sie ein Sicherheitsschema mit einem Datenbank-Trigger implementieren, der ausgelöst wird, wenn sich eine Spalte geändert hat, und der die Benutzer-ID der Person, die die Änderungen vornimmt, in einer Tabelle festhält.


Attribut Update_Column

  Verwandte Themen	 Alle Attribute

Beschreibung

Wenn dieses Attribut auf Ja eingestellt ist, behandelt Form Builder dieses Objekt als aktualisiert.

Wenn das Blockattribut Nur geänderte Spalten aktualisieren auf Ja eingestellt ist, gibt die Einstellung Property_True für Spalte aktualisieren an, daß das Objekt aktualisiert wurde und die entsprechende Spalte in die UPDATE-Anweisung an die Datenbank aufgenommen werden soll.

Wenn das Blockattribut Nur geänderte Spalten aktualisieren auf Ja und Spalte aktualisieren auf Property_False eingestellt ist, wird die entsprechende Spalte nicht in die UPDATE-Anweisung an die Datenbank aufgenommen.

Wenn das Blockattribut Nur geänderte Spalten aktualisieren auf Nein eingestellt ist, wird die Einstellung für Spalte aktualisieren ignoriert, und alle Spalten der Basistabelle werden in die UPDATE-Anweisung aufgenommen.

Gilt für  Objekte

Einstellung  programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Obligatorisch/Optional  Optional

Verwendungshinweise

Dieses Attribut wird vor allem im Zusammenhang mit dem Attribut Nur geänderte Spalten aktualisieren verwendet. Sie können es jedoch unabhängig von der Einstellung für Nur geänderte Spalten aktualisieren verwenden, um zu prüfen, ob eine bestimmte Spalte aktualisiert wurde.

Hinweis:  Spalte aktualisieren wirkt sich zwar auf das Attribut Datensatzstatus aus, aber die Einstellung Property_Off für alle Spalten führt nicht dazu, daß für Datensatzstatus der Wert QUERY zurückgegeben wird. Wenn Datensatzstatus den Wert QUERY annehmen soll, muß dies explizit in SET_RECORD_PROPERTY eingestellt werden.


Attribut Nach Festschreiben aktualisieren

 Alle Attribute

Beschreibung

Gibt an, ob ein Diagrammobjekt aktualisiert wird, wenn aufgrund von neuen oder aktualisierten Datensätzen im Quellblock Änderungen aufgetreten sind.

Gilt für  Diagrammobjekte

Einstellung  Form Builder

Standardwert

Ja

Obligatorisch/Optional  Obligatorisch


Attribut Layout aktualisieren

 Alle Attribute

Beschreibung

Gibt an, wann das Layout des Rahmens aktualisiert werden soll.

Automatisch	Das Layout wird aktualisiert, sobald der Rahmen verschoben wird oder Änderungen an der Größe bzw. an Rahmenlayout-Attributen vorgenommen wurden.

Manuell	Das Layout wird aktualisiert, sobald ein Rahmen mit dem Layout-Assistenten verändert oder die Schaltfläche bzw. Menüoption Layout aktualisieren ausgewählt wird.

Gesperrt	Das Layout ist gesperrt und kann nicht aktualisiert werden.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Ja

Obligatorisch/Optional  Obligatorisch


Attribut Nur aktualisieren, wenn NULL

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, daß der Wert des Objekts vom Benutzer geändert werden kann, wenn der Eintrag NULL beträgt.

Gilt für  Bildobjekte, Listenobjekte, Klangobjekte, Textobjekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Nein

Obligatorisch/Optional  Optional

Verwendungshinweise

Verwenden Sie zur programmgesteuerten Einstellung des Attributs Nur aktualisieren, wenn NULL die Konstante UPDATE_NULL.


Einschränkungen bei Nur aktualisieren, wenn NULL

Die Objektattribute müssen wie folgt eingestellt werden:

•	Aktiviert auf Ja

•	Sichtbar auf Ja

•	Aktualisieren erlaubt auf Nein


Attribut Update_Permission

  Verwandte Themen	 Alle Attribute

Beschreibung

Wenn für Update_Permission der Wert Nein eingestellt wird, werden die folgenden drei Vorgänge ausgelöst:

•	Das Attribut Update_If_Null wird auf Nein eingestellt.

•	Das Attribut Aktualisieren erlaubt wird auf Nein eingestellt.

•	Es wird festgelegt, daß diese Spalte in keine von Form Builder ausgegebene UPDATE-Anweisung aufgenommen wird. Hierfür wird die Spalte aus der Klausel SET der UPDATE-Anweisungen entfernt.

Gilt für  Alle Objekte, mit Ausnahme von Schaltflächen und Diagrammobjekten

Einstellung  programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Standardwert

Ja

Obligatorisch/Optional  Optional

Verwendungshinweise

Update_Permission ermöglicht es Entwicklern, eigene Sicherheitsmechanismen zu implementieren. Das Form Builder-Standardattribut Spaltensicherheit durchsetzen wird außer Kraft gesetzt. Dieses Attribut ist in erster Linie für Anwendungen vorgesehen, die mit fremden Datenquellen ausgeführt werden. Verwenden Sie Update_Permission, wenn bestimmte Spalten generell nicht in UPDATE-Anweisungen enthalten sein sollen, beispielsweise, wenn ein On-Column-Security-Trigger zur Implementierung eines benutzerdefinierten Sicherheitsschemas verwendet wird.


Attribut Prozedurargumente aktualisieren

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt Namen, Datentyp und Werte der Argumente an, die für das Aktualisieren der Daten an die Prozedur übergeben werden müssen. Das Attribut Prozedurargumente aktualisieren gilt nur, wenn für das Attribut DML-Datenzieltyp der Wert Prozedur angegeben wurde.

Gilt für  Blöcke

Einstellung  Form Builder

Standardwert

NULL

Obligatorisch/Optional  Optional


Attribut Prozedurname aktualisieren

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Namen der Prozedur an, die für das Aktualisieren von Daten verwendet werden soll. Das Attribut Prozedurname aktualisieren ist nur gültig, wenn für das Attribut DML-Datenzieltyp der Wert Prozedur angegeben wurde.

Gilt für  Blöcke

Einstellung  Form Builder

Standardwert

NULL

Obligatorisch/Optional  Optional


Attribut Spalten für Prozedurergebnismengen aktualisieren

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Namen und Datentypen für Spalten von Ergebnismengen an, die mit der Prozedur für das Aktualisieren von Daten verknüpft sind. Das Attribut Spalten für Prozedurergebnismengen aktualisieren ist nur gültig, wenn das Attribut DML-Datenzieltyp auf Prozedur eingestellt ist.

Gilt für  Blöcke

Einstellung  Form Builder

Standardwert

NULL

Obligatorisch/Optional  Optional


Attribut Abfrage aktualisieren

 Alle Attribute

Beschreibung

Gibt an, ob ein Diagrammobjekt aktualisiert wird, wenn aufgrund von Datensatz-Abfragen im Quellblock Änderungen aufgetreten sind.

Gilt für  Diagrammobjekte

Einstellung  Form Builder

Standardwert

Ja

Obligatorisch/Optional  Obligatorisch


Attribut Sicherheit verwenden

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, daß Form Builder das für das Menümodul definierte Sicherheitsschema erzwingen soll. Die Definition erfolgt im Attribut Menümodulrollen.

Gilt für  Menümodule

Einstellung  Form Builder

Standardwert

Nein

Verwendungshinweise

Dieses Attribut kann auf Nein eingestellt werden, um Entwicklern die Möglichkeit zum Testen eines Menümoduls zu geben, ohne Zugriffsberechtigung zu einer Datenbankrolle zu haben. Das Attribut Sicherheit verwenden kann während der Erstellung auf Ja eingestellt werden, um diese Rollen zu erzwingen.


Einschränkungen bei Sicherheit verwenden

Keine


Attribut 3D-Steuerelemente verwenden

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, daß Objekte in Form Builder unter Microsoft Windows dreidimensional mit Umriß angezeigt werden.

Wenn 3D-Steuerelemente verwenden auf Ja eingestellt ist, werden alle Leinwände, für die das Attribut Visuelle Attributgruppe auf Standard eingestellt ist, mit Grau als Hintergrundfarbe angezeigt.

Außerdem wird bei dieser Einstellung der Umriß für die einzelnen Objekte automatisch mit Schatten oben angezeigt, auch wenn für ein Attribut auf Objektebene eingestellt ist, daß der Schatten unten angezeigt werden soll.

Gilt für  Forms

Einstellung  Form Builder

Standardwert

Ja bei neuen Forms, Nein bei Forms, die von alten Versionen von Form Builder aktualisiert wurden.


Einschränkungen bei 3D-Steuerelemente verwenden

Nur bei Microsoft Windows gültig.


Attribut Username

 Alle Attribute

Beschreibung

Gibt den Namen des aktuellen Benutzers an.

Gilt für  Anwendungen

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_APPLICATION_PROPERTY

Verwendungshinweise

Kann in der vordefinierten Prozedur LOGON in einem On-Logon-Trigger oder zur Verbindung mit fremden Datenquellen verwendet werden.

Das Attribut Username gibt nur den Benutzernamen zurück. Wenn Sie auch die DB-Adresse ermitteln möchten, überprüfen Sie das Attribut Connect_String.


Attribut User_Date/Datetime_Format

  Verwandte Themen	 Alle Attribute

Beschreibung

Enthält die aktuelle Formatmaske für Benutzerdatum oder Datum/Zeit aus der Umgebungsvariablen FORMSnn_USER_DATE_FORMAT oder FORMSnn_USER_DATETIME_FORMAT.

Es gibt zwei eigenständige Attribute: User_Date_Format und User_Datetime_Format.

Gilt für  Anwendungen

Einstellung  Nicht in Form Builder einstellbar

Vordefinierte Prozedur

GET_APPLICATION_PROPERTY


Attribut User_Interface

 Alle Attribute

Beschreibung

Gibt den Namen der gerade verwendeten Benutzeroberfläche an.

Gilt für  Anwendungen

Einstellung  Nicht einstellbar

Vordefinierte Prozedur

GET_APPLICATION_PROPERTY

Verwendungshinweise

Das Attribut gibt einen der folgenden Werte zurück:

•	BLOCKMODE

•	CHARMODE

•	MACINTOSH

•	MOTIF

•	MSWINDOWS

•	MSWINDOWS32

•	PM

•	WIN32COMMON

•	WEB

•	X


Attribut User_NLS_Date_Format

  Verwandte Themen	 Alle Attribute

Beschreibung

Ermittelt die aktuelle NLS-Datumsformatmaske.

Gilt für  Anwendungen

Einstellung  Nicht in Form Builder einstellbar

Vordefinierte Prozedur

GET_APPLICATION_PROPERTY

Dieses Attribut ist schreibgeschützt. Es kann nicht unter SET_APPLICATION_PROPERTY eingestellt werden.

Wenn Sie beispielsweise das Attribut PLSQL_DATE_FORMAT auf den Wert der aktuellen NLS-Datumsformatmaske einstellen möchten, können Sie den folgenden Code in einen WHEN-NEW-FORM-INSTANCE-Trigger in der Anwendung aufnehmen:

     SET_APPLICATION_PROPERTY(PLSQL_DATE_FORMAT,
                              GET_APPLICATION_PROPERTY(USER_NLS_DATE_FORMAT));

Standardwert

Keiner


Attribut User_NLS_Lang

 Alle Attribute

Beschreibung

Gibt den vollständigen Wert der für die aktuelle Runform-Sitzung definierten Umgebungsvariablen NLS_LANG zur Unterstützung von Ländereinstellungen an. USER_NLS_LANG ist gleichbedeutend mit dem Verketten der folgenden Attribute:

•	USER_NLS_LANGUAGE (nur Sprache)

•	USER_NLS_TERRITORY (nur Gebiet)

•	USER_NLS_CHARACTER_SET (nur Zeichensatz)

Gilt für  Anwendungen

Einstellung  Kann aus Form Builder nicht eingestellt werden. Muß auf Betriebssystemebene eingestellt werden.

Vordefinierte Prozedur

GET_APPLICATION_PROPERTY

Standardwert

Der Standardwert ist im allgemeinen "America_American.WE8ISO8859P1", alle Standardwerte können jedoch anschlußspezifisch sein.


Attribut Aus Liste validieren

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob Form Builder den Wert des Textobjekts anhand der Werte in der angehängten Werteliste validieren soll.

Gilt für  Textobjekte

Einstellung  Form Builder

Standardwert

Nein

Obligatorisch/Optional  Optional

Einschränkungen

Das Attribut Werteliste muß angegeben sein.

Verwendungshinweise

Wenn Ja für Aus Liste validieren angegeben wurde, vergleicht Form Builder den aktuellen Wert des Textobjekts mit den Werten in der ersten Spalte, die in der Werteliste angezeigt wird, sobald es zu einem Validierungsereignis kommt:

•	Wenn der Wert in dem Textobjekt einem der Werte in der ersten Spalte der Werteliste entspricht, ist die Validierung erfolgreich, die Werteliste wird nicht angezeigt, und die Verarbeitung wird normal fortgeführt.

•	Wenn der Wert in dem Textobjekt keinem der Werte in der ersten Spalte der Werteliste entspricht, zeigt Form Builder die Werteliste an und benutzt den Wert des Textobjekts als Suchkriterium, um die Liste automatisch zu reduzieren.

Wenn der Benutzer z.B. die ersten drei Ziffern eines 6 Ziffern umfassenden Produktcodes eingibt und dann versucht, zum nächsten Objekt zu navigieren, zeigt Form Builder die Werteliste an und reduziert die Liste automatisch so, daß alle Codes angezeigt werden, bei denen die ersten drei Ziffern identisch sind.

•	Wenn der Benutzer einen Wert aus der Werteliste auswählt, schließt Form Builder die Werteliste und weist die ausgewählten Werte den entsprechenden Rückgabeobjekten zu.

Wenn eine Werteliste für die Validierung verwendet wird, markiert Form Builder ein Textobjekt in der Regel als gültig, wenn der Benutzer einen Wert aus der Werteliste auswählt. Somit muß der Benutzer sicherstellen, daß:

•	das Textobjekt, an das die Werteliste angehängt ist, als Rückgabeobjekt für die erste Spalte der Werteliste definiert ist und

•	die Werte in der Werteliste gültig sind.

Es wird jedoch immer noch ein When-Validate-Item-Trigger für das Objekt ausgelöst, und die Validierungen des Triggers werden weiterhin durchgeführt.

Beachten Sie außerdem, daß die erste in der Werteliste angezeigte Spalte möglicherweise nicht die erste Spalte in der zugrundeliegenden Datensatzgruppe der Werteliste ist, da möglicherweise einige Datensatzgruppenspalten nicht in der Struktur der Werteliste aufgenommen sind, oder verborgene Spalten sein können.


Attribut Validierung

 Alle Attribute

Beschreibung

Gibt an, ob für eine Form die Form Builder-Validierung aktiviert oder deaktiviert ist.

Gilt für  Formmodule

Einstellung  programmgesteuert

Vordefinierte Prozedur

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY

Standardwert

Ja

Verwendungshinweise

Verwenden Sie dieses Attribut mit Vorsicht. Wenn Sie für Validierung den Wert Nein einstellen, werden alle internen Form-Validierungen umgangen, und es werden keine WHEN-VALIDATE-Trigger ausgelöst.

Sie können Validierung programmgesteuert für kurze Zeit auf Nein einstellen, wenn Sie explizit die Standard-Verhaltensweisen bei der Validierung in Form Builder unterbinden möchten. Wenn Sie für Validierung wieder Ja einstellen, werden alle nicht validierten Textobjekte entsprechend den normalen Verarbeitungsregeln validiert.

Wenn Validierung auf Nein eingestellt ist, wird der Post-Change-Trigger ausschließlich während der Verarbeitung der Abfrage ausgelöst.


Attribut Validierungseinheit

 Alle Attribute

Beschreibung

Gibt den Geltungsbereich der Form-Validierung zur Laufzeit an. Insbesondere wird in diesem Attribut die maximale Datenmenge definiert, die vom Benutzer in die Form eingegeben werden kann, bis Form Builder die Validierung einleitet. Bei den meisten Anwendungen ist für Validierungseinheit entsprechend den Standardeinstellungen der meisten Plattformen der Wert Objekt eingestellt. In diesem Fall validiert Form Builder Daten in einem Objekt, sobald der Benutzer versucht, aus dem Objekt heraus zu navigieren.

Gilt für  Formmodule

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY

Standardwert

Standardwert

Verwendungshinweise

Für dieses Attribut sind die folgenden Einstellungen gültig:

•	Standard

•	Form

•	Block

•	Datensatz

•	Objekt


Attribut Wert, wenn ausgewählt

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Wert an, der im Kontrollkästchen mit dem Status Ausgewählt angezeigt werden soll. Beispiel: Y, 1, MANAGER oder 1992. Wenn dem Kontrollkästchen ein Wert zugeordnet wird oder wenn ein Wert abgerufen wird, der dem angegebenen Wert entspricht, wird das Kontrollkästchen als aktiviert angezeigt. Umgekehrt führt eine Aktivierung des Kontrollkästchens durch den Benutzer dazu, daß der Wert des Kontrollkästchens zum Wert mit dem Status Ausgewählt wird.

Gilt für  Kontrollkästchen

Einstellung  Form Builder

Standardwert

NULL

Obligatorisch/Optional  Optional


Einschränkungen bei Wert, wenn ausgewählt

Der Wert muß mit dem Datentyp kompatibel sein, der im Attribut Parameter-Datentyp angegeben ist.


Attribut Wert, wenn nicht ausgewählt

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt den Wert an, der im Kontrollkästchen mit dem Status Nicht ausgewählt angezeigt werden soll. Beispiel: Y, 1, MANAGER oder 1992. Wenn dem Kontrollkästchen ein Wert zugeordnet wird oder wenn ein Wert abgerufen wird, der dem angegebenen Wert entspricht, wird das Kontrollkästchen als deaktiviert angezeigt. Umgekehrt führt eine Deaktivierung des Kontrollkästchens durch den Benutzer dazu, daß der Wert des Kontrollkästchens zum Wert mit dem Status Nicht ausgewählt wird.

Gilt für  Kontrollkästchen

Einstellung  Form Builder

Standardwert

NULL

Obligatorisch/Optional  Optional. Wenn dieses Attribut nicht angegeben wird, erhält Nicht ausgewählt den Wert NULL.


Einschränkungen bei Wert, wenn nicht ausgewählt

Der Wert muß mit dem Datentyp kompatibel sein, der im Attribut Parameter-Datentyp angegeben ist.


Attribut VBX-Steuerelementdatei

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Auswahl der VBX-Datei an.

Gilt für  VBX-Steuerelemente

Einstellung  Form Builder

Standardwert

Keine

Obligatorisch/Optional  Obligatorisch

Verwendungshinweise

Über die Auswahl einer VBX-Datei wird bestimmt, welche VBX-Steuerelemente zur Verfügung stehen. Anzahl und Typen der zur Auswahl stehenden VBX-Dateien sind von den VBX-Steuerelementen anderer Anbieter, die auf Ihrem System installiert sind, abhängig.

Da das Verschieben eines Formmoduls mit fest codierten Pfadangaben auf ein anderes Computersystem dazu führen kann, daß die VBX-Datei und der Speicherort ungültig werden, sollte die Verwendung absoluter Pfadangaben im Attribut VBX-Steuerelementdatei vermieden werden.

Bei VBX-Steuerelementdateien ohne absolute Pfadangaben ist der Standardsuchpfad des Systems das Suchkriterium. Wenn die angegebene VBX-Steuerelementdatei sich in keinem der Standardsuchpfade befindet, wird als Suchkriterium der Parameter FORMS60_PATH in der Datei ORACLE.INI verwendet. Wenn alle Suchpfade im Parameter FORMS60_PATH nicht zu einem Ergebnis führen, wird zur Laufzeit eine Fehlermeldung ausgegeben, die besagt, daß die VBX-Steuerelementdatei nicht gefunden werden konnte.


Einschränkungen bei VBX-Steuerelementdatei

Nur bei Microsoft Windows 3.x (16 Bit) gültig.


Attribut VBX-Steuerelementname

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, welches VBX-Steuerelement aus einer VBX-Datei ausgewählt wurde. Einige VBX-Dateien enthalten mehrere VBX-Steuerelemente. Das VBX-Steuerelement muß selbst dann angegeben werden, wenn die VBX-Datei nur ein Steuerelement enthält.

Gilt für  VBX-Steuerelemente

Einstellung  Form Builder

Standardwert

Keine


Einschränkungen bei VBX-Steuerelementname

Nur bei Microsoft Windows 3.x (16 Bit) gültig.


Attribut VBX-Steuerelementwert

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt das Wertattribut eines VBX-Steuerelement an. Dieses Attribut bestimmt den Wert des benutzerdefinierten VBX-Objekts in Form Builder.

Gilt für  VBX-Steuerelemente

Einstellung  Form Builder

Vordefinierte Prozedur

•	VBX.GET_VALUE_PROPERTY

•	VBX.SET_VALUE_PROPERTY

Standardwert

Die meisten VBX-Steuerelemente verfügen über ein Standard-Wertattribut. Wenn ein solches Wertattribut existiert, wird es als Attribut VBX-Steuerelementwert von Form Builder verwendet. Wenn das VBX-Steuerelement kein Standard-Wertattribut besitzt, wird das Attribut VBX-Steuerelementwert von Form Builder als VBX-Attribut "Wert" verwendet. Wenn das VBX-Attribut "Wert" nicht existiert, wird dem Attribut VBX-Steuerelementwert von Form Builder kein Standard-Wertattribut zugewiesen.

Obligatorisch/Optional  Obligatorisch

Verwendungshinweise

Das Attribut VBX-Steuerelementwert wird automatisch mit einem VBX-Attribut synchronisiert. Änderungen am VBX-Attribut wirken sich auch auf das Attribut VBX-Steuerelementwert aus.


Einschränkungen bei VBX-Steuerelementwert

Nur bei Microsoft Windows 3.x (16 Bit) gültig.


Attribut Vertikales Füllen

 Alle Attribute

Beschreibung

Gibt an, ob der Layout-Assistent den leeren Bereich um ein Objekt verwendet, wenn das Attribut Layoutstil auf Form eingestellt ist.

Ja	Gibt an, daß der Layout-Assistent bei der Anordnung von Rahmenobjekten den gesamten verfügbaren Bereich verwenden soll. In diesem Fall ignoriert Form Builder das Attribut Max. Objekte pro Zeile.

Nein	Gibt an, daß der Layout-Assistent bei der Anordnung von Rahmenobjekten nicht den gesamten verfügbaren Bereich verwenden soll. Bei Bedarf werden Objekte in die nächste Rahmenzeile umgebrochen.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

Ja

Obligatorisch/Optional  Obligatorisch


Attribut Vertikale Justierung

 Alle Attribute

Beschreibung

Gibt die vertikale Ausrichtung der Textobjekte an. Gültige Werte sind Oberer Rand, Zentriert und Unterer Rand.

Gilt für  Grafiktext

Einstellung  Form Builder

Standardwert

Oben

Obligatorisch/Optional  Obligatorisch


Attribut Vertikaler Rand

 Bitte zeigen	 Alle Attribute

Beschreibung

Gibt den Abstand zwischen dem oberen und unteren Rahmenrand und den Objekten innerhalb des Rahmens an.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

1 Zeicheneinheit (oder der entsprechende Wert, je nach Koordinatensystem der Form)

Obligatorisch/Optional  Obligatorisch


Vertikaler Rand


Attribut Vertikaler Objektversatz

 Bitte zeigen	 Alle Attribute

Beschreibung

Gibt den vertikalen Abstand zwischen den Objekten innerhalb eines Rahmens an.

Gilt für  Rahmen

Einstellung  Form Builder

Standardwert

0

Obligatorisch/Optional  Obligatorisch


Vertikaler Objektversatz


Attribut Vertikaler Ursprung

 Alle Attribute

Beschreibung

Gibt die Vertikalposition des Textobjektes relativ zum Ursprung mit Oben, Zentriert oder Unten an.

Gilt für  Grafiktext

Einstellung  Form Builder

Standardwert

Oben

Obligatorisch/Optional  Obligatorisch


Attribut Vertikale Symbolleisten-Leinwand

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Leinwand an, die als vertikale Symbolleiste in dem Fenster angezeigt werden soll. Bei der angegebenen Leinwand muß es sich um eine vertikale Symbolleisten-Leinwand handeln (Attribut Leinwandtyp ist auf Vertikale Symbolleiste gesetzt) und muß dem aktuellen Fenster über das Attribut Fenster zugeordnet sein.

Gilt für  Fenster

Einstellung  Form Builder

Standardwert

Null

Obligatorisch/Optional  Obligatorisch, wenn Sie eine vertikale Symbolleiste erstellen.

Verwendungshinweise

•	Im Fenster Attribute zeigt die Popup-Liste für dieses Attribut nur Leinwände an, bei denen das Attribut Leinwandtyp auf Vertikale Symbolleiste eingestellt ist.

•	Zur Laufzeit versucht Form Builder, die angegebene vertikale Symbolleiste in dem Fenster anzuzeigen. Wenn jedoch demselben Fenster mehr als eine Symbolleiste desselben Typs zugewiesen wurde (in diesem Fall wurde das Attribut Leinwandfenster so gesetzt, daß auf das angegebene Fenster verwiesen wird), kann Form Builder bei Navigationsereignissen oder einer Programmsteuerung möglicherweise eine andere Symbolleiste anzeigen.

•	Bei Microsoft Windows wird die angegebene vertikale Symbolleisten-Leinwand nicht in dem Fenster angezeigt, wenn Sie stattdessen angegeben haben, daß sie in dem MDI-Anwendungsfenster angezeigt werden soll, indem Sie das Formattribut Form Vertikale Symbolleisten-Leinwand eingestellt haben.


Attribut Ausschnitthöhe, Ausschnittbreite

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt die Breite und Höhe des Ausschnitts bei einer gestapelten Leinwand an. Durch die Größe und die Position des Ausschnitts wird bestimmt, welcher Teil der Leinwand tatsächlich zur Laufzeit im Fenster angezeigt wird.

Hinweis: Bei Inhalts- und Symbolleisten-Leinwänden wird der Ausschnitt durch das Fenster dargestellt, dem die Leinwand zugeordnet ist. In diesem Fall gelten die Attribute Ausschnitthöhe und Ausschnittbreite nicht.

Gilt für  Leinwände

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

SET_VIEW_PROPERTY

Standardwert

0,0

Obligatorisch/Optional  Optional


Einschränkungen bei Ausschnitthöhe, Ausschnittbreite

Diese Attribute gelten nur für gestapelte Ansichten (Attribut Leinwandtyp ist auf Gestapelt eingestellt). Bei der Anzeige von Inhalten ist die Ausschnittgröße zur Laufzeit von der Größe des Fensters abhängig, in der der Inhalt angezeigt wird.


Attribut Ausschnitt X-Position, Ausschnitt Y-Position

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die x- und y-Koordinate der oberen linken Ecke der gestapelten Leinwand relativ zur oberen linken Ecke des Fensters der aktuellen Inhaltsansicht an.

Gilt für  Leinwände

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_VIEW_PROPERTY

•	SET_VIEW_PROPERTY

Standardwert

0,0

Obligatorisch/Optional  Optional


Einschränkungen bei Ausschnitt X-Position, Ausschnitt Y-Position

Das Attribut ist nicht gültig bei Inhalts-Leinwandansichten, d.h. Leinwandansichten, bei denen das Attribut Leinwandtyp auf Inhalt eingestellt ist.


Attribut Ausschnitt X-Position auf Leinwand, Ausschnitt Y-Position auf Leinwand

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt die Position der oberen linken Ecke des Ausschnitts relativ zur oberen linken Ecke der Leinwand an. Durch die Größe und Position des Ausschnitts wird die Ansicht bestimmt, d.h. der Teil der Leinwand, der tatsächlich im Fenster angezeigt wird, das der Leinwand zugeordnet ist.

Gilt für  Leinwände

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_VIEW_PROPERTY

•	SET_VIEW_PROPERTY

Standardwert

0,0


Attribut Sichtbar

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob das Objekt zur Zeit angezeigt wird bzw. sichtbar ist. Stellen Sie für Sichtbar den Wert Ja oder Nein ein, um eine Leinwand bzw. ein Fenster einzublenden bzw. zu verbergen.

Gilt für  Leinwände, Fenster

Einstellung  programmgesteuert

Vordefinierte Prozedur

•	GET_VIEW_PROPERTY

•	GET_WINDOW_PROPERTY

•	SET_VIEW_PROPERTY

•	SET_WINDOW_PROPERTY

Standardwert

TRUE

Verwendungshinweise

•	Sie können die Leinwand, die das aktuelle Objekt enthält, nicht verbergen.

•	Sie können das Fenster verbergen, das das aktuelle Objekt enthält.

Hinweis: Bei einigen Betriebssystemen ist es möglich, das einzige Fenster in der Form zu verbergen.

•	Wenn die Sichtbarkeit des Fensters über die vordefinierte Prozedur GET_WINDOW_PROPERTY ermittelt wird, verwendet Form Builder die folgenden Regeln:

•	Ein Fenster wird als sichtbar betrachtet, wenn es angezeigt wird, auch wenn es vollständig durch ein anderes Fenster verdeckt wird.

•	Ein nur noch als Symbol angezeigtes (minimiertes) Fenster wird dem Benutzer als sichtbar gemeldet, da es, wenn auch nur in minimierter Darstellungsform, auf dem Bildschirm erscheint.

•	Wenn die Sichtbarkeit der Leinwand über die vordefinierte Prozedur GET_VIEW_PROPERTY ermittelt wird, verwendet Form Builder die folgenden Regeln:

•	Eine Ansicht wird als sichtbar gemeldet, wenn sie a) sich vor allen anderen Ansichten im Fenster befindet oder b) nur teilweise durch eine andere Ansicht verdeckt ist.

•	Eine Ansicht wird als nicht sichtbar betrachtet, a) wenn es sich um eine gestapelte Ansicht handelt, die sich hinter der Inhaltsansicht im Fenster befindet, oder b) wenn sie von einer einzelnen gestapelten Ansicht komplett verdeckt wird. Die Ansicht wird als sichtbar betrachtet, wenn sie von mehreren gestapelten Ansichten komplett verdeckt wird.

•	Der Status der Anzeige im Fenster wirkt sich nicht auf die Einstellung des Attributs Sichtbar für die Leinwand aus. Das bedeutet, daß eine Leinwand unter Umständen selbst dann als sichtbar gemeldet wird, wenn das Fenster, in dem sie sich befindet, zur Zeit auf dem Bildschirm nicht angezeigt wird.


Attribut Sichtbar (Leinwand)

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob eine gestapelte Leinwand in dem ihr zugeordneten Fenster anfänglich angezeigt werden soll.

Gilt für

Gestapelte Leinwände

Einstellung

Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_VIEW_PROPERTY (VISIBLE)

•	SET_VIEW_PROPERTY (VISIBLE)

Standardwert

Ja


Einschränkungen bei Sichtbar (Leinwand)

•	Eine angezeigte Ansicht ist unter Umständen nicht sichtbar, da sie von der Inhaltsansicht oder einer anderen gestapelten Ansicht im gleichen Fenster verdeckt wird.


Attribut Sichtbar (Objekt)

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt an, ob ein Objekt, das einer Leinwand zugeordnet ist, zur Laufzeit angezeigt wird.

Gilt für  Alle Objekte

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY

Standardwert

Ja

Verwendungshinweise

•	Verwenden Sie zur programmgesteuerten Einstellung des Attributs Sichtbar (Objekt) die Konstante VISIBLE bzw. DISPLAYED. Die Konstante DISPLAYED ist aus Gründen der Kompatibilität mit älteren Versionen enthalten.


Einschränkungen bei Sichtbar (Objekt)

Wenn das Objekt Teil des Fremdschlüssels in einer standardmäßigen Master-Detail-Beziehung ist, lautet der Standardwert Nein.


Attribut Sichtbar (Registerseite)

 Alle Attribute

Beschreibung

Gibt an, ob zur Laufzeit eine Registerseite angezeigt wird.

Gilt für

Registerseiten

Gilt für

Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

Standardwert

Ja


Attribut Sichtbar in horizontaler/vertikaler Menüsymbolleiste

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob der Menüpunkt als Symbol auf der horizontalen und/oder vertikalen Symbolleiste einer Form angezeigt werden soll.

Gilt für  Menüpunkte

Einstellung  Form Builder

Standardwert

Nein

Obligatorisch/Optional  Optional


Einschränkungen bei Sichtbar in horizontaler/vertikaler Menüsymbolleiste

Die für die Symbole auf der Menü-Symbolleiste erforderlichen Grafiken müssen vom Entwickler bereitgestellt werden.


Attribut Sichtbar in Menü

 Alle Attribute

Beschreibung

Gibt an, ob der Menüpunkt zur Laufzeit angezeigt wird.

Gilt für

Menüpunkte

Einstellung

Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_MENU_ITEM_PROPERTY

•	SET_MENU_ITEM_PROPERTY

Standardwert

Ja


Attribut Visuelles Attribut

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt das benannte visuelle Attribut an, das zur Laufzeit für ein Objekt angewendet werden soll. Ein visuelles Attribut definiert eine Sammlung von Schriftart-, Farb- und Musterattributen, die das Erscheinungsbild eines Objekts bestimmen.

Gilt für  Leinwände, Registerseiten, Objekte, Optionsschaltflächen

Einstellung  programmgesteuert

Vordefinierte Prozedur

•	GET_ITEM_INSTANCE_PROPERTY

•	GET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	GET_TAB_PAGE_PROPERTY

•	SET_CANVAS_PROPERTY

•	SET_ITEM_INSTANCE_PROPERTY

•	SET_ITEM_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY

•	SET_TAB_PAGE_PROPERTY

Verwendungshinweise

Wenn Sie zur Bestimmung der Einstellungen dieses Attributs zur Laufzeit die entsprechende GET-Prozedur verwenden, wird einer der folgenden Werte zurückgegeben:

•	der Name des benannten visuellen Attributs

•	der Name eines in der Resource-Datei definierten logischen Attributs

•	STANDARD (das Objekt verwendet die in der Resource-Datei definierten Standardattribute)


Einschränkungen bei Visuelles Attribut

Bei dem visuellen Attribut muß es sich um ein benanntes visuelles Attribut, das im Formmodul definiert ist, oder ein logisches Attribut, das in der Laufzeit-Resource-Datei definiert ist, handeln.


Attribut Visuelle Attributgruppe

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, wie die einzelnen Attributeinstellungen (Schriftartname, Hintergrundfarbe, Füllmuster usw.) für das Objekt abgeleitet werden. Für dieses Attribut sind folgende Einstellungen gültig:

Standard	Gibt an, daß das Objekt mit der Standardfarbe, dem Standardmuster und den standardmäßigen Schriftarteinstellungen angezeigt werden soll. Wenn Visuelle Attributgruppe auf Standard eingestellt ist, berücksichtigen die einzelnen Attributeinstellungen die aktuellen Standardwerte des Systems. Die tatsächlichen Einstellungen werden von einer Kombination von Faktoren bestimmt, einschließlich Objekttyp, benutzter Resource-Datei und Plattform.
Benanntes visuelles Attribut	Gibt ein benanntes visuelles Attribut an, das für das Objekt angewendet werden soll. Benannte visuelle Attribute sind separate Objekte, die Sie im Objektnavigator erstellen und dann für Schnittstellenobjekte anwenden, etwa wie Stile in einem Textverarbeitungsprogramm. Wenn das Attribut Visuelle Attributgruppe auf ein benanntes visuelles Attribut eingestellt ist, berücksichtigen die individuellen Attributeinstellungen die Attributeinstellungen, die für das benannte visuelle Attributobjekt definiert sind. Wenn die aktuelle Form keine benannten visuellen Attribute enthält, wird in der Popup-Liste für dieses Attribut Standard angezeigt.
Gilt für  Alle Schnittstellenobjekte

Einstellung  Form Builder

Standardwert

Standard

Verwendungshinweise

•	Standardattribute und benannte visuelle Attribute können die folgenden individuellen Attribute umfassen, in der Reihenfolge aufgeführt, in der sie in der Attributpalette angezeigt werden:

Schriftartname  Die Schriftart, die für den Text in dem Objekt verwendet werden soll. Die Liste der verfügbaren Schriftarten ist vom System abhängig.

Schriftgrad  Größe der Schriftart, in Punkt angegeben.

Schriftstil  Stil der Schriftart.

Zeichenabstand  Breite der Schriftart, d.h. Abstand zwischen den einzelnen Zeichen (Kerning).

Schriftstärke  Die Schriftstärke der Schriftart.

Vordergrundfarbe  Die Farbe für den Vordergrundbereich des Objekts. Bei Objekten definiert das Attribut Vordergrundfarbe die Farbe des Textes, der in dem Objekt angezeigt wird.

Hintergrundfarbe  Die Farbe für den Hintergrundbereich des Objekts.

Füllmuster  Das Muster, das für den Füllbereich des Objekts benutzt werden soll. Füllmuster werden in zwei Farben dargestellt, die mit der Hintergrundfarbe und der Vordergrundfarbe angegeben werden.

Logisches Attribut Zeichenmodus  Gibt den Namen des logischen Attributs für den Zeichenmodus an, wie in einer Resource-Datei von Oracle Terminal definiert, das als Basis für die Geräteattribute bei einer Version der Anwendung im Zeichenmodus benutzt werden soll.

Weiß auf Schwarz  Gibt an, daß das Objekt auf einem Schwarz-/Weiß-Bitmap-Anzeigegerät mit weißem Text auf schwarzem Hintergrund angezeigt werden soll.

Nicht alle Attribute sind bei jedem Objekttyp gültig. Wenn Sie z.B. Schriftartattribute für ein Fensterobjekt einstellen, bleibt dies wirkungslos. (Die in der Titelleiste des Fensters benutzte Schriftart wird vom System abgeleitet.)

•	Ein neues Objekt in einer neuen Form benutzt die standardmäßigen visuellen Attribute. Die Standardeinstellungen werden intern definiert. Sie können die Standardschriftart für neue Objekte und Boilerplate außer Kraft setzen, indem Sie die optionale Umgebungsvariable FORMS60_DEFAULTFONT einstellen. Bei Microsoft Windows können Sie diese Variable z.B. in der Registrierung wie folgt einstellen: FORMS60_DEFAULTFONT="COURIER.10". Die angegebene Standardschriftart bestimmt die Schriftart, die für neuen Boilerplate-Text benutzt wird, der von dem Fenster Neuer Block generiert wird, und für Objekte, bei denen das Attribut Visuelle Attributgruppe auf Standard eingestellt ist.

•	Wenn Sie ein Objekt im Layouteditor erstellen, werden die anfänglichen visuellen Attributeinstellungen von den aktuellen Einstellungen für Schriftart, Farbe und Muster im Layouteditor bestimmt, wie mit dem Dialogfeld Schriftart und den Farb- bzw. Musterpaletten angegeben.

•	Bei Microsoft Windows werden die Farben von Schaltflächen, Titelleisten in Fontfenstern und Fensterrahmen von den Farbeinstellungen in der Windows-Systemsteuerung bestimmt, die für diese Elemente angegeben wurden. Sie können diese Farben in Form Builder nicht außer Kraft setzen.

•	Wenn das Formattribut 3D-Steuerelemente verwenden bei Microsoft Windows auf Ja eingestellt ist (Standardwert), werden Objekte mit einer Schattierung dargestellt, die ihnen ein dreidimensionales Aussehen verleiht. Ein Nebeneffekt der Einstellung dieses Attributs besteht darin, daß Leinwände, für die das Attribut Visuelle Attributgruppe auf Standard eingestellt ist, die Farbeinstellung von der Windows-Systemsteuerung ableiten (bei den meisten Farbschemata grau). Sie können diese Einstellung außer Kraft setzen, indem Sie explizit benannte visuelle Attribute für die Leinwand anwenden.

•	Ein Objekt, bei dem das Attribut Visuelle Attributgruppe auf Standard eingestellt ist oder bei dem individuelle Attributeinstellungen nicht angegeben werden, übernimmt diese Einstellungen von der Leinwand, der es zugewiesen ist. Bei einer Leinwand, bei der das Attribut Visuelle Attributgruppe auf Standard eingestellt ist oder bei der individuelle Attributeinstellungen nicht angegeben werden, werden diese Einstellungen von dem Fenster übernommen, in dem die Leinwand angezeigt wird. Wenn Sie z.B. die Hintergrundfarbe eines Fensters auf ZYAN einstellen und für die dem Fenster zugewiesene Leinwand keine Hintergrundfarbe angeben, übernimmt die Leinwand zur Laufzeit die Hintergrundfarbe ZYAN von dem Fenster. Visuelle Attributeinstellungen, die durch Fenstervererbung abgeleitet werden, sind beim Entwurf sichtbar, wenn der Layouteditor erneut geöffnet wird.

•	Sie können Attributklassen für Objekte anwenden, um visuelle Attributeinstellungen anzugeben. Eine Attributklasse kann das Attribut Visuelle Attributgruppe oder eine bzw. mehrere individuelle Attributeinstellungen enthalten. (Wenn eine Attributklasse die Attribute Visuelle Attributgruppe und Individuelle Attribute enthält, ist das Attribut Visuelle Attributgruppe vorrangig.

•	Wenn Sie sowohl ein benanntes visuelles Attribut als auch eine Attributklasse, die visuelle Attributeinstellungen enthält, für dasselbe Objekt anwenden, sind die benannten visuellen Attributeinstellungen vorrangig, und die Einstellungen für das visuelle Attribut der Attributklasse werden ignoriert.

•	In der Resource-Datei definierte logische Attributdefinitionen sind gegenüber visuellen Attributen, die in Form Builder angegeben werden, lokalen Definitionen von Umgebungsvariablen und Standardattributen von Form Builder vorrangig. Die Resource-Datei kann mit dem Dienstprogramm Oracle Terminal bearbeitet werden.


Attribut Visueller Attributtyp

 Alle Attribute

Beschreibung

Gibt während des Entwurfs den Typ des visuellen Attributs an. Gültige Werte sind Global, Prompt und Titel.

Gilt für  Visuelle Attribute im allgemeinen

Einstellung  Form Builder

Standardwert  Global

Obligatorisch/Optional  Obligatorisch


WHERE-Klausel/ORDER BY-Klausel

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Die Standard-Attribute WHERE-Klausel und ORDER BY-Klausel dienen zur Festlegung der Standard-SQL-Klauseln für die Standard-SELECT-Anweisung, die einem Datenblock zugeordnet ist. Diese Klauseln werden der SELECT-Anweisung, die Form Builder bei der Durchführung einer Abfrage im Block erstellt und ausgibt, automatisch angehängt.

Gilt für  Blöcke

Einstellung  Form Builder, programmgesteuert

Vordefinierte Prozedur

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Obligatorisch/Optional  Optional

Verwendungshinweise

1	Die reservierten Wörter WHERE und ORDER BY sind optional. Wenn Sie sie nicht angeben, werden sie von Form Builder automatisch in der Anweisung hinzugefügt.

2	WHERE-Klauseln können sich auf folgende Objekte beziehen:

•	Spalten in der Datenblocktabelle des Blocks (mit Ausnahme von LONG-Spalten)

•	Formparameter (PARAMETER.my_parameter)

3	ORDER BY-Klauseln können sich auf folgende Objekte beziehen:

•	Spalten in der Datenblocktabelle des Blocks (mit Ausnahme von LONG-Spalten)

4	Eingebettete Kommentare werden in WHERE- und ORDER BY-Klauseln nicht unterstützt.


Einschränkungen bei WHERE-Klausel/ORDER BY-Klausel

•	Bei WHERE-Klausel liegt die maximale Länge bei 32.000 Byte.

•	Mit ORDER BY-Klausel kann nicht auf globale Variablen oder Formparameter Bezug genommen werden.


Beispiele zu WHERE-Klausel/ORDER BY-Klausel

Beispiel

Im folgenden Beispiel aus einem Bestellverfolgungssystem wird durch die WHERE-Klausel die Zahl der ermittelten Datensätze auf diejenigen reduziert, deren Spalte shipdate den Wert NULL enthält. Mit der ORDER BY-Klausel werden die ausgewählten Datensätze aufsteigend von frühestem zu spätestem Datum sortiert.

WHERE shipdate IS NULL
ORDER BY orderdate

Diese Anweisung mit WHERE- und ORDER BY-Klausel stellt die Basis für die Ermittlung der Datensätze dar. Der Benutzer kann die Suche weiter einschränken, indem die Form in den Abfragemodus versetzt wird. Auf diese Weise können spontan weitere Suchkriterien eingegeben werden.


Attribut Weiß auf Schwarz

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, daß das Objekt auf einem Monochrom-Bitmap-Bildschirm als weißer Text auf schwarzem Hintergrund angezeigt werden soll.

Gilt für  Objekte, Register, Leinwände, Fenster, Optionsschaltflächen

Einstellung  Programmgesteuert

Standardwert

Nicht angegeben

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

•	GET_CANVAS_PROPERTY

•	SET_CANVAS_PROPERTY

•	GET_WINDOW_PROPERTY

•	SET_WINDOW_PROPERTY


Breite/Höhe (BR, HO)

 Alle Attribute

Beschreibung

Siehe Größe


Attribut Fenster

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt das Fenster an, in dem die Leinwand zur Laufzeit angezeigt wird.

Gilt für  Leinwände

Einstellung  Form Builder

Vordefinierte Prozedur

GET_VIEW_PROPERTY

Standardwert

ROOT_WINDOW, falls die Form ein Hauptfenster enthält. Ansonsten wird das erste Fenster unter dem Knoten Fenster im Objektnavigator ausgewählt.

Obligatorisch/Optional  Obligatorisch für die Leinwand, die zur Laufzeit angezeigt wird.


Attribut Window_Handle

 Einschränkungen	 Alle Attribute

Beschreibung

In Microsoft Windows ist ein Fenster-Handle eine eindeutige interne Zeichenkonstante, mit der auf Objekte Bezug genommen werden kann. Für jedes Objekt bzw. Fenster kann ein Fenster-Handle angefordert werden.

Gilt für  Forms, Blöcke, Objekte

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	GET_WINDOW_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

Standardwert

NULL

Verwendungshinweise

•	Geben Sie den Namen des Objekts und das Attribut WINDOW_HANDLE in der Prozedur GET_ITEM_PROPERTY an, um ein Fenster-Handle für ein Objekt anzufordern.

•	Geben Sie den Namen des Fensters und das Attribut WINDOW_HANDLE in der Prozedur GET_WINDOW_PROPERTY an, um ein Fenster-Handle für ein Fenster anzufordern. Wenn der mit GET_WINDOW_PROPERTY ermittelte Fenstername FORMS_MDI_WINDOW lautet, handelt es sich bei dem Rückgabewert um ein Handle für das MDI-Client-Fenster. Dieses Handle wird zur Erstellung von untergeordneten MDI-Fenstern und -Steuerelementen verwendet.

•	Geben Sie den Objektnamen bzw. die Objekt-ID der Optionsgruppe, den Namen der Optionsschaltfläche und das Attribut WINDOW_HANDLE in der Prozedur GET_RADIO_BUTTON_PROPERTY an, um ein Fenster-Handle für eine Optionsschaltfläche anzufordern.

•	Geben Sie den Namen der Optionsgruppe als Objektname in der Prozedur GET_ITEM_PROPERTY ein, um ein Fenster-Handle für eine Optionsgruppe anzufordern. Ein Fenster-Handle für die Schaltfläche mit Fokus wird zurückgegeben. Wenn der Fokus auf keiner Schaltfläche ist, wird das Fenster-Handle für die ausgewählte Schaltfläche zurückgegeben. Wenn keine Schaltfläche ausgewählt ist oder den Fokus hat, wird das Fenster-Handle für die erste Schaltfläche zurückgegeben.


Einschränkungen bei Window_Handle

Nur bei Microsoft Windows gültig (gibt bei anderen Plattformen NULL zurück).


Attribut Window_State

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt den aktuellen Anzeigestatus des Fensters an:

NORMAL	Gibt an, daß das Fenster normal entsprechend den aktuellen Einstellungen für die Attribute Breite, Höhe, X-Position und Y-Position angezeigt wird.

MINIMIZE	Gibt an, daß das Fenster minimiert bzw. als Symbol dargestellt werden soll, so daß es auf dem Desktop als Bitmap-Grafik angezeigt wird.

MAXIMIZE	Gibt an, daß das Fenster so vergrößert wird, daß es den Bildschirm entsprechend dem Anzeigestil des Fensterverwaltungsprogramms füllt.

Gilt für  Fenster

Einstellung  Programmgesteuert

Vordefinierte Prozedur

•	GET_WINDOW_PROPERTY

•	SET_WINDOW_PROPERTY

Standardwert

NORMAL

Verwendungshinweise

Das Fensterverwaltungsprogramm regelt den Status Minimize und Maximize. Dies hat keine Auswirkungen auf die aktuellen Einstellungen von Breite und Höhe in den entsprechenden Attributen. Wenn ein Fenster also gerade minimiert oder maximiert ist, werden sämtliche Anforderungen an SET_WINDOW_PROPERTY bzw. RESIZE_WINDOW, die Auswirkungen auf die Attribute Breite und Höhe haben, angewendet. Der Benutzer bemerkt diese Änderungen aber erst, wenn für das Fenster wieder der Anzeigestatus Normal gilt.

Entsprechend wird mit der Prozedur GET_WINDOW_PROPERTY immer die aktuelle Breiten- und Höheneinstellung des Fensters abgerufen, auch wenn das Fenster gerade minimiert oder maximiert ist.


Einschränkungen bei Window_State

Unter Motif wird die Einstellung von Window_State auf MAXIMIZE nicht unterstützt.


Attribut Fensterstil

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob es sich bei dem Fenster um ein Dokument- oder ein Dialogfenster handelt. Dokument- und Dialogfenster werden bei Fensterverwaltungsprogrammen mit MDI-(Multiple Document Interface-)Unterstützung unterschiedlich angezeigt.

Gilt für  Fenster

Einstellung  Form Builder

Standardwert

Dokument

Einschränkungen

Gilt nur für ein zweites Fenster. (Hauptfenster sind immer Dokumentfenster.)

Verwendungshinweise

In MDI-Anwendungen wird ein standardmäßiges übergeordnetes Fenster angezeigt, das als Anwendungsfenster bezeichnet wird. Alle anderen Fenster in der Anwendung sind entweder Dokument- oder Dialog-Fenster.

Dokumentfenster sind immer auf die Größe des Fensterrahmens der Anwendung beschränkt. Wenn das Anwendungsfenster so weit verkleinert wird, daß es kleiner als ein Dokumentfenster ist, wird das Dokumentfenster abgeschnitten. Wenn das Dokumentfenster maximiert wird, nimmt es den gesamten zur Verfügung stehenden Platz im Anwendungsfenster ein.

Dialogfenster sind variable Fenster, und wenn die Fenster laut Definition verschoben werden können, ist auch ein Verschieben außerhalb des Anwendungsfensters möglich. Wenn das Anwendungsfenster so verkleinert wird, daß es kleiner als ein Dialogfenster ist, wird das Dialogfenster nicht abgeschnitten.


Attribut Umbruchstil

 Einschränkungen	    Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, wie der Text angezeigt wird, wenn eine Textzeile die Breite eines Textobjekts oder Editorfensters überschreitet.

In der folgenden Liste werden die zulässigen Wert für dieses Attribut beschrieben:

KEIN	Kein Umbruch: Über den rechten Rand hinausgehender Text wird nicht angezeigt.

ZEICHEN	Der Text wird nach dem letzten noch sichtbaren Zeichen in die nächste Zeile umgebrochen.

WORT	Der Text wird nach dem letzten noch sichtbaren Wort in die nächste Zeile umgebrochen.

Gilt für  Textobjekte, Editoren

Einstellung  Form Builder

Vordefinierte Prozedur

GET_ITEM_PROPERTY

Standardwert

WORT


Einschränkungen bei Umbruchstil

Ist nur bei mehrzeiligen Textobjekten gültig.


Attribut Textumbruch

  Verwandte Themen	 Alle Attribute

Beschreibung

Gibt an, ob der Text im Textobjekt in die nächste Zeile umgebrochen werden soll, damit er in die Umrandung paßt.

Gilt für  Grafiktext

Einstellung  Form Builder

Standardwert

Ja

Obligatorisch/Optional  Obligatorisch


Attribut X-Winkelradius

 Alle Attribute

Beschreibung

Gibt an, wie stark (in Layouteinheiten) die horizontale Rundung der Ecken des abgerundeten Rechtecks ausfallen soll.

Gilt für  Abgerundete Rechtecke

Einstellung  Form Builder

Standardwert

10

Obligatorisch/Optional  Obligatorisch


Attribut X-Position, Y-Position

 Einschränkungen	 Alle Attribute

Beschreibung

Gibt bei Objekten die Position auf dem Bildschirm an. Bei Elementen wird die Position der oberen linken Ecke des Elements relativ zur oberen linken Ecke der Leinwand des Elements angezeigt. Die angegebenen Werte werden entsprechend den Angaben im Formattribut Koordinatensystem als Werte in den aktuellen Koordinateneinheiten der Form (Zeicheneinheiten, Zentimeter, Zoll, Pixel oder Punkte) aufgefaßt.

Gilt für  Alle Elemente, Editoren, Wertelisten, Fenster, Leinwände

Einstellung  Form Builder, programmgesteuert

Verwendungshinweise

Die folgenden Informationen gelten für das aktuelle Objekt.

ITEM

Bestimmt, wo das Element auf der Leinwand angezeigt wird.

Vordefinierte Prozedur

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY

Standardwert

x,y(0,0)

LOV

Bestimmt, wo die Werteliste auf dem Bildschirm angezeigt wird. (0,0) ist die obere linke Ecke des Bildschirms, unabhängig von der Position des Hauptfensters. Die Werteliste kann überall auf dem Bildschirm angezeigt werden, auch an Positionen außerhalb der Form.

Vordefinierte Prozedur

•	GET_LOV_PROPERTY

•	SET_LOV_PROPERTY

Standardwert

x,y(0,0)

WINDOW

Gibt an, wo das Fenster auf dem Bildschirm angezeigt wird. (0,0) ist die obere linke Ecke des Bildschirms.

Vordefinierte Prozedur

•	GET_WINDOW_PROPERTY

•	SET_WINDOW_PROPERTY

Standardwert

x,y(0,0)


Einschränkungen bei X-Position, Y-Position

•	Es dürfen keine negativen Werte für Elemente, Editoren und Wertelisten verwendet werden.

•	Die mögliche Präzision hängt von den Koordinateneinheiten der Form ab. Unter Umständen werden Beträge gerundet.


Attribut Y-Winkelradius

 Alle Attribute

Beschreibung

Gibt an, wie stark (in Layouteinheiten) die vertikale Rundung der Ecken des abgerundeten Rechtecks ausfallen soll.

Gilt für  Abgerundete Rechtecke

Einstellung  Form Builder

Standardwert

10

Obligatorisch/Optional  Obligatorisch


Fenster und Leinwände

Frage

Wie kann der Titel des RUNFORM-Fensters geändert werden?

Antwort

Benutzen Sie den folgenden Code in dem When-New-Form-Instance-Trigger :

Set_Window_Property(FORMS_MDI_WINDOW, TITLE, 'Your Title');


Objekte, Datensätze und Blöcke

Frage

Wie unterscheidet sich ein Anzeigeobjekt von einem normalen Textobjekt?

Antwort

Ein Anzeigeobjekt ist im wesentlichen ein Textobjekt, in das keine Eingaben vorgenommen werden können. Das Anzeigeobjekt kann zur Implementierung von variablem Anzeigetext benutzt werden oder für Bildschirmwerte, die keinen Operatoreingriff erfordern (z.B. Datum/Zeit).

Da Anzeigeobjekte über eine "Teilmenge" der Funktionen verfügen, die ein Textobjekt hat, erfordert ihre Definition etwas weniger Speicherplatz.

Frage

Warum wird ein Null-Eintrag beim Starten in den Dropdown-Listen angezeigt?

Antwort

Betrachten Sie eine Dropdown-Liste mit den folgenden Werten:

Beschriftung      Wert

-------------    --------

Eins                1

Zwei                2

Drei                3

Wenn eine Dropdown-Liste in einem Block vorhanden ist, in dem ein Datensatz noch instantiiert werden muß, hat das Dropdown-Listenobjekt einen NULL-Wert. Um dies visuell darzustellen, sehen Sie eine leere Beschriftung in der Dropdown-Liste. Um die leere Beschriftung in der Form anzuzeigen, muß am Ende der Liste ein NULL-Wert hinzugefügt und der Wert des Steuerelements auf NULL eingestellt werden.

Wenn das Objekt nicht obligatorisch ist, wird automatisch ein leeres Listenelement zu den Auswahlen hinzugefügt, so daß der Benutzer NULL als einen der Werte auswählen kann.

Der Trick besteht wie bei jedem anderen Objekt darin, daß Sie den Wert einstellen oder den Datensatz in dem Block des Objekts instantiieren müssen, damit das Objekt die Standardwerte übernimmt, wenn beim Starten in dem Objekt ein Wert angezeigt werden soll.

Frage

Wie kann dynamisch verhindert werden, daß der Benutzer einen neuen Datensatz eingibt?

Antwort

Verwenden Sie einen When-New-Record-Instance-Trigger, der folgende Funktionen ausführt:

IF ((dynamic-condition-is-true) AND

   :System.Record_Status = 'NEW')

THEN

   RAISE Form_Trigger_Failure;

END IF;

Frage

Wie kann ein ganzer Block zur Laufzeit zu einem Abfrageblock gemacht werden?

Antwort

Geben Sie folgende Prozeduren aus:

Set_Block_Property('blockname', INSERT_ALLOWED, PROPERTY_OFF);

Set_Block_Property('blockname', UPDATE_ALLOWED, PROPERTY_OFF);

Frage

Wie können Farbe und Schriftart eines Objekts dynamisch zur Laufzeit geändert werden?

Antwort

Benutzen Sie die vordefinierte Prozedur Set_Item_Property :

Set_Item_Property( 'Blockname.Itemname', VISUAL_ATTRIBUTE, 'VisualAttributeName' );

Wobei 'VisualAttributeName' entweder der Name eines visuellen Attributs ist, das Sie in der Form eingestellt haben (mit Vordergrund, Hintergrund, Schriftart usw.), oder der Name eines logischen visuellen Attributs aus der Resource-Datei.

Frage

Wie erhält man Objekte, die wie ein deaktiviertes Objekt fungieren, jedoch nicht grau angezeigt werden?

Antwort

Die Attribute INSERT_ALLOWED und UPDATE_ALLOWED lösen dieses Problem. Objekte, bei denen diese Attribute auf Off eingestellt sind, werden nicht wie deaktivierte Objekte angezeigt, erlauben dem Benutzer jedoch nicht, die Werte in neuen oder abgefragten Datensätzen zu ändern.

Frage

Was bedeutet 'Trefferzählen' und 'Abfrageoptionen' in einem Blockkontext?

Antwort

Mit Set_Block_Property(.., QUERY_HITS) kann der ON-COUNT-Transaktionstrigger Form Builder unterrichten, wie viele Datensätze die Abfrage (die Sie selbst durchführen) zurückgibt, so daß die folgende Meldung ausgedruckt wird:

"FRM-xxxxx: Die Abfrage wird nnn Datensätze liefern."

Wenn Sie dieses Attribut über Get_Block_Property(.., QUERY_HITS) einlesen, wird einfach die Anzahl von Datensätzen zurückgegeben, die von der Abfrage abgerufen wurden.

Mit Get_Block_Property(.., QUERY_OPTIONS) weiß der Transaktionstrigger, ob er eine normale Abfrage, eine Abfrage vom Typ COUNT(*) oder eine Datensatz-Sperren-Abfrage durchführen soll.


Datensatzgruppen, globale Variablen und Parameter

Frage

Wofür werden Datensatzgruppen benutzt?

Antwort

Strukturell gesehen entspricht eine Datensatzgruppe einer Oracle-Tabelle im Speicher insofern, als eine Datensatzgruppe eine Zeilen-/Spalten-Gliederung und Spalten mit dem Datentyp NUMBER, CHAR und DATE hat.

Da Datensatzgruppen im Augenblick in Form Builder 6.0 keinen Mechanismus zur Pufferung von Datensätzen ähnlich dem Mechanismus haben, der von dem Datenbankblockobjekt bereitgestellt wird, muß beim Auffüllen einer Datensatzgruppe aus einer Abfrage mit Vorsicht vorgegangen werden. Wenn Sie eine Abfrage benutzen, die 10.000 Datensätze zurückgibt, wird Speicherplatz für das Abrufen und Speichern aller Zeilen zugeordnet, die von der Abfrage zurückgegeben werden.

Datensatzgruppen sind insbesondere nicht als Ersatz für Datenbanktabellen gedacht, während die Anwendungen ausgeführt werden. Für relativ kleine Listen mit Referenzwerten oder für Datenstrukturen mit mittlerer Größe sind sie möglicherweise optimal, damit die Anwendung die Datensätze auf der Clientseite behalten kann.

Bei neuen Anwendungen sollten Sie auch das Konstrukt der Datensatztabelle berücksichtigen, das von PL/SQL V2.3 bereitgestellt wird. Eine Datensatztabelle ist häufig effizienter in der Nutzung des Speicherplatzes und kann im allgemeinen schneller aufgerufen werden.

Auf der anderen Seite kann eine Datensatzgruppe dynamisch zur Laufzeit erstellt werden, während die Struktur einer Datensatztabelle beim Entwurf festgelegt wird. Wenn bei Ihrer Anwendung eine flexible Struktur benötigt wird, benutzen Sie eine Datensatzgruppe und keine Datensatztabelle.

Frage

Wann werden globale Variablen, Parameter oder vordefinierte Variablen benutzt?

Antwort

Hierfür gibt es keine gültige Antwort, es gibt jedoch einige Richtlinien, die Ihnen bei der Entscheidung helfen können:

Datentyp:  Globale Variablen sind immer Daten vom Typ CHAR. Parameter sind Daten vom Typ NUMBER, CHAR oder DATE. Vordefinierte Variablen können einen beliebigen PL/SQL-Datentyp aufweisen.

Erstellung:  Globale Variablen werden erstellt, wenn sie das erste Mal zugewiesen werden.

Parameter müssen beim Entwurf benannt und eingegeben werden oder können alternativ zur Laufzeit mit der vordefinierten Prozedur Add_Parameter() zu einer Parameterliste hinzugefügt werden.

Vordefinierte Variablen werden explizit als Bestandteil eines Pakets deklariert.

Standardwerte:  Globalen Variablen muß programmgesteuert ein Wert zugewiesen werden.

Parametern kann ein Standardwert des entsprechenden Datentyps beim Entwurf zugewiesen werden.

Vordefinierten Variablen kann beim Entwurf ein Standardwert des entsprechenden Datentyps zugewiesen werden. Vordefinierte Variablen können auch mit einem willkürlich komplexen Code im Initialisierungsblock des Pakets initialisiert werden.

Zuweisung:  Globale Variablen werden direkt über PL/SQL mit der Bindevariablenschreibweise (:GLOBAL.GLOBAL_NAME) oder indirekt mit der vordefinierten Prozedur Copy() zugewiesen.

Parameter in der Standardparameterliste (Parameter, die beim Entwurf erstellt werden) werden direkt über PL/SQL mit der Bindevariablenschreibweise (:PARAMETER.PARAM_NAME) oder indirekt mit der vordefinierten Prozedur Copy() zugewiesen. Wenn ein Teil einer Parameterliste nicht der Standardparameterliste entspricht, wird die vordefinierte Prozedur Set_Parameter_Attr() benutzt. Parameter, die beim Entwurf deklariert werden, können außerdem über die Befehlszeile mit Werten bestückt werden, wobei die Syntax "PARAMNAME=Value" benutzt wird.

Vordefinierte Variablen werden direkt über PL/SQL zugewiesen.

Geltungsbereich:  Globale Namen sind für die gesamte Runform-Sitzung global. Wenn Sie also versuchen, zwei Forms zu kombinieren, die denselben globalen Namen für verschiedene Zwecke benutzen, werden die Forms nicht ohne Änderungen integriert.

Parameterwerte sind für eine bestimmte Form lokal. Es gibt keine Interaktion, es sei denn, ein Parameter wird ausdrücklich von einer Form zu einer anderen übergeben. Beim Integrieren von Forms muß sichergestellt werden, daß diese die richtigen Parameternamen verwenden.

Vordefinierte Variablen werden vom Namen der vordefinierten Prozedur bezeichnet. Wenn zwei vordefinierte Prozeduren denselben Variablennamen deklarieren, gibt es zwischen den beiden keine Interaktion. Die Integration von Forms, die für die gemeinsam benutzten globalen Daten vordefinierte Variablen verwenden, ist wesentlich einfacher als die Benutzung der beiden anderen Methoden, da keine verborgenen, empfindlichen Interaktionen zwischen Objekten desselben Namens erfolgen.

Beständigkeit: Globale Variablen behalten ihren Wert während der Dauer der Runform-Sitzung bei, es sei denn, sie werden explizit gelöscht. Sie sind für alle Forms sichtbar, die während der Sitzung aufgerufen werden. Änderungen, die in einer aufgerufenen Form an einer globalen Variablen vorgenommen werden, sind für jede aufrufende Form und alle nachfolgenden Forms in der Sitzung sichtbar.

Parameter sind nur für die Form sichtbar, in der sie deklariert sind, es sei denn, sie werden als Bestandteil einer Parameterliste übergeben. In diesem Fall liefern sie ankommende Werte für die Parameter auf Formebene, die für die aufgerufene Form deklariert sind.

Der Wert des Parameters in der aufrufenden Form ist somit auf diese Weise für die aufgerufene Form sichtbar. Änderungen, die in einer aufgerufenen Form an einem Parameter durchgeführt werden, sind für eine aufrufende Form nicht sichtbar.  Der aufgerufenen Form wird ein Snapshot der Parameterwerte übermittelt, so wie sie zum Zeitpunkt von Call_Form() vorhanden waren. Dies kann mit persönlichen Kopien der Werte erfolgen.

Vordefinierte Variablen behalten ihren Wert während der Dauer der Runform-Sitzung bei. Sie sind für alle Forms sichtbar, die während der Sitzung aufgerufen werden, vorausgesetzt, das CALL_FORM-Argument data_mode ist auf SHARE_LIBRARY_DATA eingestellt. Änderungen, die in einer aufgerufenen Form an einer Paketvariablen durchgeführt werden, sind für jede aufrufende Form und alle nachfolgenden Forms in der Sitzung sichtbar.

Dokumentation:  Globale Variablen können an jeder Stelle in einem Trigger erstellt werden. Wenn der Entwickler nicht diszipliniert ist und methodisch arbeitet, können globale Variablen möglicherweise schwer aufzufinden und zu dokumentieren sein. Fehler können leicht geschehen und sind schwer zu finden, da ein Tippfehler bei der Zuweisung einer globalen Variablen einfach eine neue globale Variable unter dem neuen, falsch geschriebenen Namen erstellt.

Parameter sind als benannte Objekte auf Formebene vorhanden, können aussagefähige Standardwerte haben und können mit Objektkommentaren versehen werden, wie jedes andere Forms-Objekt.

Vordefinierte Variablen werden explizit in einer vordefinierten Prozedur deklariert und können explizit initialisiert werden. Sie können jederzeit im PL/SQL-Code dokumentiert werden.

Zusammenfassung:  Wenn Sie Werte über die Befehlszeile in eine Form übergeben möchten, benutzen Sie Parameter.

Wenn Sie Variablen dynamisch erstellen müssen, benutzen Sie globale Variablen. Erwägen Sie jedoch zuerst, ob eine Tabelle mit Datensätzen nicht die bessere Lösung zur Speicherung vieler dynamisch erstellter Werte ist.

Für alle anderen Zwecke benutzen Sie vordefinierte Variablen.

Frage

Wie kann eine Datensatzgruppe von Form Builder an Reports Developer oder Graphics Builder übergeben werden?

Antwort

Eine Datensatzgruppe wird als DATA-Parameter an Reports Developer oder Graphics Builder übergeben. Dieser DATA-Parameter ist ein besonderer Parameter, der dem Integrationscode ein Signal gibt, den Inhalt der Datensatzgruppe, deren Namen Sie angeben, durch die Ergebnisse der Abfrage zu ersetzen, die mit dem von Ihnen angegebenen Abfragenamen benannt wird. Einfaches Beispiel:

(1) In Reports Developer erstellen Sie einen Bericht mit einer Abfrage:

Abfragename:  FOOBAR_QUERY

Abfrage:  SELECT DEPTNO, DNAME FROM DEPT

(2) In Form Builder erstellen Sie eine Datensatzgruppe mit der Methode, die Sie am liebsten verwenden, die zwei Spalten enthält, eine vom Typ NUMBER und eine vom Typ CHAR. Danach füllen Sie diese Datensatzgruppe (immer noch in Forms) auf. Angenommen, die Datensatzgruppe hat den Namen PETE und verfügt über zwei Spalten A und B:

DECLARE

   f RecordGroup;

   g GroupColumn;

BEGIN

   f := CREATE_GROUP('Pete');

   g := ADD_GROUP_COLUMN( f , 'A', NUMBER_COLUMN);

   g := ADD_GROUP_COLUMN( f , 'B', CHAR_COLUMN, 20);

/*

** Then populate the group in your favorite way

*/

END;

(3) Wenn Sie die Parameterliste einrichten, die Sie von Forms an das andere Werkzeug übergeben, erstellen Sie einen Parameter mit der Bezeichnung 'FOOBAR_QUERY' und geben ihm den Wert 'PETE'. Da es sich um einen DATA-Parameter handelt, sagt diese Zuordnung von 'FOOBAR_QUERY' an 'PETE' dem Integrationscode, was er tun soll, wenn er das andere Tool startet. Anstatt die SELECT-Anweisung auszuführen, die 'FOOBAR_QUERY' in Reports Developer definiert, werden die Werte aus der Datensatzgruppe 'PETE' so ersetzt, als *wären* sie das Ergebnis.

Frage

Wie kann der Inhalt einer Datensatzgruppe in einem User Exit aufgerufen werden?

Antwort

Um den Inhalt einer Datensatzgruppe innerhalb eines User Exit aufzurufen, müssen die Werte zuerst in einen Datenbankblock gesetzt werden. Im Augenblick kennen die User Exits die Datenstruktur einer Datensatzgruppe von Form Builder nicht.

Mit der Auslieferung von ORA_FFI wird die Notwendigkeit für User Exits reduziert, da Sie jetzt Microsoft Windows SDK- und SLL-Funktionsaufrufe direkt aus PL/SQL ausführen können. Auf diese Weise haben Sie immer noch Zugang zu den Werten von Datensatzgruppen.


Programmblöcke und Bibliotheken

Frage

Soll beim Erstellen einer Prozedur eine Bibliothek, eine in der Datenbank gespeicherte Prozedur oder eine lokale Form-Prozedur verwendet werden?

Antwort

Diese verschiedenen Prozedurarten erzeugen unterschiedliche Leistungsergebnisse, je nachdem, welches Ziel erreicht werden soll. Die Datenbankprozedur wird auf der Serverseite aufgerufen und führt die gesamte Verarbeitung dort aus. Dadurch kann der Netzwerkverkehr reduziert werden, kann es jedoch zu einer Überlastung des Servers kommen, wenn viele Clients so vorgehen.

Lokale Form- und Bibliotheksprozeduren sind insofern recht ähnlich, als beide auf dem Client gespeichert und ausgeführt werden, wobei SQL-Anweisungen an den Server übergeben werden.

Die lokalen Prozeduren werden im allgemeinen schneller ausgeführt, weil sie in Wirklichkeit Bestandteil der .FMX-Datei sind, können jedoch mehr Speicherplatz belegen und haben längere Startzeiten, wenn die .FMX-Datei das erste Mal aufgerufen wird.

Bibliotheksprozeduren sind möglicherweise besser, was die Gesamtspeicherbelegung belegt, weil Prozeduren nur in Blöcken von 4 K in den Speicher geladen werden, wenn sie benötigt werden. Nachdem sie geladen sind, werden sie aus dem Speicher gelesen.

Sie haben den zusätzlichen Vorteil, daß die Bibliothek einer Reihe von Forms einmal zugeordnet werden kann. Wenn der Code innerhalb der Bibliotheksprozeduren geändert wird, muß die Form nicht neu generiert werden.

Wenn eine Bibliothek vordefinierte globale Variablen enthält, können diese Variablen formsübergreifend in einer Runform-Sitzung von mehreren Benutzern verwendet werden.

Frage

Wie wirkt sich die Benutzung von Bibliotheken auf die Größe der .FMX-Datei aus?

Antwort

Wenn der Bibliothekscode in FRM enthalten wäre, hätte keine Notwendigkeit bestanden, ihn neu zu gestalten. Der Vorteil des neuen Schemas liegt darin, daß die Bibliotheksmodule separat bleiben und (in .PLL- oder .PLX-Dateien) kompiliert werden, so daß Runform Programmblöcke zur Laufzeit in den Speicher laden kann, ohne jede FMX-Datei dadurch zu vergrößern.

Stellen Sie sich die Datei wie eine DLL vor. Der einzige Overhead, der für die Form, der eine Bibliothek zugeordnet ist, auftritt, besteht darin, daß ein etwas Speicherplatz benötigt wird, um den Namen der Bibliotheken zu speichern, von denen sie abhängig ist.

Frage

Wie kann ein Block in Bibliotheksprogrammblöcken referenziert werden?

Antwort

Beim Kompilieren versucht Form Builder, alle Referenzen auf Objekte aufzulösen. Wenn also ein Code wie der folgende:

:BLOCK1.ITEM1 := 'Value';

oder

IF

   :BLOCK1.ITEM1 = 'Y'

THEN

....

vorhanden ist, versucht Form Builder, die Referenz auf :BLOCK1.ITEM1 aufzulösen. Wenn Sie einen Bibliothekscode schreiben, gibt es keine Möglichkeit, diese Referenzen aufzulösen, da die Bibliothek potentiell *jeder* Form zugeordnet werden könnte.

Statt dessen müssen Sie die vordefinierten Prozeduren Copy() und Name_In() benutzen, wenn Sie Form Builder-Objekte innerhalb von Bibliotheken referenzieren. Diese vordefinierten Prozeduren versuchen nicht, Referenzen bei der Kompilierung aufzulösen. Der obige Code würde also zu:

Copy ('Value','BLOCK1.ITEM1');

oder

IF

   Name_In ('BLOCK1.ITEM1') = 'Y'

THEN

 ...


PL/SQL-Integration

Frage

Wie wird SQL innerhalb von PL/SQL von Form Builder behandelt?

Antwort

Da PL/SQL-Blöcke in einer Form vordefinierte Form Builder-Prozeduren enthalten können, kann nicht der gesamte Block an die Datenbank geschickt werden.

Form Builder verarbeitet die Cursor, die PL/SQL sagen, ob sie für DML-Vorgänge erforderlich sind, innerhalb von PL/SQL.

Dies bedeutet, daß SQL innerhalb von PL/SQL die Techniken des reduzierten Netzwerkverkehrs nutzt, die in 5.0 implementiert wurden. Diese Änderungen reduzieren den Netzwerkverkehr drastisch, der bei der Benutzung von früheren Versionen auftritt.

Um ganze Blöcke von PL/SQL an die Datenbank zu senden, können Sie:

(1) Die vordefinierte Prozedur Forms_DDL() benutzen, um eine längere Zeichenfolge zu senden, aus der ein Block mit Code besteht, der auf dem Server ausgeführt werden soll.

Forms_DDL('BEGIN ... END;');

(2) Gespeicherte Prozeduren/Funktionen/Pakete aufrufen, in denen DML integriert ist, und diese gespeicherten Programmblöcke aus Form Builder aufrufen.

Frage

Wie werden Konstanten wie INSERT_ALLOWED und PROPERTY_ON in PL/SQL behandelt?

Antwort

All diese Tokens, die Sie an vordefinierte Prozeduren übergeben, sind numerische Konstanten. Wenn Sie eine allgemeine Prozedur schreiben, die die Attribute von Objekten einstellt, müssen Sie sicherstellen, daß die übergebenen Parameter vom Typ NUMBER sind, um zu gewährleisten, daß es zu keinen Konflikten bei dem Datentyp kommt.


Timer

Frage

Was geschieht, wenn ein Timer während einer lang andauernden Abfrage abläuft?

Antwort

Der Timer wird immer erst bearbeitet, wenn der aktuelle Vorgang abgeschlossen ist. Das heißt, die Abfrage wird abgeschlossen, bevor der Timer bedient wird.

Frage

Wenn ein REPEAT-Timer zwischen einer langen Abfrage abläuft, wird er wiederholt, bevor er von einem WHEN-TIMER-EXPIRED-Trigger am Ende der Abfrage abgearbeitet wird, oder wartet er auf Abarbeitung, bevor er wiederholt wird?

Antwort

Ein sich wiederholender Timer wird immer erst dann neu gestartet, wenn der entsprechende WHEN-TIMER-EXPIRED ausgelöst wurde. Eine einfache Folge dieser Tatsache ist, daß niemals ein Timer zweimal in dem Stapel der "abzuarbeitenden Timer" vorhanden sein kann.


Trigger

Frage

Was ist der Unterschied zwischen den folgenden Triggern:

- Post-Fetch und Post-Query

- Post-Forms-Commit und Post-Database-Commit

- Pre-Query und Pre-Select

Antwort

Als nächstes werden diese Trigger verglichen:

Post-Fetch und Post-Query

POST-FETCH wird direkt nach jedem Versuch ausgelöst, Datensätze aus der Datenbank abzurufen. Je nach Wert der "Array-Größe" für den fraglichen Block und je nachdem, wie viele Datensätze tatsächlich aus der Datenbank infolge Ihrer Anforderung abgerufen werden, kann dieser Trigger einige Male ausgelöst werden.

Demgegenüber wird POST-QUERY einmal für *jeden* Datensatz ausgelöst, der aus dem Wartebereich eingelesen wird (in den die Datensätze geladen werden, nachdem sie in einem Block aus der Datenbank abgerufen wurden) und zu dem Ende der Liste mit Datensätzen des aktuellen Blocks hinzufügt wird.

Post-Forms-Commit und Post-Database-Commit

POST-FORMS-COMMIT wird als letzter Trigger, der noch Bestandteil der aktuellen Transaktion ist, während der Commit-Verarbeitung ausgelöst. Er ist die letzte Möglichkeit für die Anwendung, eine Verarbeitung oder eine Zurücksetzung der Transaktion vorzunehmen, bevor der eigentliche 'COMMIT'-Befehl ausgelöst wird.

Der POST-DATABASE-COMMIT-Trigger wird direkt ausgelöst, nachdem die 'COMMIT'-Anweisung von Forms ausgegeben wird, um die aktuelle Transaktion zu schließen. An dieser Stelle kann die Transaktion nicht mehr zurückgesetzt werden.

Pre-Query und Pre-Select

PRE-QUERY wird direkt ausgelöst, bevor Forms mit der Vorbereitung der SQL-Anweisung beginnt, die für die Abfrage der entsprechenden Datensätze aus der Datenbank als Antwort auf die Abfragekriterien erforderlich ist, die in den Beispieldatensatz eingegeben wurden.

Dieser Trigger ist die letzte Chance der Entwickler, Abfragekriterien in die Objekte in den Blöcken zu setzen, so als wären diese vom Operator in den Beispieldatensatz eingegeben worden.

PRE-SELECT wird nach dem PRE-QUERY-Trigger ausgelöst und direkt, bevor mit dem konkreten, physikalischen Erstellen der SELECT-Anweisung begonnen wird. Dieser Trigger wird typischerweise in Verbindung mit einem ON-SELECT-Trigger benutzt, in dem der Entwickler die normale Erzeugung der SELECT-Anweisung durch einen eigenen User Exit ersetzt, um die SELECT-Anweisung zur Ausführung zu erzeugen und vorzubereiten (möglicherweise für eine fremde Datenquelle).


Sperren

Frage

Kann die Sperre eines Datensatzes bis zum Speichern verschoben werden?

Antwort

Ja, es gibt ein Blockattribut mit der Bezeichnung Sperr-Modus, für das entweder 'Sofort' oder 'Verzögert' angegeben werden kann. Wenn Sie das Attribut auf 'Verzögert' einstellen, wird ein Datensatz in einem Block erst beim Speichern gesperrt, im allgemeinen, bis Änderungen 'abgeschickt' werden.

Zu diesem Zeitpunkt wird der aktuelle Forms-Wert mit dem Datenbankwert verglichen, bevor die Aktualisieren-Anweisung ausgegeben wird. Der Benutzer erhält eine Fehlermeldung, wenn der Datensatz aktualisiert wurde, seit er abgerufen wurde.

Sperr-Modus kann zur Laufzeit in einem Trigger mit der vordefinierten Prozedur Set_Block_Property geändert werden.


Bilder

Frage

Wie können Bilder einer Datei zur Speicherung in der Datenbank erhalten werden?

Antwort

Um Bilder in der Datenbank zu speichern, müssen Sie die Bilder in einem der unterstützten Standard-Dateiformate:

                                                    'PCX'

                                                    'BMP'

READ_IMAGE_FILE('file_name', 'TIFF', 'block.image_item');

                                                    'JFIF'

                                                    'PICT'

aus dem Dateisystem in ein Objekt in der Form lesen. Danach müssen Sie das Bild in der Datenbank speichern:

COMMIT_FORM;

Stellen Sie sicher, daß 'block.image_item' ein Datenbankobjekt in einem Datenbankblock ist und daß die Spalte 'image_item' in der Basistabelle, auf der der Block basiert, als LONG RAW deklariert ist.


Allgemeine Fragen der Benutzeroberfläche

Frage

Bei der Ausgabe einer Call_Form (.., NO_HIDE) ist die erste Form gelegentlich verborgen. Warum?

Antwort

Bei einer Anwendung kann immer nur ein ROOT_WINDOW gleichzeitig aktiv sein. Sie rufen die zweite Form auf, während der Fokus in diesem ROOT_WINDOW steht. In diesem Fall überlagert das ROOT_WINDOW der zweiten Form das der ersten Form, so daß es so scheint, als wäre die erste Form verborgen.

Wenn dies nicht geschehen soll, stellen Sie immer sicher, daß Sie die vordefinierte Prozedur Call_Form aus einem anderen Fenster als dem ROOT_WINDOW ausgeben.

ROOT_WINDOW wird im wesentlichen nur in älteren Forms benutzt, die ursprünglich in Forms 4.0 erstellt wurden. In neueren Forms erstellen Sie kein Fenster mit der Bezeichnung ROOT_WINDOW.

Frage

Wie kann zur Laufzeit festgestellt werden, welche Benutzeroberfläche benutzt wird?

Antwort

Benutzen Sie die vordefinierte Prozedur Get_Application_Property (USER_INTERFACE).


Menüs

Frage

Wie können Menüpunkte so angegeben werden, daß sie an der richtigen Stelle für die jeweilige Benutzeroberfläche stehen?

Antwort

Hierzu benutzen Sie eine Funktion mit der Bezeichnung Magische Menüpunkte. Wenn Sie den Menüpunkt für "Hilfe" z.B. zu einem magischen Menüpunkt machen, wird er an der Standardposition für das "Hilfe"-Menü auf jeder Benutzeroberfläche angezeigt, die Sie gerade verwenden.

Frage

Was ist die Ursache der Meldung:

FRM-10249: Sie haben zum Ausführen von Anwendung <Name> keine Berechtigung

Antwort

Prüfen Sie, ob Sie die folgenden Schritte ausgeführt haben:

•	Datenbankrolle erstellt

•	Den Benutzer dieser Rolle zugewiesen

•	Die Rolle mindestens einem der Menüpunkte auf oberster Ebene in der Menüanwendung zugewiesen

Wenn Sie diese Schritte ausgeführt haben und dennoch die Fehlermeldung FRM-10249 erhalten und das Menü nicht in der Datenbank speichern, stellen Sie sicher, daß die Option Datei benutzen in dem Attributblatt für das Formmodul angekreuzt ist.

Außerdem sollten Sie prüfen, ob die Menü-Basistabellen den Datentyp VARCHAR2 und nicht CHAR haben, wenn zutreffend.


Von einem früheren Release umstellen

Frage

Wie kann die Anwendung FORMB umgestellt werden, die referenzierte Objekte aus der Bibliotheksform FORMA enthält?

Antwort

Führen Sie folgende Schritte aus:

1	1. Erzeugen Sie eine INP-Datei für FORMA, falls dies noch nicht geschehen ist. Hierzu benutzen Sie "IAC30 FORMA UN/PW".

2	2. Stellen Sie FORMA.INP auf FORMA.FMB um.

3	3. Öffnen Sie FORMA.FMB aus Form Builder 5.0 und speichern Sie die Datei mit Datei [image] Speichern unter in der Datenbank (möglicherweise müssen Sie den Bildschirm mit den Voreinstellungen öffnen, um die Datei in der DB speichern zu können).

4	4. Stellen Sie FORMB.FMB um. Während der Umstellung werden weitere Referenzinformationen aus den *Forms 3.0 Tabellen* gelesen.

5	5. Wenn Sie danach FORMB.FMB in Form Builder 6.0 öffnen oder generieren, erwartet Form Builder jetzt die Referenzinformationen in den Form Builder 6.0-Datenbanktabellen.

In 6.0 können Sie jetzt sowohl aus dem Dateisystem als auch aus der Datenbank referenzieren.

Frage

Wenn bei einer Formatmaske von DD/MM/YY ein Datum ohne die Schrägstriche eingegeben wird, warum wird das richtige Datum nicht mehr wie bei Forms 3.0 angezeigt?

Antwort

Ab Forms 4.5 haben wir dieselbe Lösung für das Formatieren von Datumsangaben übernommen wie bei Oracle8.

Die Frage hier ist:

12121994

Wenn diese Zahlen durch die Formatmaske gehen, werden sie im allgemeinen von den Routinen zur Formatierung von Datumsangaben wie folgt behandelt:

12 1 21 9 94

   ~    ~

Die mit der Tilde markierten Zifffern '1' und '9' werden als Trennzeichen behandelt.

Deshalb wird diese Eingabe zu:

12 / 21 / 94

In einem Feld, bei dem eine vierstellige Jahreszahl erwartet wird und bei dem der vorher beschriebene Effekt eintritt, wird 94 als 0094 dargestellt.

Sie können das Formatmaskenelement "FX" benutzen, um den Benutzer zu zwingen, eine genaue Übereinstimmung in die Maske einzugeben.

Dies ist absichtlich erfolgt, um die Verarbeitung von Datumseingaben zu straffen. Es gab viele Fälle, in denen das Datumspaket sehr fragliche Eingaben akzeptiert hat, so daß entschieden wurde, dieses Verhalten bei Forms zugunsten einer besseren gesamten Datumsverarbeitung zu ersetzen.

Frage

Was steuert der Parameter FORMS60_DEFAULTFONT?

Antwort

FORMS60_DEFAULTFONT steuert:

Die Schriftart, die für den Standard-Block-Boilerplate benutzt wird, wenn es sich bei der Schriftart um eine Einzelschritt-Schriftart handelt. Wenn nicht, wird hierfür die am nächsten kommende Einzelschritt-Schriftart benutzt.

Die Schriftart, die für das Erstellen von umgestelltem Anzeigetext aus V3/V2.3 Forms benutzt wird.

Die Schriftart, die zur Anzeige von Objekten benutzt wird, die das standardmäßige visuelle Attribut haben.

Breite und Höhe (in Pixel) einer Zeicheneinheit mit gleichmäßiger Größe bei der Ausführung einer Form, die das Koordinatensystem Zeicheneinheit benutzt *und* bei der die Option Standard-Schriftskalierung eingeschaltet ist.

Wenn eine im Koordinatensystem Zeicheneinheit entworfene Form die Option Standard-Schriftskalierung benutzt, steuert die Größe der Standardschriftart (wie auch immer sie auf der benutzten Plattform eingestellt wurde) die Größe der Zeichenrasterzellen - je größer die Schriftart, desto größer die Rasterzellen.

Die (x,y)-Koordinaten für Position und Größe von jedem Objekt werden in ganzzahligen Zelleinheiten ausgedrückt, weil die Form in Zeicheneinheiten erstellt wurde, so daß ein größeres Raster mit einem Objekt mit einer Länge von fünf Zellen zu einem Objekt führt, das (absolut ausgedrückt) bei der Ausführung mit einer kleineren Standardschriftart länger ist.

Der Parameter wirkt sich nicht auf die Größe der Schriftart in dem Feld aus, es sei denn, das Objekt benutzt ein standardmäßiges visuelles Attribut.

Frage

Was geschieht bei der Umstellung von SQL*Forms 2.3 auf Form Builder 6.0 mit den V2-Triggern?

Antwort

Der Upgrade von 2.3 auf 6.0 erfolgt über den Forms 6.0 Generater. Um von 4.5 auf 6.0 umzustellen, öffnen Sie einfach die Form in 6.0 Form Builder.

V2-Trigger wurden während dieses Vorgangs nicht geändert.

In 6.0 können Sie die V2-Trigger NICHT ändern. Sie werden jedoch weiterhin ausgeführt.

Form Builder 6.0 ist wahrscheinlich das letzte Release, das V2-Trigger unterstützt. Deshalb sollten Sie damit beginnen, diese Trigger in Forms zu konvertieren oder zu ersetzen, die Sie noch weiter umstellen möchten.


Microsoft Windows-spezifische Fragen

Frage

Ist der Host()-Befehl unter Forms in Windows synchron oder asynchron?

Antwort

Host() ist nur synchron, wenn das aufgerufene Dienstprogramm ein anfängliches Fenster erstellt. Sonst ist er asynchron.

Die Windows-Anwendung 'winzip.exe' erstellt z.B. kein anfängliches Fenster. Deshalb ist:

Host('winzip.exe');   - asynchron,

während

Host('notepad.exe');   - synchron ist.

Wenn ein Befehl synchron sein soll, der dies im Augenblick nicht ist, müssen Sie ein Fenster (das nicht sichtbar ist, wenn Sie es nicht benutzen möchten) in WinMain des Anwendungscodes erstellen.

Frage

Was wird bei der Ausführung einer Form unter Windows in den Speicher geladen?

Antwort

Runform besteht aus einer kleinen ausführbaren Datei F60RUN32.EXE und RUNFORM.DLL. Die ausführbare Form Builder-Datei würde also wie ein Programm benutzt, das DLLs in Windows benutzt.

Der Inhalt der .FMX-Datei wird in den Speicher des PCs geladen. Der Inhalt der .MMX-Datei wird in den Speicher des PCs geladen. Die Tabelle der .PLL / .PLX-Datei wird vollständig in den Speicher des PCs geladen, und Programmblöcke werden auf Anforderung geladen.

Frage

Warum kann die Farbe einer Schaltfläche unter Windows nicht geändert werden?

Antwort

Unter dem Windows Toolkit gibt es im Augenblick keine Möglichkeit, die Farbe einer Schaltfläche individuell zu ändern. Sie können jedoch die Farbe *aller* Schaltflächen einschließlich der Schaltflächen für fremde Produkte über Fenster ändern. Außerdem könnten Sie eine Schaltfläche in Symbolform benutzen, wobei das Symbol eine andere Farbe hat.

Frage

Kann Forms 6.0 DLLs in Microsoft Windows aufrufen?

Antwort

Mit dem Paket ORA_FFI können Sie jede Windows SDK-Funktion oder DLL-Funktion direkt aus PL/SQL aufrufen, ohne daß User Exits erforderlich sind. Weitere Informationen über ORA_FFI finden Sie in dem Handbuch Advanced Techniques.


Motif-spezifische Fragen

Frage

Wie kann die Leistung mit Motif-Einstellungen verbessert werden?

Antwort

Stellen Sie in der Datei Tk2Motif sicher, daß folgende Einstellungen vorhanden sind:

Tk2Motif*dragReceiverProtocolStyle:     DRAG_NONE

Tk2Motif*dragInitiatorProtocolStyle:    DRAG_NONE

Frage

Wie kann der blinkende Cursor deaktiviert werden, um den Netzwerkverkehr zu reduzieren?

Antwort

Um den Austausch von Netzwerkpaketen beim Erstellen und Löschen des blinkenden Text-Cursors beim Bearbeiten von Texten und bei Textobjekten (Feldern) zu reduzieren, können Sie die folgenden Attribute blinkRate auf 0 (Millisekunden) einstellen. Die Standardeinstellung für beide Attribute entspricht einer blinkRate von 500 ms.

Tk2Motif*field.blinkRate: 0

Tk2Motif*tedit.blinkRate: 0

Frage

Wie kann das Look and Feel von Schaltflächen unter Motif geändert werden?

Antwort

Schaltflächen unter Motif können sehr ansprechend aussehen, wenn Sie die folgenden Einstellungen in der Datei Tk2Motif verwenden:

Tk2Motif*pushb.defaultButtonShadowThickness: 0

Tk2Motif*pushb.shadowThickness: 2

Tk2Motif*pushb.highlightThickness: 1

Frage

Wie kann die Schriftart in einem Triggertext-Fenster geändert werden?

Antwort

Benutzen Sie die folgende Resource-Einstellung:

Tk2Motif*tedit.fontList : my-favourite-font


Mehrere Tabellen mit JOIN verknüpfen

Vor Forms Version 6i hat Forms die Abfrage-Datenquellen vom Typ "Tabelle" basierend auf einer einzelnen Tabelle unterstützt. Jetzt unterstützt Forms Tabellenabfrage-Datenquellen basierend auf einem JOIN von mehreren Tabellen. Ein JOIN von mehreren Tabellen eignet sich nicht für ein DML-Datenziel, so daß das Datenziel immer noch auf einer einzelnen Tabellen basieren muß.

Führen Sie die unter Überblick beschriebenen Schritte aus, um einen Block mit einer Abfrage-Datenquelle basierend auf einem Join von mehreren Tabellen und einem DML-Datenziel basierend auf einer einzelnen Tabelle zu erstellen. In dem Beispiel wird beschrieben, wie ein EMP-Block mit einer Abfrage-Datenquelle basierend auf einem Join der EMP- und DEPT-Tabellen sowie ein DML-Ziel basierend auf der EMP-Tabelle erstellt wird.

Überblick

1.	Erstellen Sie mit dem Datenblock-Assistenten einen Block basierend auf einer der Tabellen in dem Join.

In einem Join ist häufig eine der Tabellen die "Steuerungstabelle", die mit mehreren anderen Fremdschlüssel-Referenztabellen verknüpft ist. Der Datenblock-Assistent hilft Ihnen dabei, Datenelemente aus Tabellenspalten zu erstellen, so daß empfohlen wird, daß Sie die Tabelle auswählen, die die meisten Spalten enthält, die in Ihrem Block aufgenommen werden sollen. Bei dieser Tabelle handelt es sich im allgemeinen um die Steuerungstabelle. Nachdem Sie den Datenblock-Assistenten ausgeführt haben, wird der Block erstellt.

2.	Wählen Sie den Block aus, und legen Sie das Attribut Abfrage-Datenquellname auf die Tabellenliste in dem Join fest.

Die Liste mit Tabellen muß durch Komma getrennt werden, so wie die Tabellen in der FROM-Klausel der Join-SELECT-Anweisung angegeben werden.

3.	Legen Sie die WHERE-Klausel so fest, daß sie die Join-Bedingung zwischen den Tabellen in dem Join enthält.

4.	Legen Sie das Attribut DML-Datenzielname auf die entsprechende Tabelle für Einfügen-, Aktualisieren- und Löschenvorgänge fest.  Dies ist im allgemeinen die Steuerungstabelle.

5.	Erstellen Sie manuell neue Objekte für Spalten in den anderen Tabellen in dem Join, die in dem Block aufgenommen werden sollen.

6.	Wählen Sie jedes der in Schritt 5 erstellten Objekte, und legen Sie das Attribut Datenbankobjekt auf Ja fest.

7.	Wählen Sie jedes der in Schritt 5 erstellten Objekte, und legen Sie das Attribut Spaltenname auf den Spaltennamen in der Tabelle fest.

8.	Wählen Sie jedes der in Schritt 5 erstellten Objekte, und legen Sie das Attribut Nur Abfrage auf Ja fest.

Dadurch wird verhindert, daß das Objekt in Einfügen- und Aktualisierenvorgängen in der DML-Datenzieltabelle aufgenommen wird.

9.	Bei allen Objekten, bei denen der Spaltenname in mehr als einer Tabelle in dem Join vorhanden ist, kennzeichnen Sie den Spaltennamen mit dem Tabellennamen in dem Attribut Spaltenname (z.B. table.column).

10.	Bei allen Objekten, bei denen es sich um den Primärschlüssel der Tabelle DML-Datenziel handelt, legen Sie das Attribut Primärschlüssel auf Ja fest.

Beispiel mit EMP und DEPT

In diesem Beispiel werden die Beispieltabellen EMP und DEPT benutzt. In diesem Beispiel wird ein EMP-Block erstellt, in dem die Mitarbeiterinformationen und der Name der Abteilung anstelle der Abteilungsnummer angezeigt wird. Die EMP-Tabelle ist die Steuerungstabelle, die mit der DEPT-Tabelle verknüpft ist, um den Abteilungsnamen zu referenzieren.

1.	Erstellen Sie einen Block basierend auf der EMP-Tabelle mit dem Datenblock-Assistenten.

2.	Wählen Sie mit der Attributpalette den EMP-Block, und ändern Sie den Abfrage-Datenquellnamen  von "EMP" in "EMP, DEPT".

3.	Legen Sie die WHERE-Klausel auf "EMP.DEPTNO = DEPT.DEPTNO" fest.

4.	Legen Sie den DML-Datenzielnamen auf "EMP" fest.

5.	Erstellen Sie manuell neue Objekte, die Spalten in der DEPT-Tabellen entsprechen. Erstellen Sie z.B. "DNAME".

6.	Wählen Sie das Objekt DNAME, und legen Sie Datenbankobjekt auf "Ja" fest.

7.	Legen Sie den Spaltennamen auf "DEPT.DNAME".

8.	Legen Sie Nur Abfrage auf "Ja" fest. Dadurch wird verhindert, daß das Objekt DNAME in Aktualisierungen der Tabelle EMP aufgenommen wird.

9.	Kennzeichnen Sie den Spaltennamen von Objekten, bei denen es sich um Spalten in den Tabellen EMP und DEPT handelt. Ändern Sie z.B. den  Spaltennamen des Objekts "DEPTNO" von "DEPTNO" in "EMP.DEPTNO".  Dadurch wird ein Fehler wegen mehrdeutigem Spaltennamen während der Abfrage vermieden.

10.	Geben Sie eines der Objekte als Primärschlüssel an. Legen Sie z.B. Primärschlüssel für das Objekt "Empno" auf "Ja" fest. Dies ist erforderlich, weil die Abfrage-Datenquelle und die DML-Ziele unterschiedlich sind.


Über Datensatzgruppen

  Verwandte Themen

Eine Datensatzgruppe ist eine interne Datenstruktur von Form Builder, die über einen Spalten-/Zeilen-Rahmen ähnlich wie eine Datentabelle verfügt. Im Gegensatz zu Datentabellen sind Datensatzgruppen jedoch separate Objekte, die zu dem Formmodul gehören, in dem sie definiert sind. Eine Datensatzgruppe kann eine unbegrenzte Anzahl von Spalten vom Typ CHAR, NUMBER oder DATE enthalten, vorausgesetzt, die Gesamtanzahl von Spalten überschreitet 64 K nicht. Die Spaltennamen von Datensatzgruppen dürfen nicht länger als 30 Zeichen sein.

Eine aus einer Abfrage erstellte Datensatzgruppe kann Datensätze aus Datenbanktabellen genau wie eine Datenbankansicht speichern, mit dem zusätzlichen Vorteil, daß die Datensatzgruppe in Form Builder lokal ist. Außerdem kann die SELECT-Anweisung, mit der eine Abfrage-Datensatzgruppe erstellt und aufgefüllt wird, dynamisch zur Laufzeit erzeugt werden.

Programmgesteuert können Datensatzgruppen immer dann benutzt werden, wenn die von einem zweidimensionalen Array mit mehreren Datentypen gebotene Funktionalität gewünscht wird.


Über Typen von Datensatzgruppen

Es gibt drei Typen von Datensatzgruppen: Abfrage-Datensatzgruppen, Nicht-Abfrage-Datensatzgruppen und statische Datensatzgruppen.

Abfrage-Datensatzgruppe	Eine Abfrage-Datensatzgruppe ist eine Datensatzgruppe, die über eine verknüpfte SELECT-Anweisung verfügt. Die Spalten in einer Abfrage-Datensatzgruppe leiten die Standardnamen, -datentypen und -längen von den Datenbankspalten ab, die in der SELECT-Anweisung referenziert werden. Die Datensätze in einer Abfrage-Datensatzgruppe sind die Zeilen, die von der mit dieser Datensatzgruppe verknüpften Abfrage abgerufen werden. Abfrage-Datensatzgruppen können beim Entwurf oder zur Laufzeit erstellt und geändert werden.
Nicht-Abfrage- Datensatzgruppe	Eine Nicht-Abfrage-Datensatzgruppe ist eine Gruppe, die über keine zugehörige Abfrage verfügt, deren Struktur und Werte jedoch programmgesteuert zur Laufzeit geändert werden können. Nicht-Abfrage-Datensatzgruppen können nur zur Laufzeit erstellt und geändert werden.
Statische Datensatzgruppe	Eine statische Datensatzgruppe ist nicht mit einer Abfrage verknüpft. Statt dessen definieren Sie die Struktur und Zeilenwerte beim Entwurf. Diese bleiben zur Laufzeit fest. Statische Datensatzgruppen können nur beim Entwurf erstellt und geändert werden.
Sie können den Datensatzgruppentyp nicht explizit angeben. Der Typ wird bestimmt, wenn die Datensatzgruppe (beim Entwurf oder zur Laufzeit) erstellt wird. Außerdem wird sie dadurch bestimmt, wie die Gruppe definiert wird.


Über Werte von Datensatzgruppen

  Verwandte Themen

Die eigentlichen Werte in einer Datensatzgruppe stammen aus einer von drei möglichen Quellen:

•	Ausführung einer SELECT-Anweisung, die Sie beim Entwurf mit der Datensatzgruppe verknüpft haben (Abfrage-Datensatzgruppen)

•	Ausführung von vordefinierten Unterprogrammen, die die Datensatzgruppe dynamisch auffüllen (Abfragegruppen und Nicht-Abfragegruppen)

•	Array mit statischen Werten, die Sie beim Entwurf mit der Datensatzgruppe verknüpft haben (statische Datensatzgruppen)


Über Datensatzgruppen und Wertelisten

  Verwandte Themen

Jede Werteliste ist mit einer bestimmten Datensatzgruppe verknüpft. Die Werteliste ist das Schnittstellenobjekt, mit dem Operatoren die Datensätze in der zugrundeliegenden Datensatzgruppe anzeigen, durchblättern und auswählen können. Wenn Sie eine Werteliste beim Entwurf definieren, müssen Sie die Datensatzgruppe angeben, auf der die Werteliste basiert.

Wenn Sie eine Werteliste erstellen, können Sie die zugrundeliegende Datensatzgruppe auch direkt aus dem Dialogfeld Werteliste erstellen erzeugen.


Über vordefinierte Prozeduren für Datensatzgruppen

  Verwandte Themen

Die folgenden vordefinierten Prozeduren sind für das programmgesteuerte Arbeiten mit Datensatzgruppen verfügbar.

Der Typ der Datensatzgruppe (statisch, Abfrage oder Nicht-Abfrage) und der Zeitpunkt, bei dem die Gruppe erstellt wurde (beim Entwurf oder zur Laufzeit), bestimmen, welche vordefinierten Prozeduren für eine bestimmte Gruppe gültig sind. Sie können z.B. die Funktion ADD_GROUP_COLUMN nicht verwenden, um eine Spalte zu einer Datensatzgruppe hinzuzufügen, die beim Entwurf erstellt wurde. Gleichermaßen können Sie die Prozedur ADD_GROUP_ROW nicht verwenden, um eine Zeile zu einer statischen Datensatzgruppe hinzuzufügen.

Gruppen erstellen und löschen:

•	CREATE_GROUP (Funktion)

•	CREATE_GROUP_FROM_QUERY (Funktion)

•	DELETE_GROUP (Prozedur)

Struktur einer Gruppe ändern:

•	ADD_GROUP_COLUMN (Funktion)

•	ADD_GROUP_ROW (Prozedur)

•	DELETE_GROUP_ROW (Prozedur)

Gruppen auffüllen:

•	POPULATE_GROUP (Funktion)

•	POPULATE_GROUP_WITH_QUERY (Funktion)

•	SET_GROUP_CHAR_CELL (Prozedur)

•	SET_GROUP_DATE_CELL (Prozedur)

•	SET_GROUP_NUMBER_CELL (Prozedur)

Zellwerte einlesen:

•	GET_GROUP_CHAR_CELL (Funktion)

•	GET_GROUP_DATE_CELL (Funktion)

•	GET_GROUP_NUMBER_CELL (Funktion)

Zeilen verarbeiten:

•	GET_GROUP_ROW_COUNT (Funktion)

•	GET_GROUP_SELECTION_COUNT (Funktion)

•	GET_GROUP_SELECTION (Funktion)

•	RESET_GROUP_SELECTION (Prozedur)

•	SET_GROUP_SELECTION (Prozedur)

•	UNSET_GROUP_SELECTION (Prozedur)

Objekt-ID-Funktionen:

•	FIND_GROUP (Funktion)

•	FIND_COLUMN (Funktion)


Datensatzgruppen beim Entwurf erstellen

  Verwandte Themen

So erstellen Sie eine Abfrage-Datensatzgruppe beim Entwurf:

1	Klicken Sie auf den Knoten Datensatzgruppen im Objektnavigator.

2	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

3	Im Dialogfeld Neue Datensatzgruppe klicken Sie auf Basierend auf folgender Abfrage, und geben Sie dann eine SELECT-Anweisung in das Feld Abfragetext ein. Die WHERE-Klausel für die SELECT-Anweisung kann Referenzen auf globale Variablen und Formparameter enthalten.

4	Klicken Sie auf OK.

Form Builder validiert die SELECT-Anweisung und schließt das Dialogfeld.

Hinweis:  Die neue Datensatzgruppe enthält noch keine Zeilen. Die Zeilen werden zur Laufzeit von der Abfrage zurückgegeben, die mit der Gruppe verknüpft ist:

•	Sie können die mit einer Abfrage-Datensatzgruppe verknüpfte Abfrage programmgesteuert ausführen, indem Sie die vordefinierte Prozedur POPULATE_GROUP aufrufen.

•	Wenn eine Werteliste auf einer Abfrage-Datensatzgruppe basiert, führt Form Builder die mit dieser Datensatzgruppe verknüpfte Abfrage aus, sobald die Werteliste aufgerufen wird, oder jedesmal, wenn Form Builder ein Textobjekt validieren muß, bei dem das Attribut Liste validieren auf Ja eingestellt ist.


Struktur einer Datensatzgruppe anzeigen

So zeigen Sie die Struktur einer Datensatzgruppe an:

1	Doppelklicken Sie im Objektnavigator auf das Symbol neben der gewünschten Datensatzgruppe, um die Attributpalette anzuzeigen.

2	Doppelklicken Sie unter dem Knoten Funktional auf das Feld Spaltenangaben.

Daraufhin wird das Dialogfeld Spaltenspezifikationen angezeigt. Dieses Dialogfeld enthält die Namen der ausgewählten Spalten in dem Textfeld Spaltenname.

In den Feldern Datentyp und Länge werden die Attribute der Spalte angezeigt, die momentan in der Liste Spaltenname ausgewählt ist.

Tip:  Um die Attribute einer anderen Spalte anzuzeigen, wählen Sie diese Spalte in der Liste aus. Längenwerte werden nur für CHAR-Spalten angezeigt. Bei NUMBER- und DATE-Spalten benutzt Form Builder die ORACLE-Standardlängen für diese Datentypen und deaktiviert das Feldattribut Länge.

Hinweis: Zur Laufzeit erstellte Datensatzgruppen können in Form Builder nicht angezeigt werden.


SELECT-Anweisung für eine Abfrage-Datensatzgruppe ändern

  Verwandte Themen

So ändern Sie die SELECT-Anweisung für eine Abfrage-Datensatzgruppe:

1	Doppelklicken Sie im Objektnavigator auf das Symbol neben der gewünschten Datensatzgruppe, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Funktional ändern Sie die SELECT-Anweisung für die Datensatzgruppenabfrage nach Bedarf.

Tip:  Wenn Sie die SELECT-Anweisung für eine Datensatzgruppe ändern, auf der eine bestehende Werteliste basiert, müssen Sie die Wertelistendefinition möglicherweise aktualisieren, damit die Spaltendefinitionen der Werteliste den Spalten der neuen Datensatzgruppe entsprechen.

Hinweis:  Diese Instruktionen gelten nur für Abfrage-Datensatzgruppen, die beim Entwurf erstellt werden. Zur Laufzeit können Sie die SELECT-Anweisung einer Abfrage-Datensatzgruppe programmgesteuert ändern, die zur Laufzeit erstellt wurde.


Über das Bearbeiten von Datensatzgruppen zur Laufzeit

  Verwandte Themen

Wenn Sie eine Abfrage- oder Nicht-Abfrage-Datensatzgruppe zur Laufzeit erstellen, können Sie die folgenden Vorgänge mit der Gruppe durchführen:

•	Ändern der Struktur durch Hinzufügen von Spalten und Zeilen

•	Auffüllen der Gruppe

•	Ändern der mit einer Abfragegruppe verknüpften Abfrage

•	Hinzufügen und Löschen von Zeilen

•	Festlegen und Einlesen von Spaltenwerten

•	Markieren von Zeilen als "ausgewählt" bzw. Aufheben der Markierung

Hinweis:  Statische Datensatzgruppen können nur beim Entwurf erstellt und geändert werden.

Die Zeilen von Datensatzgruppen werden intern numeriert (1, 2, 3 usw.). Bei Vorgängen mit einzelnen Zeilen und Spalten müssen diese Zeilen nach Zeilennummer referenziert werden.


Abfrage-Datensatzgruppen zur Laufzeit erstellen

  Beispiele	  Verwandte Themen

Mit der Funktion CREATE_GROUP_FROM_QUERY können Sie Abfrage-Datensatzgruppen programmgesteuert zur Laufzeit erstellen. Um diese Funktion aufzurufen, übergeben Sie die SELECT-Anweisung, die mit der Datensatzgruppe verknüpft werden soll. Die Spalten in der Ergebnisgruppe entsprechen den Datenbankspalten, die in der SELECT-Anweisung referenziert werden.

Der Rückgabewert von CREATE_GROUP_FROM_QUERY entspricht der Objekt-ID der neuen Gruppe. Weisen Sie diesen Rückgabewert einer Variablen zu, die Sie mit dem Typ Datensatzgruppe deklariert haben.

Durch den Aufruf von CREATE_GROUP_FROM_QUERY wird eine Gruppe erstellt, die noch keine Zeilen enthält. Um die Gruppe aufzufüllen, müssen Sie die zugehörige Abfrage explizit ausführen, indem Sie die Funktion POPULATE_GROUP aufrufen. Der Rückgabewert der Funktion POPULATE_GROUP ist 0, wenn die Abfrage erfolgreich ausgeführt wird. Wenn sie nicht erfolgreich ausgeführt wird, wird eine ORACLE-Fehlernummer ausgegeben.


Abfrage einer Datensatzgruppe ersetzen

  Beispiele	  Verwandte Themen

Sie können die aktuelle Abfrage einer Gruppe durch eine neue Abfrage ersetzen, indem Sie die Funktion POPULATE_GROUP_WITH_QUERY aufrufen.

Die in der neuen Abfrage referenzierten Spalten müssen dieselbe Struktur wie die Spalten haben, die in der aktuellen Abfrage der Gruppe referenziert sind. Das heißt, Sie können die Spaltenstruktur einer Datensatzgruppe nicht ändern, indem Sie POPULATE_GROUP_WITH_QUERY aufrufen.

Sie könnten z.B. die Abfrage einer Gruppe ersetzen, wenn Sie die WHERE- und ORDER BY-Standardklauseln ändern möchten.

Die Funktion POPULATE_GROUP_WITH_QUERY gibt 0 zurück, wenn die Abfrage erfolgreich ausgeführt wird, bzw. eine ORACLE-Fehlernummer, wenn sie nicht erfolgreich ausgeführt wird.

Die neue Abfrage bleibt mit der Datensatzgruppe verknüpft, und Sie können sie ausführen, indem Sie weitere Aufrufe der Funktion POPULATE_GROUP vornehmen.


Abfrage-Datensatzgruppen zur Laufzeit auffüllen

  Verwandte Themen

Wenn Sie Abfragegruppen programmgesteuert erstellen und bearbeiten, müssen Sie sicherstellen, daß die Werte in der Gruppe mit den Werten in der Datenbank übereinstimmen. Denken Sie daran, daß die Zeilen in einer Abfragegruppe nur so aktuell sind, wie der letzte Aufruf von POPULATE_GROUP oder POPULATE_GROUP_WITH_QUERY.


Beispiele für das Erstellen einer Abfrage-Datensatzgruppe zur Laufzeit

/* The following example creates a four-column record
** group based on two database tables, product and
** inventory.
*/

DECLARE
   group_id	RecordGroup;
   query_ok	NUMBER;
BEGIN
/* create the group prod_group and assign its id to the
** variable group_id  */
   group_id := Create_Group_From_Query ('prod_group',
     'SELECT product.id, product.name,
     inventory.warehouse_id, inventory.amount_in_stock
     FROM product, inventory
     WHERE product.id = warehouse.product_id');
/* now execute the new group's query, using the variable
** group_id to identify the group */
   query_ok := Populate_Group(group_id);

/* if the query failed, abort this trigger by raising a
** predefined exception */
   IF query_ok <> 0 THEN
     RAISE Form_Trigger_Failure;
   END IF;
END;


Beispiele für das Ersetzen der Abfrage einer Datensatzgruppe

/* The following example demonstrates replacing a
** record group's query at runtime: */

IF (Populate_Group_With_Query
   ('prod_group',
   'SELECT product.id, product.name, inventory.warehouse_id,
     inventory.amount_in_stock
     FROM product, inventory
     WHERE product.id = warehouse.product_id
     AND inventory.amount_in_stock > 10'))
     <> 0 THEN
     RAISE form_trigger_failure;
END IF;


Nicht-Abfrage-Datensatzgruppen erstellen und auffüllen

  Beispiele	  Verwandte Themen

Nicht-Abfrage-Datensatzgruppen können nur zur Laufzeit erstellt werden.

Benutzen Sie die Funktion CREATE_GROUP, um eine Nicht-Abfrage-Datensatzgruppe zu erstellen. Da die Funktion CREATE_GROUP eine Gruppe ohne Spalten oder Zeilen erstellt, folgen auf sie im allgemeinen Aufrufe der Funktionen ADD_GROUP_COLUMN und ADD_GROUP_ROW.

CREATE_GROUP ist eine Funktion, die die interne ID der neuen Gruppe zurückgibt. ADD_GROUP_COLUMN gibt die ID der neuen Spalte zurück. Wenn Sie diese IDs Variablen vom Typ Datensatzgruppe und Gruppenspalte zuweisen, können Sie diese in nachfolgenden Vorgängen referenzieren.

Sie können auch POPULATE_GROUP_WITH_QUERY verwenden, um eine Nicht-Abfrage-Gruppe aufzufüllen. In diesem Fall wird die angegebene Abfrage mit der Gruppe verknüpft und die Nicht-Abfrage-Gruppe somit in eine Abfragegruppe konvertiert. Die in der neuen Abfrage referenzierten Datenbankspalten müssen den Spalten in der Datensatzgruppe entsprechen.

So könnten Sie z.B. eine Nicht-Abfrage-Datensatzgruppe generieren, die über die entsprechenden Spalten verfügt, und dann POPULATE_GROUP_WITH_QUERY aufrufen, um eine Abfrage mit der Gruppe zu verknüpfen.


Beispiele für das Erstellen und Auffüllen einer Nicht-Abfrage-Datensatzgruppe

/* The following example creates a record group called my_group.
** The resulting group is a three-column non-query record group
** that does not yet contain any rows.
*/

DECLARE
   group_id	RecordGroup;
   col1_id	GroupColumn;
   col2_id	GroupColumn;
   col3_id	GroupColumn;

BEGIN
/* Create a non-query group called my_group and assign its id
** to the variable group_id.
*/
   group_id := Create_Group('my_group');

/* Add three columns to the new group, using the variable
** group_id to identify the group.  The first two columns
** are of type CHAR_COLUMN and their length must be
** specified.
** The third is of type NUMBER_COLUMN and does not take a
** length parameter
*/
   col1_id := Add_Group_Column(group_id,'col1',CHAR_COLUMN,50);
   col2_id := Add_Group_Column(group_id,'col2',CHAR_COLUMN,50);
   col3_id := Add_Group_Column(group_id,'col3',NUMBER_COLUMN);

END;


Bestehende Datensatzgruppen ändern

  Verwandte Themen

Sie können die Struktur einer bestehenden Datensatzgruppe ändern, indem Sie:

•	Zeilen zu der Gruppe hinzufügen

•	Zeilen aus der Gruppe löschen

•	Spalten zu der Gruppe hinzufügen

•	die Gruppe löschen


Zeilen zu einer Datensatzgruppe hinzufügen

  Beispiele	  Verwandte Themen

Benutzen Sie die Prozedur ADD_GROUP_ROW, um Zeilen zu einer Gruppe hinzuzufügen. Wenn Sie ADD_GROUP_ROW aufrufen, geben Sie an, wo Form Builder die neue Zeile einfügen soll, indem Sie eine Zeilennummer übergeben oder angeben, daß die Zeile an das Ende aller schon vorhandenen Zeilen gesetzt werden soll.

Um eine neue Zeile bei einer bestimmten Position einzufügen, übergeben Sie die gewünschte Zeilennummer:

Add_Group_Row('my_group',3);

Um eine Zeile am Ende aller bestehenden Zeilen hinzuzufügen, benutzen Sie die Konstante END_OF_GROUP, um die Position für die Zeile anzugeben:

Add_Group_Row('my_group',END_OF_GROUP);

Die Spaltenwerte in der neu hinzugefügten Zeile entsprechen standardmäßig NULL. Um die Werte einzelner Spalten einzustellen, verwenden Sie die für den Datentyp der Zelle zutreffende Prozedur:

•	SET_GROUP_CHAR_CELL

•	SET_GROUP_DATE_CELL

•	SET_GROUP_NUMBER_CELL

Hinweis:  Sie können keine Zeilen programmgesteuert zu einer statischen Datensatzgruppe hinzufügen.


Beispiele für das Hinzufügen von Zeilen zu einer Datensatzgruppe

/* The following example adds a row at the end of the
** group my_group and then sets the values of each cell
** in the new row:
*/

DECLARE
   group_id	RecordGroup := Find_Group('my_group');
   total_rows	NUMBER;
   new_row	NUMBER;
BEGIN
/* find out how many rows there are in the group now */
   total_rows := Get_Group_Row_Count(group_id);

/* add a row at the end of the group my_group */
   Add_Group_Row(group_id, END_OF_GROUP);

/* increment total_rows to get the row number of the new row */
   new_row := total_rows + 1;

/* set the value of columns 1,2, and 3 in the new row */
   Set_Group_Char_Cell('my_group.col1, new_row, 'xyz company');
   Set_Group_Char_Cell('my_group.col2', new_row, 'district 12');
   Set_Group_Number_Cell('my_group.col3', new_row, 400);
END;


Zeilen aus einer Datensatzgruppe löschen

  Verwandte Themen

Verwenden Sie die Prozedur DELETE_GROUP_ROW, um Zeilen aus bestehenden Gruppen zu entfernen. In dem folgenden Beispiel wird die dritte Zeile in der Gruppe mit der Bezeichnung prod_group gelöscht:

Delete_Group_Row('prod_group',3);

Um alle Zeilen zu löschen, übergeben Sie die Konstante ALL_ROWS:

Delete_Group_Row('prod_group',ALL_ROWS);

Hinweis:  Sie können keine Zeilen aus einer statischen Datensatzgruppe löschen.


Spalten zu einer Datensatzgruppe hinzufügen

  Beispiele	  Verwandte Themen

Benutzen Sie die Prozedur ADD_GROUP_COLUMN, um eine neue Spalte zu einer bestehenden Datensatzgruppe hinzuzufügen. Die Datensatzgruppe, zu der Sie die Spalte hinzufügen, muß folgenden Kriterien entsprechen:

•	Bei der Gruppe muß es sich um eine Abfrage- oder Nicht-Abfrage-Gruppe handeln, die programmgesteuert erstellt wurde (Sie können keine Spalten zu Gruppen hinzufügen, die beim Entwurf erstellt wurden.

•	Die Gruppe kann momentan keine Zeilen enthalten.

Wenn Sie eine Spalte zu einer Abfrage-Datensatzgruppe hinzufügen, müssen Sie außerdem die aktuelle Abfrage der Gruppe durch eine neue Abfrage ersetzen, die Werte für die neue Spalte auswählt.


Beispiele für das Hinzufügen von Spalten zu Datensatzgruppen

/* The following example adds a column to a query record
** group that was created by a call to CREATE_GROUP_FROM_QUERY
** and currently has rows returned by that query.
*/

DECLARE
  query_ok	NUMBER;

BEGIN
/* This is a query group that has rows from a previous call
** to Populate_Group, so first delete all its rows
*/
   Delete_Group_Row('prod_group',ALL_ROWS);

/* Now add a column of type DATE_COLUMN to the group */

   Add_Group_Column('prod_group', 'restock_date', DATE_COLUMN);

/* The structure of group's old query is no longer valid, so
** replace that query with a new query and populate the group
*/

   query_ok := Populate_Group_With_Query('prod_group',
   'SELECT product.id, product.name, inventory.warehouse_id,
   inventory.amount_in_stock, inventory.restock_date FROM product,
   inventory WHERE product.id = warehouse.product_id');

/* if the query failed, abort this trigger by raising a
** predefined exception */

   IF query_ok <> 0 THEN
     RAISE Form_Trigger_Failure;
  END IF;
END;


Datensatzgruppen löschen

  Verwandte Themen

Benutzen Sie die Prozedur DELETE_GROUP, um eine Datensatzgruppe zu löschen, die programmgesteuert erstellt wurde:

Delete_Group('prod_group');

Hinweis:  Sie können keine Gruppe löschen, die beim Entwurf erstellt wurde.


Vorgänge mit Zeilen durchführen

  Verwandte Themen

Nachdem Sie eine Datensatzgruppe erstellt und mit Elementen aufgefüllt haben, können Sie die folgenden Vorgänge mit den Zeilen durchführen:

•	Anzahl von Zeilen in der Gruppe zählen

•	Werte einzelner Zellen festlegen

•	Aktuellen Wert einzelner Zellen einlesen

•	Zeilen als "ausgewählt" markieren und die ausgewählten Zeilen dann zählen und abrufen

Wenn Sie Vorgänge mit Zeilen durchführen, müssen Sie die Zeilen nach Zeilennummer kennzeichnen. Um z.B. den Wert einer Zelle einzulesen, müssen Sie die Zelle nach Zeilennummer und Spaltenname referenzieren.


Anzahl von Zeilen in einer Datensatzgruppe zählen

  Beispiele	  Verwandte Themen

Sie können die Anzahl von Zeilen in einem Datensatz mit der Funktion GET_GROUP_ROW_COUNT bestimmen. Mit dieser Funktion wird besonders bestimmt, wie viele Iterationen erforderlich sind, um durch alle Zeilen in einer bestimmten Gruppe zu gehen.


Beispiele für das Zählen der Anzahl von Zeilen in einer Datensatzgruppe

/* The following example first executes the query
** associated with the query group named my_group,
** then assigns the number of rows returned by the
** query to the variable row_count.
*/

DECLARE
   group_id	RecordGroup;
   query_ok	NUMBER;
   row_count	NUMBER;
BEGIN
   query_ok := Populate_Group('my_group');
   row_count := Get_Group_Row_Count(group_id);
END;

/* The following example demonstrates the use of
** GET_GROUP_ROW_COUNT to determine how many iterations
** are required to loop through all of the rows in a
** given group.
*/

DECLARE
   group_id	RecordGroup := FIND_GROUP('my_group');
   row_count	NUMBER;

BEGIN

/* find out how many rows are in the group */

   row_count := Get_Group_Row_Count(group_id);

/* set the group's Status column to 'discontinued' for any
** rows with product id of 471
*/

   FOR j IN 1..row_count LOOP
   IF Get_Group_Number_Cell('my_group.prod_id', j) = 471
      THEN Set_Group_Char_Cell (my_group.status, j, 'discontinued');
   END LOOP;
END;


Zellwerte einlesen und festlegen

  Beispiele	  Verwandte Themen

Sie können den Wert einer Zelle bei dem Schnittpunkt zwischen einer bestimmten Zeile und Spalte einlesen und festlegen.

Um den aktuellen Wert einer Spalte in einer bestimmten Zeile einzulesen, benutzen Sie die für den Datentyp der Zelle entsprechende Funktion:

•	GET_GROUP_CHAR_CELL

•	GET_GROUP_DATE_CELL

•	GET_GROUP_NUMBER_CELL

Wenn Sie Spalten in einer Datensatzgruppe referenzieren, verwenden Sie die vollständige Syntax group_name.column_name. Alternativ können Sie Spalten auch mit ihrer internen Objekt-ID referenzieren. Um die ID einer bestimmten Spalte zu ermitteln, benutzen Sie die Funktion FIND_COLUMN.

Um den Wert einer Spalte in einer bestimmten Zeile festzulegen, benutzen Sie die für den Datentyp der Zelle zutreffende Prozedur:

•	SET_GROUP_CHAR_CELL

•	SET_GROUP_DATE_CELL

•	SET_GROUP_NUMBER_CELL

Hinweis:  Sie können die Werte von Zellen in einer statischen Datensatzgruppe nicht festlegen.


Beispiele für das Einlesen und Festlegen von Zellwerten

/* The following example gets the current value of the
** amount_in_stock column in the third row of the group
** my_group.
*/

DECLARE
   quantity	NUMBER;
   col_id	GroupColumn :=
     Find_Column('my_group.amount_in_stock');
BEGIN
   quantity := Get_Group_Number_Cell(col_id,3);
END;

/* The next example sets the value of the name column to
** Lisa Jean in the first row of the group named my_group.
*/

Set_Group_Char_Cell('my_group.name',1,'lisa jean');


Zeilen als ausgewählt markieren

  Beispiele	  Verwandte Themen

Sie können Zeilen programmgesteuert als "ausgewählt" markieren. Durch die Auswahl einer Zeile wird ein internes Flag in der Zeile gesetzt, die Sie in nachfolgenden Zeilenvorgängen referenzieren können.

•	Um eine Zeile als ausgewählt zu markieren, benutzen Sie die Prozedur SET_GROUP_SELECTION.

•	Um festzustellen, wie viele Zeilen in einer Gruppe ausgewählt wurden, benutzen Sie die Funktion GET_GROUP_SELECTION_COUNT.

•	Um die Auswahl einer Zeile aufzuheben, verwenden Sie UNSET_GROUP_SELECTION.

•	Um die Auswahl aller gerade ausgewählten Zeilen in einer Gruppe aufzuheben, benutzen Sie die Prozedur RESET_GROUP_SELECTION.

•	Um die Zeilennummer einer Zeile zu ermitteln, die als ausgewählt markiert wurde, benutzen Sie die Funktion GET_GROUP_SELECTION. GET_GROUP_SELECTION gibt die Zeilennummer der angegebenen ausgewählten Zeile zurück. Wenn z.B. die Zeilen 6, 11 und 18 ausgewählt sind, stellen sie die Auswahlen 1, 2 bzw. 3 dar. Wenn also drei Zeilen in einer Gruppe ausgewählt sind, gibt der folgende Funktionsaufruf die Zeilennummer der zweiten ausgewählten Zeile zurück:

row_num := Get_Group_Selection(my_group,2);


Beispiele für das Markieren von Zeilen als ausgewählt

/* The following trigger loops through all of the rows in
** the group orders.  If the date stored in a row's
** date_ordered column is prior to 1980, the row is marked
** as selected.
*/

DECLARE
   group_id	RecordGroup := FIND_GROUP('orders');
   row_count	NUMBER;
   old_orders	NUMBER;

BEGIN

/* determine how many orders there are */

   row_count := Get_Group_Row_Count(group_id);

/* if an order is older than 1980, mark it for selection */

   FOR j IN 1..row_count LOOP
     IF Get_Group_Date_Cell('orders.date_ordered', j) <
       '01-JAN-80' THEN
       Set_Group_Selection(group_id, j);
     END IF;
   END LOOP;

/* count the total number of old orders */

   old_orders := Get_Group_Selection_Count(group_id);

END;

/* The following example is a procedure called kill_rows.
** The procedure takes a CHAR parameter that allows the name
** of a record group to be passed in at runtime. The procedure
** deletes all of the rows in the group that are currently
** selected.
*/

PROCEDURE kill_rows(group_name IN CHAR) IS
   group_id	RecordGroup := Find_Group('group_name');
   counter	NUMBER := 1;
   marked_rows	NUMBER;

BEGIN

/* determine how many rows are marked as selected */

   marked_rows := Get_Group_Selection_Count(group_id);

/* delete each row marked as selected */

   WHILE counter <= marked_rows LOOP
     Delete_Group_Row(group_id,
     Get_Group_Selection(group_id,counter));
     counter := counter + 1;
   END LOOP;

END;


Was ist eine Master-Detail-Beziehung?

  Verwandte Themen

Eine Master-Detail-Beziehung ist eine Verbindung zwischen zwei Datenblöcken - einem Master-Block und einem Detail-Block. Die Beziehung reflektiert:

•	eine Primärschlüssel-zu-Fremdschlüssel-Beziehung zwischen den Tabellen, auf denen die Blöcke basieren

•	eine REF-Pointer-Beziehung zwischen den Tabellen, auf denen die Blöcke basieren.

Betrachten Sie eine Anwendung zur Bestandskontrolle für einen weltweit operierenden Vertrieb mit Sportartikeln. Dort gibt es eine Tabelle REGION für die geographischen Bereiche und WAREHOUSE-Tabellen für Warenhäuser in verschiedenen Bezirken.

Die Anwendung umfaßt Datenblöcke, die auf jeder dieser Tabellen basieren. Da sich jedes Lager in einem bestimmten Bereich befindet, besteht eine Primärschlüssel-zu-Fremdschlüssel-Beziehung zwischen den Tabellen REGION und WAREHOUSE. Diese Beziehung definiert außerdem eine Master-Detail-Beziehung zwischen den Blöcken: Der Block REGION ist ein Master-Block, während der Block WAREHOUSE der Detail-Block ist.

Die Master-Detail-Beziehung führt automatisch folgende Funktionen aus:

•	Garantiert, daß der Detail-Block nur die Datensätze anzeigt, die mit dem aktuellen (Master-) Datensatz in dem Master-Block verknüpft sind

•	Koordiniert die Abfrage zwischen den beiden Blöcken

Wenn der Endbenutzer den aktuellen Datensatz z.B. im Master-Block ändert, indem er zu einem Datensatz in einer anderen Region navigiert, aktualisiert Form Builder den Detail-Block so, daß nur die Datensätze für die Lager angezeigt werden, die innerhalb der ausgewählten Region liegen. Wenn der Endbenutzer eine bestimmte Region im Master-Block abfragt, ruft Form Builder automatisch die Datensätze für alle Lager in dieser Region ab.


Über den Master-Detail-Link

  Verwandte Themen

Master- und Detail-Blöcke sind auf zwei verschiedene Arten mit einander verknüpft: entweder über eine relationale Join-Bedingung oder über eine REF-Spalte in einem Block, die auf Daten in einem anderen Block zeigt.

Join-Bedingung

Der Master-Block ist über die Join-Bedingung mit dem Detail-Block verbunden. Die Join-Bedingung legt das bzw. die Primärschlüssel-Elemente in dem Master-Block und das bzw. die Fremdschlüssel-Elemente im Detail-Block fest. Die Join-Bedingung für die Beispielanwendung würde wie folgt aussehen:

warehouse.region_id = region.id

Das heißt

detail_block.foreign_key_item = master_block.primary_key_item

Hinweis:  Bei der Forms-Verarbeitung wird empfohlen, daß Sie keine Join-Bedingung auf Spalten in der Datenbank basieren, die den Typ CHAR aufweisen.  (VARCHAR2-Spalten hingegen sind zulässig.)

REF-Pointer

Eine REF-Spalte in einer Tabelle bzw. einem Block enthält Pointer auf Datenzeilen in einer anderen Tabelle be bzw. einem anderen Block. Diese Referenz bildet eine natürliche Master-/Detail-Beziehung. Der Detail-Block verfügt über ein REF-Objekt, das auf den Master-Block zeigt. Beachten Sie, daß ein REF-Link nicht von primär- oder Fremdschlüsselbeziehungen in einer der Tabellen abhängig ist.


Über die Block-Synchronisation

  Verwandte Themen

Um die Master-Detail-Beziehung zur Laufzeit aufrechtzuerhalten, synchronisiert Form Builder die Master- und Detail-Blöcke, um sicherzustellen, daß die im Detail-Block angezeigten Datensätze mit dem aktuellen Datensatz im Master-Block verknüpft sind.

Jedes Ereignis, das den aktuellen Datensatz im Master-Block ändert, ist ein synchronisationsauslösendes Ereignis. Wenn Sie einen Datensatz löschen oder die [Nach-oben-Taste] bzw. [Nach-unten-Taste] drücken, um zu einem anderen Datensatz zu gehen, sind dies beides Beispiele für synchronisationsauslösende Ereignisse. Wenn ein solches Ereignis eintritt, führt Form Builder automatisch die erforderliche Verarbeitung zur Synchronisation der Master- und Detail-Blöcke durch.

Es gibt zwei Phasen der Block-Synchronisation: die Entfernen-Phase und die Auffüll-Phase. Während der Entfernen-Phase navigiert Form Builder intern zu dem Detail-Block und löscht die veralteten Detail-Datensätze. Während der Auffüllphase gibt Form Builder eine SELECT-Anweisung aus, um den Detail-Block mit den Detail-Datensätzen aufzufüllen, die mit dem neuen Master-Datensatz verknüpft sind. Diese Vorgänge werden durch die Ausführung von Triggern durchgeführt.

Um das Beispiel fortzuführen, beachten Sie, was geschieht, wenn der Endbenutzer bei dem ersten Datensatz im Block REGION steht und [Nächster Datensatz] drückt. Da es sich bei Nächster Datensatz um ein synchronisationsauslösendes Ereignis handelt, navigiert Form Builder zuerst intern zu dem Block WAREHOUSE und löscht die bestehenden Warehouse-Datensätze (die Entfernen-Phase). Danach macht Form Builder die nächste Region zum aktuellen Master-Datensatz im Block REGION und ruft die Datensätze der Lagerhäuser ab, die innerhalb der ausgewählten Region liegen (die Auffüllphase).


Über das Attribut Wert aus Objekt kopieren

  Verwandte Themen

Form Builder synchronisiert das Auffüllen des Detail-Blocks mit dem aktuellen Datensatz im Master-Block über das Attribut Wert aus Objekt kopieren im Fremdschlüsselelement im Detail-Block. Das Attribut Wert aus Objekt kopieren gibt das Primärschlüsselelement im Master-Block an, dessen Wert in das Fremdschlüsselelement im Detail-Block kopiert wird, wenn ein Detail-Datensatz erstellt oder abgefragt wird.

Da der Wert des Primärschlüsselelements im Master-Datensatz in das Fremdschlüsselelement im Detail-Block kopiert wird, wird er automatisch in der WHERE-Klausel der SELECT-Anweisung aufgenommen, die Form Builder ausgibt, um den Detail-Block aufzufüllen.

In dem folgenden Beispiel wird der Wert des Fremdschlüsselelements WAREHOUSE.REGION_ID aus dem aktuellen Wert des Primärschlüsselelements REGION.ID kopiert. Somit werden nur Lagerhäuser, die sich in der aktuell ausgewählten Master-Region befinden, während der Block-Synchronisation abgefragt.

  SELECT id, address, phone, manager_id
  FROM warehouse
  WHERE warehouse.region_id = foreign key value

Wenn Blöcke über eine zusammengesetzte Join-Bedingung verbunden sind, wird das Attribut Wert aus Objekt kopieren auf zwei oder mehr Fremdschlüsselelemente im Detail-Block gesetzt.


Über das Beziehungsobjekt

  Verwandte Themen

Sie können jederzeit während der Entwicklung einer Form eine Master-Detail-Beziehung definieren. Sie definieren eine Master-Detail-Beziehung zwischen Blöcken, indem Sie die Attribute eines Beziehungsobjekts erstellen und festlegen.

Eine Beziehung ist ein logisches Objekt, mit dem die Beziehung zwischen einem Master-Block und einem entsprechenden Detail-Block angegeben wird. Im Objektnavigator wird das Beziehungsobjekt unter dem Block angezeigt, der der Master-Block in der Beziehung ist.

Wenn Sie eine Beziehung erstellen, generiert Form Builder die erforderlichen Trigger und PL/SQL-Prozeduren, um die Synchronisation zwischen den Master- und Detail-Blöcken zu erzwingen. Der tatsächlich von Form Builder generierte Code hängt davon ab, wie die Attribute der Beziehung gesetzt werden.


Über das Erstellen einer Master-Detail-Beziehung

  Verwandte Themen

Es gibt zwei Möglichkeiten, in Form Builder eine Master-Detail-Beziehung zu erstellen:

•	Erstellen Sie die Beziehung im Register Master-Detail-Beziehung des Datenblock-Assistenten (wenn Sie den Detail-Block für diese Beziehung erstellen).

•	Fügen Sie im Objektnavigator ein Beziehungsobjekt unter dem Knoten Beziehungen für den entsprechenden Master-Block ein. Sowohl der Master-Block als auch der Detail-Block müssen schon vorhanden sein.

Einschränkungen

Generell sollten Sie keine Master-Detail-Beziehung erstellen, bei der der Master-Block auf einer Tabelle und der Detail-Block auf einer gespeicherten Prozedur basiert. Bei derartigen Beziehungen funktionieren Abfrage und Synchronisation nicht immer einwandfrei. Allerdings gibt es im entgegengesetzten Fall, wenn der Master-Block auf einer gespeicherten Prozedur und der Detail-Block auf einer Tabelle basiert, keine derartigen Einschränkungen.

Beziehungsattribute ändern

Nachdem Sie eine Beziehung zwischen zwei Blöcken erstellt haben, können Sie deren Attribute jederzeit ändern. Wenn Sie die Attribute Verhalten bei Datensatz löschen und Synchronisation einer bestehenden Beziehung ändern, fügt Form Builder nach Bedarf Trigger hinzu, entfernt oder bearbeitet Trigger.


Master-Detail-Beziehung mit dem Datenblock-Assistenten erstellen

  Verwandte Themen

Wenn Sie einen neuen Block mit dem Datenblock-Assistenten erstellen, können Sie das Register Master-Detail des Assistenten verwenden, um eine Master-Detail-Beziehung zu erstellen.  Siehe Datenblock-Assistent: Register Master-Detail


Master-Detail-Beziehung im Objektnavigator erstellen

  Verwandte Themen

So erstellen Sie eine Master-Detail-Beziehung im Objektnavigator:

1	Suchen Sie den Block im Objektnavigator, der als Master-Block in der Beziehung benutzt werden soll, und klicken Sie (gegebenenfalls) auf +, um die zu dem Master-Block gehörigen Knoten Trigger, Objekte und Beziehungen anzuzeigen.

2	Wählen Sie den Knoten Beziehungen unter dem Master-Block aus, und wählen Sie Navigator [image] Erstellen.

Daraufhin zeigt Form Builder das Dialogfeld Neue Beziehung an, wobei der Name des ausgewählten Master-Blocks im Feld Master-Block angezeigt wird.

3	Geben Sie den Namen des Detail-Blocks in das Feld Detail ein, oder klicken Sie auf Auswählen..., und wählen Sie einen Block aus der Werteliste aus.

4	Geben Sie einen Wert für das Master löscht und Synchronisations-Verhalten ein, sowie für die Join-Bedingung, und klicken Sie dann auf OK.


Join-Bedingung für eine Master-Detail-Beziehung angeben

  Verwandte Themen

Sie können eine Join-Bedingung mit folgenden Einträgen angeben:

•	Ein Objektname, der sowohl im Master- als auch im Detail-Block vorhanden ist (setzen Sie keine Doppelpunkte vor die Objektnamen)

•	Eine Gleichheitsbedingung von zwei Objektnamen, wobei ein Objekt im Master-Block und das andere im Detail-Block vorhanden ist

•	Eine Kombination von Objektnamen und Gleichheitsbedingungen

Als nächstes werden gültige Join-Bedingungen aufgeführt:

•	Ein Objektname, der in beiden Blöcken auftritt:

ordid

•	Eine Gleichheitsbedingung:

warehouse.region_id = region.id

•	Zusammengesetzte Join-Bedingungen können im folgenden Format eingegeben werden:

block1.item1 = block2.item1 AND block1.item2 = block2.item2

Hinweis:  Die Primär-Fremdschlüssel-Beziehung zwischen den Datenbanktabellen kann rein logisch sein. Explizite Primärschlüssel- oder Fremdschlüsselspalten-Integritätsregeln in den relevanten Tabellen und Spalten sind nicht erforderlich.


Beziehungsattribute festlegen, die sich auf die Synchronisation auswirken

  Verwandte Themen

Wenn Sie eine Master-Detail-Beziehung erstellen, müssen Sie entscheiden, wie Form Builder die Synchronisation zwischen den Master- und Detail-Blöcken verwalten soll.

Insbesondere müssen Sie die folgenden Fragen beantworten:

•	Soll es Endbenutzern gestattet sein, einen Master-Datensatz zu löschen, wenn zugehörige Detail-Datensätze vorhanden sind?

•	Wenn Endbenutzer einen Master-Datensatz löschen können, soll Form Builder dann die zugehörigen Detail-Datensätze ebenfalls löschen?

•	Wenn ein Endbenutzer einen neuen Datensatz im Master-Block zum aktuellen Datensatz macht, soll Form Builder dann sofort die zugehörigen Detail-Datensätze abrufen oder warten, bis der Endbenutzer zu dem Detail-Block navigiert?

Die Antworten auf diese Fragen hängen von anwendungsspezifischen Anforderungen ab. Durch Festlegen der Attribute des Beziehungsobjekts können Sie die Master-Detail-Funktionalität implementieren, die für Ihre Anwendung am besten geeignet ist.

Die Attribute, die sich auf die Funktionalität einer Beziehung auswirken, umfassen Verhalten bei Datensatz löschen, Synchronisation und Masterlose Vorgänge verhindern.

Attribut Verhalten bei Datensatz löschen  Mit dem Attribut Verhalten bei Datensatz löschen (wurde früher als Master löscht bezeichnet) können Sie angeben, wie sich das Löschen eines Datensatzes im Master-Block auf die Datensätze im Detail-Block auswirken soll. Sie können Kaskadierend, Isoliert oder Nicht isoliert angeben:

Kaskadierend	Der Master-Datensatz kann gelöscht werden, und eventuell zugehörige Detail-Datensätze werden automatisch beim Speichern aus der Datenbank gelöscht. Wenn Beziehungen auf mehreren Ebenen verschachtelt sind, werden nur Datensätze in dem unmittelbaren Detail-Block gelöscht. Das heißt, die Löschvorgänge werden nicht automatisch kaskadierend auf mehreren Ebenen einer Beziehungskette durchgeführt.

Isoliert	Der Master-Datensatz kann gelöscht werden, die zugehörigen Detail-Datensätze werden jedoch nicht aus der Datenbank gelöscht.

Nicht isoliert	Standardeinstellung. Der Master-Datensatz kann nicht gelöscht werden, wenn zugehörige Detail-Datensätze in der Datenbank vorhanden sind.

Hinweis:  Wenn Ihre Datenbank die kaskadierende Löschfunktion von ORACLE7 verwendet, benutzen Sie die Option Kaskadierend in Form Builder nicht.

Attribut Synchronisation  Die Werte der Synchronisations-Attribute Verzögert und Auto-Abfrage bestimmen, wann die Auffüllphase der Blocksynchronisation erfolgt:

Sofort	(Verzögert = Nein) Standardeinstellung. Wenn ein synchronisationsauslösendes Ereignis eintritt, ruft Form Builder die Detail-Datensätze sofort ab.

Verzögert	(Verzögert = Ja, Automatische Abfrage = Nein) Wenn ein synchronisationsauslösendes Ereignis auftritt, ruft Form Builder die Detail-Datensätze nicht automatisch ab. Um die Detail-Datensätze abzurufen, muß der Endbenutzer zu dem Detail-Block navigieren und explizit eine Abfrage ausführen.

Verzögert mit Auto-Abfrage	(Verzögert = Ja, Automatische Abfrage = Ja) Wenn ein synchronisationsauslösendes Ereignis eintritt, setzt Form Builder das Abrufen der zugehörigen Detail-Datensätze aus, bis der Endbenutzer zu dem Detail-Block navigiert.


Entsprechende Synchronisation auswählen

  Verwandte Themen

Stellen Sie sich die verzögerte Synchronisation wie ein "verzögertes Auffüllen" vor. Das heißt, wenn ein synchronisationsauslösendes Ereignis im Master-Block auftritt, wird die Auffüllphase der Synchronisation verschoben, Form Builder löscht jedoch bestehende Datensätze im Detail-Block sofort. Diese Funktionalität verhindert, daß ein Detail-Block Datensätze anzeigt, die mit dem aktuellen Datensatz im Master-Block nicht konsistent sind.

Generell gilt folgende Regel, wählen Sie die sofortige Synchronisation (Verzögert = Nein), wenn der Detail-Block für den Endbenutzer sichtbar ist und wenn davon ausgegangen wird, daß der Endbenutzer die Detail-Datensätze immer sehen möchte, die mit dem aktuellen Master-Datensatz verbunden sind.

Die verzögerte Synchronisation mit Auto-Abfrage wird bevorzugt, wenn der Detail-Block nicht sofort sichtbar ist (um Detail-Datensätze anzuzeigen, müssen Endbenutzer zu dem Detail-Block in einem anderen Fenster navigieren).

Die verzögerte Synchronisation wird auch benutzt, wenn Endbenutzer die Detail-Datensätze gar nicht sehen müssen. In diesem Fall kann das Aussetzen der Synchronisation eine unnötige Datenbankabfrage verhindern.

Die verzögerte Synchronisation ohne Auto-Abfrage wird benutzt, wenn Endbenutzer in der Lage sein sollen, in den Abfragemodus zu wechseln und zusätzliche Abfragekriterien in dem Detail-Block anzugeben, bevor die Auffüllphase beginnt. Dadurch können Endbenutzer auch durch Detail-Datensätze navigieren, ohne daß die Synchronisation und die zugehörige Verarbeitung eintreten, bevor dies tatsächlich erforderlich ist.


Attribute von Fremdschlüsselelementen im Detail-Block festlegen

Wenn Sie eine Beziehung erstellen, setzt Form Builder das Attribut Wert aus Objekt kopieren automatisch auf die Fremdschlüsselelemente im Detail-Block. Das Attribut Wert aus Objekt kopieren gibt den Namen des entsprechenden Primärschlüsselelements im Format MASTER_BLOCK.ITEM_NAME an. Zur Laufzeit wird der im Primärschlüsselelement in dem Master-Block gespeicherte Wert in das Fremdschlüsselelement im Detail-Block kopiert, wenn ein Detail-Datensatz erstellt oder abgefragt wird.

Wenn Sie die Beziehung im Datenblock-Assistenten erstellen, führt Form Builder die folgenden Schritte bei dem bzw. den Fremdschlüsselelementen im Detail-Block durch:

•	Setzt das Attribut Leinwand auf NULL (macht ein Objekt zum NULL-Leinwandobjekt)

•	Setzt die Attribute Sichtbar, Aktiviert, Tastatur-navigierbar, Abfrage zulässig und Aktualisieren zulässig auf Nein

•	Ordnet die Objekte im Objektnavigator so an, daß die Fremdschlüsselelemente in der Navigationsfolge des Blocks an letzter Stelle stehen

Wenn die Beziehung im Datenblock-Assistenten erstellt wurde, erstellt Form Builder keine Boilerplate-Textbeschriftung für die Fremdschlüsselelemente.

Wenn Sie eine Beziehung im Objektnavigator erstellen und nicht im Datenblock-Assistenten, können Sie dieselben Attribute selbst festlegen.

Der Zweck dieser Einstellungen besteht darin, die Fremdschlüsselelemente vor dem Endbenutzer zu verbergen, da dieselben Informationen wahrscheinlich in dem bzw. den Primärschlüsselelementen im Detail-Block angezeigt werden. Diese Einstellungen werden besonders dann benutzt, wenn Endbenutzer die Master- und Detail-Blöcke gleichzeitig anzeigen können. Wenn Endbenutzer den Master-Block bei der Anzeige von Detail-Datensätzen nicht sehen können, könnten Sie diese Einstellungen rückgängig machen, damit das bzw. die Fremdschlüsselelemente für den Endbenutzer sichtbar sind. In diesem Fall muß das Objektattribut Aktualisieren zulässig auf Nein gesetzt sein (damit Endbenutzer den Fremdschlüsselwert nicht bearbeiten können, wobei sie möglicherweise die Master-Detail-Synchronisation zerstören könnten).


Master-Detail-Beziehungen löschen

  Verwandte Themen

Um eine Master-Detail-Beziehung zu löschen, wählen Sie diese im Objektnavigator aus, und wählen Sie Navigator [image] Löschen. In der folgenden Tabelle wird dargestellt, was geschieht, wenn Sie eine Master-Detail-Beziehung oder ein Objekt löschen, das Bestandteil einer Beziehung ist:

Sie löschen...	Form Builder...
Eine Master-Detail-Beziehung	Löscht alle Master-Detail-Trigger, die dem Master-Block der Beziehung zugeordnet sind, und löscht das Attribut Wert aus Objekt kopieren bei den Fremdschlüsselelementen im Detail-Block.
Den Master- oder Detail-Block in einer Beziehung	Löscht die Beziehung und alle zugehörigen Master-Detail-Trigger, löscht jedoch die Master-Detail-Prozeduren nicht.
Einen Detail-Block in einer Master- mit-unabhängigen-Details- Beziehung	Löscht die Beziehung, entfernt den relevanten Detailabschnitt aus dem On-Clear-Details-Trigger und löscht gegebenenfalls den On-Populate-Details-Trigger. Kommentare oder Code, den Sie in diesem Abschnitt hinzugefügt haben, werden ebenfalls entfernt.
Das Fremdschlüsselelement in einem Detail-Block, einem Master-Detail-Trigger oder einer Master-Detail-Prozedur (nicht empfohlen)	Tut nichts. Allerdings ist eine ernsthafte Folge dieses Vorgehens, daß die Master-Detail-Blocksynchronisation zerstört ist. Auch wenn Sie das Fremdschlüsselelement in dem Detail-Block verbergen können (indem Sie es zu einem NULL-Leinwandobjekt machen), sollten Sie es nicht vollständig löschen. Master-Detail-Trigger und - Prozeduren sind ebenso kritisch, was die Master-Detail-Blocksynchronisation betrifft.


Masterlose Vorgänge im Detail-Block verhindern

 Beispiele   [image]  Verwandte Themen

Mit wenigen Ausnahmen sollten Endbenutzer daran gehindert werden, masterlose Vorgänge in einem Detail-Block durchzuführen. Das heißt, Endbenutzer sollten nicht in der Lage sein, Datensätze im Detail-Block abzufragen oder einzufügen, wenn im Master-Block kein aktueller Datensatz vorhanden ist.

Wenn Sie das Beziehungsattribut Masterlose Vorgänge verhindern auf Ja einstellen, um zu verhindern, daß Endbenutzer masterlose Vorgänge im Detail-Block der Beziehung ausführen, wirkt sich dies wie folgt aus:

•	Wenn Endbenutzer versuchen, Datensätze in den Detail-Block einzufügen, während kein Master-Datensatz im Master-Block vorhanden ist, zeigt Form Builder folgende Fehlermeldung an: FRM-41105: Ohne übergeordneten Datensatz können keine Sätze erstellt werden.

•	Wenn Endbenutzer versuchen, Datensätze im Detail-Block abzufragen, während kein Master-Datensatz (im Master-Block) vorhanden ist, der aus der Datenbank stammt, zeigt Form Builder folgende Fehlermeldung an: FRM-41106: Keine Abfrage ohne gespeicherten übergeordneten Datensatz.

Im allgemeinen werden masterlose Einfügevorgänge verhindert, wenn Endbenutzer möglicherweise auf einen Fehler stoßen, wenn sie versuchen, Detail-Datensätze zu speichern, die unabhängig von einem Master-Datensatz erstellt wurden. Derartige Fehler treten auf, wenn der Detail-Block den Wert der Fremdschlüsselelemente aus den Primärschlüsselelementen im Master-Datensatz ableitet (über das Attribut Wert aus Objekt kopieren).

Außerdem sollten Sie masterlose Abfragen in einem Detail-Block verhindern, da Endbenutzer keine effektiven Abfragen aus dem Detail-Block durchführen können. Endbenutzer können das Vorhandensein bestimmter Detail-Datensätze abfragen, können jedoch nicht bestimmen, welchen Master-Datensätzen diese gehören. (Dies setzt voraus, daß das bzw. die Fremdschlüsselelemente in dem Detail-Block nicht angezeigt werden.)

Navigation zu dem Detail-Block verhindern  Wenn Sie das Attribut Masterlose Vorgänge verhindern auf Ja setzen, werden Endbenutzer daran gehindert, Abfragen und Einfügevorgänge in einem Detail-Block durchzuführen, für den kein entsprechender Master-Datensatz vorhanden ist, werden jedoch nicht daran gehindert, zu dem Detail-Block zu navigieren und diese Vorgänge zu versuchen.

Bei einigen Anwendungen sollte jeder Versuch, zu einem Detail-Block zu navigieren, unterbunden werden, wenn kein Master-Datensatz vorhanden ist.


Beispiele für Masterlose Vorgänge im Detail-Block verhindern

Beispiel

/* One way to prevent end users from navigating to a detail

** block for which there is no master. It is based on the
** detail block WAREHOUSE and the master block REGION.
** Use a When-New-Block-Instance trigger on detail block
** WAREHOUSE:
*/
DECLARE
  alert_dummy   NUMBER;
BEGIN
/* See if there is a master record by checking the status
** of the current record in the master block
*/
IF GET_RECORD_PROPERTY(GET_BLOCK_PROPERTY
   ('region', current_record), 'region', STATUS) = 'NEW'
   OR :region.region_id IS NULL THEN
/*
** There isn't a master record; display an alert that tells the
** end user to query or enter a region record before moving to
** the warehouse block
*/
   alert_dummy := SHOW_ALERT('my_alert');
/*
** Put the input focus in the master block
*/
   GO_BLOCK('region');
END IF;
END;
/* The When-New-Block-Instance trigger fires whenever the end
** user navigates to the detail block. The built-in function
** GET_RECORD_PROPERTY is used to determine the status of
** the current record in the master block. (The function
** GET_BLOCK_PROPERTY is nested as the first argument to
** GET_RECORD_PROPERTY to return the record number of the
** current record in the region block.)
**
** If the status of the current record is NEW, indicating that
** the record is not an existing master record, Form Builder
** displays an alert window with the message "Query or enter
** a master record before moving to the detail block."
** The trigger then navigates to the master block to allow the
** end user to do just that.
*/


Komplexe Master-Detail-Beziehungen erstellen

Viele Anwendungen erfordern komplexe Master-Detail-Beziehungen, bei denen mehr als zwei Blöcke involviert sind. Um derartige Beziehungen zu erstellen, definieren Sie einfach so viele individuelle Beziehungen wie erforderlich.

Es gibt keinen praktischen Grenzwert für die Anzahl von Beziehungen, die in einer Form definiert werden können. Außerdem kann jeder Block der Master- oder Detail-Block in mehr als einer Beziehung sein, und ein Block, der in einer Beziehung der Master-Block ist, kann in der anderen der Detail-Block sein.

Wenn Sie komplexe Master-Detail-Beziehungen erstellen, paßt Form Builder die bestehenden Trigger automatisch so an, daß die definierten Beziehungen verwaltet werden.

In diesem Thema werden die drei gebräuchlichsten Typen von Master-Detail-Beziehungen beschrieben:

•	Master-mit-abhängigen-Details

•	Master-mit-unabhängigen Details

•	Detail-mit-zwei-Masters


Über komplexe Beziehungen und das kaskadierende Löschen

Wenn Sie das Attribut Verhalten bei Datensatz löschen einer Beziehung auf Kaskadierend setzen, beachten Sie, daß Löschvorgänge nur für den unmittelbaren Detail-Block in der Beziehung erzwungen werden. Betrachten Sie z.B. die komplexe Master-Detail-Beziehung mit Beziehungen zwischen den Blöcken A und B (A_B) und B und C  (B_C), wobei B sowohl der Detail-Block in der Beziehung A_B als auch der Master-Block in der Beziehung B_C ist.

Wenn das Attribut Verhalten bei Datensatz löschen für die Beziehugn A_B auf Kaskadierend gesetzt ist, werden die Detail-Datensätze in Block B automatisch gelöscht, wenn der Master-Datensatz in Block A gelöscht ist. Detail-Datensätze in Block C werden nicht automatisch gelöscht, wenn ein Master-Datensatz in Block A gelöscht wird. Wenn jedoch für das Attribut Verhalten bei Datensatz löschen der Beziehung B_C Kaskadierend angegeben wird, werden die Detail-Datensätze in Block C gelöscht, wenn Block A gelöscht wird. Detail-Datensätze in Block C sind von dem Löschvorgang von Block A betroffen, da, wenn das Attribut Verhalten bei Datensatz löschen für die Beziehung A_B auf Kaskadierend gesetzt ist, das Löschen eines Master-Datensatzes in Block A das Löschen der Detail-Datensätze in Block B verursacht. Die Detail-Datensätze in Block B dienen auch als Master-Datensätze in der Beziehung B_C. Da das Attribut Verhalten bei Datensatz löschen für die Beziehung B_C auf Kaskadierend eingestellt ist, verursacht das Löschen eines Master-Datensatzes in Block B das Löschen der Detail-Datensätze in Block C.

Master-mit-abhängigen-Details

Eine Master-mit-abhängigen-Details-Beziehung umfaßt einen Master-Block und n Ebenen mit Detail-Blöcken, so daß der erste Detail-Block selbst ein Master für den eigenen Detail-Block ist.

Um eine Master-mit-abhängigen-Details-Beziehung zu erstellen, definieren Sie die individuellen Beziehungen A_B und B_C separat (in beliebiger Reihenfolge).

Wenn Sie diese Art von Beziehung erstellen, berücksichtigen Sie die Auswirkung der Attribute Verhalten bei Datensatz löschen und Synchronisation auf Detail-Blöcke. Wenn z.B. eine Beziehung in einer Kette von zusammengehörigen Blöcken auf die verzögerte Synchronisation gesetzt ist, werden alle nachfolgenden Blöcke ebenfalls verzögert. Wenn also Beziehung A_B verzögert und Beziehung B_C sofort ist, synchronisiert Form Builder Block C erst mit Block B, wenn Block B mit Block A synchronisiert ist.

Master-mit-unabhängigen-Details

Eine Master-mit-unabhängigen-Details-Beziehung umfaßt zwei oder mehr Detail-Blöcke, die beide denselben Master-Block haben. Diese Struktur wird besonders dann benutzt, wenn mehr als eine Gruppe von Detail-Datensätzen für einen einzigen Master-Datensatz angezeigt werden sollen. Ein synchronisationsauslösendes Ereignis im Master-Block führt dazu, daß beide Detail-Blöcke mit den entsprechenden Detail-Datensätzen aufgefüllt werden.

In der Beispielanwendung könnte der Master-Block REGION zusammen mit den Detail-Blöcken WAREHOUSE und CUSTOMER angezeigt werden. Der Endbenutzer könnte dann alle Lager und Kunden innerhalb der gerade ausgewählten Region anzeigen.

Um diese Art von Beziehung zu erstellen, definieren Sie die individuellen Beziehungen A_B und A_C separat (in beliebiger Reihenfolge).

Detail-mit-zwei-Masters

Eine Detail-mit-zwei-Masters-Beziehung umfaßt einen einzelnen Detail-Block, der zwei Master-Blöcke hat. Form Builder zeigt die entsprechenden Detail-Datensätze für jeden Master-Block an, der der aktuelle Block in der Form ist. In der vorher angeführten Beispielanwendung könnte z.B. der Block ord ein Detail-Block mit zwei Master-Blöcken, CUSTOMER und EMP, sein. Endbenutzer könnten dann alle Aufträge für einen bestimmten Kunden und für einen bestimmten Vertreter (Mitarbeiter) anzeigen.

Wenn Sie eine Detail-mit-zwei-Masters-Beziehung erstellen, verknüpfen Sie im allgemeinen mit verschiedenen Fremdschlüsselelementen in dem Detail-Block. In diesen Fällen wird das Attribut Wert aus Objekt kopieren für jedes Fremdschlüsselelement in dem Detail-Block so gesetzt, daß es auf das Primärschlüsselelement in dem entsprechenden Master-Block zeigt. Um diese Art von Beziehung zu erstellen, müssen Sie nur die beiden Beziehungen definieren, Form Builder unterstützt die Synchronisation automatisch.

In anderen Fällen werden Sie möglicherweise eine Master-mit-zwei-Details-Beziehung erstellen, bei der jede Beziehung mit demselben Fremdschlüsselelement im Detail-Block verknüpft wird. Da das Attribut Wert aus Objekt kopieren jedoch nur auf ein Master-Blockelement zeigen kann, müssen Sie zusätzlichen Code schreiben, um die Abfrage und das Aktualisieren für die zweite Beziehung zu synchronisieren, wenn Sie mit demselben Element im Detail-Block verknüpfen.

Je nach gewünschter Funktionalität könnte dies das Schreiben eines Pre-Query-Triggers für den Detail-Block umfassen, um zu gewährleisten, daß der richtige Primärschlüsselelementwert in das Fremdschlüsselelement im Detail-Block kopiert wird. Zum Beispiel

COPY(NAME_IN(:system.master_block||'.primary_key_item'),
                                   'detail_block.item');

Möglicherweise erstellen Sie einen When-New-Block-Instance-Trigger, der den Synchronisationsstatus des Detail-Blocks prüft, wenn der Endbenutzer zu einem anderen Master-Block navigiert und den Detail-Block gegebenenfalls auffüllt.


Über Master-Detail-Trigger und -Prozeduren

Wenn Sie eine Master-Detail-Beziehung erstellen, generiert Form Builder verschiedene Trigger, je nachdem, wie die Attribute Verhalten bei Datensatz löschen und Synchronisation eingestellt wurden. In der folgenden Tabelle wird dargestellt, wie das Attribut Verhalten bei Datensatz löschen bestimmt, welche Trigger Form Builder erstellt. Wenn Sie die Einstellung des Attributs Verhalten bei Datensatz löschen für eine bestehende Beziehung ändern, fügt Form Builder Trigger nach Bedarf hinzu bzw. entfernt diese. Der tatsächliche Code in diesen Triggern hängt davon ab, wie die Attribute Synchronisation eingestellt sind und ob die Beziehung Bestandteil einer komplexen Beziehungskette ist.

Attribut Verhalten bei Datensatz löschen	Ergebnistrigger
Nicht isoliert (Standard)	On-Check-Delete-Master, On-Clear-Details, On-Populate-Details
Kaskadierend	On-Clear-Details, On-Populate-Details, Pre-Delete
Isoliert	On-Clear-Details, On-Populate-Details


Master-Detail-Trigger

In diesem Abschnitt werden die Trigger beschrieben, die Form Builder erstellt, wenn Sie eine Master-Detail-Beziehung definieren. Der mit jeder Triggerbeschreibung dargestellte Beispiel-Triggertext erläutert die Grundstruktur des Triggers. Der tatsächliche Triggertext, den Sie in Ihren eigenen Forms sehen, ist anwendungsspezifisch und kann möglicherweise anders aussehen.

(Wenn für den Master-Block schon spezifische Trigger vorhanden sind, werden diese bestehenden Trigger benutzt, und Form Builder erstellt keine neuen, zusätzlichen Trigger.)

Form Builder erstellt außerdem benutzerdefinierte Prozeduren, die von Master-Detail-Triggern aufgerufen werden.

Form Builder generiert Kommentare im Standardtrigger und Prozedurcode. Kommentare werden von den standardmäßigen einfachen Anführungszeichen ('- -') von PL/SQL ausgewiesen.

On-Clear-Details-Trigger  Jede Master-Detail-Beziehung muß einen On-Clear-Details-Trigger aufweisen. Er wird während der Entfernenphase der Synchronisation ausgelöst und entfernt alle Detail-Datensätze in dem Detail-Block. Dieser Trigger ruft die Prozedur CLEAR_ALL_MASTER_DETAILS auf, wie im folgenden Beispiel-Triggertext dargestellt:

-- Begin default relation program section
--
     Clear_All_Master_Details;
--
-- End default relation program section

On-Check-Delete-Master-Trigger  Form Builder erstellt den On-Check-Delete-Master-Trigger, wenn das Attribut Verhalten bei Datensatz löschen auf Nicht isoliert eingestellt ist. Er wird ausgelöst, wenn versucht wird, einen Master-Datensatz zu löschen. Der Trigger fragt die Datenbank ab, um festzustellen, ob für den Master-Datensatz Detail-Datensätze vorhanden sind. Wenn keine Details vorhanden sind, löscht der Trigger den Master-Datensatz. Sonst zeigt der Trigger folgende Meldung an:

Master-Datensatz kann nicht gelöscht werden, wenn noch Detail-Sätze vorhanden sind.

wie im folgenden Beispiel-Triggertext dargestellt:

--
-- Begin default relation declare section
--
    Declare
        Dummy_Define char(1);
        --
        -- Begin B detail declare section
        --
        cursor B_cur is
           select null from MASDET
           where PARENT = :A.ID;
        --
        -- End B detail declare section
        --
    --
    -- End default relation declare section
    --
    --
    -- Begin default relation program section
    --
    Begin
    --
    -- Begin B detail program section
    --
       Open B_cur;
       Fetch B_cur into Dummy_Define;
       if ( B_cur%found ) then
          Message('Cannot delete master record when matching
                   detail records exist.');
          Close B_cur;
          raise Form_Trigger_Failure;
      end if;
      Close B_cur;
    --
    -- End B detail program section
    --
End;
--
-- End default relation program section

On-Populate-Details-Trigger  Form Builder erstellt einen On-Populate-Details-Trigger für jede Master-Detail-Beziehung. Dieser Trigger wird während der Auffüllphase der Blocksynchronisation ausgelöst. Der Trigger prüft zuerst den Status des Master-Datensatzes und den Wert des zugehörigen Primärschlüsselfeldes und navigiert dann zu dem Detail-Block, um die entsprechende Abfrage auszugeben. Dieser Trigger ruft die Prozedur QUERY_MASTER_DETAILS auf, wie im folgenden Beispiel-Triggertext dargestellt:

--
-- Begin default relation declare section
--
Declare
    recstat     char(20) := :system.record_status;
    relation_id relation;
--
-- End default relation declare section
--
--
-- Begin default relation program section
--
Begin
    if ( recstat = 'NEW' or recstat = 'INSERT' ) then
       return;
    end if;
    --
    -- Begin B detail program section
    --
    if ((:A.ID is not null)) then
       relation_id := find_relation('A.AB');
       Query_Master_Details(relation_id, 'B');
    end if;
    --
    -- End B detail program section
    ----
End;

Pre-Delete-Trigger  Form Builder erstellt den Pre-Delete-Trigger, wenn das Attribut Verhalten bei Datensatz löschen auf Kaskadierend eingestellt ist. Die Datensätze in der Basistabelle des Detail-Blocks, die dem zu löschenden Master-Datensatz entsprechen, werden ebenfalls gelöscht.

--
-- Begin default relation program section
--
BEGIN
    --
    -- Begin detail_block detail program section
    --
    DELETE FROM detail_block_base_table
    WHERE foreign_key_column = :master_block.primary_key_item;
    --
    -- End detail_block detail program section
    --
END;
--
-- End default relation program section
--


Trigger für komplexe Master-Detail-Beziehungen

Wenn Sie eine komplexe Master-Detail-Beziehung erstellen, fügt Form Builder die bestehenden Master-Detail-Trigger hinzu bzw. bearbeitet diese, um die gerade definierte Beziehung zu unterstützen. Aus dem folgenden Beispiel geht hervor, wie Form Builder Trigger nach Bedarf hinzufügt oder bearbeitet.

Beispiel : Master mit unabhängiggen Details  Betrachten Sie eine einzelne Beziehung A_B, wobei das Attribut Verhalten bei Datensatz löschen auf Nicht isoliert und das Synchronisations-Attribut Verzögert auf Nein eingestellt ist (Standardeinstellungen). Form Builder erstellt die folgenden Trigger im Master-Block, um die Beziehung zu verwalten.

•	On-Clear-Details

•	On-Check-Delete-Master

•	On-Populate-Details

Wenn Sie dann eine zweite Beziehung A_C erstellen (die denselben Master-Block, jedoch einen anderen Detail-Block hat), haben Sie eine Master-mit-unabhängigen-Details-Beziehung erstellt, d.h. einen Master-Block mit zwei Detail-Blöcken.

Um diese Beziehung zu verwalten, erstellt Form Builder keine zusätzlichen Trigger. Statt dessen fügt Form Builder einen Abschnitt zu jedem bestehenden Trigger hinzu, um das Entfernen und Auffüllen des zweiten Detail-Blocks zu vereinfachen. Die generierten Kommentare in diesen Triggern begrenzen die Bereiche, die jeden Detail-Block verwalten. So zeigen z.B. die Kommentare in dem On-Populate-Details-Trigger eindeutig, wo jeder Detail-Block-Bereich beginnt und endet:

-- Begin default relation program section
BEGIN
    --
    -- Begin first_detail_block program section
    --
    /* trigger text to clear the first detail block*/
    --
    -- End erster_Detail_Block Programmbereich
    --
    --
    -- Begin zweiter_Detail_Block Programmbereich
    --
    /* trigger text to clear the second detail block*/
    --
    -- End zweiter_Detail_Block Programmbereich
    --
    /* final trigger text */
END;
-- End default relation program section
--


Standard-Beziehungs-Trigger ändern

Gelegentlich werden Sie eigene Kommentare und Code zu den standardmäßigen Master-Detail-Triggern hinzufügen, die Form Builder erstellt. Sie können einen Standard-Trigger genau wie jeden Trigger bearbeiten, den Sie selbst erstellt haben.

Denken Sie jedoch daran, daß Form Builder möglicherweise die Standard-Trigger löschen oder bearbeiten muß, wenn Sie später die Attribute der Beziehung ändern. Wenn Sie z.B. die Einstellung des Beziehungsattributs Verhalten bei Datensatz löschen von Kaskadierend auf Isoliert ändern, entfernt Form Builder den jetzt nicht mehr erforderlichen Pre-Delete-Trigger.

Betrachten Sie folgende Punkte, wenn Sie Master-Detail-Trigger bearbeiten:

•	Ändern oder löschen Sie die Kommentare nicht, die Form Builder generiert. Diese Kommentare sagen Form Builder, wo Triggertext eingefügt oder gelöscht werden muß, wenn Änderungen erforderlich sind.

•	Wenn Sie Code zu einem Trigger hinzufügen, fügen Sie diesen vor dem Kommentar "Begin default relation program section" oder nach dem Kommentar "End default relation program section" hinzu.

•	Form Builder löscht keinen Master-Detail-Trigger, den Sie geändert haben, vorverzögert, Sie setzen den Code an eine Stelle außerhalb des standardmäßigen Beziehungs-Programmbereichs. (Form Builder entfernt den Beziehungs-Programmbereich, löscht jedoch den Trigger nicht.)


Master-Detail-Prozeduren

In diesem Abschnitt wird der Text der Master-Detail-Prozeduren dargestellt, den Form Builder automatisch erstellt, wenn Sie eine Beziehung definieren. Diese Prozeduren werden von den Master-Detail-Triggern oder von anderen Prozeduren aufgerufen.

Prozedur CLEAR_ALL_MASTER_DETAILS   Diese Prozedur wird von dem On-Clear-Details-Trigger aufgerufen. Sie navigiert zu dem Detail-Block und löscht die Detail-Datensätze.

PROCEDURE Clear_All_Master_Details IS
    mastblk  CHAR(30);  /* Initial Master Block Causing Coord */
    coordop  CHAR(30);  /* Operation Causing the Coord        */
    trigblk  CHAR(30);  /* Cur Block On-Clear-Details Fires On*/
    startitm CHAR(61);  /* Item in which cursor started       */
    frmstat  CHAR(15);  /* Form Status                        */
    curblk   CHAR(30);  /* Current Block                      */
    currel   CHAR(30);  /* Current Relation                   */
    curdtl   CHAR(30);  /* Current Detail Block               */

FUNCTION First_Changed_Block_Below( Master CHAR ) RETURN CHAR
IS
    curblk CHAR(30);  /* Current Block    */
    currel CHAR(30);  /* Current Relation */
    retblk CHAR(30);  /* Return Block     */
BEGIN
    /*
    ** Init Local Vars
    */
    curblk := Master;
    currel :=Get_Block_Property(curblk,FIRST_MASTER_RELATION);
    /*
    ** While there exists another relation for this block
    */
    WHILE currel IS NOT NULL LOOP
       /*
       ** Get the name of the detail block
       */
       curblk := Get_Relation_Property(currel,DETAIL_NAME);
       /*
       ** If this block has changes, return its name
       */
       IF Get_Block_Property(curblk,STATUS) IN
                            ('CHANGED','INSERT') THEN
                            RETURN curblk;
       /*
       ** Otherwise, recursively look for changed blocks below
       */
       ELSE
          retblk := First_Changed_Block_Below(curblk);
       /*
       ** If some block below is changed, return its name
       */
       IF retblk IS NOT NULL THEN
          RETURN retblk;
       /*
       ** Otherwise, Consider the next relation
       */
       ELSE
          currel := Get_Relation_Property (currel,
                                           NEXT_MASTER_RELATION);
       END IF;
    END IF;
END LOOP;
/*
** If we get here, no changed blocks were found
*/
RETURN NULL;
END First_Changed_Block_Below;
BEGIN
    /*
    ** Init Local Vars
    */
    mastblk  := :System.Master_Block;
    coordop  := :System.Coordination_Operation;
    trigblk  := :System.Trigger_Block;
    startitm := :System.Trigger_Item;
    frmstat  := :System.Form_Status;
    /*
    ** If the coord op is anything but CLEAR_RECORD, then
    ** continue checking.
    */
    IF coordop <> 'CLEAR_RECORD' THEN
       /*
       ** If we're processing the driving master block...
       */
       IF mastblk = trigblk THEN
       /*
       ** If something in the form is changed, find the
       ** first changed block below the master
       */
       IF frmstat = 'CHANGED' THEN
          curblk := First_Changed_Block_Below(mastblk);
          /*
         ** If we find a changed block below, go there
         ** and Ask to commit the changes.
         */
      IF curblk IS NOT NULL THEN
         Go_Block(curblk);
         Check_Package_Failure;
         Clear_Block(ASK_COMMIT);
       /*
       ** If user cancels commit dialog, raise error
       */
       IF NOT( :System.Form_Status = 'QUERY' /* Yes */  OR
      :System.Block_Status = 'NEW'  /* No */ ) THEN
         RAISE Form_Trigger_Failure;
       END IF;
       END IF;
     END IF;
    END IF;
  END IF;
/*
** Clear all the detail blocks for this master without
** any further asking to commit.
*/
currel := Get_Block_Property(trigblk,FIRST_MASTER_RELATION);
WHILE currel IS NOT NULL LOOP
    curdtl := Get_Relation_Property(currel,DETAIL_NAME);
    IF ( Get_Block_Property(curdtl, STATUS) <> 'NEW' ) THEN
       Go_Block(curdtl);
       Check_Package_Failure;
       Clear_Block(NO_VALIDATE);
       IF ( :System.Block_Status <> 'NEW' ) THEN
          RAISE Form_Trigger_Failure;
       END IF;
    END IF;
    currel := Get_Relation_Property(currel,NEXT_MASTER_RELATION);
END LOOP;
/*
** Put cursor back where it started
*/
IF ( :System.Cursor_Item <> startitm ) THEN
    Go_Item(startitm);
END IF;
EXCEPTION
    WHEN Form_Trigger_Failure THEN
       IF :System.Cursor_Item <> startitm THEN
       Go_Item(startitm);
       END IF;
     RAISE;
END Clear_All_Master_Details;

Prozedur QUERY_MASTER_DETAILS   Diese Prozedur wird aus dem On-Populate-Details-Trigger aufgerufen. Sie navigiert zu dem Detail-Block und führt dann eine Abfrage aus, um die entsprechenden Detail-Datensätze abzurufen.

PROCEDURE Query_Master_Details(rel_id Relation, detail CHAR) IS
    oldmsg CHAR(2);  /* Old Message Level Setting */
    reldef CHAR(5);  /* Relation Deferred Setting */
BEGIN
    /*
    ** Initialize Local Variable(s)
    */
    reldef := Get_Relation_Property(rel_id,
                     DEFERRED_COORDINATION);
    oldmsg := :System.Message_Level;
    /*
    ** If NOT Deferred, Goto detail & execute the query.
    */
    IF reldef = 'FALSE' THEN
       Go_Block(detail);
       Check_Package_Failure;
       :System.Message_Level := '5';
       Execute_Query;
       :System.Message_Level := oldmsg;
       /*
       ** If Deferred, Mark the detail block as un-coordinated
       */
    ELSE
       Set_Block_Property(detail, coordination_status,
                          NON_COORDINATED);
    END IF;
EXCEPTION
    WHEN Form_Trigger_Failure THEN
       :System.Message_Level := oldmsg;
    RAISE;
END Query_Master_Details;

Prozedur CHECK_PACKAGE_FAILURE   Diese Prozedur wird von den Prozeduren CLEAR_ALL_MASTER_DETAILS und QUERY_MASTER_DETAILS aufgerufen. Sie prüft, ob die vorherige Anweisung erfolgreich ausgeführt wurde, indem sie den Status der vordefinierten Fehlervariablen FORM_SUCCESS von Form Builder überprüft.

PROCEDURE Check_Package_Failure IS
BEGIN
    IF (NOT Form_Success) THEN
       RAISE Form_Trigger_Failure;
    END IF;
END;


Standardmäßige Master-Detail-Funktionalität ändern

  Verwandte Themen

In besonderen Fällen werden Sie die standardmäßige Master-Detail-Funktionalität ändern oder erweitern wollen, die von Form Builder bereitgestellt wird. Wenn Ihre Anwendung z.B. mit Nicht-ORACLE-Datenquellen ausgeführt wird oder lange Beziehungsketten umfaßt, die eine nicht-standardmäßige Funktionalität erfordern, könnten Sie einen eigenen Blocksynchronisationsmechanismus implementieren.

Form Builder verfügt über eine Reihe von Triggern und vordefinierten Prozeduren, die für diese Tasks benutzt werden, von denen einige hier aufgeführt werden. Eine vollständige Dokumentation zu diesen Triggern und Routinen finden Sie in den entsprechenden Online-Hilfetexten von Form Builder.

Trigger:

•	On-Clear-Details

•	On-Populate-Details

•	On-Check-Delete-Master

•	When-New-Record-Instance

•	When-New-Block-Instance

Vordefinierte Prozeduren:

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

•	GET_FORM_PROPERTY

•	GET_RELATION_PROPERTY

•	SET_RELATION_PROPERTY

So können Sie z.B. diese vordefinierten Prozeduren wie folgt benutzen:

•	Verwenden Sie GET_FORM_PROPERTY, um den Namen des ersten und letzten Blocks in der Form einzulesen (FIRST_BLOCK, LAST_BLOCK).

•	Benutzen Sie GET_BLOCK_PROPERTY, um den aktuellen COORDINATION_STATUS eines Blocks (d.h. COORDINATED oder NON_COORDINATED) und die FIRST_RELATION eines Blocks zu ermitteln, d.h. den Namen der ersten Beziehung, bei der der Block ein Master-Block ist.

•	Benutzen Sie SET_BLOCK_PROPERTY, um die Blockattribute dynamisch festzulegen.

•	Benutzen Sie GET_RELATION_PROPERTY, um die aktuellen Attributeinstellungen für eine Beziehung (MASTER_DELETES, DEFERRED_COORDINATION und AUTOQUERY), die Namen der Master- und Detail-Blöcke (MASTER_NAME, DETAIL_NAME) und den Namen der nächsten Beziehung in der Form (NEXT_MASTER_RELATION, NEXT_DETAIL_RELATION) einzulesen. Um z.B. den Namen des Master-Blocks in einer Beziehung einer lokalen Variablen zuzuweisen, könnten Sie folgende Anweisung schreiben:

  DECLARE
    master_block    VARCHAR2;
  BEGIN
    master_block := Get_Relation_Property('my_relation',
                                           MASTER_BLOCK);
  END;

•	Benutzen Sie SET_RELATION_PROPERTY, um die Attribute einer Beziehung dynamisch einzustellen. Um z.B. das Attribut Verhalten bei Datensatz löschen einzustellen, könnten Sie die folgende Prozedur aufrufen:

  SET_RELATION_PROPERTY('my_relation',
                        master_deletes,
                        deferred_coordination);


Attribute einstellen

  Verwandte Themen

So stellen Sie den Wert eines Attributs ein::

1	Wählen Sie das Objekt aus, dessen Attribute eingestellt werden sollen.

Sie können Objekte im Formeditor, Objektnavigator oder Menüeditor auswählen. Wenn Sie ein Objekt auswählen, werden die Attribute für dieses Objekt in der Attributpalette angezeigt. (Wenn die Attributpalette im Augenblick nicht angezeigt wird, wählen Sie Werkzeuge [image] Attributpalette aus.)

2	Wählen Sie das einzustellende Attribut in der Attributpalette aus.

Sie können Attribute auswählen, indem Sie klicken oder mit den Nach-oben-/Nach-unten-Tasten navigieren. Wenn ein Attribut ausgewählt ist, wird neben dem Attribut ein Textfeld, eine Popup-Liste oder die Schaltfläche Weitere... angezeigt.

3	Setzen Sie das ausgewählte Attribut auf die gewünschte Einstellung.


Über das Einstellen von Attributen bei Mehrfachauswahlen

 Beispiele   [image]  Verwandte Themen

Sie können mehrere Objekte gleichzeitig auswählen, indem Sie bei gedrückter Strg-Taste im Objektnavigator oder den Editoren klicken. Wenn zwei oder mehr Objekte ausgewählt sind, wird die Meldung "Mehrfachauswahl" am oberen Rand der Attributpalette anstelle des Feldes Name angezeigt.

Mit dem Befehl Schnittmenge/Vereinigungsmenge in der Symbolleiste der Attributpalette wird bestimmt, welche Attribute in der Attributliste angezeigt werden, wenn mehr als ein Objekt ausgewählt ist. Wenn Sie zwischen Schnittmenge und Vereinigungsmenge umschalten, wird die in der Attributpalette angezeigte Liste mit Attributen geändert. Dies wirkt sich jedoch nicht auf die Einstellung der einzelnen Attribute aus.

Schnittmenge  Standardwert. Nur Attribute, die für alle ausgewählten Objekte gemeinsam gelten, werden angezeigt.

Vereinigungsmenge  Alle Attribute jedes ausgewählten Objekts werden angezeigt.

Attribute, die für zwei oder mehr Objekte in einer Mehrfachauswahl gemeinsam gelten, werden nur einmal aufgeführt, und die Attributeinstellung wird wie folgt angezeigt:

•	Wenn das Attribut bei allen ausgewählten Objekten, die über dieses Attribut verfügen, dieselbe Einstellung hat, wird die gemeinsame Einstellung angezeigt.

•	Wenn das Attribut für die Objekte, die dieses Attribut gemeinsam haben, unterschiedlich eingestellt ist, wird die Zeichenfolge " ***** " angezeigt.


Attribute von Mehrfachauswahlen einstellen

  Verwandte Themen

So stellen Sie die Attribute von Mehrfachauswahlen ein:

1	Wählen Sie die Objekte im Objektnavigator oder den Editoren, deren Attribute eingestellt werden sollen, indem Sie bei gedrückter Strg-Taste klicken. Die Objekte können unterschiedlichen Typs sein und können sogar in verschiedenen Dokumenten stehen.

2	Stellen Sie in der Attributpalette den Umschalter Schnittmenge/Vereinigungsmenge so ein, daß die gewünschten Attribute angegeben werden.

3	Stellen Sie die Attribute nach Bedarf ein.

Änderungen, die Sie an einer Attributeinstellung vornehmen, werden für alle Objekte in der aktuellen Auswahl angewandt, für die dieses Attribut gilt.


Beispiele für das Einstellen von Attributen bei Mehrfachauswahlen

Eine Form umfaßt mehrere Textobjekte, die jeweils ein Datum in einem anderen Fenster anzeigen. Das Attribut Parameter-Datentyp für jedes Textobjekt ist DATE, so daß Datumsangaben in dem Standardformat TT-MON-JJ von ORACLE angezeigt werden.

Um in der ganzen Anwendung ein anderes Datumsformat zu benutzen, müssen Sie das Attribut Formatmaske für jedes Objekt einstellen, bei dem Datumsangaben angezeigt werden. Anstatt das Attribut Formatmaske für jedes Textobjekt individuell einzustellen, wählen Sie alle Objekte im Objektnavigator aus, und stellen Sie dann das Attribut Formatmaske einmal so ein, daß die Formatmaske für jedes ausgewählte Objekt geändert wird.


Attribute eines Objektes mit einem anderen vergleichen

  Verwandte Themen

So vergleichen Sie die Attribute eines Objekts mit einem anderen:

1	Wählen Sie das erste Objekt im Objektnavigator oder den Editoren aus, damit dessen Attribute in der Attributpalette angezeigt werden.

2	Klicken Sie auf die Schaltfläche Statisch/Synchronisiert in der Attributpalette, um die Synchronisation auszuschalten und die Attributpalette zu "fixieren".

3	Doppelklicken Sie bei gedrückter Umschalttaste im Objektnavigator auf das Objektsymbol für das zweite Objekt.

Form Builder zeigt eine zweite Attributpalette an. Wenn das zweite Fenster über dem ersten Fenster angezeigt wird, ziehen Sie es so, daß es neben dem ersten Fenster angezeigt wird.


Über das Kopieren von Attributen von einem Objekt zu einem anderen

  Verwandte Themen

Mit den Befehlen Attribute kopieren und Attribute einfügen können Sie die Attributeinstellungen von einem Objekt zu einem anderen kopieren.

Attribute können im Objektnavigator, dem Formeditor, dem Menüeditor und der Attributpalette kopiert und eingefügt werden.

Attribute kopieren  Sie können die Attributeinstellungen von ausgewählten Objekten in die Zwischenablage kopieren..

Attribute einfügen Sie können die aktuellen Attributeinstellungen aus der Zwischenablage in die in diesem Fenster ausgewählten Objekte einfügen. Attribute, die für die aktuelle Auswahl nicht gültig sind, werden ignoriert.

In den meisten Fällen werden Sie die Attribute eines Objekts in ein oder mehrere Objekte desselben Typs kopieren. Es ist jedoch auch möglich, die Attribute eines Objekts in Objekte eines anderen Typs zu kopieren. In diesem Fall werden die Attribute, die für das Zielobjekt nicht zutreffend sind, ignoriert.

Sie können die Attributeinstellungen eines Objekts in einem Fenster kopieren und diese Einstellungen dann in einem Objekt in einem anderen Fenster einfügen. So könnten Sie z.B. eine Schaltfläche im Objektnavigator auswählen, auf die Schaltfläche Attribute kopieren klicken, um die Attributeinstellungen zu kopieren, und diese Einstellungen dann mit Einfügen in eine andere im Formeditor ausgewählte Schaltfläche einfügen.

Wenn Sie die Attribute einer Mehrfachauswahl kopieren, werden nur Attribute, die keine widersprüchlichen Werte enthalten, in die Zwischenablage kopiert. Wenn Sie z.B. die Attribute von drei Textobjekten kopieren, die im Objektnavigator ausgewählt sind, werden die Einstellungen Breite und Höhe nur kopiert, wenn jedes Textobjekt dieselbe Größe hat.


Attribute von einem Objekt zu einem anderen kopieren

  Verwandte Themen

So kopieren Sie Attribute:

1	Wählen Sie das Objekt, dessen Einstellungen kopiert werden sollen.

2	Wählen Sie Bearbeiten [image] Attribute kopieren.

3	Wählen Sie das Zielobjekt.

4	Wählen Sie Bearbeiten [image] Attribute einfügen.


Attribute zur Laufzeit einstellen

  Verwandte Themen

Viele Objektattribute können programmgesteuert zur Laufzeit eingestellt werden. So hat z.B. jedes Fensterobjekt ein Attribut Sichtbar, das auf Ja oder Nein gesetzt werden kann, um das Fenster anzuzeigen und zu verbergen. Zur Laufzeit können Sie die vordefinierte Prozedur SET_WINDOW_PROPERTY aufrufen, um das Fenster dynamisch anzuzeigen oder zu verbergen, wie hier dargestellt:

Set_Window_Property('my_window',VISIBLE, PROPERTY_ON);

Mit den folgenden vordefinierten Prozeduren können Objektattribute zur Laufzeit eingestellt werden:

•	SET_BLOCK_PROPERTY

•	SET_CANVAS_PROPERTY

•	SET_FORM_PROPERTY

•	SET_ITEM_PROPERTY

•	SET_LOV_PROPERTY

•	SET_MENU_ITEM_PROPERTY

•	SET_PARAMETER_ATTR

•	SET_RADIO_BUTTON_PROPERTY

•	SET_RECORD_PROPERTY

•	SET_RELATION_PROPERTY

•	SET_VIEW_PROPERTY

•	SET_WINDOW_PROPERTY

Die vordefinierte Prozedur SET_ITEM_PROPERTY kann benutzt werden, um die Attribute eines beliebigen Objekttyps einzustellen, einschließlich Schaltflächen, Textobjekten, Kontrollkästchen, Optionsgruppen usw.

Hinweis:  Objekte in Optionsgruppen umfassen verschiedene Optionsschaltflächen. Verwenden Sie SET_ITEM_PROPERTY, um die Attribute der Optionsgruppe einzustellen, und SET_RADIO_BUTTON_PROPERTY, um die Attribute der einzelnen Schaltflächen in der Gruppe einzustellen.

Jede vordefinierte SET-Prozedur verfügt über eine entsprechende GET-Funktion, mit der Sie die aktuelle Einstellung der Attribute eines Objekts programmgesteuert bestimmen können. Das folgende Beispiel benutzt GET_WINDOW_PROPERTY, um festzustellen, ob ein Fenster gerade verborgen ist (VISIBLE = FALSE). Wenn das Fenster verborgen ist, wird SET_WINDOW_PROPERTY aufgerufen, um das Fenster anzuzeigen.

If Get_Window_Property('my_window',VISIBLE) = 'FALSE' THEN
   Set_Window_Property('my_window',VISIBLE,PROPERTY_ON);

Um zu bestimmen, ob ein bestimmtes Attribut programmgesteuert eingestellt werden kann, wird auf die Beschreibung des entsprechenden Attributs in der Online-Hilfe verwiesen.


Was ist ein Klangobjekt?

  Verwandte Themen

Mit Klangobjekten können Endbenutzer Klangdaten wiedergeben und aufzeichnen, während sie in einer Form Builder-Anwendung arbeiten. Entwickler können Klangobjekte einrichten, damit Endbenutzer Klangdaten, die in einer Datenbankspalte oder im Dateisystem gespeichert sind, wiedergeben, aufzeichnen und speichern können.

Um ein Klangobjekt für die Aufzeichnung und Wiedergabe von Klangdaten in einer Datenbanktabelle zu erstellen, müssen Sie das Objekt auf einer LONG RAW-Spalte basieren. Nachdem Sie diesen Schritt ausgeführt haben, stellt Form Builder automatisch die Funktionalität für das Aufzeichnen und Wiedergeben von Klängen bereit.

Hinweis:  Sie können auch ein Klangobjekt erstellen, das einen Klang in einer Datei in einem Dateisystem aufzeichnet und wiedergibt.


Über die Aufzeichnung und Wiedergabe von Klangdaten

Nachdem Sie ein Klangobjekt basierend auf einer LONG RAW-Datenbankspalte erstellt haben, können Endbenutzer Klangdaten wiedergeben und aufzeichnen, wenn sie eine Form Builder-Anwendung benutzen, indem sie auf verschiedene Schaltflächen des Klang-Steuerelements klicken, vorausgesetzt, sie verfügen über die entsprechende Software und Hardware (Klangkarte, Treiber, Lautsprecher, Mikrofon usw.) für die Wiedergabe und das Aufzeichnen von Klangdaten in ihrer Umgebung.

Um Klangdaten aus einer LONG RAW-Datenbankspalte wiederzugeben und aufzuzeichnen, muß die Spalte entweder schon Klangdaten enthalten oder muß Klangdaten von den Endbenutzern einer Anwendung akzeptieren (d.h. die Attribute Einfügen erlaubt und Aktualisieren erlaubt sind auf Ja eingestellt). Wenn Sie ein Klangobjekt basierend auf einer LONG RAW-Spalte aus der Datenbank erstellen, stellt Form Builder das Objekt automatisch in dem Layout mit einem Klang-Steuerelement dar, mit dem Endbenutzer Klangdaten wiedergeben können.

Leistungsfragen  Wenn Sie große Klangobjekte über ein Netzwerk übertragen, kann sich dies auf die Leistung auswirken. Wenn Sie Klangdaten in der Datenbank speichern wollen, reduzieren Sie die Auswirkung auf die Leistung, indem Sie das Attribut Nur geänderte Spalten aktualisieren für den Klangobjekt-Block auf Ja setzen. Auf diese Weise verbessern Sie die Leistung Ihrer Anwendung - indem Sie Netzwerk-Zyklen mit Datensätzen mit nicht aktualisierten Klangobjekten vermeiden.

Klangdaten in einer Datei wiedergeben und speichern  Form Builder verfügt über drei vordefinierte Prozeduren, mit denen Entwickler Endbenutzern die Möglichkeit geben können, Klangdaten in einer Datei wiederzugeben und aufzuzeichnen.

In der Beschreibung dieser vordefinierten Prozeduren wird erläutert, wie Klangdaten aus einer Datei im Dateisystem wiedergegeben und aufgezeichnet werden.

•	PLAY_SOUND

•	READ_SOUND_FILE

•	WRITE_SOUND_FILE


Über das Steuerelement für Klangobjekte

  Verwandte Themen

Wenn Sie ein Klangobjekt erstellen, stellt Form Builder das Objekt automatisch in dem Layout mit [image] dar, dem Steuerelement für Klangobjekte.

Das Steuerelement für Klangobjekte umfaßt die folgenden Komponenten, die alle optional sind (mit Ausnahme von Wiedergabe oder Aufzeichnen, von denen immer eines angezeigt werden muß):

•	   Wiedergabe:  Startet die Wiedergabe der Klangdaten ab der aktuellen Cursorposition. (Wenn Sie während der Wiedergabe auf Wiedergabe klicken, wird der Cursor bei der aktuellen Position gestoppt. Klicken Sie erneut auf Wiedergabe, um die Wiedergabe fortzusetzen. Wenn Sie einen Klang bis zum Ende wiedergeben und dann erneut auf Wiedergabe klicken, setzt Form Builder den Cursor automatisch zu der Anfangsposition, bevor die Wiedergabe des Klangs erneut gestartet wird.)

•	   Aufzeichnen:  Startet die Aufzeichnung von Klangdaten ab der aktuellen Cursorposition. (Wenn Sie ein zweites Mal auf Aufzeichnen klicken, wird die Aufzeichnung gestoppt. Wenn der Cursor bei der Anfangs- oder Mittelposition eines bestehenden Klangs steht, wenn Sie auf Aufzeichnen klicken, überschreibt Form Builder den bestehenden Klang mit den neuen aufgezeichneten Klangdaten ab der aktuellen Cursorposition.)

•	   Rückspulen:  Spult die Klangdaten (ab der aktuellen Cursorposition) bis zum Anfang des Klangs zurück.

•	   Schnellvorlauf:  Führt einen Schnellvorlauf der Klangdaten (ab der aktuellen Cursorposition) bis zum Ende des Klangs durch.

•	   Lautstärke:  Zeigt einen vertikalen Schieberegler an, mit dem Sie die Lautstärke der Wiedergabe und Aufzeichnung steuern können. (Klicken und ziehen Sie die Auswahlmarkierung nach oben, um die Lautstärke zu vergrößern, bzw. nach unten, um sie zu verringern.)

•	   Zeitindikator:  Zeigt drei Modi für Zeitinformationen zu den Klangdaten an. (Klicken Sie auf den Indikatortext, um zwischen Gesamtzeit, abgelaufener Zeit und verbleibender Zeit umzuschalten.)

•	   Schieberegler:  Der horizontale Schieberegler gibt die aktuelle Cursorposition innerhalb der Klangdaten an. (Schieben Sie den Regler nach rechts oder links, um die Cursorposition zu verändern.)

Hinweis:  Um jede Klangsteuerungskomponente (im Form Builder-Layout und zur Laufzeit) unabhängig anzuzeigen oder zu verbergen, stellen Sie das Anzeigeattribut für die Komponente auf Ja (anzeigen) oder Nein (verbergen) ein. Hierzu gibt es eine Ausnahme, Sie können die Attribute Wiedergabe-Schaltfläche anzeigen und Aufzeichnen-Schaltfläche anzeigen nicht beide gleichzeitig auf Nein einstellen. Sonst zeigt Form Builder die Schaltfläche Wiedergabe standardmäßig zur Laufzeit an.


Klangobjekte erstellen

  Nächster Schritt   [image]  Verwandte Themen

So erstellen Sie ein Klangobjekt:

1.	Klicken Sie auf den Knoten Objekte im Objektnavigator, und klicken Sie auf die Schaltfläche Erstellen in der Symbolleiste.

Sie können auch im Layouteditor auf [image] klicken und einen Bereich auf der Leinwand ziehen, in dem das Klangobjekt angezeigt werden soll.

Form Builder erstellt ein Objekt und gibt diesem einen Standardnamen, wie z.B.OBJEKT17.

2.	Ändern Sie den Objektnamen in den Namen der LONG RAW-Spalte aus der Datenbanktabelle, auf der der Block basiert.

Hinweis:  Sie können auch den Datenblock-Assistenten verwenden, um ein Objekt zu erstellen, das auf einer LONG RAW-Datenbankspalte basiert.

3.	Doppelklicken Sie auf das Symbol des Objekts, um die Attributpalette anzuzeigen.

4.	Setzen Sie das Attribut Objekttyp unter dem Knoten Allgemein auf Klang.

5.	Unter dem Knoten Funktional:

•	Stellen Sie das Attribut Klangformat auf AU, AIFF, AIFF_C oder WAVE (das Format der Klangdaten) ein.

•	Stellen Sie das Attribut Audio-Kanäle auf Mono (monophon), Stereo (stereophon) oder Automatisch (verwendet standardmäßig die Kanaleinstellung der Klangdaten) ein.

•	Stellen Sie das Attribut Klangqualität auf Höchste, Hoch, Mittel, Niedrig, Niedrigste oder Automatisch (verwendet standardmäßig die Qualitätseinstellung der Klangdaten) ein.

6.	Unter dem Knoten Datenbank:

•	Stellen Sie das Attribut Datenbankobjekt auf Ja ein.

•	Stellen Sie das Attribut Spaltenname auf den Namen der LONG RAW-Datenbankspalte ein, in der die Klangdaten gespeichert sind.

7.	Unter dem Knoten Physikalisch stellen Sie das Attribut Leinwand auf den Namen der Leinwand ein, auf der das Steuerelement für das Klangobjekt angezeigt wird.

Wenn Sie den Objekttyp auf Klang einstellen und das Objekt auf eine Leinwand setzen, setzt Form Builder das Klangsteuerelement automatisch auf die angegebene Leinwand.


Attribute für das Steuerelement für Klangobjekte einstellen

  Verwandte Themen

So stellen Sie die Attribute für das Steuerelement für Klangobjekte ein:

1.	Doppelklicken Sie im Objektnavigator unter dem Knoten Blöcke und Objekte auf das Symbol für das Klangobjekt, um die Attributpalette anzuzeigen.

2.	Stellen Sie die Attribute für das Steuerelement für Klangobjekte in der Attributpalette unter dem Knoten Physikalisch auf Ja oder Nein ein. (Wenn Sie ein Attribut auf Ja einstellen, zeigt Form Builder die Steuerelementkomponente für das Klangobjekt sowohl beim Entwurf als auch zur Laufzeit an.) Die Attribute sind:

•	Schnellvorlauf-Schaltfläche anzeigen  (Standard = Nein)

•	Wiedergabe-Schaltfläche anzeigen  (Standard = Ja)

•	Aufzeichnen-Schaltfläche anzeigen  (Standard = Nein)

•	Rückspul-Schaltfläche anzeigen  (Standard = Nein)

•	Schieberegler anzeigen  (Standard = Ja)

•	Zeitindikator anzeigen  (Standard = Ja)

•	Lautstärkeregler anzeigen  (Standard = Ja)


Klangobjekte programmgesteuert bearbeiten

  Verwandte Themen

Um die Schaltflächen des Steuerelements für Klangobjekte programmgesteuert anzuzeigen und zu verbergen, benutzen Sie die vordefinierten Prozeduren GET_ITEM_PROPERTY und SET_ITEM_PROPERTY von Form Builder, um die Attribute für das Steuerelement von Klangobjekten einzulesen und einzustellen (z.B. Show_Rewind_Button).

Hinweis:  Denken Sie daran, daß Sie Wiedergabe nicht verbergen können, wenn Aufzeichnen schon verborgen ist. Form Builder zeigt immer standardmäßig entweder die Schaltfläche Wiedergabe oder Aufzeichnen zur Laufzeit an. Sie können die eine oder die andere Schaltfläche verbergen, jedoch nicht beide.


Über Standards

  Verwandte Themen

Mit Forms Developer können Sie Anwendungsstandards definieren und verteilen.

Standards gewährleisten Qualität und ein konsistentes intuitives Verhalten innerhalb einer Anwendung. Mit Standards kann ein Team von Entwicklern produktiver arbeiten. Entwickler, die an einem Teil einer Anwendung arbeiten, können Objekte erstellen und testen, die problemlos mit nur wenig oder gar keinen Änderungen in einem anderen Teil der Anwendung wiederbenutzt werden können. Um ein Standardobjekt erneut zu benutzen, ziehen Sie einfach das gewünschte Objekt aus der Objektbibliothek in das gewünschte Modul.

Beim Erstellen eines Standards werden folgende Schritte ausgeführt:

1	Definieren von Standards

2	Erstellen von Objekten in Form Builder, die den Standards entsprechen

3	Speichern von Standardobjekten in der Objektbibliothek

4	Verteilen von Standards an Entwickler


Richtlinien für das Erstellen von Standards

  Verwandte Themen

Beim Erstellen von Standards berücksichtigen Sie folgende Richtlinien:

•	Bevor Sie Ihre eigenen Standards erstellen, erwägen Sie die Benutzung der Forms Developer-Standards für Benutzeroberflächen.

•	Benutzen Sie die Objektbibliothek als primären Mechanismus für das Erstellen und Wiederbenutzen von Standardobjekten.

•	Gehen Sie beim Löschen von Quellobjekten mit Vorsicht vor. Wenn Sie ein Quellobjekt löschen, wird die Verknüpfung zu Instanzobjekten unterbrochen.


Standards festlegen

  Verwandte Themen

Eine allgemeine Lösung bei der Anwendungsentwicklung besteht darin, zuerst Standards zu erstellen und diese dann aufgrund der Prototyp-Ergebnisse und der Verwendbarkeitstests zu optimieren. Weil die Anforderungen in jedem Unternehmen eindeutig sind, sind die besten Standards für Ihr Unternehmen ebenfalls eindeutig.

Im allgemeinen werden drei Typen von Standards entwickelt:

•	Codierungsstandards, einschließlich Benennungsstandards für alle Objekte und Dateien

•	GUI-Standards, einschließlich Standards für das Bildschirmformat, wie z.B. Farbe, Abstand und Layout, sowie Standards für spezifische GUI-Objekte, wie Schaltflächen und Kontrollkästchen

•	Benutzungsstandards, einschließlich intuitiver Standards, die gewährleisten, daß verschiedene Teile der Anwendung auf dieselbe Weise auf die Benutzereingabe reagieren

Für zusätzliche Informationen zur Festlegung von Standards für die Benutzeroberfläche wird auf die folgenden plattformspezifischen Referenzen verwiesen:

•	Microsoft Windows: The Windows Interface: An Application Design Guide

•	Motif:  Motif Style Guide

•	Macintosh:  Macintosh Human Interface Guidelines


Wiederverwendbare Objekte erstellen

  Nächster Schritt	    Verwandte Themen

So erstellen Sie ein wiederverwendbares Objekt:

1	Wählen Sie Werkzeuge [image] Objektbibliothek.

2	Im Objektnavigator ziehen Sie das gewünschte Objekt in die Objektbibliothek.

Form Builder erstellt eine neue Version des Objekts und speichert diese in der Objektbibliothek.


Objekte in der Objektbibliothek wiederverwenden

  Verwandte Themen

So verwenden Sie ein Objekt in der Objektbibliothek wieder:

1	In der Objektbibliothek klicken Sie auf das gewünschte Objekt.

2	Drücken Sie Strg, und ziehen Sie das Objekt in das gewünschte Modul und den gewünschten Knoten.

Form Builder zeigt das Dialogfeld Kopie/Unterklasse an.

3	Klicken Sie auf Unterklasse.

Form Builder erstellt eine in einer Unterklasse eingeordnete Version des Objekts.


Objekte in der Objektbibliothek ändern

  Verwandte Themen

So ändern Sie ein Objekt in der Objektbibliothek:

1	Drücken Sie in der Objektbibliothek Strg, und ziehen Sie das gewünschte Objekt in den entsprechenden Knoten im Objektnavigator.

Form Builder zeigt das Dialogfeld Kopie/Unterklasse an.

2	Klicken Sie auf Kopie. Dadurch wird eine editierbare Kopie des Objekts in der Objektbibliothek erstellt.

3	Ändern Sie das Objekt nach Bedarf.

4	Ziehen Sie das Objekt wieder in die Objektbibliothek zurück. Dadurch wird das Objekt aus der Form in die Objektbibliothek verschoben.

5	Klicken Sie in dem Dialogfeld auf Ja, um das bestehende Objekt durch das geänderte Objekt zu ersetzen.


Kommentare zu einem Objekt in der Objektbibliothek hinzufügen

So fügen Sie einen Kommentar zu einem Objekt in der Objektbibliothek hinzu:

1	In der Objektbibliothek klicken Sie auf das gewünschte Objekt.

2	Klicken Sie auf die Schaltfläche Kommentar bearbeiten in der Symbolleiste.

3	Geben Sie den gewünschten Text in das Dialogfeld Kommentar ein.


Über SmartClasses

Eine SmartClass ist ein Spezialobjekt, das Sie in der Objektbibliothek erstellen. Nachdem Sie ein Objekt als SmartClass definiert haben, können Sie neue Objekte basierend auf der SmartClass erstellen, indem Sie die gewünschte SmartClass in den Objektnavigator ziehen. Sie können die SmartClass auch für ein bestehendes Objekt anwenden, indem Sie SmartClasses aus dem Popup-Menü auswählen. Wenn Sie ein Objekt auf einer SmartClass basieren, wird dieses Objekt in eine Unterklasse eingeordnet. Es übernimmt Funktionalität und  Erscheinungsbild von der SmartClass.

Sowohl in einer Umgebung mit nur einem Entwickler als auch in einer Umgebung mit mehreren Entwicklern bieten SmartClasses eine Reihe von Vorteilen:

•	Einordnen in Unterkategorien

•	Schnelle Wiederverwendung und Entwicklung

•	Verteilungsmöglichkeit

Typischerweise entspricht eine SmartClass den Benutzeroberflächenstandards, die Sie für ein Projekt definieren. Um Ihre Standards zu verteilen, speichern Sie die Standardobjekte innerhalb eines Objektbibliotheksdokuments, und verteilen Sie die Objektbibliotheken dann zur Wiederbenutzung an das Entwicklungsteam.

Sie können z.B. einen Standardblock (EMP) und einen Rahmen innerhalb der Objektbibliothek erstellen, um einen Standardblock und ein Standardlayout zu erzeugen. Jedesmal, wenn der Block in eine Form gezogen wird, werden die Objekte innerhalb des EMP-Blocks konsistent mit derselben visuellen Darstellung angeordnet.

SmartClasses unterscheiden sich von den anderen Objekten in der Objektbibliothek insofern, als jedes SmartClass-Objekt immer ein in einer Unterklasse eingeordnetes Objekt ist.

Wenn Sie ein Objekt (bei dem es sich nicht um eine SmartClass handelt) in eine Form ziehen, ist das erstellte Objekt standardmäßig eine Kopie und kein Unterklassenobjekt.

Andere Objekte in der Objektbibliothek können nur für das Erstellen neuer Objektinstanzen benutzt werden und niemals, um ein bestehendes Objekt zu ändern. Dagegen können SmartClasses für bestehende Objekte angewandt werden.


SmartClasses erstellen

  Nächster Schritt	    Verwandte Themen

So erstellen Sie eine SmartClass:

1	Wählen Sie Werkzeuge [image] Objektbibliothek, um die Objektbibliothek anzuzeigen.

2	In der Objektbibliothek klicken Sie auf das gewünschte Objekt.

3	Wählen Sie Objekt [image] SmartClass.


Objekte basierend auf SmartClasses erstellen

  Verwandte Themen

So erstellen Sie ein Objekt basierend auf einer SmartClass:

1	Klicken Sie in der Objektbibliothek auf die gewünschte SmartClass.

2	Ziehen Sie die SmartClass in das gewünschte Modul und den gewünschten Knoten.


SmartClasses für ein bestehendes Objekt anwenden

So wenden Sie eine SmartClass für ein bestehendes Objekt an:

1	Klicken Sie im Objektnavigator auf das gewünschte Objekt.

2	Klicken Sie mit der rechten Maustaste, um das Popup-Menü anzuzeigen.


SmartClasses ändern

  Verwandte Themen

So ändern Sie eine SmartClass:

1	Ziehen Sie das gewünschte Objekt in der Objektbibliothek in den entsprechenden Knoten im Objektnavigator. Dadurch wird eine editierbare Kopie des Objekts in der Objektbibliothek erstellt.

2	Ändern Sie das Objekt nach Bedarf.

3	Ziehen Sie das Objekt wieder in die Objektbibliothek. Dadurch wird das Objekt aus der Form in die Objektbibliothek verschoben.

4	Klicken Sie in dem Dialogfeld auf Ja, um das bestehende Objekt durch das geänderte Objekt zu ersetzen.

Hinweis:  Änderungen an der übergeordneten SmartClass werden automatisch von jeder untergeordneten Instanz der SmartClass übernommen.


Standards verteilen

So verteilen Sie Standards:

Verteilen Sie Ihre Standards entweder als Objektbibliotheks- (.OLB), Form- (.FMB) oder Menümodul (.MMB).

Tip:  Es wird empfohlen, die Standards innerhalb eines Objektbibliotheksmoduls (.OLB) zu verteilen:

•	Objektbibliotheksmodule werden automatisch neu geöffnet, wenn Form Builder hochgefahren wird. Auf diese Weise haben Sie sofort Zugriff auf wiederverwendbare Objekte.

•	Im Gegensatz zu Form- und Menümodulen enthalten Objektbibliotheken SmartClasses.


Über die Wiederverwendung

  Verwandte Themen

Form Builder umfaßt viele Funktionen, mit denen Entwicklungsprojekte vereinfacht werden, indem Sie Objekte wiederverwenden können. Durch die Wiederverwendung von Objekten können Sie die Konsistenz in Ihren Anwendungen aufrecht erhalten und auf Arbeiten aufbauen, die Sie oder andere Entwickler vorher durchgeführt haben.

Objekte wiederverwenden

Es gibt viele Möglichkeiten, ein Objekt wiederzuverwenden. Sie können:

•	Ein Objekt kopieren

Kopieren Sie ein Objekt, wenn Sie eine neue und separate Instanz des Objekts erstellen möchten.

•	Ein Objekt in eine Unterklasse einordnen

Ordnen Sie ein Objekt in eine Unterklasse ein, wenn Sie ein neues Objekt erstellen möchten, das eine Verknüpfung zu dem Quellobjekt beibehält. Nachdem Sie ein Unterklassenobjekt erstellt haben, werden Änderungen, die Sie an dem Quellobjekt vornehmen, von dem Unterklassenobjekt übernommen, wenn Sie das Modul, das das Unterklassenobjekt enthält, öffnen oder neu kompilieren. Wenn die beiden Module geöffnet sind, werden die Änderungen sofort übernommen.

•	Visuelle Attribute erstellen

Erstellen Sie ein visuelles Attribut, wenn Sie einen Standard für Schriftart-, Farb- und Musterattribute für die Form- und Menüobjekte erstellen möchten, die auf der Anwendungsoberfläche angezeigt werden.

•	Objektgruppen erstellen

Erstellen Sie eine Objektgruppe, wenn Sie Objekte in Bausteinen auf einer höheren Ebene zusammenfassen möchten, die in anderen Teilen einer Anwendung und in nachfolgenden Entwicklungsprojekten benutzt werden können.

•	Attributklassen erstellen

Erstellen Sie eine Attributklasse, wenn Sie ein universelles übergeordnetes Unterklassenobjekt definieren möchten.

•	Vorlagenforms erstellen

Erstellen Sie eine Vorlagenform, wenn Sie einen Standardausgangspunkt für die Mitglieder in Ihrem Entwicklungsteam erstellen möchten.

Vorlagen umfassen typischerweise allgemeine Objekte, wie z.B. Boilerplate, Symbolleisten, Programmblöcke usw.


Über das Kopieren von Objekten

  Verwandte Themen

Die einfachste Möglichkeit für die Wiederverwendung eines Objekts besteht darin, das Objekt zu kopieren.

Wenn Sie ein Objekt kopieren, erstellen Sie eine neue und separate Instanz des Objekts. Objekte, die dem kopierten Objekt gehören, werden immer automatisch kopiert.

Wenn Sie z.B. einen Block kopieren, umfaßt der neue Block alle Objekte, die dem Block gehörten, und Trigger, die dem Block oder den Objekten zugeordnet waren.

Hinweis:  Wenn Sie ein Objekt in ein anderes Modul kopieren, konvertiert Form Builder nicht automatisch Größe und Positionskoordinaten, wenn das Zielmodul ein anderes Koordinatensystem als das Quellmodul benutzt.


Objekte kopieren

  Verwandte Themen

So kopieren Sie ein Objekt:

1	Klicken Sie im Objektnavigator auf das gewünschte Objekt.

2	Drücken Sie Strg, und ziehen Sie das Objekt an die gewünschte Stelle.

Form Builder zeigt das Dialogfeld Kopie/Unterklasse an.

3	Klicken Sie auf Kopie.


Über das Einordnen in Unterklassen

  Verwandte Themen

Wenn Sie ein Objekt in eine Unterklasse einordnen, erstellen Sie ein Objekt, das seine Funktionalität und sein Erscheinungsbild von einem anderen Objekt übernimmt.

Das Einordnen eines Objekts in eine Unterklasse kann mit dem Kopieren eines Objekts verglichen werden, nur behält das Unterklassenobjekt eine Verknüpfung zu dem Quellobjekt bei. Ein Unterklassenobjekt übernimmt automatisch alle Änderungen, die an dem Quellobjekt vorgenommen wurden, wenn Sie das Modul öffnen oder neu kompilieren, das das Unterklassenobjekt enthält, es sei denn, beide Module sind geöffnet. Wenn beide Module geöffnet sind, werden die Änderungen sofort übernommen.

Mit der Einordnung in Unterklassen können Sie:

•	eine unabhängige Unterklasse eines beliebigen Objekts erstellen.

•	automatisch Änderungen, die an dem Quellobjekt vorgenommen wurden, an jedes Unterklassenobjekt weiterleiten.

•	Attribute und Struktur eines Unterklassenobjekts außer Kraft setzen.

Wenn das Einordnen in Unterklassen in Verbindung mit der Objektbibliothek vorgenommen wird, stellt dies eine leistungsfähige Methode zur Definition und Durchsetzung intuitiver Anforderungen dar. Ein Objekt, das in der Objektbibliothek gespeichert ist, kann in Form- und Menümodule eingeordnet werden, um von der übergeordneten Klasse unabhängige Instanzen zu erstellen.


Richtlinien für das Einordnen von Objekten in Unterklassen

    Verwandte Themen

Wenn Sie Objekte in Unterklassen einordnen, berücksichtigen Sie folgende Richtlinien:

•	Wenn Sie ein Objekt in eine Unterklasse einordnen, werden die Objekte, die dem Quellobjekt gehören, in die Unterklasse eingeordnet und nicht die Objekte, die mit dem Quellobjekt verknüpft sind.

Wenn Sie z.B. einen Block in eine Unterklasse einordnen, sind die Grafik-Textbeschriftungen für Objekte in dem Block nicht enthalten. Grafiktext gehört der Leinwand, auf der er angezeigt wird. Um Grafiktext in eine Unterklasse einzuordnen, müssen Sie die gewünschte Leinwand in eine Unterklasse einordnen.

•	Wenn Sie ein Objekt modulübergreifend in eine Unterklasse einordnen, müssen sowohl das Quellmodul als auch das Zielmodul geöffnet sein, und das Quellmodul muß schon entweder im Dateisystem oder der Datenbank gespeichert worden sein.

•	Gehen Sie beim Löschen von Quellobjekten mit Vorsicht vor. Durch das Löschen eines Quellobjekts werden die Verknüpfungen zu den Unterklassenobjekten unterbrochen.

•	Gehen Sie beim Ändern des Namens eines Quellobjekts mit Vorsicht vor.

Sie können in die Funktionalität der Anwendung eingreifen, wenn Sie den Namen eines Objekts ändern, das in einem Trigger oder einem Programmblockcode referenziert wird oder das sich auf eine Datenbankspalte bezieht.

•	Gehen Sie mit Vorsicht vor, wenn Sie komplexe Werte (z.B. Listenelemente) außer Kraft setzen.

•	Wenn Sie einen Programmblock ändern, der in eine Unterklasse eingeordnet wurde, müssen die Unterklassen-Programmblöcke neu kompiliert werden.

•	Sie müssen die Attributpalette benutzen, um in Unterklassen eingeordneten Code zu ändern. Wenn Sie in Unterklassen eingeordneten Code im PL/SQL-Editor ändern, wird die Verknüpfung zu dem Quellobjekt unterbrochen.


Objekte in Unterklassen einordnen

  Verwandte Themen

So ordnen Sie ein Objekt in einer Unterklasse ein:

1	Klicken Sie auf das gewünschte Objekt im Objektnavigator oder in der Objektbibliothek. Danach drücken Sie Strg und ziehen das Objekt an die gewünschte Stelle.

Form Builder zeigt das Dialogfeld Kopie/Unterklasse an.

2	Klicken Sie auf Unterklasse.

Form Builder erstellt ein in einer Unterklasse eingeordnetes Objekt. Wenn der Name des Unterklassenobjekts mit dem Namen eines bestehenden Objekt kollidiert, weist Form Builder dem Unterklassenobjekt einen neuen Namen zu. Ein Unterklassenobjekt wird im Objektnavigator mit einem Pfeilsymbol hinter dem Namen angezeigt, um anzugeben, daß es von einem anderen Objekt in eine Unterklasse eingeordnet wurde


Quellobjekte ändern

  Verwandte Themen

So ändern Sie ein Quellobjekt:

1	Öffnen Sie das Quellmodul (.FMB oder .MMB), wenn es noch nicht geöffnet ist.

2	Ändern Sie das Quellobjekt nach Bedarf.

Form Builder leitet Änderungen an dem Quellobjekt automatisch an jedes Unterklassenobjekt weiter, wenn das Modul, das das Unterklassenobjekt enthält, das nächste Mal geöffnet wird.


Über das Ändern von Unterklassenobjekten

  Verwandte Themen

Sie können ein Unterklassenobjekt wie folgt ändern:

•	Stellen Sie die Attribute des Objekts wie gewünscht ein, wobei Attribute entsprechend außer Kraft gesetzt oder vererbt werden.

Benutzen Sie die Attributpalette, um die Attribute eines Unterklassenobjekts schnell anzuzeigen. In der Attributpalette wird neben Unterklassenattributen ein Pfeil, neben Standardwerten ein kleiner Kreis, neben Nicht-Standardwerten ein Quadrat und neben lokalen Außerkraftsetzungen ein Pfeil/Häkchen angezeigt.

•	Ändern Sie den Unterklassencode nach Bedarf.

Benutzen Sie die Attributpalette, um Unterklassentrigger und Programmblöcke zu ändern.

Hinweis:  Benutzen Sie den PL/SQL-Editor nicht, um den Unterklassencode zu ändern. Sonst wird die Verknüpfung zu dem Quellobjekt unterbrochen.


Unterklassenobjekte ändern

  Verwandte Themen

So ändern Sie ein Unterklassenobjekt:

1	Klicken Sie im Objektnavigator auf das gewünschte Objekt.

2	Wählen Sie Werkzeuge [image] Attributpalette.

3	Ändern Sie das Objekt nach Bedarf.


Attribute auf den vererbten Wert zurücksetzen

So setzen Sie ein Attribut auf den vererbten Wert zurück:

1	Klicken Sie in der Attributpalette auf das gewünschte Attribut.

2	Klicken Sie auf die Schaltfläche Vererben in der Symbolleiste der Attributpalette.

Das Attribut erbt die Einstellung des entsprechenden Attributs im Quellobjekt.

Hinweis:  Der Befehl Vererben in der Symbolleiste der Attributpalette ist die einzige Möglichkeit, ein variantes Attribut in ein vererbtes Attribut zu konvertieren. Wenn Sie ein variantes Attribut einfach auf denselben Wert wie das Attribut in der Klasse einstellen, wird dadurch kein vererbtes Attribut erstellt. Statt dessen wird ein variantes Attribut erstellt, das zufälligerweise denselben Wert wie das Attribut in der Klasse hat. Wenn Sie die Attributeinstellungen in der Klasse danach aktualisieren, ist das Attribut immer noch variant und erbt also die Änderung nicht.


Über Unterklasseninformationen

  Verwandte Themen

Während der Lebensdauer einer Anwendung müssen Informationen über die Quelle für ein in eine Unterklasse eingeordnetes Objekt möglicherweise aktualisiert werden.

Wenn z.B. der Name des Quellobjekts geändert wurde, kann Form Builder das Objekt nicht finden, wenn Sie ein Modul kompilieren, das dieses Objekt referenziert. Wenn Sie ein Quellmodul aus dem Dateisystem in die Datenbank verschieben, werden ebenfalls Referenzen auf dieses Modul ungültig.

Sie können Informationen über die Quelle eines in eine Unterklasse eingeordneten Objekts aktualisieren, indem Sie das Attribut Unterklasseninformation einstellen.

Die Definition eines Unterklassenobjekts umfaßt Informationen über das Quellobjekt, auf dem es basiert, einschließlich dem Namen des Quellobjekts, dem Namen des Quellmoduls und dem Speicherort (Dateisystem oder Datenbank).

Hinweis:  Bei der Änderung der Unterklasseninformation eines Objekts muß mit Vorsicht vorgegangen werden. Wenn Sie den Namen oder Speicherort des Quellobjekts falsch eingeben, werden für die vererbten Attribute des Objekts wieder die Standardwerte für diesen Objekttyp verwendet.


Unterklasseninformationen eines Objekts aktualisieren

  Verwandte Themen

So aktualisieren Sie Unterklasseninformationen eines Objekts:

1	Doppelklicken Sie im Objektnavigator auf das Unterklassenobjekt, um die Attributpalette anzuzeigen.

2	Unter dem Knoten Allgemein doppelklicken Sie auf das Attribut Unterklasseninformation und stellen die Attribute im Dialogfeld Unterklasseninformation entsprechend ein:

Zugriff:  Speicherort des Quellmoduls (Datei oder Datenbank)

Typ:  Typ des Quellmoduls (Form oder Menü)

Modul:  Name des Quellmoduls, das das Quellobjekt für das Unterklassenobjekt enthält

Objektname:  Name des Quellobjekts


Über Attributklassen

  Verwandte Themen

Eine Attributklasse ist ein benanntes Objekt, das eine Liste mit Attributen und deren Einstellungen enthält. Nachdem Sie eine Attributklasse erstellt haben, können Sie andere Objekte auf dieser Attributklasse basieren. Ein auf einer Attributklasse basierendes Objekt kann die Einstellung jedes Attributs in der Klasse erben, das für dieses Objekt sinnvoll ist.

Die Vererbung von Attributklassen ist eine Instanz der Einordnung in Unterklassen. Sie können sich eine Attributklasse als universelle übergeordnete Klasse einer Unterklasse betrachten.

In einer Attributklasse kann eine beliebige Anzahl von Attributen vorhanden sein, und die Attribute in einer Attributklasse können für verschiedene Typen von Objekten angewendet werden. So kann eine Attributklasse z.B. einige Attribute enthalten, die für alle Objekttypen gemeinsam sind, einige Attribute, die nur für Textobjekte gelten, und einige, die nur für Kontrollkästchen gelten.

Wenn Sie ein Attribut auf einer Attributklasse basieren, haben Sie vollständige Kontrolle darüber, welche Attribute das Objekt von der Klasse erben soll und welche Attribute lokal außer Kraft gesetzt werden sollen.

Attributklassen sind separate Objekte und können als solche nach Bedarf zwischen Modulen kopiert werden. Was möglicherweise noch wichtiger ist, Attributklassen können in einer beliebigen Anzahl von Modulen in Unterklassen eingeordnet werden.


Richtlinien für das Erstellen von Attributklassen

  Verwandte Themen

Wenn Sie mit Attributklassen arbeiten, berücksichtigen Sie folgende Richtlinien:

•	Sie können Attributklassen in Form- und Menümodulen definieren:

•	Nachdem Sie eine Attributklasse erstellt haben, können Sie Attribute nach Bedarf zu der Attributklasse hinzufügen bzw. aus ihr entfernen. Sie können Attribute nacheinander oder mit den Befehlen Kopieren/Einfügen hinzufügen.

Gelegentlich werden Sie einige Attribute entfernen, so daß die Klassendefinition nur Attribute enthält, die Objekte, die auf der Klasse basieren, tatsächlich erben.

So könnten Sie z.B. eine Attributklasse für die Definition eines bestehenden Textobjekts erstellen, damit Sie dieselben Schriftart- und Höheneigenschaften für andere Textobjekte anwenden können. Die neue Attributklasse würde jedoch auch die Attribute X-Position und Y-Position enthalten. Da diese Attribute Anzeigekoordinaten definieren, die nahezu für jedes Textobjekt außer Kraft gesetzt werden müssen, das auf der Klasse basiert, möchten Sie diese möglicherweise aus der Klassendefinition entfernen.

•	Wenn Sie ein Objekt auf einer Attributklasse basieren, werden die Attribute dieses Objekts wie folgt aktualisiert:

•	Attribute, für die ein entsprechendes Attribut in der Attributklasse vorhanden ist, werden so aktualisiert, daß sie der Einstellung der Attributklasse entsprechen.

•	Attribute, für die es kein entsprechendes Attribut in der Attributklasse gibt, bleiben unverändert.

•	Wenn Sie Attribute aus einer Attributklasse entfernen oder ein Objekt ändern, das nicht mehr auf einer Attributklasse basiert, werden für die Attribute, die das Objekt von der Klasse geerbt hat, wieder die Standardeinstellungen benutzt.

•	Attributklassen können nur von anderen Attributklassen erben.

•	Attributklassen entsprechen benannten visuellen Attributen, es gibt jedoch einige wichtige Unterschiede, die Sie berücksichtigen sollten:

•	Benannte visuelle Attribute definieren nur Schriftart-, Farb- und Musterattribute; Attributklassen können diese und andere Attribute enthalten.

•	Sie können das Erscheinungsbild von Objekten zur Laufzeit ändern, indem Sie das benannte visuelle Attribut programmgesteuert ändern; die Zuweisung von Attributklassen kann nicht programmgesteuert geändert werden.

•	Wenn ein Objekt sowohl von einer Attributklasse als auch von einem benannten visuellen Attribut erbt, sind die Einstellungen des benannten visuellen Attributs vorrangig, und andere visuelle Attribute in der Klasse werden ignoriert.


Über das Ändern von Attributklassen

  Verwandte Themen

Wenn ein Objekt auf einer Attributklasse basiert, können Sie die Definition des Objekts oder der Attributklasse wie folgt ändern:

•	Stellen Sie die Attribute des Objekts wie gewünscht ein, wobei Attribute entsprechend außer Kraft gesetzt oder vererbt werden.

•	Fügen Sie Attribute zu der Attributklasse hinzu bzw. entfernen Sie sie.

•	Basieren Sie das Objekt auf einer anderen Attributklasse.

•	Lösen Sie die Verknüpfung zwischen dem Objekt und der Attributklasse auf, indem Sie für das Attribut Unterklasseninformation <Null> angeben.

Attribute, die ihren Wert von einer Attributklasse erben, werden mit einem Pfeilsymbol vor dem Attributnamen angezeigt. Wenn ein Objekt auf einer Klasse basiert, können Sie die Einstellung des vererbten Attributs außer Kraft setzen, um das Attribut variant zu machen. Variante Attribute und Attribute, für die kein entsprechendes Attribut in der Klasse vorhanden ist, werden normal ohne das Pfeilsymbol angezeigt.


Attributklassen erstellen

  Nächster Schritt	    Verwandte Themen

So erstellen Sie eine Attributklasse im Objektnavigator:

1	Klicken Sie im Objektnavigator auf den Knoten Attributklassen.

2	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

Daraufhin wird unter dem Knoten ein Attributklassenobjekt mit einem Standardnamen eingefügt.


Attribute in einer Attributklasse anzeigen

  Verwandte Themen

So zeigen Sie die Definition einer Attributklasse an:

1	Klicken Sie im Objektnavigator auf den Knoten Attributklassen.

2	Doppelklicken Sie auf das gewünschte Objektsymbol der Attributklasse, um die Attribute anzuzeigen.


Attribute zu einer Attributklasse hinzufügen

So fügen Sie ein einzelnes Attribut zu einer Attributklasse hinzu:

1	Klicken Sie im Objektnavigator auf den Knoten Attributklassen.

2	Doppelklicken Sie auf das Objektsymbol der gewünschten Attributklasse, um die Attributpalette anzuzeigen.

3	Klicken Sie auf die Schaltfläche Attribut hinzufügen in der Symbolleiste der Attributpalette.

4	Im Dialogfeld Attribute hinzufügen gehen Sie folgendermaßen vor:

Klicken Sie auf das Attribut, das zu der Attributklasse hinzugefügt werden soll.

Klicken Sie auf OK.

5	In der Attributpalette stellen Sie das neue Attribut wie gewünscht ein.

So kopieren Sie Attribute in eine Attributklasse:

Mit dem Befehl Attribute kopieren kopieren Sie die Attribute von bestehenden Objekten. Danach benutzen Sie den Befehl Attribute einfügen, um diese Attribute und deren Einstellungen in die Attributklasse einzufügen.


Attributklassen ändern

  Verwandte Themen

So ändern Sie ein Attribut in einer Attributklasse:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol für die gewünschte Attributklasse.

2	Ändern Sie die gewünschten Attribute in der Attributpalette.


Attribute aus einer Attributklasse entfernen

  Verwandte Themen

So entfernen Sie ein Attribut aus einer Attributklasse:

1	Klicken Sie im Objektnavigator auf den Knoten Attributklassen.

2	Doppelklicken Sie auf das Objektsymbol für die gewünschte Attributklasse.

3	Klicken Sie in der Attributklasse auf das zu entfernende Attribut, um es auszuwählen.

4	Klicken Sie auf die Schaltfläche Attribut löschen in der Symbolleiste der Attributpalette.


Objekte auf einer Attributklasse basieren

  Verwandte Themen

So basieren Sie ein Objekt auf einer Attributklasse:

1	Klicken Sie im Objektnavigator auf das gewünschte Objekt.

2	Wählen Sie Werkzeuge [image] Attributpalette.

3	Unter dem Knoten Allgemein:

•	Doppelklicken Sie auf das Attribut Unterklasseninformation.

•	Im Dialogfeld Unterklasseninformation klicken Sie auf Attributklasse.

•	Im Feld Attributklassenname wählen Sie die gewünschte Attributklasse.


Objekte ändern, die auf einer Attributklasse basieren

  Verwandte Themen

So ändern Sie ein Objekt, das auf einer Attributklasse basiert:

1	Klicken Sie im Objektnavigator auf das gewünschte Objekt.

2	Ändern Sie das Objekt nach Bedarf.

Wenn Sie die Einstellung eines vererbten Attributs ändern, wird der Pfeil vor dem Attributnamen ausgewählt, um anzugeben, daß das Attribut seinen Wert nicht mehr von der zugrundeliegenden Attributklasse erbt.


Über die Definition von Triggern in Attributklassen

 Verwandte Themen

Sie können einen Trigger in einer Attributklasse definieren, wenn Forms, Blöcke oder Objekte, die auf der Klasse basieren, den Trigger erben sollen. Wenn ein auf einer Attributklasse basierendes Objekt einen Trigger erbt, führt es den Trigger infolge des triggerauslösenden Ereignisses aus, genau so, als hätten Sie den Trigger dem Objekt direkt zugeordnet.

Der neue Trigger wird unter dem Knoten Trigger für die Attributklasse angezeigt.

Nachdem Sie einen Trigger in einer Attributklasse definiert haben, erben Forms, Blöcke oder Objekte, die auf der Klasse basieren, den Trigger. Wenn Sie z.B. einen When-Button-Pressed-Trigger in einer Attributklasse definieren, erben Forms, Blöcke oder Objekte vom Typ Schaltfläche, die auf der Attributklasse basieren, den When-Button-Pressed-Trigger. Zur Laufzeit verhalten sich diese Objekte genau so, als hätten Sie den When-Button-Pressed-Trigger jedem dieser Objekte direkt zugeordnet.

Sie können das Vererben von Triggern durch die Attributklasse außer Kraft setzen, indem Sie dem Objekt, das einen Trigger erbt, direkt einen Trigger desselben Typs zuordnen. Wenn Sie also einen When-Button-Pressed-Trigger einer Schaltfläche zuordnen, die schon einen When-Button-Pressed-Trigger von der Attributklasse erbt, setzt der der Attributklasse zugeordnete Trigger den Trigger außer Kraft, den die Schaltfläche von der Klasse erbt.

Wenn Sie einen Trigger in einer Attributklasse definieren, erben die Forms, Blöcke und Objekte, die auf der Klasse basieren, den Trigger nur, wenn er für diesen Objekttyp gültig ist. Wenn Sie z.B. ein Textobjekt auf einer Klasse basieren, die einen When-Button-Pressed-Trigger enthält, wird der Trigger ignoriert, weil When-Button-Pressed-Trigger nur für Schaltflächen gültig sind. Gleichermaßen würde ein Kontrollkästchen einen When-Timer-Expired-Trigger nicht erben, weil ein When-Timer-Expired-Trigger nur für Forms gültig ist - und nicht für Blöcke oder Objekte.

Hinweis:  Wenn Sie einen Trigger in einer Attributklasse definieren, wird der Trigger im Objektnavigator unter dem Knoten Trigger für die Klasse angezeigt, wird jedoch nicht unter dem Knoten Trigger für Objekte angezeigt, die auf der Klasse basieren.


Trigger in einer Attributklasse definieren

So definieren Sie einen Trigger in einer Attributklasse:

1	Klicken Sie im Objektnavigator auf den Knoten Trigger unter der Attributklasse.

2	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

3	Wählen Sie in dem daraufhin angezeigten Dialogfeld den gewünschten Trigger aus der Werteliste.

Daraufhin wird der ausgewählte Trigger in dem PL/SQL-Editor angezeigt.

4	Geben Sie den gewünschten Triggercode ein, und kompilieren Sie ihn. Danach wählen Sie Schließen, um den Editor zu schließen.


Über visuelle Attribute

  Verwandte Themen

Visuelle Attribute sind Schriftart-, Farb- und Musterattribute, die Sie für Form- und Menüobjekte einstellen, die auf der Oberfläche der Anwendung angezeigt werden. Visuelle Attribute können folgendes umfassen:

•	Schriftartattribute: Schriftartname, Schriftgrad, Schriftstil, Schriftbreite, Schriftstärke

•	Farb- und Musterattribute: Vordergrundfarbe, Hintergrundfarbe, Füllmuster, Logisches Attribut Zeichenmodus, Weiß auf Schwarz

Jedes Oberflächenobjekt verfügt über ein Attribut Visuelle Attributgruppe, mit dem bestimmt wird, wie die einzelnen visuellen Attributeinstellungen des Objekts (Schriftgrad, Vordergrundfarbe usw.) abgeleitet werden. Das Attribut Visuelle Attributgruppe kann auf Standard, Null oder den Namen eines benannten visuellen Attributs eingestellt werden, das in demselben Modul definiert ist.

Es gibt verschiedene Möglichkeiten, die visuellen Attribute von Objekten einzustellen:

•	In der Attributpalette stellen Sie das Attribut Visuelle Attributgruppe wie gewünscht ein. Danach stellen Sie die einzelnen Attribute (Schriftartname, Vordergrundfarbe usw.) auf die gewünschten Einstellungen ein.

•	Wählen Sie im Layouteditor ein Objekt oder eine Leinwand aus, und wählen Sie dann die gewünschten Schriftart-, Farb- und Musterattribute aus dem Dialogfeld Schriftart sowie aus den Paletten für die Füll- und Textfarbe.

•	Definieren Sie ein benanntes visuelles Attributobjekt mit den entsprechenden Schriftart-, Farb- und Mustereinstellungen, und wenden Sie diese dann auf ein oder mehrere Objekte in demselben Modul an. Sie können die Einstellung eines benannten visuellen Attributs eines Objekts so ändern, daß Schriftart, Farbe und Muster des Objekts zur Laufzeit geändert werden.

•	Ordnen Sie ein visuelles Attribut in eine Unterklasse ein, das visuelle Attribute enthält, und basieren Sie dann Objekte auf diesem visuellen Attribut, die diese Attribute erben.

•	Erstellen Sie eine Attributklasse, die visuelle Attribute enthält, und basieren Sie dann Objekte auf dieser Attributklasse, die diese Attribute erben.


Über standardmäßige visuelle Attribute

Wenn Sie das Attribut Visuelle Attributgruppe auf Standard einstellen, bedeutet dies, daß das Objekt mit standardmäßigen Farb-, Muster- und Schriftarteinstellungen angezeigt wird. Wenn für Visuelle Attributgruppe Standard angegeben wurde, reflektieren die individuellen Attributeinstellungen die aktuellen Systemvorgaben. Die aktuellen Einstellungen werden durch eine Kombination von Faktoren bestimmt, einschließlich Objekttyp, benutzter Resource-Datei und Fensterverwaltungsprogramm.


Über benannte visuelle Attribute

  Verwandte Themen

Wenn Sie das Attribut Visuelle Attributgruppe auf ein benanntes visuelles Attribut einstellen, das im selben Modul definiert ist, bedeutet dies, daß das Objekt die Attributeinstellungen benutzen soll, die für das benannte visuelle Attribut definiert wurden. Ein benanntes visuelles Attribut ist ein separates Objekt in einem Form- oder Menümodul, das eine Sammlung von visuellen Attributen definiert. Nachdem Sie ein benanntes visuelles Attribut erstellt haben, können Sie es für jedes Objekt in demselben Modul anwenden, genau wie Stile in einem Textverarbeitungsprogramm.


Richtlinien für das Erstellen visueller Attribute

  Verwandte Themen

Wenn Sie mit visuellen Attributen arbeiten, beachten Sie folgende Richtlinien:

•	Wenn Sie ein benanntes visuelles Attribut für ein Objekt anwenden, werden nur die Attribute wirksam, die für dieses Objekt sinnvoll sind.

•	Wenn Sie Ihre Anwendung auf mehr als eine Plattform portieren möchten, sollten Sie benannte visuelle Attributeinstellungen benutzen.


Benannte visuelle Attribute erstellen

  Nächster Schritt	    Verwandte Themen

So erstellen Sie ein benanntes visuelles Attribut:

1	Klicken Sie im Objektnavigator auf den Knoten Visuelle Attribute.

2	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

Form Builder fügt ein neues benanntes visuelles Attribut ein.

3	Stellen Sie in der Attributpalette die Schriftart-, Farb- und Musterattribute des benannten visuellen Attributs wie gewünscht ein.


Objekte auf einem visuellen Attribut basieren

So basieren Sie ein Objekt auf einem visuellen Attribut:

1	Doppelklicken Sie im Objektnavigator auf das gewünschte Objekt, um die Attributpalette anzuzeigen.

2	Stellen Sie unter dem Knoten Visuelle Attribute das Attribut Visuelle Attributgruppe auf den Namen des benannten visuellen Attributs ein.


Visuelle Attribute ändern

So ändern Sie ein visuelles Attribut:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol des gewünschten visuellen Attributs, um die Attributpalette anzuzeigen.

2	Ändern Sie unter dem Knoten Visuelle Attribute die gewünschten Eigenschaften.


Über Objektgruppen

  Verwandte Themen

Eine Objektgruppe ist ein Container für eine Gruppe von Objekten. Sie definieren eine Objektgruppe, wenn Sie zusammengehörige Objekte zusammenfassen möchten, damit Sie sie in ein anderes Modul kopieren bzw. in einem anderen Modul in eine Unterklasse einordnen können.

Mit Objektgruppen können Objekte zu Bausteinen einer höheren Ebene gebündelt werden, die in anderen Teilen einer Anwendung und in späteren Entwicklungsobjekten benutzt werden können.

So können Sie z.B. einen Terminplaner in einer Form generieren und dann entscheiden, diesen anderen Forms in Ihrer Anwendung zur Verfügung zu stellen. Der Terminplaner würde wahrscheinlich aus mehreren Objekttypen bestehen, einschließlich einem Fenster und einer Leinwand, Blöcken und Objekten, in denen Datum und Termine angezeigt werden, sowie Trigger, die die Logik für die Planung und andere Funktionalität enthalten. Wenn Sie diese Objekte zu einer Objektgruppe zusammenfassen, könnten Sie sie in einem einfachen Schritt in eine beliebige Anzahl anderer Forms kopieren.

Sie können Objektgruppen in Form- und Menümodulen erstellen. Nachdem Sie eine Objektgruppe erstellt haben, können Sie Objekte wie gewünscht hinzufügen und entfernen.


Richtlinien für das Erstellen von Objektgruppen

  Verwandte Themen

Wenn Sie mit Objektgruppen arbeiten, berücksichtigen Sie folgende Richtlinien:

•	Wenn Sie einen Block in eine Objektgruppe ziehen, werden implizit alle Objekte aufgenommen, die dem Block gehören (Objekte, Trigger, Beziehungen). Objekte, die dem Block gehören, werden jedoch in der Liste mit untergeordneten Objektgruppen nicht unter diesem Block angezeigt.

•	In einer Objektgruppe können nur Objekte der obersten Ebene enthalten sein.

Objekte, die Blöcken gehören, können nicht unabhängig in eine Objektgruppe gestellt werden. Dies umfaßt Objekte, Trigger auf Objektebene, Trigger auf Blockebene und Beziehungen. Diese Objekte können nicht unabhängig von dem Block auftreten, in dem sie definiert wurden. Um diese Objekte in einer Objektgruppe aufzunehmen, müssen Sie den Block selbst aufnehmen, indem Sie das Blockobjekt im Objektnavigator in die Objektgruppe ziehen.

•	Die Objekte in einer Gruppe müssen alle in demselben Modul definiert werden; Sie können Objekte aus zwei verschiedenen Forms nicht in dieselbe Objektgruppe stellen.

•	Eine Objektgruppe darf keine andere Objektgruppe enthalten.

•	Wenn ein Objekt in einer Objektgruppe aus einem Modul gelöscht wird, wird es automatisch aus der Objektgruppe entfernt.

•	Wenn Sie eine Objektgruppe aus einem Modul löschen, werden die enthaltenen Objekte nicht aus dem Modul gelöscht.

•	In Objektgruppen werden keine Kopien von Objekten gespeichert, die diese enthalten, sondern Zeiger zu den Objekten. Durch das Definieren von Objektgruppen wird die Modulgröße nicht signifikant erhöht (es sei denn, die Objektgruppe ist eine Unterklasse).


Objektgruppen erstellen

  Verwandte Themen

So erstellen Sie eine Objektgruppe:

1	Klicken Sie im Objektnavigator auf den Knoten Objektgruppen.

2	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

Daraufhin wird unter dem Knoten eine Objektgruppe mit dem Standardnamen eingefügt. Wenn Sie doppelklicken, um das Objekt einzublenden, wird der Knoten Untergeordnete Objekte Objektgruppe angezeigt. Objekte, die Sie zu der Gruppe hinzufügen, werden unter diesem Knoten angezeigt.


Objekte zu einer Objektgruppe hinzufügen

  Verwandte Themen

So fügen Sie ein Objekt zu einer Objektgruppe hinzu:

1	Klicken Sie im Objektnavigator auf das +-Symbol neben dem Knoten Objektgruppen.

2	Ziehen Sie das gewünschte Objekt zu dem Knoten Untergeordnete Objekte Objektgruppe.


Objektgruppen ändern

So ändern Sie eine Objektgruppe:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol der gewünschten Objektgruppe, um die Attributpalette anzuzeigen.

2	Ändern Sie die gewünschten Attribute.


Objekte aus einer Objektgruppe entfernen

  Verwandte Themen

So entfernen Sie Objekte aus einer Objektgruppe:

1	Klicken Sie im Objektnavigator auf das zu entfernende Objekt.

2	Wählen Sie Navigator [image] Löschen.

Hinweis:  Wenn Sie ein Objekt aus einer Objektgruppe entfernen, wird das Objekt nicht aus dem Modul gelöscht.


Über Vorlagen-Forms

Jede Form kann als Vorlagen-Form benutzt werden. Mit Vorlagen-Forms können Sie Mitarbeitern und Kollegen einen standardmäßigen Ausgangspunkt beim Erstellen von Forms bereitstellen. Diese Vorlagen umfasen typischerweise allgemeine Objekte, wie Grafiken, Text, Bilder, Symbolleisten und Programmblöcke, auch wenn diese Objekte enthalten können, die in einer Form benutzt werden können. Wenn Sie eine Form basierend auf einer Vorlagen-Form erstellen, öffnet Form Builder die Vorlagen-Form und benennt sie um. Wenn Sie die neue Form speichern, überschreiben Sie die Vorlagen-Form auf diese Weise nicht.


Forms basierend auf einer Vorlagen-Form erstellen

So erstellen Sie eine Form basierend auf einer Vorlage:

1	Wählen Sie Datei [image] Neu [image] Form mit Vorlage.

2	Klicken Sie im Willkommen-Dialogfeld auf Form aufgrund einer Vorlage erstellen, um das Dialogfeld Öffnen anzuzeigen.

3	3  Wählen Sie eine Datei (.FMX), und klicken Sie dann auf Öffnen.


Code wiederverwenden

  Verwandte Themen

Es gibt verschiedene Möglichkeiten, Code, den Sie in Form Builder geschrieben haben, wiederzubenutzen:

•	Kopieren Sie Trigger oder Programmblöcke zwischen Modulen genau wie jeden anderen Objekttyp.

•	Ordnen Sie Trigger oder Programmblöcke in Unterklassen ein.

•	Erstellen Sie PL/SQL-Bibliotheken von Programmblöcken, die aus jedem Modul aufgerufen werden können, dem die PL/SQL-Bibliothek zugeordnet ist.

•	Ordnen Sie bestehende Trigger in anderen Modulen ein.


Über Standards der Forms Developer-Benutzeroberfläche

  Nächster Schritt	    Verwandte Themen

Anstatt eigene Standards für Benutzeroberflächen zu entwickeln, können Sie Anwendungen basierend auf Standards der Forms Developer-Benutzeroberfläche erstellen.

Forms Developer umfaßt zwei Gruppen von Standards für Benutzeroberflächen:

Allgemeine Standards	Werden für Multiplattform-Anwendungen empfohlen, bei denen mehrere Sprachen unterstützt werden müssen.
Win95-Standards	Werden für Nur-Windows95-Anwendungen empfohlen, bei denen nicht mehrere Sprachen unterstützt werden müssen.
Die Standards der Forms Developer-Benutzeroberfläche sind in Objektbibliotheken enthalten. Um die Standards zu benutzen, öffnen Sie einfach eine Objektbibliothek, und ziehen Sie das gewünschte Objekt aus der Objektbibliothek zu einem Knoten im Objektnavigator. Sie können Objekte, die in der Objektbibliothek vorhanden sind, auch in Unterklassen einordnen.


Win95-Oberflächenstandards für meine Objekte anwenden
Die Forms Developer-Benutzeroberflächenstandards für Win95 verwenden

  Verwandte Themen

Ich möchte Win95-Benutzeroberflächenstandards für folgende Objekte verwenden...

•	Schaltflächen

•	Kontrollkästchen

•	Anzeigeobjekte

•	Listenobjekte

•	Optionsgruppen

•	Textobjekte

•	Textobjekte mit Datumsformat


Win95-Oberflächenstandards für eine Schaltfläche anwenden

So erstellen Sie eine Standardschaltfläche:

1	Wählen Sie Datei [image] Öffnen.

2	Im Dialogfeld Öffnen doppelklicken Sie auf STNDRD20.OLB.

3	Klicken Sie im Objektnavigator auf das gewünschte Objekt.

4	Klicken Sie mit der rechten Maustaste, um das Popup-Menü anzuzeigen.

5	Wählen Sie SmartClasses, und wählen Sie dann die gewünschte Schaltfläche SmartClass.

6	(Optional) Doppelklicken Sie im Objektnavigator auf das Objektsymbol Stndrd20.

7	(Optional) Klicken Sie in der Objektbibliothek auf das Register V_ATTRS, und ziehen Sie STD_TEXT_ITEM, STD_PROMPT und STD_CURRENT_RECORD zu dem Knoten Visuelle Attribute im Objektnavigator.


Win95-Oberflächenstandards für ein Kontrollkästchen anwenden

So erstellen Sie ein Standardkontrollkästchen:

1	Wählen Sie Datei [image] Öffnen.

2	Im Dialogfeld Öffnen doppelklicken Sie auf STNDRD20.OLB.

3	Klicken Sie im Objektnavigator auf das gewünschte Objekt.

4	Klicken Sie mit der rechten Maustaste, um das Popup-Menü anzuzeigen.

5	Wählen Sie SmartClasses, und wählen Sie dann STD_CHECKBOX aus.

6	(Optional) Doppelklicken Sie im Objektnavigator auf das Objektsymbol Stndrd20.

7	(Optional) Klicken Sie in der Objektbibliothek auf das Register V_ATTRS, und ziehen Sie STD_TEXT_ITEM und STD_PROMPT zu dem Knoten Visuelle Attribute im Objektnavigator.


Win95-Oberflächenstandards für ein Anzeigeobjekt anwenden

So wenden Sie ein Standard-Datumsformat für ein Textobjekt an:

1	Wählen Sie Datei [image] Öffnen.

2	Im Dialogfeld Öffnen doppelklicken Sie auf STNDRD20.OLB.

3	Klicken Sie im Objektnavigator auf das gewünschte Objekt.

4	Klicken Sie mit der rechten Maustaste, um das Popup-Menü anzuzeigen.

5	Wählen Sie SmartClasses, und wählen Sie dann STD_TEXT_ITEM_DISPLAY aus.

6	(Optional) Doppelklicken Sie im Objektnavigator auf das Objektsymbol Stndrd20.

7	(Optional) Klicken Sie in der Objektbibliothek auf das Register V_ATTRS, und ziehen Sie STD_TEXT_ITEM, STD_PROMPT und STD_CURRENT_RECORD zu dem Knoten Visuelle Attribute im Objektnavigator.


Win95-Oberflächenstandards für ein Listenobjekt anwenden

So erstellen Sie ein Standard-Listenobjekt:

1	Wählen Sie Datei [image] Öffnen.

2	Im Dialogfeld Öffnen doppelklicken Sie auf STNDRD20.OLB.

3	Klicken Sie im Objektnavigator auf das gewünschte Objekt.

4	Klicken Sie mit der rechten Maustaste, um das Popup-Menü anzuzeigen.

5	Wählen Sie SmartClasses, und wählen Sie dann STD_LIST_ITEM aus.

6	(Optional) Doppelklicken Sie im Objektnavigator auf das Objektsymbol Stndrd20.

7	(Optional) Klicken Sie in der Objektbibliothek auf das Register V_ATTRS, und ziehen Sie STD_TEXT_ITEM, STD_PROMPT und STD_CURRENT_RECORD zu dem Knoten Visuelle Attribute im Objektnavigator.


Win95-Oberflächenstandards für eine Optionsgruppe anwenden

So wenden Sie ein Standard-Datumsformat für ein Textobjekt an:

1	Wählen Sie Datei [image] Öffnen.

2	Im Dialogfeld Öffnen doppelklicken Sie auf STNDRD20.OLB.

3	Klicken Sie im Objektnavigator auf das gewünschte Objekt.

4	Klicken Sie mit der rechten Maustaste, um das Popup-Menü anzuzeigen.

5	Wählen Sie SmartClasses, und wählen Sie dann STD_RADIO_GROUP aus.

6	(Optional) Doppelklicken Sie im Objektnavigator auf das Objektsymbol Stndrd20.

7	(Optional) Klicken Sie in der Objektbibliothek auf das Register V_ATTRS, und ziehen Sie STD_TEXT_ITEM zu dem Knoten Visuelle Attribute im Objektnavigator.


Win95-Oberflächenstandards für ein Textobjekt anwenden

So erstellen Sie ein Standard-Textobjekt:

1	Wählen Sie Datei [image] Öffnen.

2	Im Dialogfeld Öffnen doppelklicken Sie auf STNDRD20.OLB.

3	Klicken Sie im Objektnavigator auf das gewünschte Objekt.

4	Klicken Sie mit der rechten Maustaste, um das Popup-Menü anzuzeigen.

5	Wählen Sie SmartClasses, und wählen Sie dann STD_TEXT_ITEM aus.

6	(Optional) Doppelklicken Sie im Objektnavigator auf das Objektsymbol Stndrd20.

7	(Optional) Klicken Sie in der Objektbibliothek auf das Register V_ATTRS, und ziehen Sie STD_TEXT_ITEM, STD_PROMPT und STD_CURRENT_RECORD zu dem Knoten Visuelle Attribute im Objektnavigator.


Standard-Datumsformate für ein Textobjekt anwenden

So wenden Sie ein Standard-Datumsformat für ein Textobjekt an:

1	Wählen Sie Datei [image] Öffnen.

2	Im Dialogfeld Öffnen doppelklicken Sie auf STNDRD20.OLB.

3	Klicken Sie im Objektnavigator auf das gewünschte Objekt.

4	Klicken Sie mit der rechten Maustaste, um das Popup-Menü anzuzeigen.

5	Wählen Sie SmartClasses, und wählen Sie dann das gewünschte Datumsformat.

6	(Optional) Doppelklicken Sie im Objektnavigator auf das Objektsymbol Stndrd20.

7	(Optional) Klicken Sie in der Objektbibliothek auf das Register V_ATTRS, und ziehen Sie STD_TEXT_ITEM, STD_PROMPT und STD_CURRENT_RECORD zu dem Knoten Visuelle Attribute im Objektnavigator.


Über gespeicherte Programme

  Verwandte Themen

Eine gespeicherte Prozedur bzw. gespeicherte Funktion ist ein PL/SQL-Unterprogramm in der Datenbank, das anhand des Namens von einer Anwendung aus aufgerufen werden kann. Form Builder unterstützt die Anwendungsunterteilung durch Ziehen und Ablegen mit Hilfe gespeicherter PL/SQL-Unterprogramme. Bei Anwendungen für die Verwendung mit Oracle8 Server können Aufrufe an server-seitige gespeicherte Unterprogramme direkt im PL/SQL-Code von Form Builder-Triggern und benutzerdefinierten Unterprogrammen enthalten sein. Innerhalb von Form Builder-Triggern und benutzerdefinierten Unterprogrammen können Sie Prozeduren und Funktionen ausführen, die in einem PL/SQL-Paket definiert sind, sowie auf jedes der Unterprogramme zugreifen, die sich entweder auf dem lokalen oder entfernten Datenbank-Server befinden.

Die Verarbeitung innerhalb der Form wird unterbrochen, bis die Ausführung der gespeicherten Prozedur oder Funktion beendet ist, so daß bei der Beurteilung der Antwortzeit die Netzwerk- und Datenbanklast in Betracht gezogen werden muß. Wenn ein Benutzer eine gespeicherte Prozedur oder Funktion zum ersten Mal ausführt, wird der ausführbare Code im gemeinsam genutzten globalen Bereich von Oracle8 abgelegt. Da sich der Code im Cache befindet, erfolgen weitere Zugriffe auf das ausführbare Programm schneller. Wird ein Unterprogramm innerhalb eines Pakets zum ersten Mal referenziert, wird das gesamte Paket geladen und zur gemeinsamen Nutzung verfügbar.

Die Verwendung eines gespeicherten Unterprogramms anstelle eines lokalen Form Builder-Unterprogramms empfiehlt sich, wenn eine Prozedur oder Funktion Standardfunktionen bietet, die auch andere Werkzeuge nutzen können, wie beispielsweise Validierung und Berechnung. Gespeicherte Unterprogramme können auch sehr gut verwendet werden, wenn zahlreiche DML-Vorgänge durchgeführt werden, die der Server als Bündel verarbeiten kann.


Über Standardwerte für formale Parameter

 Beispiele	     Verwandte Themen

Standardwerte für formale Parameter werden nicht unterstützt. Sie können jedoch ein gespeichertes Paket erstellen, das folgendes enthält:

•	überladene Prozedurspezifikation in der Paketspezifikation

•	eine private Implementierung unter Verwendung von Standardparametern im Paketrumpf


Beispiele für Standardwerte für formale Parameter

/*

Create a stored procedure with zero, one, or two VARCHAR2 arguments. The following 'Test' package procedure can be invoked by any of the following:
  test.test;
  test.test('Hi');
  test.test('Hi','There');
*/
CREATE PACKAGE Test IS
PROCEDURE Test;
PROCEDURE Test(a VARCHAR2 );
PROCEDURE Test(a VARCHAR2,
               b VARCHAR2);
END Test;

CREATE PACKAGE BODY Test IS
   PROCEDURE Private_Test( a in VARCHAR2 := 'Hello'
       b in VARCHAR2 := 'There')  IS

   BEGIN
      Dbms_Output.Put_Line(a);
      Dbms_Output.Put_Line(b);
   END;

   PROCEDURE Test IS
   BEGIN
      Private_Test;
   END;

   PROCEDURE Test(a VARCHAR2) IS
   BEGIN
      Private_Test (a);
   END;

   PROCEDURE Test(a VARCHAR2 , b VARCHAR2) IS
   BEGIN
      Private_Test (a, b);
   END;

END Test;


Über den Zugriff auf Unterprogramme im Schema eines anderen Benutzers

 Beispiele	     Verwandte Themen

Um auf ein Unterprogramm im Schema eines anderen Benutzers oder in einer entfernten Datenbank zuzugreifen, müssen Sie ein Synonym erstellen, um den Benutzernamen bzw. den Namen des Datenbank-Links (Db_Link) vor dem PL/SQL-Compiler zu verbergen, so daß das Ergebnis folgende Form hat:

•	ProcSynonym(arg1,...,argN)

•	FuncSynonym(arg1,...,argN)

•	PackSynonym.ProcName(arg1,...,argN)

•	PackSynonym.FuncName(arg1,...,argN)

Sie können Synonyme als Alternativbezeichnungen für entfernt gespeicherte Programme erstellen, um den Benutzernamen und den Datenbank-Link zu verbergen:

•	Subprogram@DbLink

•	Package@DbLink

•	Package.Subprogram@DbLink

•	Schema.Subprogram@DbLink

•	Schema.Package

•	Schema.Package@DbLink

•	Schema.Package.Subprogram@DbLink

Hierbei ist Subprogram entweder eine Prozedur oder eine Funktion.


Beispiele für den Zugriff auf Unterprogramme im Schema eines anderen Benutzers

Um die vordefinierte Funktion 'LIBOWNER.LIB_HR.GET_SSN' aufzurufen, könnten Sie folgendermaßen ein Synonym für das Paket LIB_HR erstellen, das den Schemanamen (den Eigentümernamen) beinhaltet:

CREATE SYNONYM lib_hr_syn
FOR libowner.lib_hr;

Danach könnten Sie die Funktion wie folgt innerhalb Ihrer Form aufrufen:

ss_num := lib_hr_syn.get_ssn(:Emp.Empno);

Befindet sich die vordefinierte Funktion beispielsweise an einem entfernten Ort, auf den über einen Datenbank-Link namens basel zugegriffen werden kann, könnten Sie ein Synonym für das Paket erstellen, das den Namen des Datenbank-Links enthält:

CREATE SYNONYM basel_lib_hr_syn
FOR libowner.lib_hr@basel;

Sie könnten die Funktion dann wie folgt innerhalb Ihres PL/SQL-Codes aufrufen:

ss_num := basel_lib_hr_syn.get_ssn(:Emp.Empno);

Sie könnten natürlich auch ein Synonym für die eigentliche Funktion erstellen und dadurch sowohl die Schemaangabe als auch den Namen des Datenbank-Links verbergen:

CREATE SYNONYM basel_lib_hr_get_ssn_syn
FOR libowner.lib_hr.get_ssn@basel;

Sie würden die Funktion dann folgendermaßen von Form Builder aus aufrufen:

ss_num := basel_lib_hr_get_ssn_syn(:Emp.Empno);

Die oben verwendeten Synonyme hätten natürlich bei Bedarf auch als Synonyme vom Typ PUBLIC SYNONYMS erstellt werden können.


Über das Auflösen von Unterprogrammnamen

  Verwandte Themen

Beim Kompilieren einer Form kann der PL/SQL-Compiler auf den Namen eines Bezeichners stoßen, bei dem es sich um eine Prozedur oder Funktion handeln könnte. Der PL/SQL-Compiler verwendet ein Prioritätsverfahren, um mehrdeutige Fälle aufzulösen.

Stößt der Compiler auf einen Bezeichner wie etwa PROCNAME, der die Struktur einer Prozedur oder Funktion hat, verwendet er die erste gefundene Übereinstimmung bei folgender Suchreihenfolge:

1	Ist die Prozedur oder Funktion innerhalb des aktuellen PL/SQL-Blocks definiert?

2	Handelt es sich um einen standardmäßigen PL/SQL-Befehl?

3	Handelt es sich um eine vordefinierte Unterprogrammprozedur oder -funktion von Form Builder?

4	Handelt es sich um eine benutzerdefinierte Prozedur oder Funktion?

5	Ist die Prozedur oder Funktion im Paket DBMS_STANDARD auf seiten des Servers definiert?

6	Hat der aktuelle Benutzer Zugriff auf eine solche server-seitige Prozedur oder Funktion?

Lauten die Antworten auf alle diese Fragen "Nein", meldet der Compiler einen Fehler:

PL/SQL error 313 at line xxx, column yyy
'PROCNAME' not declared in this scope
or
PL/SQL error 201 at line xxx, column yyy
identifier 'FUNCTNAME' must be declared.


Über Berechtigungen für gespeicherte Prozeduren

  Verwandte Themen

Sie können gespeicherte Prozeduren direkt im Designer erstellen, bearbeiten, kompilieren und durchgehen, sofern Sie die entsprechenden Berechtigungen haben.

Ausführen	Ermöglicht dem Benutzer, das in einem gespeicherten Programmblock definierte, öffentliche Unterprogramm auszuführen. Öffentliche Unterprogramme werden in der Paketspezifikation aufgelistet.
Erstellen	Ermöglicht dem Benutzer, gespeicherte Programmblöcke zu erstellen, zu ändern und zu kompilieren.
Kompilieren	Ermöglicht dem Benutzer, einen gespeicherten Programmblock zu kompilieren.
Löschen	Ermöglicht dem Benutzer, einen gespeicherten Programmblock zu löschen.


Über den Gespeicherte Programmblöcke-Editor

  Verwandte Themen

Sie können den Quelltext für gespeicherte Prozeduren im Gespeicherte Programmblöcke-Editor erstellen, bearbeiten und kompilieren.

Titel	Der Titel gibt das Schema und den Namen des angezeigten gespeicherten Programmblocks an.
Neu	Die Schaltfläche Neu ermöglicht dem Benutzer, den Quelltext für einen neuen Programmblock einzugeben. Ein neuer Programmblock ist nur im Gespeicherte Programmblöcke-Editor sichtbar. Neue Programmblöcke sind erst nach dem ersten Kompilierungsvorgang in der Datenbank gespeichert.
Speichern	Die Schaltfläche Speichern synchronisiert den in der Datenbank gespeicherten Quelltext mit dem im Editor angezeigten Quelltext und kompiliert den gespeicherten Programmblock auf seiten des Servers.
Wiederherstellen	Die Schaltfläche Wiederherstellen verwirft alle Änderungen, die im Quellausschnitt durchgeführt wurden, und stellt den gespeicherten Programmblock im vorherigen Zustand wieder her. Als vorheriger Zustand gilt der jüngere der beiden folgenden: • Zustand nach der letzten Navigation zu diesem gespeicherten Programmblock oder seiner Erstellung unter Verwendung der Schaltfläche Neu • Zustand nach der letzten Auswahl der Schaltfläche Kompilieren Die Schaltfläche Wiederherstellen ist nur dann aktiviert, wenn Änderungen im Quellausschnitt vorgenommen wurden, seit einer der beiden obigen Zustände galt.
Löschen	Die Schaltfläche Löschen löscht einen bestehenden gespeicherten Programmblock oder bricht die Erstellung eines neuen Programmblocks ab (nachdem die Anweisung über ein Warnfenster bestätigt wurde). Nachdem der gespeicherte Programmblock gelöscht wurde, zeigt der Editor den vorhergehenden gespeicherten Programmblock (sofern vorhanden) im Kombinationsfeld Name an. Andernfalls wird der nächste gespeicherte Programmblock angezeigt. Gibt es keine gespeicherten Programmblöcke für den aktuellen Eigentümer, ist der Editor leer. Die Schaltfläche Löschen ist nur dann aktiviert, wenn der gespeicherte Programmblock neu ist oder der aktuelle Benutzer Löschberechtigungen für den angezeigten Programmblock besitzt.
Schließen	Die Schaltfläche Schließen schließt das Fenster des Gespeicherte Programmblöcke-Editors. Falls der Quelltext des angezeigten Programmblocks geändert wurde, zeigt der Editor ein Warnfenster an, das besagt, daß nicht gespeicherte Änderungen vorliegen.
Kombinationsfeld Eigentümer	Das Kombinationsfeld Eigentümer gibt den Benutzer an, der Eigentümer des im Editor angezeigten gespeicherten Programmblocks ist. Wenn Sie im Kombinationsfeld Eigentümer einen neuen Eintrag auswählen, wird das Kombinationsfeld Name aktualisiert und in der Liste Name der erste gespeicherte Programmblock angezeigt (sofern vorhanden).
Kombinationsfeld Name	Das Kombinationsfeld Name zeigt den Namen des ausgewählten gespeicherten Programmblocks an. Das Kombinationsfeld Name enthält die Namen aller für den Zugriff verfügbaren gespeicherten Programmblöcke, die Eigentum des im Kombinationsfeld Eigentümer ausgewählten Benutzers sind. Ein Programmblock ist für den Zugriff verfügbar, wenn der aktuelle Benutzer zum Ausführen des Programmblocks berechtigt ist. Wenn Sie einen neuen Eintrag im Kombinationsfeld Name auswählen, wird der Editor aktualisiert und zeigt den neu gewählten gespeicherten Programmblock an. Wurde der Quelltext des aktuellen gespeicherten Programmblocks geändert, zeigt der Editor ein Warnfenster an, das besagt, daß nicht gespeicherte Änderungen vorliegen.
Textausschnitt Quelle	Der Quellausschnitt zeigt den Quelltext des aktuellen gespeicherten Programmblocks an. Der Quelltext kann nur bearbeitet werden, wenn der aktuelle Benutzer die Erstellungsberechtigung für den gespeicherten Programmblock besitzt. Ist dies nicht der Fall, ist der Programmblock schreibgeschützt.
Meldungsausschnitt Kompilierung	Der Ausschnitt für Kompilierungsmeldungen zeigt alle Kompilierungsmeldungen an, die mit dem aktuellen gespeicherten Programmblock verknüpft sind. Wenn Sie auf eine Kompilierungsmeldung klicken, wird der Textcursor im Quellausschnitt zu der Zeile und Spalte verschoben, die zu der Meldung gehören. Gibt es zum aktuellen gespeicherten Programmblock keine Fehlermeldungen, ist der Ausschnitt für Kompilierungsmeldungen ausgeblendet.
Statusleiste	Die Statusleiste zeigt Informationen über den Status des aktuellen gespeicherten Programmblocks an.


Gespeicherte Programme erstellen

  Verwandte Themen

So erstellen Sie ein gespeichertes Programm:

1	Blenden Sie den Knoten Datenbankobjekte im Objektnavigator ein, um die Schemaknoten anzuzeigen.

2	Blenden Sie einen Schemaknoten ein, um die Datenbankobjekte anzuzeigen.

3	Wählen Sie den Knoten Gespeicherte Programmblöcke aus, und rufen Sie Navigator [image] Erstellen auf.

Daraufhin wird das Dialogfeld Neuer Programmblock angezeigt.

4	Geben Sie Name und Typ des Programmblocks ein. Der Typ eines Programmblocks kann etweder Prozedur, Funktion, Paketspezifikation oder Paketrumpf sein.

Nun wird der Gespeicherte Programmblöcke-Editor eingeblendet.

5	Im Gespeicherte Programmblöcke-Editor definieren und speichern Sie die gewünschten Programmblöcke.

Hinweis: Wenn Sie eine Form, ein Menü oder eine Bibliothek kompilieren, die Referenzen auf gespeicherte Prozeduren, Funktionen oder Pakete enthält, sollten Sie sicherstellen, daß das referenzierte gespeicherte Unterprogramm bei der Kompilierung auf dem Server vorhanden ist.


Gespeicherte Programme ändern

  Verwandte Themen

So ändern Sie ein gespeichertes Programm:

1	Blenden Sie den Knoten Datenbankobjekte im Objektnavigator ein, um die Schemaknoten anzuzeigen.

2	Blenden Sie einen Schemaknoten ein, um die Datenbankobjekte anzuzeigen.

3	Blenden Sie den Knoten Gespeicherte Programmblöcke ein.

Es werden gespeicherte Prozeduren angezeigt, für die Sie entweder der Eigentümer oder zum Ausführen, Kompilieren oder Löschen berechtigt sind.

4	Doppelklicken Sie auf das Symbol der gewünschten gespeicherten Prozedur.

Nun wird der Gespeicherte Programmblöcke-Editor eingeblendet.

5	Ändern Sie die gespeicherte Prozedur nach Wunsch, und klicken Sie dann auf Speichern.


Gespeicherte Programme aufrufen

 Beispiele	   Einschränkungen	    Verwandte Themen

Beim Aufrufen einer server-seitigen gespeicherten Prozedur oder Funktion innerhalb von Form Builder gehen Sie genau wie beim Aufrufen einer lokalen, client-seitigen Prozedur oder Funktion vor.

Eine server-seitige gespeicherte Prozedur ist ein PL/SQL-Block, der für die Ausführung durch die server-seitige PL/SQL-Umgebung vorgesehen ist. Eine solche Prozedur kann Eingaben akzeptieren und Ausgaben zurückgeben, dies ist jedoch nicht zwingend.

Die server-seitige gespeicherte Prozedur läuft unter der Sicherheitsdomäne (oder dem Schema) des Benutzers, der sie erstellt hat, und nicht des aktuellen Benutzers. Der aktuelle Benutzer benötigt EXECUTE-Berechtigungen für die Prozedur, um sie verwenden zu können.

Ein wichtiger Unterschied zwischen Prozeduren für Form Builder und Prozeduren für die Datenbank besteht darin, daß server-seitige Prozeduren Referenzen auf Form Builder-Bindevariablen (wie :BLOCK.ITEMNAME, :GLOBAL.VARNAME oder :SYSTEM.CURSOR_ITEM) nicht verstehen. Alle Daten, die Prozeduren für die Verarbeitung benötigen, müssen über Parameter des entsprechenden Datentyps, über Paketvariablen oder durch in Tabellen vorgenommene Auswahlen übergeben werden.

Sie sollten Ihre benutzerdefinierten Form Builder-Routinen so aufbauen, daß sie Eingaben akzeptieren und Ergebnisse in Parametern zurückgeben. Dadurch muß bei der letztendlichen Migration der Prozedur in die Datenbank nur noch das Wort CREATE vor die Deklaration PROCEDURE gestellt werden (und das daraus resultierende Skript in SQL*PLUS ausgeführt werden).

Beim Aufrufen einer gespeicherten Prozedur oder Funktion wird nur die folgende Teilgruppe möglicher Verwendungen unterstützt:

•	ProcName(arg1,...,argN)

•	FuncName(arg1,...,argN)

•	PackName.ProcName(arg1,...,argN)

•	PackName.FuncName(arg1,...,argN)


Beispiele für das Aufrufen gespeicherter Programme

DECLARE

   ld DATE;
   ln NUMBER;
   lv VARCHAR2(30);
BEGIN
/*
** Calling Form-Level Procedure/Function
*/
   forms_procedure_name(ld,ln,lv);
   ld := forms_function_name(ln,lv);

/*
** Calling Database Procedure/Function
*/
   database_procedure_name(ld,ln,lv);
   ld := database_function_name(ln,lv);
END;


Einschränkungen beim Aufrufen gespeicherter Programme

•	Da Form Builder die Zugriffsroutine für jedes gespeicherte Unterprogramm erstellt, das Ihr Trigger und benutzerdefiniertes Unterprogramm referenziert, können Sie keine Form schreiben, die Aufrufe an gespeicherte Prozeduren oder Funktionen enthält und sowohl für Oracle Version 6.0 als auch Version 7.0 kompiliert wird. Sobald eine Form auch nur eine Referenz auf ein gespeichertes Unterprogramm enthält, muß sie für eine Version 7.0-Datenbank kompiliert werden. Sonst ergeben sich Kompilierungsfehler, wenn der PL/SQL-Compiler die Namen gespeicherter Unterprogramme nicht auflösen kann.

•	Das Aufrufen gespeicherter Prozeduren und Funktionen wird in einem PL/SQL-Menükontext nicht unterstützt.

•	Der Formentwickler kann an gespeicherten Unterprogrammdefinitionen durchgeführte Änderungen eventuell erst nutzen, nachdem er eine neue Verbindung zum Server hergestellt hat.


Über Datenbanktrigger

  Verwandte Themen

Datenbanktrigger sind vom Konzept her fast mit den Form Builder-Triggern identisch. Der Unterschied besteht lediglich im Ereignis, das den Trigger auslöst, und der Position, an der der nachfolgende Code ausgeführt wird.

Datenbanktrigger sind PL/SQL-Blöcke, die mit einer bestimmten Tabelle verknüpft sind. Diese Trigger werden ausgelöst, wenn UPDATE-, INSERT- oder DELETE-Vorgänge für diese Tabelle ausgeführt werden. Sie können VOR oder NACH jeder vom entsprechenden Vorgang betroffenen Zeile oder nach jeder Anweisung ausgelöst werden. Die Kombinationen daraus ergeben ein Maximum von zwölf möglichen Triggern für eine Tabelle. Während seiner Ausführung läuft ein Trigger unter der Sicherheitsdomäne (Schema) des Benutzers, der ihn erstellt hat, und nicht des aktuellen Benutzers.

Innerhalb des Rumpfs des Datenbanktriggers kann sich Ihr PL/SQL-Code sowohl auf die alten als auch die neuen Werte der betroffenen Spalten beziehen. Bei INSERT-Vorgängen gibt es keine alten Werte und bei DELETE-Vorgängen keine neuen Werte. Dies macht das Implementieren der Datenvalidierung und das Überprüfen geänderter Werte sehr einfach.

Ein Datenbanktrigger kann komplexe Datenüberprüfungen durchführen, die nicht als Integritätsregel deklariert werden könnten. Scheitert ein Datenbanktrigger mit einem Fehler, wird für die auslösende Anweisung (also die INSERT-, UPDATE- oder DELETE-Anweisung, die den Trigger ausgelöst hat) ein Rollback durchgeführt.

Sie könnten beispielsweise den folgenden Trigger schreiben, der verhindert, daß die Tabelle EMP an Wochenenden aktualisiert wird, es sei denn, der aktuelle Benutzer ist in einer speziellen Tabelle namens WEEKEND_UPDATE_OK eingetragen, was ihn zum Aktualisieren von EMP berechtigt.

CREATE OR REPLACE TRIGGER update_on_weekends_check

  BEFORE UPDATE OF sal ON EMP

  FOR EACH ROW

DECLARE

  my_count number(4);

BEGIN

  SELECT COUNT(u_name) FROM WEEKEND_UPDATE_OK INTO my_count

    WHERE u_name = user_name;

  IF my_count=0 THEN

    RAISE_APPLICATION_ERROR(20508, 'Update not allowed');

  END IF;

END;

Neben ihrer Eignung für die beliebig komplexe Datenvalidierung können Datenbanktrigger auch zur Durchführung beliebiger Sequenzen aus Ursache und Wirkung verwendet werden. Damit eignen sich Datenbanktrigger besonders gut für die Datenüberprüfung, die Datenreplikation und die Prüfung der Integrität verteilter Daten (da Integritätsregeln entfernte Datenbanken nicht referenzieren können). Werden Datenbanktrigger als Ersatz für formseitige Trigger geschrieben (etwa zur Tabellenüberprüfung), muß die formseitige Funktionalität deaktiviert werden, damit die Tabellenvorgänge nicht dupliziert werden.

Eine Alternative besteht darin, eine Paketvariable als Kennzeichen für die Kommunikation zwischen der Form und den datenbankseitigen Triggern (oder Prozeduren) zu verwenden. Dies gibt die Möglichkeit, innerhalb des Triggers oder der Prozedur zu entscheiden, ob ein bestimmter Vorgang eventuell bereits vom Form Builder-Code durchgeführt wurde.

Trigger (sowie gespeicherte Prozeduren und Funktionen) lösen Fehler mit Hilfe der Prozedur RAISE_APPLICATION_ERROR aus. Die Prozedur RAISE_APPLICATION_ERROR weist eine Fehlernummer innerhalb des speziellen Nummernbereichs 20000-20999 zu und gibt eine Fehlermeldung an. Da die Fehlermeldung von Ihrem PL/SQL-Datenbanktrigger vorbereitet wird, kann der Meldungstext variieren. Innerhalb der Form Builder-Anwendung können diese Fehler mit Hilfe der im nächsten Abschnitt beschriebenen Methoden abgefangen werden.


Über die Verarbeitung von Datenbanktriggern

  Verwandte Themen

Wie Sie wissen, werden Datenbanktrigger in Reaktion auf DML-Anweisungen wie beispielsweise INSERT, UPDATE oder DELETE ausgelöst. Wenn Form Builder also während der normalen Form Builder-Verarbeitung beim Speichern INSERT-, UPDATE- und DELETE-Anweisungen absetzt, um mit INSERT-Anweisungen neu eingegebene Datensätze zur Datenbank hinzufügen, mit UPDATE-Anweisungen Änderungen umzusetzen, die der Benutzer an bestehenden Datensätzen vorgenommen hat, und mit DELETE-Anweisungen vom Benutzer gelöschte Datensätze aus der Datenbank zu entfernen, werden Datenbanktrigger ausgelöst, falls solche aktiviert sind.

Nehmen wir zum Beispiel an, daß die folgenden Datenbanktrigger für die Tabelle EMP definiert und aktiviert wurden:

•	BEFORE DELETE

•	BEFORE DELETE FOR EACH ROW

•	AFTER DELETE

•	AFTER DELETE FOR EACH ROW

Löscht der Benutzer nun einen Datensatz, der abgefragt wurde, tritt folgende Ereignissequenz ein:

1	Form Builder sperrt den Datensatz, der gelöscht werden soll.

2	Der Benutzer drückt die Taste [Speichern].

3	Form Builder löst den Trigger PRE-COMMIT aus.

4	Form Builder löst den Trigger PRE-DELETE aus.

5	Form Builder setzt eine DELETE-Anweisung ab, um die Zeile zu löschen.

6	Die Datenbank löst den Trigger BEFORE DELETE aus.

7	Die Datenbank löst den Trigger BEFORE DELETE FOR EACH ROW aus.

8	Die Datenbank löscht den Datensatz.

9	Die Datenbank löst den Trigger AFTER DELETE FOR EACH ROW aus.

10	Der Datenbanktrigger AFTER DELETE wird ausgelöst.

11	Form Builder löst den Trigger POST-DELETE aus.

12	Form Builder löst den Trigger POST-COMMIT aus.

Jeder während des Speicherns ausgelöste Fehler führt dazu, daß Form Builder ein Rollback der Transaktion, die gerade gespeichert wird, bis zu dem Savepoint durchführt, der abgesetzt wurde, als die Speichersequenz begann. Scheitert ein Datenbanktrigger (indem er einen nicht definierten Fehler auslöst oder RAISE_APPLICATION_ERROR aufruft) infolge einer von Form Builder automatisch abgesetzten DML-Anweisung, wird eine Fehlermeldung mit dem Wortlaut "ORACLE-Fehler ..." angezeigt. Wird jedoch ein Fehler durch eine DML-Anweisung in Ihrem PL/SQL-Trigger ausgelöst, kann dies großzügiger gehandhabt werden. Wird der Fehler nicht behandelt, führt dies zur Meldung: "XXX-YYYYYY Trigger hat unbehandelte Exception ausgelöst."


Über deklarative Datenbank-Integritätsregeln

  Verwandte Themen

Eine Datenbank-Integritätsregel ist eine Regel, die die logische Integrität Ihrer Daten bestimmt. Die Regel wird entweder beim Erstellen der Tabelle deklariert oder kann (mit einigen Einschränkungen) auch zu einer bestehenden Tabelle hinzugefügt werden.

Entität-Integritätsregeln Entität-Integritätsregeln können in der Deklaration zwingend für eine Spalte (oder sortierte Spaltengruppe) festlegen, daß die Spalte nicht Null (NOT NULL) ist, innerhalb der Tabelle eindeutig (UNIQUE) ist, einen Standardwert (DEFAULT) hat, falls beim Einfügen mit Hilfe von INSERT kein Wert angegeben wird, und/oder daß die Spalte eine komplexere logische Bedingung erfüllt, die in einer CHECK-Klausel angegeben wird. Diese Integritätsregeln sorgen für Datenintegrität innerhalb der Tabelle.

Referentielle Integritätsregeln Referentielle Integritätsregeln bilden die logische Verknüpfung zwischen einer Master-Tabelle und einer Detail-Tabelle, indem sie Primär- und Fremdschlüsselbeziehungen einrichten. Datenbank-Integritätsregeln schützen Ihre Daten, indem sie die von Ihnen deklarierten Regeln automatisch auf der Datenbankebene durchsetzen. Erstellen Sie beispielsweise einen Datensatz in einer Master-Tabelle und einen Detail-Datensatz, schränken die Datenbank-Integritätsregeln bei standardmäßiger Verwendung die Aktualisierung des Primärschlüssels des Master-Datensatzes ein. Standardmäßige Datenbank-Integritätsregeln verhindern außerdem, daß der Master-Datensatz gelöscht wird (es sei denn, beim Deklarieren sämtlicher Fremdschlüsselreferenzen wird die Option ON DELETE CASCADE verwendet).

Strategien für das Überprüfen von Integritätsregeln Vor Oracle7 Server wurde fast die gesamte Datenintegrität auf Anwendungsebene hergestellt - bei Form Builder durch Trigger. Dabei besteht das Ziel der anwendungsseitigen Logik darin, bereits das Entstehen fehlerhafter Daten zu verhindern.

Die Fähigkeit von Oracle8, implizite Datenüberprüfungen auf Kernelebene durchzuführen, bedeutet für aktuelle Systeme, bei denen die Datenintegrität auf Anwendungsebene sichergestellt wird, daß dieselben Daten im Prinzip zweimal geprüft werden. In diesem Fall könnten Sie nun versucht sein, die gesamte Anwendungslogik zu entfernen und das Überprüfen von Integritätsregeln ganz der Datenbank zu überlassen. Sie sollten jedoch überlegen, ob es nicht Vorteile hat, auf beiden Seiten Integritätsregeln aufzustellen, und abwägen, ob die zweifache Überprüfung der Daten wirklich ein zu großer Aufwand ist.

Datenbank-Integritätsregeln ermöglichen Ihnen, die Datenintegrität zentral zu schützen, ohne die Logik unbedingt in den Code jedes Werkzeugs aufzunehmen. Der Grund dafür, daß die Logik überhaupt in den Anwendungscode aufgenommen wurde, war jedoch, daß der Benutzer bei Fehlern sofort Rückmeldungen erhalten sollte, wobei ihm die Korrektur der Fehler durch Online-Hilfe und entsprechende Fehlermeldungen erleichtert wurde.

Es würde wahrscheinlich keinem Benutzer gefallen, wenn er einen Stapel mit fünfzig neuen Aufträgen eingibt, versucht, die Speicherung durchzuführen, und dann von ORACLE darauf hingewiesen wird, daß der vierte Auftrag eine Integritätsregel verletzt.

Es ist Ihnen wahrscheinlich lieber, die Daten sowohl bei der Eingabe als auch beim Speichern zu überprüfen, da die zusätzlich gewonnene Sicherheit den Zusatzaufwand für die Überprüfung wert ist. Die Überprüfung von Datenbank-Integritätsregeln ist effektiver als die Datenüberprüfung auf Anwendungsebene, da der Kernel Integritätsregeln intelligent verarbeitet und ihre Verarbeitung vollständig innerhalb des Bereichs (und RAM) des Kernels und ohne zusätzlichen Netzwerkverkehr für Client-Zugriffe stattfindet.

Sie sollten folgendes beachten: Wenn eine Spalte mit einem DEFAULT-Wert deklariert wurde, weist der Kernel den DEFAULT-Wert nur beim Einfügen des Datensatzes mit INSERT und auch nur dann zu, wenn die angegebene Spalte nicht in der INSERT-Klausel enthalten ist. Da Form Builder immer alle Spalten (das heißt Datenbankfelder) für INSERT- und UPDATE-Vorgänge in einem Block auflistet, wird der DEFAULT-Wert niemals automatisch zugewiesen, es sei denn, der Benutzer löscht das betreffende Feld aus dem Block (oder markiert es als nicht für die Datenbank bestimmt) oder schreibt einen ON-INSERT-Trigger, um die normale Form Builder-Verarbeitung für INSERT-Vorgänge außer Kraft zu setzen.

Außerdem werden manche formsorientierten Vorgänge eventuell unnötig, wenn Integritätsregeln aktiviert sind. So wird nach dem Löschen eines Master-Datensatzes das Löschen der Detail-Datensätze beispielsweise intern vom Kernel übernommen, wenn die Option ON DELETE CASCADE für diese Fremdschlüsselbeziehung zwischen übergeordnetem und untergeordnetem Objekt festgelegt ist.

Master/Detail-Blöcke und die referentielle Integrität Bei Anwendungen mit Master/Detail-Blöcken, die über die automatisch generierten Trigger und Prozeduren in SQL*Forms 3.0 synchronisiert werden, sollten keine Änderungen erforderlich sein, wenn sie für Tabellen ausgeführt werden, für die deklarative, referentielle Integritätsregeln aktiviert sind. Die Standardlogik von Form Builder verhindert das Löschen eines Master-Datensatzes, solange es noch ausstehende Detail-Datensätze gibt, es sei denn, der Entwurf spezifiziert beim Erstellen des Detail-Blocks die Option Kaskadierend löschen. In diesem Fall verwendet Form Builder einen PRE-DELETE-Trigger, um zuerst die Detail-Datensätze zu löschen, und löscht dann den Master-Datensatz.

Die Reihenfolge der Vorgänge spielte bei ORACLE Version 6 keine entscheidende Rolle. Beim Ausführen einer Anwendung für Oracle8 Server, bei der die standardmäßige PRE-DELETE-Logik in den POST-DELETE-Trigger verschoben wurde, würde es jedoch Probleme geben, falls auf der Seite des Servers Primär-/Fremdschlüsselbeziehungen deklariert und aktiviert wurden.

Werden die Detail-Datensätze erst durch den POST-DELETE-Trigger gelöscht, setzt Form Builder die DELETE-Anweisung für den Master-Datensatz ab, während noch Detail-Datensätze vorhanden sind, wodurch der Kernel einen Fehler generiert:

ORA-02292: violated integrity constraint (OWNER.CONSTRAINT)
-- detail record found

Wurde die Fremdschlüsselbeziehung jedoch mit der Option ON DELETE CASCADE angegeben, entstehen keine Probleme, und der POST-DELETE-Trigger von Form Builder wird zusätzlich eine unnötige DELETE-Anweisung ausführen, um die Detail-Datensätze zu löschen, die aufgrund der Option Kaskadierend löschen des Master-Datensatzes bereits gelöscht sind.

Es kann also jede in Ihren Anwendungen enthaltene INSERT-, UPDATE- oder DELETE-Anweisung einen Fehler auslösen, indem sie eine aktivierte Integritätsregel verletzt.


Über Berechtigungen für Datenbanktrigger

  Verwandte Themen

Wenn Sie die entsprechenden Berechtigungen besitzen, können Sie Datenbanktrigger direkt in Form Builder Designer erstellen, bearbeiten, kompilieren und durchsuchen.

Ausführen	Ermöglicht dem Benutzer, den Datenbanktrigger auszuführen.
Erstellen	Ermöglicht dem Benutzer, Datenbanktrigger zu erstellen, zu verändern und zu kompilieren.
Kompilieren	Ermöglicht dem Benutzer, einen Datenbanktrigger zu kompilieren.
Löschen	Ermöglicht dem Benutzer, einen Datenbanktrigger zu löschen.


Über den Datenbanktrigger-Editor

  Verwandte Themen

Kombinationsfeld Eigentümer Tabelle	Das Kombinationsfeld Eigentümer Tabelle gibt den Benutzer an, der Eigentümer des im Editor angezeigten Datenbanktriggers ist.
	Wenn Sie im Kombinationsfeld Eigentümer Tabelle einen neuen Eintrag auswählen, wird das Kombinationsfeld Tabelle aktualisiert und in der Liste Name der erste Datenbanktrigger angezeigt (sofern vorhanden).
Kombinationsfeld Tabelle	Das Kombinationsfeld Tabelle enthält die Tabellen, die dem aktuellen Benutzer gehören.
Kombinationsfeld Name	Das Kombinationsfeld Name zeigt den Namen des ausgewählten Datenbanktriggers an.
	Das Kombinationsfeld Name enthält die Namen aller für den Zugriff verfügbaren Datenbanktrigger, die Eigentum des im Kombinationsfeld Eigentümer ausgewählten Benutzers sind. Ein Datenbanktrigger ist für den Zugriff verfügbar, wenn der aktuelle Benutzer zum Ausführen des Datenbanktriggers berechtigt ist.
	Wenn Sie einen neuen Eintrag im Kombinationsfeld Name auswählen, wird der Editor aktualisiert und zeigt den neu gewählten Datenbanktrigger an. Wurde der Quelltext des aktuellen gespeicherten Datenbanktriggers geändert, zeigt der Editor ein Warnfenster an, das besagt, daß nicht gespeicherte Änderungen vorliegen.
Triggering	Beim Definieren eines Datenbanktriggers können Sie den Triggerzeitpunkt festlegen, also angeben, wann die Triggeraktion in Relation zur auslösenden Anweisung ausgeführt werden soll. Zur Auswahl steht die Ausführung vor bzw. nach der auslösenden Anweisung.
Anweisung	Ein auslösendes Ereignis oder eine auslösende Anweisung ist die SQL-Anweisung, die zur Ausführung eines Triggers führt. Ein auslösendes Ereignis kann eine INSERT-, UPDATE- oder DELETE-Anweisung für eine bestimmte Tabelle sein.
Bei jeder Zeile	Beim Erstellen eines Datenbanktriggers können Sie eine Einschränkung für den Trigger festlegen. Eine Einschränkung ist eine Option, die für Trigger zur Verfügung steht, die für jede Zeile ausgelöst werden. Diese Option hat die Aufgabe, die Ausführung eines Triggers durch Bedingungen zu steuern. Einschränkungen für Trigger werden mit WHEN-Klauseln festgelegt.
Triggerrumpf	Hier können Sie den PL/SQL-Code angeben, der als Rumpf des Datenbanktriggers verwendet werden soll.
Neu	Erstellt ein neues Codeobjekt mit demselben Typ und Geltungsbereich wie das aktuelle Codeobjekt. Ist das aktuelle Objekt beispielsweise ein Trigger, der einem Objekt zugeordnet ist, wird bei der Auswahl von Neu die Werteliste Trigger angezeigt, die Ihnen ermöglicht, einen demselben Objekt zugeordneten neuen Trigger zu erstellen. Handelt es sich beim aktuellen Objekt um einen Programmblock, ruft die Auswahl von Neu das Dialogfeld Neuer Programmblock auf.
Speichern	Kompiliert und speichert den Code im Feld Quellcode. Der Compiler sucht nach Syntaxfehlern, semantischen Fehlern und Referenzen auf nicht vorhandene Objekte, Prozeduren und Funktionen. Wird die Kompilierung erfolgreich durchgeführt, erscheint in der Statuszeile die Meldung <Erfolgreich kompiliert>.
Wiederherstellen	Macht alle Änderungen rückgängig, die seit dem Aufrufen des Editors oder der Durchführung des letzten Anwenden- oder Wiederherstellen-Vorgangs am Quellcode vorgenommen wurden. Wiederherstellen ist deaktiviert, wenn keine nicht angewandten Änderungen vorliegen.
Löschen	Der Befehl Löschen löscht einen bestehenden Datenbanktrigger oder bricht die Erstellung eines neuen Datenbanktriggers ab (nachdem die Anweisung über ein Warnfenster bestätigt wurde).
	Nachdem der Datenbanktrigger gelöscht wurde, zeigt der Editor den vorhergehenden Datenbanktrigger (sofern vorhanden) im Kombinationsfeld Name an. Andernfalls wird der nächste Datenbanktrigger angezeigt. Gibt es keine Datenbanktrigger für den aktuellen Eigentümer, ist der Editor leer.
	Die Schaltfläche Löschen ist nur dann aktiviert, wenn der Datenbanktrigger neu ist oder der aktuelle Benutzer Löschberechtigungen für den angezeigten Datenbanktrigger besitzt.
Schließen	Schließt den Datenbanktrigger-Editor.
Auf Kompilierungsmeldung klicken	Verschiebt die Einfügemarke in die Zeile, in der im Feld Quellcode ein Fehler entdeckt wurde.


Datenbanktrigger erstellen

 Beispiele	     Verwandte Themen

So erstellen Sie einen Datenbanktrigger:

1	Blenden Sie den Knoten Datenbankobjekte im Objektnavigator ein, um die Schemaknoten anzuzeigen.

2	Blenden Sie einen Schemaknoten ein, um die Datenbankobjekte anzuzeigen.

3	Blenden Sie den Knoten Tabellen ein, um die Datenbanktabellen des Schemas anzuzeigen.

4	Markieren Sie die gewünschte Tabelle, und blenden Sie sie ein.

5	Wählen Sie den Knoten Trigger aus, und rufen Sie Navigator [image] Erstellen auf.

Daraufhin wird der Datenbanktrigger-Editor angezeigt.

6	Definieren und speichern Sie die gewünschten Programmblöcke im Datenbanktrigger-Editor.


Beispiele für das Erstellen von Datenbanktriggern

CREATE TRIGGER no_weekend_updates

BEFORE UPDATE
   ON EMP
DECLARE
   day_of_week NUMBER(2) := TO_NUMBER(TO_CHAR(SYSDATE,'D'));
   dummy CHAR(1);
BEGIN
   IF (day_of_week in (1,7))  /* Sunday,Saturday */
   THEN
      BEGIN
         SELECT 'X'/* Check Exceptions Table */
                   INTO dummy
                   FROM WEEKEND_UPDATE_OK
         WHERE USERID = USER;
      EXCEPTION
         WHEN NO_DATA_FOUND THEN /*Not Exception*/
                  RAISE_APPLICATION_ERROR(-20011,
                      'Try again on Monday!');
      END;
   END IF;
END;


Datenbanktrigger verändern

  Verwandte Themen

So ändern Sie einen Datenbanktrigger:

1	Blenden Sie den Knoten Datenbankobjekte im Objektnavigator ein, um die Schemaknoten anzuzeigen.

2	Blenden Sie einen Schemaknoten ein, um die Datenbankobjekte anzuzeigen.

3	Blenden Sie den Knoten Tabellen ein, um die Datenbanktabellen des Schemas anzuzeigen.

4	Markieren Sie die gewünschte Tabelle, und blenden Sie sie ein.

5	Blenden Sie den Knoten Trigger ein.

Es werden Datenbanktrigger aufgelistet, bei denen Sie entweder der Eigentümer sind oder Berechtigungen zum Ausführen, Kompilieren oder Löschen haben.

6	Doppelklicken Sie auf das Symbol des gewünschten Datenbanktriggers.

Daraufhin wird der Datenbanktrigger-Editor angezeigt.

7	Verändern Sie den Datenbanktrigger wie gewünscht, und klicken Sie dann auf Speichern.


Über Systemvariablen

 Beispiele

Eine Systemvariable ist eine Form Builder-Variable, die einen internen Status von Form Builder verfolgt. Sie können den Wert einer Systemvariablen referenzieren, um das Verhalten einer Anwendung zu steuern.

Form Builder verwaltet die Werte von Systemvariablen pro Form. Das heißt, die Werte aller Systemvariablen entsprechen nur der aktuellen Form. Die Namen der verfügbaren Systemvariablen sind:

•	SYSTEM.BLOCK_STATUS

•	SYSTEM.COORDINATION_OPERATION

•	SYSTEM.CURRENT_BLOCK

•	SYSTEM.CURRENT_DATETIME

•	SYSTEM.CURRENT_FORM

•	SYSTEM.CURRENT_ITEM

•	SYSTEM.CURRENT_VALUE

•	SYSTEM.CURSOR_BLOCK

•	SYSTEM.CURSOR_ITEM

•	SYSTEM.CURSOR_RECORD

•	SYSTEM.CURSOR_VALUE

•	SYSTEM.CUSTOM_ITEM_EVENT

•	SYSTEM.CUSTOM_ITEM_EVENT_PARAMETERS

•	SYSTEM.DATE_THRESHOLD*

•	SYSTEM.EFFECTIVE_DATE*

•	SYSTEM.EVENT_WINDOW

•	SYSTEM.FORM_STATUS

•	SYSTEM.LAST_QUERY

•	SYSTEM.LAST_RECORD

•	SYSTEM.MASTER_BLOCK

•	SYSTEM.MESSAGE_LEVEL*

•	SYSTEM.MODE

•	SYSTEM.MOUSE_BUTTON_PRESSED

•	SYSTEM.MOUSE_BUTTON_SHIFT_STATE

•	SYSTEM.MOUSE_ITEM

•	SYSTEM.MOUSE_CANVAS

•	SYSTEM.MOUSE_X_POS

•	SYSTEM.MOUSE_Y_POS

•	SYSTEM.MOUSE_RECORD

•	SYSTEM.MOUSE_RECORD_OFFSET

•	SYSTEM.RECORD_STATUS

•	SYSTEM.SUPPRESS_WORKING*

•	SYSTEM.TAB_NEW_PAGE

•	SYSTEM.TAB_PREVIOUS_PAGE

•	SYSTEM.TRIGGER_BLOCK

•	SYSTEM.TRIGGER_ITEM

•	SYSTEM.TRIGGER_RECORD

Alle Systemvariablen, mit Ausnahme der vier mit einem Sternchen (*) angegebenen Variablen, sind schreibgeschützt. Diese vier Variablen sind die einzigen Systemvariablen, denen Sie explizit Werte zuweisen können.  Form Builder stellt außerdem 6 Standardwerte für Datum und Uhrzeit bereit.  (Siehe Standardwerte des Systems für Datum und Uhrzeit).

Lokale Variablen

Weil Systemvariablen abgeleitet werden, können Sie den Systemwert in einer lokalen Variablen speichern und die lokale Variable mehrmals benutzen, wenn sich der Wert im Laufe der Lebensdauer des Triggers wahrscheinlich nicht ändert, anstatt jedesmal den Wert der Systemvariablen einzuleseb.


Standardwerte des Systems für Datum und Uhrzeit

Form Builder stellt außerdem sechs Standardwerte bereit - $$DATE$$, $$DATETIME$$, $$TIME$$, $$DBDATE$$, $$DBDATETIME$$ und $$DBTIME$$ - die Datums- und Zeitinformationen liefern und für die spezielle Einschränkungen gelten:

•	Wenn Sie Client-/Server-Anwendungen generieren, berücksichtigen Sie die Auswirkungen auf die Leistung, wenn Sie Datums- und Zeitinformationen über das Netzwerk abrufen.

•	Wenn Sie auf eine fremde Datenquelle zugreifen, sollten Sie $$DBDATE$$ und $$DBDATETIME$$ nicht benutzen. Benutzen Sie statt dessen einen When-Create-Record -Trigger, um das laufende Datum auf eine für die Datenquelle spezifische Art auszuwählen.

•	Benutzen Sie $$DATE$$, $$DATETIME$$ und $$TIME$$, um das lokale Systemdatum/die lokale Systemzeit zu ermitteln; benutzen Sie $$DBDATE$$, $$DBDATETIME$$ und $$DBTIME$$, um das Datenbank-Datum/die Datenbank-Uhrzeit zu ermitteln, die sich von dem lokalen Systemdatum bzw. der lokalen Systemzeit unterscheiden kann, z.B. wenn Sie sich bei einer entfernten Datenbank in einer anderen Zeitzone anmelden.

•	Benutzen Sie diese Variablen nur, um den Wert der Attribute Ausgangwert, Höchster zulässiger Wert oder Niedrigster zulässiger Wert festzulegen.


Beispiele für Systemvariablen

Angenommen, Sie möchten einen Key-NXTBLK-Trigger auf Formebene erstellen, der je nach aktuellem Block navigiert. Der folgende Trigger führt diese Funktion aus, wobei die in einer lokalen Variablen gespeicherte Variable :SYSTEM.CURSOR_BLOCK verwendet wird.

DECLARE
   curblk VARCHAR2(30);
BEGIN
   curblk := :System.Cursor_Block;
   IF curblk = 'Orders'
      THEN Go_Block('Items');
   ELSIF curblk = 'Items'
      THEN Go_Block('Customers');
   ELSIF curblk = 'Customers'
      THEN Go_Block('Orders');
   END IF;
END;

Rückgabewerte in Großbuchstaben

Bei allen Systemvariablen muß die Schreibweise berücksichtigt werden. Die meisten Systemvariablen geben die Argumente in Form von Werten in Großbuchstaben zurück. Dies wirkt sich auf den Vergleich von Ergebnissen in IF-Anweisungen aus.


Systemvariable $$DATE$$

 Beispiele

Syntax

$$DATE$$

Beschreibung

$$DATE$$ ruft das aktuelle Betriebssystemdatum ab (client-seitig). Sie können $$DATE$$ benutzen, um einen Standardwert oder Standardbereich für ein Textobjekt anzugeben, indem Sie die Attribute Ausgangwert Höchster zulässiger Wert oder Niedrigster zulässiger Wert benutzen. Das Textobjekt muß den Datentyp CHAR, DATE oder DATETIME aufweisen.

Sie können $$DATE$$ auch als Standardwert für Formparameter benutzen. In diesem Fall wird der Wert des Parameters einmal beim Starten der Form berechnet.

Verwendungshinweise

Der Unterschied zwischen $$DATE$$ und $$DATETIME$$ besteht darin, daß die Zeitkomponente für $$DATE$$ immer auf 00:00:00 fixiert ist, verglichen mit $$DATETIME$$, die eine aussagefähige Zeitkomponente enthält, wie z.B. 09:17:59.

Die Anzeige von Systemvariablen wird von der Formatmaske bestimmt, wobei es sich entweder um eine Standardformatmaske oder eine von Ihnen angegebene Maske handelt. Wenn Sie z.B. das Standardformat TT-MON-JJ benutzen möchten, müssen Sie einen Datentyp DATE angeben. (Beachten Sie, daß die Standard-Formatmaske von dem Wert von NLS_LANG abhängig ist.)

Auch wenn $$DATE$$ nur das Datum anzeigt, umfaßt der zugrundeliegende Wert eine Zeitkomponente, die beim Festschreiben ebenfalls gespeichert wird. Wenn Sie einen Datentyp DATETIME angeben und $$DATE$$ als Standardwert bereitstellen, ist der zugrundeliegende Wert TT-MON-JJJJ HH:MM:SS: zum Beispiel 01-DEZ-1994 00:00:00 (auch wenn nur 01-DEZ-1994 angezeigt wird).

Benutzen Sie $$DATE$$, wenn der Inhalt dieses Feldes mit einem Feld verglichen werden soll, dessen Formatmaske keine Zeitkomponente hat, wie z.B. ein Feld SHIPDATE mit dem Datentyp DATE. In diesem Fall haben sowohl $$DATE$$ als auch SHIPDATE eine Zeitkomponente von 00:00:00, so daß der Vergleich der beiden Datumsangaben, der denselben Tag ergibt, erfolgreich verläuft.


Beispiele für $$DATE$$

Beispiel 1

Angenommen, für den Wert eines Textobjekts DATE mit der Bezeichnung ORDERDATE soll standardmäßig das laufende Datum benutzt werden. Wenn Sie das Textobjekt ORDERDATE definieren, geben Sie $$DATE$$ in dem Attribut Ausgangwert des Textobjekts an.

Beispiel 2

Wenn Sie $$DATE$$ in einem Parameter benutzen, wie z.B. :PARAMETER.STARTUP_DATE, ist das Datum, an dem Sie die Anwendung gestartet haben, immer dann verfügbar, wenn Sie diesen Parameter referenzieren:

IF :PARAMETER.Startup_Date + 1 < :System.Current_Datetime
   THEN Message ('You have been logged on for more than a day.');
ELSE Message ('You just logged on today.');
END IF;


Systemvariable $$DATETIME$$

 Beispiele

Syntax

$$DATETIME$$

Beschreibung

$$DATETIME$$ ruft das aktuelle Betriebssystemdatum bzw. die aktuelle Betriebssystemzeit ab. Sie können $$DATETIME$$ benutzen, um einen Standardwert oder einen Bereich für ein Textobjekt mit den Attributen Ausgangwert oder Höchster zulässiger Wert oder Niedrigster zulässiger Wert anzugeben. Dieses Textobjekt muß den Datentyp CHAR oder DATETIME aufweisen.

Sie können $$DATETIME$$ auch als Standardwert für Formparameter benutzen. In diesem Fall wird der Wert des Parameters einmal beim Starten der Form berechnet.

Verwendungshinweise

Die Anzeige von Systemvariablen wird von der Formatmaske gesteuert, d.h. einer Standard-Formatmaske oder einer von Ihnen angegebenen Formatmaske. Wenn Sie z.B. das Standardformat TT-MON-JJ HH:MM:SS verwenden möchten, müssen Sie einen Datentyp DATETIME angeben. (Beachten Sie, daß die Standard-Formatmaske von dem Wert von NLS_LANG abhängig ist.)

Der Unterschied zwischen $$DATE$$ und $$DATETIME$$ besteht darin, daß die Zeitkomponente für $$DATE$$ immer auf 00:00:00 fixiert ist, verglichen mit $$DATETIME$$, die eine aussagefähige Zeitkomponente enthält, wie z.B. 09:17:59.

Hinweis:  Benutzen Sie $$DATETIME$$ nicht anstelle von $$DATE$$, es sei denn, Sie möchten die Zeitkomponente angeben. Wenn Sie z.B. $$DATETIME$$ mit der Standard-Datumsformatmaske TT-MON-JJ verwenden, schreiben Sie Werte in der Datenbank fest, die der Benutzer nicht sieht, weil die Formatmaske keine Zeitkomponente umfaßt. Weil Sie spezifische Zeitinformationen festgeschrieben haben, stimmen die Werte bei einer späteren Abfrage des Datums nicht überein, und es werden keine Zeilen zurückgegeben.


Beispiele für $$DATETIME$$

Angenommen, der Wert eines Textobjekts DATETIME mit der Bezeichnung ORDERDATE soll standardmäßig dem aktuellen Betriebssystemdatum bzw. der aktuellen Betriebssystemzeit entsprechen. Wenn Sie das Textobjekt ORDERDATE definieren, geben Sie $$DATETIME$$ in dem Attribut Ausgangwert an.


Systemvariable $$DBDATE$$

 Beispiele 	   Einschränkungen

Syntax

$$DBDATE$$

Beschreibung

$$DBDATE$$ ruft das aktuelle Datenbankdatum ab. Sie können $$DBDATE$$ benutzen, um einen Standardwert bzw. Standardbereich für ein Textobjekt mit den Attributen Ausgangwert oder Höchster zulässiger Wert oder Niedrigster zulässiger Wert anzugeben. Das Textobjekt muß den Datentyp CHAR, DATE oder DATETIME aufweisen.

Verwendungshinweise

Der Unterschied zwischen $$DBDATE$$ und $$DBDATETIME$$ besteht darin, daß die Zeitkomponente bei $$DBDATE$$ immer auf 00:00:00 fixiert ist, im Vergleich zu $$DBDATETIME$$, die eine aussagefähige Zeitkomponente umfaßt, wie z.B. 09:17:59.

Benutzen Sie $$DBDATE$$, wenn ein DATE-Objekt als Standardwert das laufende Datum auf dem Server-Rechner benutzen soll, z.B. wenn Sie sich bei einer entfernten Datenbank anmelden, die sich in einer anderen Zeitzone als der Zeitzone des Client befindet.

Die Anzeige von Systemvariablen wird von der Formatmaske bestimmt, d.h. einer Standard-Datumsformatmaske oder einer von Ihnen angegebenen Formatmaske. Wenn Sie z.B. das Standardformat TT-MON-JJ benutzen möchten, müssen Sie einen Datentyp DATE verwenden. (Beachten Sie, daß die Standard-Formatmaske von dem Wert von NLS_LANG abhängig ist.)

Auch wenn $$DBDATE$$ nur das Datum anzeigt, umfaßt der zugrundeliegende Wert eine Zeitkomponente, die beim Festschreiben gespeichert wird. Wenn Sie einen Datentyp DATETIME angeben und $$DBDATE$$ als Standardwert verwenden, ist der zugrundeliegende Wert TT-MON-JJJJ HH:MM:SS: zum Beispiel 01-DEZ-1994 00:00:00 (auch wenn nur 01-DEZ-1994 angezeigt wird).


Einschränkungen bei $$DBDATE$$

•	Wenn Sie auf eine fremde Datenquelle zugreifen, sollten Sie $$DBDATE$$ nicht benutzen. Statt dessen verwenden Sie einen When-Create-Record-Trigger, um das laufende Datum auf eine für die Datenquelle spezifische Weise auszuwählen.


Beispiele für $$DBDATE$$

Wenn der Wert eines Textobjekts DATE mit der Bezeichnung ORDERDATE standardmäßig dem laufenden Datenbankdatum entsprechen soll, geben Sie $$DBDATE$$ bei dem Attribut Ausgangswert für das Textobjekt ORDERDATE an.


Systemvariable $$DBDATETIME$$

 Beispiele 	   Beschränkungen

Syntax

$$DBDATETIME$$

Beschreibung

$$DBDATETIME$$ ruft das laufende Datum und die laufende Uhrzeit aus der lokalen Datenbank ab. Sie können $$DBDATETIME$$ benutzen, um einen Standardwert oder Standardbereich für ein Textobjekt mit den Attributen Ausgangwert oder Höchster zulässiger Wert oder Niedrigster zulässiger Wert anzugeben. Das Textobjekt muß den Datentyp CHAR oder DATETIME aufweisen.

Verwendungshinweise

Benutzen Sie $$DBDATETIME$$, wenn ein DATE-Objekt standardmäßig das laufende Datum auf dem Server-Rechner benutzen soll, z.B. wenn Sie sich bei einer entfernten Datenbank anmelden, die in einer anderen Zeitzone liegt als der Client.

Die Anzeige von Systemvariablen wird von der Formatmaske bestimmt, d.h. einer Standard-Datumsformatmaske oder einer von Ihnen angegebenen Formatmaske. Wenn Sie z.B. ein Format TT-MON-JJ HH:MM:SS verwenden möchten, müssen Sie einen Datentyp DATETIME oder CHAR angeben. (Beachten Sie, daß die Standard-Formatmaske von dem Wert von NLS_LANG abhängig ist.)

Wenn Sie eine Client-Server-Anwendung generieren, könnte die Benutzung von $$DBDATETIME$$ Auswirkungen auf die Leistung haben, je nach Komplexität der Netzwerkkonfiguration.

Hinweis:  Benutzen Sie $$DBDATETIME$$ nicht anstelle von $$DBDATE$$, wenn Sie nicht ausdrücklich die Zeitkomponente angeben möchten. Wenn Sie z.B. $$DBDATETIME$$ mit der Standard-Datumsformatmaske TT-MON-JJ verwenden, würden Sie Werte in der Datenbank festschreiben, die der Benutzer nicht sieht, weil die Formatmaske keine Zeitkomponente umfaßt. Da Sie spezifische Zeitinformationen festgeschrieben haben, würden die Werte bei einer späteren Abfrage für das Datum nicht übereinstimmen, und es würden keine Zeilen zurückgegeben.


Einschränkungen bei $$DBDATETIME$$

•	Wenn Sie auf eine fremde Datenquelle zugreifen, sollten Sie $$DBDATETIME$$ nicht benutzen. Statt dessen verwenden Sie einen When-Create-Record-Trigger, um das laufende Datum und die laufende Uhrzeit in einer für die Datenquelle spezifischen Weise auszuwählen.


Beispiele für $$DBDATETIME$$

Angenommen, der Wert eines Textobjektes DATETIME mit der Bezeichnung ORDERDATE soll standardmäßig das laufende Datenbankdatum bzw. die laufende Datenbankuhrzeit verwenden. Wenn Sie das Textobjekt ORDERDATE definieren, geben Sie $$DBDATETIME$$ bei dem Attribut Höchster zulässiger Wert oder Niedrigster zulässiger Wert an.


Systemvariable $$DBTIME$$

 Beispiele 	   Einschränkungen

Syntax

$$DBTIME$$

Beschreibung

$$DBTIME$$ ruft die laufende Uhrzeit aus der lokalen Datenbank ab. Sie können $$DBTIME$$ benutzen, um einen Standardwert oder Standardbereich für ein Textobjekt mit den Attributen Ausgangwert oder Höchster zulässiger Wert oder Niedrigster zulässiger Wert anzugeben. Das Textobjekt muß den Datentyp CHAR oder TIME aufweisen.

Verwendungshinweise

Benutzen Sie $$DBTIME$$, wenn Sie sich bei einer entfernten Datenbank anmelden, die sich in einer anderen Zeitzone als der Client befindet.

Die Anzeige von Systemvariablen wird von der Formatmaske bestimmt, entweder einer Standard-Datumsformatmaske oder einer von Ihnen angegebenen Formatmaske. Wenn Sie z.B. das Standardformat HH:MM:SS benutzen möchten, müssen Sie einen Datentyp TIME angeben. (Beachten Sie, daß die Standard-Formatmaske von dem Wert von NLS_LANG abhängig ist.)

Wenn Sie eine Client-Server-Anwendung generieren, könnte die Benutzung von $$DBTIME$$ Auswirkungen auf die Leistung haben, je nach Komplexität der Netzwerkkonfiguration.


Einschränkungen bei $$DBTIME$$

•	Wenn Sie auf eine fremde Datenquelle zugreifen, sollten Sie $$DBTIME$$ nicht benutzen. Statt dessen verwenden Sie einen When-Create-Record-Trigger, um die laufende Uhrzeit auf eine für die Datenquelle spezifische Weise auszuwählen.


Beispiele für $$DBTIME$$

Angenommen, der Wert eines Textobjektes TIME mit der Bezeichnung ORDERTIME soll standardmäßig die laufende Datenbankuhrzeit verwenden. Wenn Sie das Textobjekt ORDERTIME definieren, geben Sie $$DBTIME$$ bei dem Attribut Ausgangswert an.


Systemvariable $$TIME$$

 Beispiele

Syntax

$$TIME$$

Beschreibung

$$TIME$$ ruft die laufende Betriebssystemzeit ab. Sie können $$TIME$$ benutzen, um einen Standardwert oder Standardbereich für ein Textobjekt mit den Attributen Ausgangwert oder Höchster zulässiger Wert oder Niedrigster zulässiger Wert anzugeben. Das Textobjekt muß den Datentyp CHAR oder TIME aufweisen.

Sie können $$TIME$$ auch als Standardwert für Formparameter benutzen. In diesem Fall wird der Wert des Parameters einmal beim Starten der Form berechnet.

Verwendungshinweise

Die Anzeige von Systemvariablen wird von der Formatmaske bestimmt, entweder einer Standard-Datumsformatmaske oder einer von Ihnen angegebenen Formatmaske. Wenn Sie z.B. das Standardformat HH:MM:SS benutzen möchten, müssen Sie einen Datentyp TIME angeben. (Beachten Sie, daß die Standard-Formatmaske von dem Wert von NLS_LANG abhängig ist.)


Beispiele für $$TIME$$

Angenommen, der Wert eines Textobjektes TIME mit der Bezeichnung ORDERTIME soll standardmäßig die aktuelle Betriebssystemzeit benutzen. Wenn Sie das Objekt ORDERTIME definieren, geben Sie $$TIME$$ in dem Attribut Ausgangswert an.


Systemvariable SYSTEM.BLOCK_STATUS

 Beispiele 	     Verwandte Themen

Syntax

SYSTEM.BLOCK_STATUS

Beschreibung

SYSTEM.BLOCK_STATUS stellt den Status eines Datenblocks dar, in dem der Cursor steht, bzw. des aktuellen Datenblocks während der Triggerverarbeitung. Der Wert kann einer der drei folgenden Zeichenfolgen entsprechen:

CHANGED	Gibt an, daß der Block mindestens einen geänderten Datensatz enthält.
NEW	Gibt an, daß der Block nur neue Datensätze enthält.
QUERY	Gibt an, daß der Block nur gültige Datensätze enthält, die aus der Datenbank abgerufen wurden.
Verwendungshinweise

Jedesmal, wenn dieser Wert referenziert wird, muß er von Form Builder erzeugt werden. Wenn Ihr Block eine große Anzahl von Datensätzen enthält, könnte sich die Benutzung von SYSTEM.BLOCK_STATUS negativauf die Leistung auswirken.


Beispiele für SYSTEM.BLOCK_STATUS

Angenommen, Sie möchten einen Trigger erstellen, der einen Commit-Vorgang ausführt, bevor ein Block bereinigt wird, wenn innerhalb dieses Blocks zu speichernde Änderungen vorhanden sind. Der folgende Key-CLRBLK-Trigger führt diese Funktion aus.

IF :System.Block_Status = 'CHANGED'
   THEN Commit_Form;
END IF;
Clear_Block;


Systemvariable SYSTEM.COORDINATION_OPERATION

  Verwandte Themen

Syntax

SYSTEM.COORDINATION_OPERATION

Beschreibung

Diese Systemvariable wird zusammen mit der zugehörigen Systemvariablen SYSTEM.MASTER_BLOCK benutzt, damit ein On-Clear-Details-Trigger bestimmen kann, welcher synchronisationsauslösende Vorgang den Trigger ausgelöst hat und bei welchem Master-Block einer Master-Detail-Beziehung.

Die Werte der beiden Systemvariablen bleiben während der Bereinigungsphase jeder Blocksynchronisation konstant. SYSTEM.MASTER_BLOCK stellt den Namen des steuernden Master-Blocks dar, SYSTEM.COORDINATION_OPERATION das synchronisationsauslösende Ereignis darstellt, das bei dem Master-Block eingetreten ist.

Die Prozedur Clear_All_Master_Details, die automatisch generiert wird, wenn eine Beziehung erstellt wird, prüft den Wert von SYSTEM.COORDINATION_OPERATION, um eine spezielle Bearbeitung für die Ereignisse CLEAR_RECORD und SYNCHRONIZE bereitzustellen, die sich von der Verarbeitung bei anderen synchronisationsauslösenden Ereignissen unterscheiden kann. Die Prozedur Clear_All_Master_Details prüft außerdem den Wert von SYSTEM.MASTER_BLOCK, um sicherzustellen, daß während der Verarbeitung des Master-Blocks einer Beziehungskoordination nur nach Blöcken gesucht wird, die Änderungen enthalten.

Wenn z.B. bei der unten dargestellten Beziehungshierarchie zwischen Blöcken mit der Taste [Nächster Datensatz] oder dem Menübefehl Datensatz Nächster zu dem nächsten Datensatz in Block C gegangen wird, würden die Blöcke E, F, G und H bereinigt (und möglicherweise nachher abgefragt, je nach Attribut Deferred_Coordination der C [image] E- und C [image] F-Beziehungen).

Wenn der On-Clear-Details-Trigger für Block C ausgelöst wird, ist das Ergebnis:

:System.Cooordination_Operation   = 'NEXT_RECORD'
:System.Master_Block              = 'C'

Die Prozedur Clear_All_Master_Details bereinigt alle Details von Block C, so daß es zu einer Kettenreaktion von Clear_Block-Vorgängen kommt. Demzufolge wird Block F bereinigt.

Da es sich bei F um einen Master-Block für G und H handelt und dieser Block bereinigt wird, wird ebenfalls ein On-Clear-Details-Trigger für Block F ausgelöst. Da das Bereinigen von Block F (indirekt) durch ein synchronisationsauslösendes Ereignis in Block C gesteuert wurde, bleiben die folgenden Werte in dem On- On-Clear-Details für Block F:

:System.Cooordination_Operation   = 'NEXT_RECORD'
:System.Master_Block              = 'C'

Hinweis:  Die Werte dieser beiden Systemvariablen sind nur im Geltungsbereich eines On-Clear-Details-Triggers oder eines Programmblocks definiert, der von diesem Trigger aufgerufen wird. Außerhalb dieses engen Kontextes sind die Werte dieser beiden Variablen undefiniert und sollten nicht benutzt werden.

In der folgenden Tabelle werden die möglichen Werte von SYSTEM.COORDINATION_OPERATION beschrieben, wenn diese Variable überprüft wird.

Wert	Beschreibung	Verursacht durch
MOUSE	Mausbewegung zu nicht aktuellem Datensatz	Maus
UP	Geht einen Datensatz nach oben	Menü, Taste, PL/SQL
DOWN	Geht einen Datensatz nach unten	Menü, Taste, PL/SQL
SCROLL_UP	Bildlauf durch die Datensätze nach oben	Menü, Taste, PL/SQL
SCROLL_DOWN	Bildlauf durch die Datensätze nach unten	Maus, Taste, PL/SQL
CLEAR_BLOCK	Bereinigt aktuellen Block	Menü, Taste, PL/SQL
CLEAR_RECORD	Bereinigt aktuellen Datensatz	Menü, Taste, PL/SQL
CREATE_RECORD	Erstellt neuen Datensatz	Maus, Menü, Taste, PL/SQL
DELETE_RECORD	Löscht aktuellen Datensatz	Menü, Taste, PL/SQL
DUPLICATE_RECORD	Dupliziert aktuellen Datensatz	Menü, Taste, PL/SQL
FIRST_RECORD	Geht zum ersten Datensatz	PL/SQL
LAST_RECORD	Geht zum letzten Datensatz	PL/SQL
NEXT_RECORD	Geht zum nächsten Datensatz	Maus, Menü, Taste, PL/SQL
PREVIOUS_RECORD	Geht zum vorherigen Datensatz	Maus, Menü, Taste, PL/SQL
GO_RECORD	Springt zu dem mit der Zahl angegebenen Datensatz	PL/SQL
ENTER_QUERY	Abfragemodus	Menü, Taste, PL/SQL
EXECUTE_QUERY	Führt die Abfrage aus	Menü, Taste, PL/SQL
COUNT_QUERY	Zählt abgerufene Datensätze	Menü, Taste, PL/SQL
NEXT_SET	Ruft nächste Gruppe mit Datensätzen ab	Menü, Taste, PL/SQL
SYNCHRONIZE_ BLOCKS	Nimmt die Verarbeitung nach einem Commit-Fehler wieder auf	Nur intern


Systemvariable SYSTEM.CURRENT_BLOCK

Syntax

SYSTEM.CURRENT_BLOCK

Beschreibung

Der Wert, den die Systemvariable SYSTEM.CURRENT_BLOCK darstellt, hängt von der aktuellen Navigationseinheit ab:

•	Wenn die aktuelle Navigationseinheit der Block, Datensatz oder das Objekt ist (wie bei Pre- und Post-Item-, Record- und Block-Triggern), ist der Wert von SYSTEM.CURRENT_BLOCK der Name des Blocks, den Form Builder verarbeitet oder in dem der Cursor steht.

•	Wenn die aktuelle Navigationseinheit die Form ist (wie bei den Pre- und Post-Form-Triggern), ist der Wert von SYSTEM.CURRENT_BLOCK gleich NULL.

Der Wert ist immer eine Zeichenfolge.

Hinweis:  SYSTEM.CURRENT_BLOCK ist aus Kompatibilitätsgründen mit früheren Versionen enthalten. Oracle Corporation empfiehlt, daß Sie statt dessen SYSTEM.CURSOR_BLOCK und SYSTEM.TRIGGER_BLOCK verwenden.


Systemvariable SYSTEM.CURRENT_DATETIME

 Beispiele

Syntax

SYSTEM.CURRENT_DATETIME

Beschreibung

SYSTEM.CURRENT_DATETIME ist eine Variable, die das Betriebssystemdatum darstellt. Der Wert ist eine CHAR-Zeichenfolge in folgendem Format:

TT-MON-JJJJ HH24:MM:SS

Standardwert

Laufendes Datum

Verwendungshinweise

SYSTEM.CURRENT_DATETIME wird benutzt, wenn Sie das laufende Betriebssystemdatum und die laufende Betriebssystemzeit in einem PL/SQL-Trigger bzw. einer PL/SQL-Prozedur verwenden möchten. Wenn Sie SYSTEM.CURRENT_DATETIME anstelle von $$DBDATETIME$$ verwenden, können Sie die Auswirkungen auf die Leistung umgehen, die sich aus der Abfrage der Datenbank ergeben.

Hinweis:  Die lokale Zeit und die Datenbankzeit können sich unterscheiden.


Beispiele für SYSTEM.CURRENT_DATETIME

/*

**
** Trigger:  WHEN-TIMER-EXPIRED
** Example:  Update on-screen time every 30 seconds
*/
DECLARE
   time VARCHAR2(20);
BEGIN
   time := :System.Current_Datetime;
   :control.onscreen := SUBSTR(time, instr(time,' ')+1);
END;


Systemvariable SYSTEM.CURRENT_FORM

 Beispiele

Syntax

SYSTEM.CURRENT_FORM

Beschreibung

SYSTEM.CURRENT_FORM stellt den Namen der Form dar, die Form Builder ausführt. Der Wert ist immer eine Zeichenfolge.

Verwendungshinweise

Sie können die vordefinierte Prozedur GET_APPLICATION_PROPERTY verwenden, um den Namen der aktuellen Form abzurufen.


Beispiele für SYSTEM.CURRENT_FORM

Angenommen, eine aufgerufene Form soll den Namen der Form identifizieren können, die sie aufgerufen hat. Sie können die folgende benutzerdefinierte Prozedur aufrufen, bevor Form Builder einen Aufruf ausgibt. Diese Prozedur speichert den Namen der aktuellen Form in einer globalen Variablen mit der Bezeichnung CALLING_FORM.

PROCEDURE STORE_FORMNAME IS
BEGIN
   :GLOBAL.Calling_Form := :System.Current_Form;
END;


Systemvariable SYSTEM.CURRENT_ITEM

  Verwandte Themen

Syntax

SYSTEM.CURRENT_ITEM

Beschreibung

Der Wert, den die Systemvariable SYSTEM.CURRENT_ITEM darstellt, hängt von der aktuellen Navigationseinheit ab:

•	Wenn die aktuelle Navigationseinheit das Objekt ist (wie bei Pre- und Post-Item-Triggern), entspricht der Wert von SYSTEM.CURRENT_ITEM dem Namen des Objekts, das Form Builder verarbeitet bzw. in dem der Cursor steht. Der zurückgegebene Objektname umfaßt kein Präfix für den Blocknamen.

•	Wenn die aktuelle Navigationseinheit der Datensatz, Block oder die Form ist (wie in den Pre- und Post-Record-, Block- und Form-Triggern), ist der Wert von SYSTEM.CURRENT_ITEM gleich NULL.

Der Wert ist immer eine Zeichenfolge.

Hinweis:  SYSTEM.CURRENT_ITEM ist aus Kompatibilitätsgründen mit früheren Versionen enthalten. Oracle Corporation empfiehlt, daß Sie statt dessen SYSTEM.CURSOR_ITEM oder  SYSTEM.TRIGGER_ITEM verwenden.


Systemvariable SYSTEM.CURRENT_VALUE

Syntax

SYSTEM.CURRENT_VALUE

Beschreibung

SYSTEM.CURRENT_VALUE stellt den Wert des Objekts dar, das in SYSTEM.CURRENT_ITEM registriert ist.

Der Wert ist immer eine Zeichenfolge.

Hinweis:  SYSTEM.CURRENT_VALUE ist aus Kompatibilitätsgründen mit früheren Versionen enthalten. Oracle Corporation empfiehlt, daß Sie statt dessen SYSTEM.CURSOR_ITEM und SYSTEM.CURSOR_VALUE verwenden.


Systemvariable SYSTEM.CURSOR_BLOCK

 Beispiele

Syntax

SYSTEM.CURSOR_BLOCK

Beschreibung

Der Wert, den die Systemvariable SYSTEM.CURSOR_BLOCK darstellt, hängt von der aktuellen Navigationseinheit ab:

•	Wenn die aktuelle Navigationseinheit der Block, Datensatz oder das Objekt ist (wie in den Pre- und Post-Item-, Record- und Block-Triggern), entspricht der Wert von SYSTEM.CURSOR_BLOCK dem Namen des Blocks, in dem der Cursor steht. Der Wert ist immer eine Zeichenfolge.

•	Wenn die aktuelle Navigationseinheit die Form ist (wie in den Pre- und Post-Form-Triggern), ist der Wert von SYSTEM.CURSOR_BLOCK gleich NULL.


Beispiele für SYSTEM.CURSOR_BLOCK

Angenommen, Sie möchten einen Key-NXTBLK-Trigger auf Formebene erstellen, der je nach aktuellem Block navigiert. Der folgende Trigger führt diese Funktion aus, wobei die in einer lokalen Variablen gespeicherte Variable :SYSTEM.CURSOR_BLOCK verwendet wird.

DECLARE
   curblk VARCHAR2(30);
BEGIN
   curblk := :System.Cursor_Block;
   IF curblk = 'ORDERS'
      THEN Go_Block('ITEMS');
   ELSIF curblk = 'ITEMS'
      THEN Go_Block('CUSTOMERS');
   ELSIF curblk = 'CUSTOMERS'
      THEN Go_Block('ORDERS');
   END IF;
END;


Systemvariable SYSTEM.CURSOR_ITEM

 Beispiele 	   Einschränkungen

Syntax

SYSTEM.CURSOR_ITEM

Beschreibung

SYSTEM.CURSOR_ITEM stellt den Namen des Blocks und Objekts, block.item, dar, in dem der Eingabefokus (Cursor) steht.

Der Wert ist immer eine Zeichenfolge.

Verwendungshinweise

Innerhalb eines bestimmten Triggers ändert sich der Wert von SYSTEM.CURSOR_ITEM, wenn die Navigation erfolgt. Dies unterscheidet sich von SYSTEM.TRIGGER_ITEM, die von Anfang bis Ende eines einzigen Triggers unverändert bleibt.


Einschränkungen bei SYSTEM.CURSOR_ITEM

Sie sollten SYSTEM.CURSOR_ITEM in Triggern nicht benutzen, in denen die aktuelle Navigationseinheit kein Objekt ist, wie z.B. in Pre- and Post-Record-, Block- und Form-Triggern. In diesen Triggern ist der Wert von SYSTEM.CURSOR_ITEM gleich NULL.


Beispiele für SYSTEM.CURSOR_ITEM

Angenommen, Sie möchten eine benutzerdefinierte Prozedur erstellen, die den Wert des Objekts annimmt, in dem der Cursor steht (von SYSTEM.CURSOR_VALUE dargestellt), danach den Wert mit einer Konstanten multipliziert und den geänderten Wert dann in dasselbe Objekt einliest. Die folgende benutzerdefinierte Prozedur verwendet die vordefinierte Prozedur COPY, um diese Funktion auszuführen.

PROCEDURE CALC_VALUE IS
   new_value NUMBER;
BEGIN
   new_value := TO_NUMBER(:System.Cursor_Value) * .06;
   Copy(TO_CHAR(new_value), :System.Cursor_Item);
END;


Systemvariable SYSTEM.CURSOR_RECORD

 Beispiele

Syntax

SYSTEM.CURSOR_RECORD

Beschreibung

SYSTEM.CURSOR_RECORD stellt die Nummer des Datensatzes dar, in dem der Cursor steht. Diese Nummer stellt die aktuelle physikalische Reihenfolge des Datensatzes in der Liste mit Datensätzen des Blocks dar. Der Wert ist immer eine Zeichenfolge.


Beispiele für SYSTEM.CURSOR_RECORD

Angenommen, Sie möchten [Vorheriges Objekt] bei dem ersten Textobjekt des Blocks ITEMS neu definieren, so daß zu dem letzten Textobjekt des Blocks ORDERS navigiert wird, wenn der aktuelle Datensatz der erste Datensatz ist. Der folgende Key-PRV-ITEM-Trigger bei dem Textobjekt ITEMS.ORDERID führt diese Funktion aus.

IF :System.Cursor_Record = '1'
   THEN Go_Item('orders.total');
   ELSE Previous_Item;
END IF;


Systemvariable SYSTEM.CURSOR_VALUE

 Beispiele 	   Einschränkungen

Syntax

SYSTEM.CURSOR_VALUE

Beschreibung

SYSTEM.CURSOR_VALUE stellt den Wert des Objekts dar, in dem der Cursor steht. Der Wert ist immer eine Zeichenfolge.

Verwendungshinweise

Beachten Sie, daß SYSTEM.CURSOR_VALUE in Triggern, bei denen die aktuelle Navigationseinheit nicht das Objekt ist, wie z.B. in Pre-Record- und Pre-Block-Triggern, den Wert des Objekts enthält, aus dem navigiert wird, und nicht den Wert des Objekts, zu dem navigiert wird.


Einschränkungen bei SYSTEM.CURSOR_VALUE

•	Sie sollten SYSTEM.CURSOR_VALUE nicht in Pre-Form- and Post-Form -Triggern benutzen, in denen der Wert von SYSTEM.CURSOR_VALUE gleich NULL ist.


Beispiele für SYSTEM.CURSOR_VALUE

Angenommen, Sie möchten eine benutzerdefinierte Prozedur erstellen, die den Wert des Objekts annimmt, in dem der Cursor gespeichert ist, den Wert mit einer Konstanten multipliziert und dann den geänderten Wert in dasselbe Objekt einliest. Die folgende benutzerdefinierte Prozedur verwendet die vordefinierte Prozedur COPY, um diese Funktion auszuführen.

PROCEDURE CALC_VALUE IS
   new_value NUMBER;
BEGIN
   new_value := TO_NUMBER(:System.Cursor_Value) * .06;
   Copy(TO_CHAR(new_value), :System.Cursor_Item);
END;


Systemvariable SYSTEM.CUSTOM_ITEM_EVENT

 Beispiele

Syntax

SYSTEM.CUSTOM_ITEM_EVENT

Beschreibung

SYSTEM.CUSTOM_ITEM_EVENT speichert den Namen des Ereignisses, das durch ein VBX- (bei 16-Bit Microsoft Windows) oder ActiveX- (bei 32-Bit Windows) Steuerelement ausgelöst wird.


Beispiele für SYSTEM.CUSTOM_ITEM_EVENT

Prüft, ob das Ereignis SpinDown von dem VBX-SpinButton-Steuerelement ausgelöst wurde, bevor zum vorherigen Objekt navigiert wird.

IF  :System.Custom_Item_Event = 'SpinDown' THEN
 :QTY := :QTY -1;
END IF;


Systemvariable SYSTEM.CUSTOM_ITEM_EVENT_PARAMETERS

 Beispiele

Syntax

SYSTEM.CUSTOM_ITEM_EVENT_PARAMETERS

Beschreibung

SYSTEM.CUSTOM_ITEM_EVENT_PARAMETERS speichert die zusätzlichen Argumente für ein Ereignis, das von einem VBX- (bei 16-Bit Microsoft Windows) oder ActiveX- (bei 32-Bit Windows) Steuerelement ausgelöst wird.


Beispiele für SYSTEM.CUSTOM_ITEM_EVENT_PARAMETERS

Ruft die Werte des Parameters 'Button' ab, der den Wert eines VBX-Steuerelementereignisses speichert, und übergibt den Wert 'Button' an das benutzerdefinierte Unterprogramm Move_Image.

DECLARE
 parmType  NUMBER;
 parmValue VARCHAR2(80);
BEGIN
 Get_Parameter_Attr(:System.Custom_Item_Event_Parameters,
                      'Button',parmType,parmValue);
 /*
 ** The value of the 'Button' parameter represents the
 ** direction to move an image.  The user-defined Move_Image
 ** subprogram moves an image two pixels in the direction
 ** specified by 'Button' parameter.
 */
 Move_Image(parmValue);
END;


Systemvariable SYSTEM.DATE_THRESHOLD

Syntax

SYSTEM.DATE_THRESHOLD

Beschreibung

SYSTEM.DATE_THRESHOLD stellt den Schwellwert für die erneute Abfrage des Datenbankdatums dar. Diese Variable wird in Verbindung mit den drei Systemvariablen$$DBDATE$$, $$DBDATETIME$$ und $$DBTIME$$ benutzt und steuert, wie oft Form Builder das Datum der Datenbank mit RDBMS synchronisiert. Der Wert dieser Variablen muß im folgenden Format angegeben werden:

MI:SS

Da häufige RDBMS-Abfragen zu einer Leistungsverminderung führen können, wird empfohlen, diesen Wert relativ hoch zu halten. Berücksichtigen Sie jedoch, daß, wenn dieser Wert nicht oft genug synchronisiert wird, es zu Zeitdiskrepanzen kommen kann. Wenn Sie eine Client-Server-Anwendung generieren, könnten die Leistungsauswirkungen von SYSTEM.DATE_THRESHOLD je nach Komplexität der Netzwerkkonfiguration variieren.

Standardwert

01:00 (Synchronisation erfolgt nach Ablauf einer Minute.)

Dies bedeutet nicht, daß Form Builder die RDBMS einmal pro Minute abfragt. Es bedeutet, daß, wann immer Form Builder den Wert für die Systemvariablen $$DBDATE$$, $$DBDATETIME$$, $$DBTIME$$ oder SYSTEM.EFFECTIVE_DATE generieren muß, die konkreten Daten aktualisiert werden, indem die abgelaufene Zeit (wie vom lokalen Betriebssystem gemessen) zu dem zuletzt abgefragten RDBMS-Wert addiert wird.

Wenn die insgesamt abgelaufene Zeit den Schwellwert für das Datum überschreitet, wird eine neue Abfrage ausgeführt, um die RDBMS-Zeit abzurufen, und der Zähler für die abgelaufene Zeit wird zurückgesetzt.

Verwendungshinweise

Wenn eine Form das Datenbankdatum niemals referenziert, führt Form Builder niemals eine Abfrage aus, um das RDBMS-Datum abzurufen, unabhängig vom Wert von SYSTEM.DATE_THRESHOLD.

Die Betriebssystemuhr und die RDBMS-Uhr weichen nur selten um mehr als eine oder zwei Sekunden ab, selbst nach Ablauf mehrerer Stunden. Da der Datenbankadministrator die RDBMS-Uhr jedoch jederzeit zurücksetzen kann, wird empfohlen, den Schwellwert auf maximal einige wenige Minuten festzulegen.

Häufig enthält ein Form Builder-Block mehrere Referenzen auf diese Standardwerte  $$DBDATE$$, $$DBDATETIME$$ oder $$DBTIME$$. Indem SYSTEM.DATE_THRESHOLD auf den Standardwert von einer Minute festgelegt wird, können nahezu alle derartigen Referenzen in einer Form mit einer einzigen Abfrage der RDBMS erfüllt werden.


Systemvariable SYSTEM.EFFECTIVE_DATE

 Beispiele 	   Einschränkungen

Syntax

SYSTEM.EFFECTIVE_DATE

Beschreibung

SYSTEM.EFFECTIVE_DATE stellt das konkrete Datenbankdatum dar. Der Wert der Variablen muß immer folgendes Format aufweisen:

DD-MON-YYYY HH24:MI:SS

Standardwert

RDBMS-Datum

Verwendungshinweise

Diese Variable wird besonders für Testzwecke benutzt. Da Sie mit ihr eine bestimmte Zeit festlegen können, würde die Zeit auf dem Bildschirm während einer Anwendung nicht dazu führen, daß nachfolgende Testergebnisse anders als in der bekannten gültigen Ausgabe dargestellt werden.


Einschränkungen bei SYSTEM.EFFECTIVE_DATE

Diese Variable ist nur gültig, wenn die Datenbank eine Definition der Tabelle DUAL enthält.


Beispiele für SYSTEM.EFFECTIVE_DATE

Angenommen, Sie haben ein Textobjekt DATE oder TIME auf eine der drei Systemvariablen $$DBDATE$$, $$DBDATETIME$$ oder $$DBTIME$$ eingestellt. Wenn Sie dieses Datum bzw. diese Uhrzeit außer Kraft setzen möchten, können Sie die Systemvariable SYSTEM.EFFECTIVE_DATE auf ein bestimmtes Datum und/oder eine bestimmte Uhrzeit einstellen.

:System.Effective_Date := '31-DEC-1997 10:59:00'

Beachten Sie, daß das konkrete Datum mit der Datenbankuhr weiterläuft. Wenn Sie z.B. das Datum wie in dem obigen Beispiel dargestellt einstellen, würde das Datum nach einer Stunde wie folgt angezeigt:

31-DEC-1997 11:59:00

Der Wert wird mit dem RDBMS-Datum synchronisiert. Wenn der Datenbankadministrator das RDBMS-Datum ändert, wird SYSTEM.EFFECTIVE_DATE automatisch um denselben Wert zwischen dem alten und neuen RDBMS-Datum geändert. Form Builder fragt RDBMS immer dann ab, wenn eine Referenz auf das effektive Datum von der Anwendung gefordert wird.


Systemvariable SYSTEM.EVENT_WINDOW

  Beispiele 	  Verwandte Themen

Syntax

SYSTEM.EVENT_WINDOW

Beschreibung

Die Systemvariable SYSTEM.EVENT_WINDOW stellt den Namen des letzten Fensters dar, das von einer Aktion betroffen wurde, die die Auslösung eines der Fensterereignis-Trigger verursacht hat. Die folgenden Trigger können dazu führen, daß diese Variable aktualisiert wird:

•	WHEN-WINDOW-ACTIVATED

•	WHEN-WINDOW-CLOSED

•	WHEN-WINDOW-DEACTIVATED

•	WHEN-WINDOW-RESIZED

Aus diesen Triggern können Sie den Wert der Variablen einem der folgenden Objekte zuweisen:

•	Globale Variable

•	Parameter

•	Variable

•	Objekt, einschließlich Null-Leinwandobjekt


Beispiele für SYSTEM.EVENT_WINDOW

Das folgende Beispiel setzt den Eingabefokus in ein bestimmtes Objekt, je nach betroffenem Fenster:

IF :System.Event_Window = 'ROOT_WINDOW' THEN
   Go_Item('EMPNO');
ELSIF :System.Event_Window = 'DEPT_WINDOW' THEN
   Go_Item('DEPTNO');
END IF;


Systemvariable SYSTEM.FORM_STATUS

 Beispiele 	     Verwandte Themen

Syntax

SYSTEM.FORM_STATUS

Beschreibung

SYSTEM.FORM_STATUS stellt den Status der aktuellen Form dar. Der Wert kann einer der drei folgenden Zeichenfolgen entsprechen:

CHANGED	Gibt an, daß die Form mindestens einen Block mit einem geänderten Datensatz enthält. Der Wert von SYSTEM.FORM_STATUS wird nur dann zu CHANGED, wenn mindestens ein Datensatz in der Form geändert wurde und die zugehörige Navigationseinheit ebenfalls geändert wurde.
NEW	Gibt an, daß die Form nur neue Datensätze enthält.
QUERY	Gibt an, daß eine Abfrage geöffnet ist. Die Form enthält mindestens einen Block mit QUERY-Datensätzen und keine Blöcke mit CHANGED-Datensätzen.
Verwendungshinweise

Jedesmal, wenn dieser Wert referenziert wird, muß er von Form Builder generiert werden. Wenn eine Form eine große Anzahl von Blöcken und viele Datensätze enthält, könnte sich die Benutzung von SYSTEM.FORM_STATUS auf die Leistung auswirken.


Beispiele für SYSTEM.FORM_STATUS

Angenommen, Sie möchten einen Trigger erstellen, der einen Commit-Vorgang ausführt, bevor Sie eine Form löschen, wenn innerhalb dieser Form festzuschreibende Änderungen vorhanden sind. Der folgende Key-CLRFRM-Trigger führt diese Funktion aus.

IF :System.Form_Status = 'CHANGED'
   THEN Commit_Form;
END IF;
Clear_Form;


Systemvariable SYSTEM.LAST_FORM

Syntax

SYSTEM.LAST_FORM

Beschreibung

SYSTEM.LAST_FORM stellt die Form-Dokument-ID der vorherigen Form in einer Anwendung mit mehreren Forms dar, wobei mehrere Forms mit OPEN_FORM aufgerufen wurden. Der Wert kann einer der beiden folgenden Zeichenfolgen entsprechen: Form-Dokument-ID oder NULL.

Verwendungshinweise

SYSTEM.LAST_FORM ist mit CALL_FORM nicht gültig.


Systemvariable SYSTEM.LAST_QUERY

 Beispiele

Syntax

SYSTEM.LAST_QUERY

Beschreibung

SYSTEM.LAST_QUERY stellt die SELECT-Abfrageanweisung dar, die Form Builder zuletzt benutzt hat, um einen Block während der aktuellen Runform-Sitzung aufzufüllen. Der Wert ist immer eine Zeichenfolge.


Beispiele für SYSTEM.LAST_QUERY

Beispiel 1

Angenommen, Sie möchten einen Bericht in Report Builder generieren, der Informationen abruft, die identisch mit einer Abfrage sind, die Sie in Form Builder ausführen. In den folgenden Beispielen wird dargestellt, wie SYSTEM.LAST_QUERY benutzt wird, um die WHERE/ORDER BY-Klausel aus der letzten Abfrage zu extrahieren, damit Sie die Ergebnisse mit der vordefinierten Prozedur RUN_PRODUCT an Report Builder übergeben können.

FUNCTION Last_Where_Clause
RETURN VARCHAR2
  IS
    tmp_lstqry VARCHAR2(10000) := :System.Last_Query;
    tmp_curblk VARCHAR2(40);
    tmp_index  NUMBER;
    tmp_where  VARCHAR2(2000);
  BEGIN
    /*
    ** See if we can find the word 'WHERE' in
    ** the text of the Last Query
    */
    tmp_index:= INSTR(tmp_lstqry,'WHERE');
    /*
    ** If we found it (at a positive index into
    ** the string), we extract the remainder of
    ** the text that follows the word 'WHERE' as
    ** the Where clause. This might include ORDER BY
    ** clause, too.
    */
    IF tmp_index > 0 THEN
      tmp_where := SUBSTR(tmp_lstqry, tmp_index + 6);
    END IF;
    RETURN (tmp_where);
EXCEPTION
  WHEN OTHERS THEN
    RETURN NULL;
END;

Beispiel 2

PROCEDURE Run_Report_For_Last_Query

IS
   pl  ParamList;
   wc  VARCHAR2(2000); -- The Where Clause to Pass
BEGIN
   /*
   ** Create a parameter list for parameter passing
   */
   pl := Create_Parameter_List('tmp');
   /*
   ** Get the Where Clause from the Last Query
   ** using a user-defined function
   */
   wc := Last_Where_Clause;
   /*
   ** If there is a Non-NULL Last Where clause to
   ** pass, add a text parameter to the parameter
   ** list to specify the parameter name and its
   ** value. In this case the report definition has
   ** a parameter named 'the_Where_Clause' that
   ** it's expecting.
   */
   IF wc IS NOT NULL THEN
      Add_Parameter(pl,                  -- Handle to
                                         -- the ParamList
            'the_Where_Clause',          -- Name of Parameter
                                         -- in the Report
            TEXT_PARAMETER,              -- Type of Parameter
            wc                           -- String Value
                                         -- for Parameter
            );
   END IF;
   /*
   ** Launch the report, passing parameters in the
   ** parameter list.
   */
   Run_Product(REPORTS,              -- The Product to call
                'rep0058.rdf',       -- The name of the
                                     -- report definition
                SYNCHRONOUS,         -- The communications mode
                BATCH,               -- The Execution Mode
                FILESYSTEM,          -- The Location of the
                                     -- reports document
                pl                   -- The Handle to the
      );                                -- parameter list
   /*   Delete the parameter list  */
   Destroy_Parameter_List(pl);
END;


Systemvariable SYSTEM.LAST_RECORD

 Beispiele

Syntax

SYSTEM.LAST_RECORD

Beschreibung

SYSTEM.LAST_RECORD gibt an, ob der aktuelle Datensatz der letzte Datensatz in der Liste mit Datensätzen eines Blocks ist. Der Wert entspricht einem der folgenden CHAR-Werte:

TRUE	Gibt an, daß der aktuelle Datensatz der letzte Datensatz in der Liste mit Datensätzen des aktuellen Blocks ist.
FALSE	Gibt an, daß der aktuelle Datensatz nicht der letzte Datensatz in der Liste mit Datensätzen des aktuellen Blocks ist.


Beispiele für SYSTEM.LAST_RECORD

Angenommen, Sie möchten eine benutzerdefinierte Prozedur erstellen, die eine benutzerdefinierte Meldung anzeigt, wenn ein Operator zu dem letzten Datensatz in der Liste mit Datensätzen eines Blocks navigiert. Die folgende benutzerdefinierte Prozedur führt die Basisfunktion aus.

PROCEDURE LAST_RECORD_MESSAGE IS
BEGIN
   IF :System.Last_Record = 'TRUE'
      THEN Message('You are on the last row');
   END IF;
END;

Danach können Sie [Nach-unten], [Nächster Datensatz] und [Bildlauf-nach-unten] neu definieren, damit neben der normalen Verarbeitung diese benutzerdefinierte Prozedur aufgerufen wird.


Systemvariable SYSTEM.MASTER_BLOCK

Syntax

SYSTEM.MASTER_BLOCK

Beschreibung

Diese Systemvariable wird in Verbindung mit SYSTEM.COORDINATION_OPERATION benutzt, damit ein On-Clear-Details-Trigger bestimmen kann, welche Art von synchronisationsauslösendem Vorgang den Trigger ausgelöst hat und bei welchem Master-Block einer Master-Detail-Beziehung.

Die Werte der beiden Systemvariablen bleiben während der Bereinigungsphase jeder Blocksynchronisation konstant. SYSTEM.MASTER_BLOCK stellt den Namen des steuernden Master-Blocks dar, während SYSTEM_COORDINATION_OPERATION das synchronisationsauslösende Ereignis darstellt, das in dem Master-Block eingetreten ist.

Weitere Einzelheiten finden Sie in der Beschreibung von SYSTEM.COORDINATION_OPERATION.


Systemvariable SYSTEM.MESSAGE_LEVEL

 Beispiele

Syntax

SYSTEM.MESSAGE_LEVEL

Beschreibung

SYSTEM.MESSAGE_LEVEL speichert einen der folgenden Schweregrade für Meldungen: 0, 5, 10, 15, 20 oder 25. Der Standardwert ist 0.

SYSTEM.MESSAGE_LEVEL kann auf eine Zeichenfolge oder eine Zahl eingestellt werden. Die zugewiesenen Wert können zwischen 0 und 25 liegen, Werte unter 0 oder über 25 führen jedoch zu einem Fehler.

Während einer Runform-Sitzung unterdrückt Form Builder alle Meldungen mit einem Schweregrad, der identisch oder niedriger (weniger schwerwiegend) als der angegebene Schweregrad ist.

Weisen Sie der Systemvariablen SYSTEM.MESSAGE_LEVEL einen Wert mit der PL/SQL-Standardsyntax zu:

:System.Message_Level := value;

Die zulässigen Werte für SYSTEM.MESSAGE_LEVEL sind 0, 5, 10, 15, 20 und 25. Form Builder unterdrückt keine Eingabeaufforderungen oder wichtigen Fehlermeldungen, unabhängig von dem von Ihnen ausgewählten Schweregrad.


Beispiele für SYSTEM.MESSAGE_LEVEL

Angenommen, Form Builder soll nur die schwerwiegendsten Meldungen (Ebene 25) anzeigen. Der folgende Pre-Form-Trigger unterstützt alle Meldungen auf Ebene 20 und darunter.

:System.Message_Level := '20';


Systemvariable SYSTEM.MODE

 Beispiele

Syntax

SYSTEM.MODE

Beschreibung

Mit SYSTEM.MODE wird angegeben, ob sich die Form im Modus Normal, Abfragemodus oder im Verarbeitenmodus befindet. Der Wert ist immer eine Zeichenfolge.

NORMAL	Gibt an, daß sich die Form momentan im normalen Verarbeitungsmodus befindet.
ENTER-QUERY	Gibt an, daß sich die Form momentan im Abfragemodus befindet.
QUERY	Gibt an, daß sich die Form momentan im Verarbeitenmodus befindet, d.h. daß momentan eine Abfrage ausgeführt wird.
Verwendungshinweise

Wenn Sie SYSTEM.MODE benutzen, um zu prüfen, ob sich der aktuelle Block im Abfragemodus befindet, berücksichtigen Sie, daß Sie niemals in den Abfragemodus gelangen, wenn Sie aus einem When-Button-Pressed-Trigger in einem Steuerblock testen, weil der Steuerblock nicht der aktuelle Block ist.


Beispiele für SYSTEM.MODE

Angenommen, Form Builder soll eine Werteliste anzeigen, wenn der Operator in den Abfragemodus geht und der Eingabefokus in einem bestimmten Textobjekt steht. Der folgende Trigger führt diesen Vorgang aus.

/*
** When-New-Item-Instance Trigger
*/
BEGIN
   IF :System.Cursor_Item = 'EMP.EMPNO' and
     :System.Mode = 'ENTER-QUERY'
   THEN
      IF NOT Show_Lov('my_lov') THEN
         RAISE Form_Trigger_Failure;
   END IF;
END;


Systemvariable SYSTEM.MOUSE_BUTTON_MODIFIERS

Syntax

SYSTEM.MOUSE_BUTTON_MODIFIERS

Beschreibung

Mit SYSTEM.MOUSE_BUTTON_MODIFIERS werden die Tasten angegeben, die während des Mausklicks gedrückt wurden, wie z.B.  UMSCHALTTASTE, ALT oder STRG. Der Wert ist immer eine Zeichenfolge.

Wenn der Operator z.B. die Umschalt- und Strg-Taste gedrückt hält, während er die Maustaste drückt, enthält SYSTEM.MOUSE_BUTTON_MODIFIERS den Wert "Shift+Control+".

Die von dieser Variablen zurückgegebenen Werte sind über dalle Plattformen hinweg gleich und ändern sich auch bei den verschiedenen Sprachen nicht. SYSTEM.MOUSE_BUTTON_MODIFIERS sollte anstelle von SYSTEM.MOUSE_BUTTON_SHIFT_STATE benutzt werden.

Mögliche Werte sind: "Shift+", Caps Lock+", "Control+", "Alt+", "Command+", "Super+" und "Hyper+".


Systemvariable SYSTEM.MOUSE_BUTTON_PRESSED

 Beispiele 	 Verwandte Themen

Syntax

SYSTEM.MOUSE_BUTTON_PRESSED

Beschreibung

SYSTEM.MOUSE_BUTTON_PRESSED gibt die Nummer der Maustaste an, mit der geklickt wurde, d.h. entweder 1, 2  oder 3 (linke, mittlere oder rechte Maustaste).  Der Wert ist immer eine Zeichenfolge.

Hinweise:

Auf Motif-Plattformen wird durch Drücken der rechten Maustaste nicht der Wert SYSTEM.MOUSE_BUTTON_PRESSED eingestellt.


Beispiele für SYSTEM.MOUSE_BUTTON_PRESSED

/*

**  Trigger:  When-Mouse-Click
**  Example:  When mouse button 1 is pressed,
**            a help window appears.
*/
DECLARE
   the_button_pressed  VARCHAR(1);
BEGIN
   the_button_pressed := :System.Mouse_Button_Pressed;
   IF the_button_pressed = '1' THEN
      Show_Window('online_help',20,5);
   END IF;
END;


Systemvariable SYSTEM.MOUSE_BUTTON_SHIFT_STATE

 Beispiele 	 Verwandte Themen

Syntax

SYSTEM.MOUSE_BUTTON_SHIFT_STATE

Beschreibung

SYSTEM.MOUSE_BUTTON_SHIFT_STATE gibt die Taste an, die während des Mausklicks gedrückt wurde, wie z.B. UMSCHALTTASTE, ALT oder STRG. Der Wert ist immer eine Zeichenfolge. Die Zeichenfolge selbst hängt von der Benutzerplattform ab. In Microsoft Windows werden die Zeichenfolgen in der Sprache des Betriebssystems zurückgegeben.

Gedrückte Taste	Wert
UMSCHALTTASTE	Umschalttaste+
STRG	Strg+
ALT	Alt+
UMSCHALTTASTE+STRG	Umschalttaste+Strg+


Beispiele für SYSTEM.MOUSE_BUTTON_SHIFT_STATE

/*

**  Trigger:  When-Mouse-Click
**  Example:  If the operator presses down on the Shift key and
**            then clicks on a boilerplate image, a window
**            appears.
*/
DECLARE
   key_pressed  VARCHAR(30) := 'FALSE';
   x_position_clicked NUMBER(30);
   y_position_clicked NUMBER(30);

BEGIN
   key_pressed := :System.Mouse_Button_Shift_State;
   x_position_clicked := To_Number(:System.Mouse_X_Pos);
   y_position_clicked := To_Number(:System.Mouse_Y_Pos);
/*
**  If the operator shift-clicked within the x and y
**  coordinates of a boilerplate image, display a window.
*/
   IF  key_pressed = 'Shift+' AND x_position_clicked
      BETWEEN 10 AND 20 AND y_position_clicked BETWEEN 10
      AND 20 THEN
      Show_Window('boilerplate_image_window');
   END IF;
END;


Systemvariable SYSTEM.MOUSE_CANVAS

  Beispiele 	{button, ALink(SYSMBP; SYSMBSS;  SYSMOUFM; SYSMOUIT; SYSMOURC; SYSMRO; SYSMOUX; SYSMOUY,,,)} Verwandte Themen

Syntax

SYSTEM.MOUSE_CANVAS

Beschreibung

Wenn die Maus in einer Leinwand steht, stellt SYSTEM.MOUSE_CANVAS den Namen dieser Leinwand in Form eines CHAR-Wertes dar. Wenn die Maus in einem Objekt steht, stellt diese Variable den Namen der Leinwand dar, die das Objekt enthält.

SYSTEM.MOUSE_CANVAS ist NULL, wenn:

•	die Maus nicht in einer Leinwand steht.

•	der Operator die linke Maustaste drückt und dann die Maus bewegt.

•	die Plattform keine grafische Benutzeroberfläche ist.


Beispiele für SYSTEM.MOUSE_CANVAS

/*

**  Trigger:  When-Mouse-Move
**  Example:  When the mouse enters any one of several overlapping
**            canvases, Form Builder brings that canvas to the
**            front.
*/
DECLARE
   canvas_to_front  VARCHAR(50);
BEGIN
   canvas_to_front := :System.Mouse_Canvas;
   Show_View(canvas_to_front);
END;


Systemvariable SYSTEM.MOUSE_FORM

 Verwandte Themen

Syntax

SYSTEM.MOUSE_FORM

Beschreibung

Wenn die Maus in einem Formdokument steht, stellt SYSTEM.MOUSE_FORM den Namen dieses Formdokuments in Form eines CHAR-Wertes dar. Wenn die Maus z.B. in Form_Module1 steht, ist der Wert für SYSTEM.MOUSE_ITEM gleich FORM_MODULE1.

Hinweis:  SYSTEM.MOUSE_FORM ist gleich NULL, wenn es sich bei der Plattform nicht um eine grafische Benutzeroberfläche handelt.


Systemvariable SYSTEM.MOUSE_ITEM

 Beispiele 	 	 Verwandte Themen

Syntax

SYSTEM.MOUSE_ITEM

Beschreibung

Wenn die Maus in einem Objekt steht, stellt SYSTEM.MOUSE_ITEM den Namen dieses Objekts in Form eines CHAR-Wertes dar. Wenn die Maus z.B. in Objekt 1 in Block2 steht, ist der Wert für SYSTEM.MOUSE_ITEM gleich :BLOCK2.ITEM1.

SYSTEM.MOUSE_ITEM ist gleich NULL, wenn:

•	die Maus nicht in einem Objekt steht.

•	der Operator die linke Maustaste drückt und dann die Maus bewegt.

•	die Plattform keine grafische Benutzeroberfläche ist.


Beispiele für SYSTEM.MOUSE_ITEM

/* Trigger:  When-Mouse-Click

**   Example:  Dynamically repositions an item if:
**             1) the operator clicks mouse button 2
**                on an item and
**             2) the operator subsequently clicks mouse button
**                2 on an area of the canvas that is
**                not directly on top of another item.
*/
DECLARE
   item_to_move       VARCHAR(50);
   the_button_pressed VARCHAR(50);
   target_x_position  NUMBER(3);
   target_y_position  NUMBER(3);
   the_button_pressed VARCHAR(1);
BEGIN
   /* Get the name of the item that was clicked.
   */
   item_to_move := :System.Mouse_Item;
   the_button_pressed := :System.Mouse_Button_Pressed;
   /*
   **  If the mouse was clicked on an area of a canvas that is
   **  not directly on top of another item, move the item to
   **  the new mouse location.
   */
   IF item_to_move IS NOT NULL AND the_button_pressed =  '2' THEN
      target_x_position := To_Number(:System.Mouse_X_Pos);
      target_y_position := To_Number(:System.Mouse_Y_Pos);
      Set_Item_Property(item_to_move,position,
          target_x_position,target_y_position);
      target_x_position := NULL;
      target_y_position := NULL;
      item_to_move := NULL;
   END IF;
END;


Systemvariable SYSTEM.MOUSE_RECORD

 Beipiele 	 Verwandte Themen

Syntax

SYSTEM.MOUSE_RECORD

Beschreibung

Wenn die Maus in einem Datensatz steht, stellt SYSTEM.MOUSE_RECORD die Datensatznummer dieses Datensatzes in Form eines CHAR-Wertes dar.

Hinweis:  SYSTEM.MOUSE_RECORD ist 0, wenn die Maus nicht in einem Objekt (und somit nicht in einem Datensatz) steht.


Beispiele für SYSTEM.MOUSE_RECORD

/*

**  Trigger:  When-Mouse-Move
**  Example:  If the mouse is within a record, display a window
**            that contains an editing toolbar.
*/
DECLARE
   mouse_in_record  NUMBER(7);
BEGIN
   mouse_in_record := To_Number(:System.Mouse_Record);

   IF mouse_in_record > 0 THEN
      Show_Window('editing_toolbar');
   END IF;
END;


Systemvariable SYSTEM.MOUSE_RECORD_OFFSET

 Verwandte Themen

Syntax

SYSTEM.MOUSE_RECORD_OFFSET

Beschreibung

Wenn die Maus in einem Datensatz steht, stellt SYSTEM.MOUSE_RECORD_OFFSET den Versatz von dem ersten sichtbaren Datensatz in Form eines CHAR-Wertes dar. SYSTEM.MOUSE_RECORD_OFFSET ist nur innerhalb von Muas-Triggern gültig. Mit dem Wert dieser Systemvariablen wird dargestellt, in welcher Zeile innerhalb der sichtbaren Zeilen mit der Maus geklickt wurde.

Wenn die Maus z.B. im zweiten Datensatz von fünf Datensätzen in einem Block mit mehreren Datensätzen steht, ist SYSTEM.MOUSE_RECORD_OFFSET gleich 2. (SYSTEM.MOUSE_RECORD_OFFSET benutzt einen Index zur Basis 1.)

Hinweis:  SYSTEM.MOUSE_RECORD_OFFSET ist 0, wenn die Maus nicht in einem Objekt (und somit nicht in einem Datensatz) steht.


Systemvariable SYSTEM.MOUSE_X_POS

 Beispiele 	 	 Verwandte Themen

Syntax

SYSTEM.MOUSE_X_POS

Beschreibung

SYSTEM.MOUSE_X_POS stellt die x-Koordinate der Maus in den Einheiten des aktuellen Form-Koordinatensystems (in Form eines CHAR-Wertes) dar. Wenn die Maus in einem Objekt steht, ist der Wert relativ zur oberen linken Ecke der Umrandung des Objekts. Wenn die Maus in einer Leinwand steht, ist der Wert relativ zur oberen linken Ecke der Leinwand.

Hinweis:  SYSTEM.MOUSE_X_POS ist bei Zeichenmodus-Plattformen immer gleich NULL.


Beispiele für SYSTEM.MOUSE_X_POS

/*

**  Example:  See SYSTEM.MOUSE_ITEM and
**            SYSTEM.MOUSE_BUTTON_SHIFT_STATE.
*/


Systemvariable SYSTEM.MOUSE_Y_POS

 Beispiele 	 Verwandte Themen

Syntax

SYSTEM.MOUSE_Y_POS

Beschreibung

SYSTEM.MOUSE_Y_POS stellt die y-Koordinate der Maus mit den Einheiten des aktuellen Koordinatensystems (in Form eines CHAR-Wertes) dar. Wenn die Maus in einem Objekt steht, ist der Wert relativ zur oberen linken Ecke der Umrandung des Objekts. Wenn die Maus in einer Leinwand steht, ist der Wert relativ zur oberen linken Ecke der Leinwand.

Hinweis:  SYSTEM.MOUSE_Y_POS ist bei Zeichenmodus-Plattformen immer gleich NULL.


Beispiele für SYSTEM.MOUSE_Y_POS

/*

**  Example:  See SYSTEM.MOUSE_ITEM and
**            SYSTEM.MOUSE_BUTTON_SHIFT_STATE.
*/


Systemvariable SYSTEM.RECORD_STATUS

 Beispiele 	     Verwandte Themen

Syntax

SYSTEM.RECORD_STATUS

Beschreibung

SYSTEM.RECORD_STATUS stellt den Status des Datensatzes dar, in dem der Cursor steht. Der Wert kann einer der vier folgenden Zeichenfolgen entsprechen:

CHANGED	Gibt an, daß der Validierungsstatus des abgefragten Datensatzes Changed ist.
INSERT	Gibt an, daß der Validierungsstatus eines Datensatzes Changed ist und daß der Datensatz in der Datenbank nicht vorhanden ist.
NEW	Gibt an, daß der Validierungsstatus des Datensatzes New ist.
QUERY	Gibt an, daß der Validierungsstatus des Datensatzes gültig ist und daß dieser aus einer Datenbank abgerufen wurde.
Verwendungshinweise

Die vordefinierten Prozeduren SYSTEM.RECORD_STATUS und GET_RECORD_PROPERTY geben den Status eines Datensatzes in einem bestimmten Block zurück. Sie geben in den meisten Fällen denselben Status zurück. Es gibt jedoch besondere Fälle, in denen die Ergebnisse variieren können.

SYSTEM.RECORD_STATUS kann in bestimmten Fällen einen Wert von NULL zurückgeben, weil SYSTEM.RECORD_STATUS undefiniert ist, wenn in dem System kein aktueller Datensatz vorhanden ist. In einem When-Clear-Block-Trigger befindet sich Form Builder in der Verarbeitungssequenz auf Blockebene, so daß kein aktueller Datensatz für einen Bericht vorhanden ist, und der Wert von SYSTEM.RECORD_STATUS ist NULL.

GET_RECORD_PROPERTY hat hingegen immer einen Wert von NEW, CHANGED, QUERY oder INSERT, weil diese Prozedur den Status eines bestimmten Datensatzes unabhängig von der Verarbeitungssequenz oder unabhängig davon zurückgibt, ob der Datensatz der aktuelle Datensatz ist.


Beispiele für SYSTEM.RECORD_STATUS

Angenommen, Sie möchten einen Trigger erstellen, der einen Commit-Vorgang ausführt, bevor ein geänderter Datensatz bereinigt wird. Der folgende Key-CLRREC-Trigger führt diese Funktion aus.

IF :System.Record_Status IN ('CHANGED', 'INSERT') THEN
   Commit_Form;
END IF;
Clear_Record;


Systemvariable SYSTEM.SUPPRESS_WORKING

 Beispiele

Syntax

SYSTEM.SUPPRESS_WORKING

Beschreibung

SYSTEM.SUPPRESS_WORKING unterdrückt die Meldung "In Arbeit..." in Runform, um die Bildschirmaktualisierung zu verhindern, die im allgemeinen durch die Meldung "In Arbeit..." verursacht wird. Der Wert der Variablen entspricht einem der beiden folgenden CHAR-Werte:

TRUE	Verhindert, daß Form Builder die Meldung "In Arbeit..." ausgibt.
FALSE	Läßt zu, daß Form Builder die Meldung "In Arbeit..." ausgibt.


Beispiele für SYSTEM.SUPPRESS_WORKING

Angenommen, Sie möchten eine Form mit Daten auffüllen, wenn der Operator die Form aufruft. Der folgende When-New-Form-Instance-Trigger verhindert die unerwünschten Aktualisierungen, die normalerweise erfolgen, wenn Blöcke mit Daten aufgefüllt werden.

:System.Suppress_Working := 'TRUE';
Go_Block ('DEPT');
Execute_Query;
Go_Block ('EMP');
Execute_Query;
Go_Block ('DEPT');
:System.Suppress_Working := 'FALSE';


Systemvariable SYSTEM.TAB_NEW_PAGE

 Beispiele 	     Verwandte Themen

Syntax

SYSTEM.TAB_NEW_PAGE

Beschreibung

Die Systemvariable SYSTEM.TAB_NEW_PAGE gibt den Namen der Registerseite an, zu der navigiert wurde. Benutzen Sie die Systemvariable innerhalb When-Tab-Page-Changed-Triggers.


Beispiele für SYSTEM.TAB_NEW_PAGE

/* Use system variable SYSTEM.TAB_NEW_PAGE inside a

** When-Tab-Page-Changed trigger to change the label of
** the tab page to UPPERCASE when an end user navigates
** into the tab page:
*/
DECLARE
  tp_nm   VARCHAR2(30);
  tp_id   TAB_PAGE;
  tp_lbl  VARCHAR2(30);
BEGIN
  tp_nm  := :SYSTEM.TAB_NEW_PAGE;
  tp_id  := FIND_TAB_PAGE(tp_nm);
  tp_lbl := GET_TAB_PAGE_PROPERTY(tp_id, label);
  IF tp_nm LIKE 'ORD%' THEN
    SET_TAB_PAGE_PROPERTY(tp_id, label, 'ORDERS');
  END IF;
END;


Systemvariable SYSTEM.TAB_PREVIOUS_PAGE

 Beispiele 	     Verwandte Themen

Syntax

SYSTEM.TAB_PREVIOUS_PAGE

Beschreibung

Die Systemvariable SYSTEM.TAB_PREVIOUS_PAGE gibt den Namen der Registerseite an, aus der navigiert wurde. Benutzen Sie diese Systemvariable innerhalb eines When-Tab-Page-Changed-Triggers.


Beispiele für SYSTEM.TAB_PREVIOUS_PAGE

/* Use system variable SYSTEM.TAB_PREVIOUS_PAGE inside a

** When-Tab-Page-Changed trigger to change the label of the
** tab page to initial-cap after an end user navigates out
** of the tab page:
*/
DECLARE
  tp_nm   VARCHAR2(30);
  tp_id   TAB_PAGE;
  tp_lbl  VARCHAR2(30);
BEGIN
  tp_nm  := :SYSTEM.TAB_PREVIOUS_PAGE;
  tp_id  := FIND_TAB_PAGE(tp_nm);
  tp_lbl := GET_TAB_PAGE_PROPERTY(tp_id, label);
  IF tp_nm LIKE 'ORD%' THEN
    SET_TAB_PAGE_PROPERTY(tp_id, label, 'Orders');
  END IF;
END;


Systemvariable SYSTEM.TRIGGER_BLOCK

 Beispiele 	 	  Verwandte Themen

Syntax

SYSTEM.TRIGGER_BLOCK

Beschreibung

SYSTEM.TRIGGER_BLOCK stellt den Namen des Blocks dar, in dem der Cursor stand, als der aktuelle Trigger anfänglich ausgelöst wurde. Der Wert ist NULL, wenn es sich bei dem aktuellen Trigger um einen Pre- oder Post-Form-Trigger handelt. Der Wert ist immer eine Zeichenfolge.


Beispiele für SYSTEM.TRIGGER_BLOCK

Angenommen, Sie möchten eine Prozedur auf Formebene schreiben, die zu dem Block navigiert, in dem der Cursor stand, als der aktuelle Trigger anfänglich ausgelöst wurde. Die folgende Anweisung führt diese Funktion aus.

Go_Block(Name_In('System.Trigger_Block'));


Systemvariable SYSTEM.TRIGGER_ITEM

 Beispiele 	   Einschränkungen

Syntax

SYSTEM.TRIGGER_ITEM

Beschreibung

SYSTEM.TRIGGER_ITEM stellt das Objekt (BLOCK.ITEM) in dem Geltungsbereich dar, für den der Trigger momentan ausgelöst wird. Wenn diese Variable in einem Tastentrigger referenziert wird, stellt sie das Objekt dar, in dem der Cursor bei Beginn des Triggers stand. Der Wert ist immer eine Zeichenfolge.

Verwendungshinweise

SYSTEM.TRIGGER_ITEM bleibt vom Anfang bis zum Ende des jeweiligen Triggers unverändert. Dies unterscheidet sich von SYSTEM.CURSOR_ITEM, die sich innerhalb eines bestimmten Triggers verändert, wenn die Navigierung erfolgt.


Einschränkungen bei SYSTEM.TRIGGER_ITEM

Sie sollten SYSTEM.TRIGGER_ITEM in Triggern nicht benutzen, bei denen die aktuelle Navigationseinheit nicht das Objekt ist, wie z.B. in Pre- und Post-Record-, Block- und Form-Triggern. In diesen Triggern ist der Wert von SYSTEM.TRIGGER_ITEM gleich NULL.


Beispiele für SYSTEM.TRIGGER_ITEM

Angenommen, Sie möchten eine benutzerdefinierte Prozedur schreiben, die zu dem Objekt navigiert, in dem der Cursor stand, als der aktuelle Trigger anfänglich ausgelöst wurde. Die folgende Anweisung führt diese Funktion aus.

Go_Item(:System.Trigger_Item);


Systemvariable SYSTEM.TRIGGER_NODE_SELECTED

Syntax

SYSTEM.TRIGGER_NODE_SELECTED

Beschreibung

SYSTEM.TRIGGER_NODE_SELECTED enthält nur während des WHEN-TREE-NODE-SELECTED-Triggers einen gültigen Wert, um anzugeben, ob der Trigger für eine Auswahl oder das Aufheben einer Auswahl ausgelöst wird. Die Werte sind entweder TRUE oder FALSE.


Systemvariable SYSTEM.TRIGGER_RECORD

 Beispiele

Syntax

SYSTEM.TRIGGER_RECORD

Beschreibung

SYSTEM.TRIGGER_RECORD stellt die Nummer des Datensatzes dar, den Form Builder verarbeitet. Diese Nummer stellt die momentane physikalische Reihenfolge des Datensatzes in der Liste mit Datensätzen des Blocks dar. Der Wert ist immer eine Zeichenfolge.


Beispiele für SYSTEM.TRIGGER_RECORD

In dem folgenden anonymen Block benutzt die IF-Anweisung die Systemvariable SYSTEM.TRIGGER_RECORD, um den aktuellen Datensatz zu kennzeichnen, bevor mit der Verarbeitung fortgefahren wird.

IF :System.Trigger_Record = '1'
   THEN Message('First item in this order.');
END IF;


Timer benutzen


Über Timer

  Verwandte Themen

Ein Timer ist eine "interne Uhr", die Sie programmgesteuert erstellen, um immer dann eine Aktion auszuführen, wenn der Timer abläuft.

Die Timer-Dauer kann zwischen 1 und 2.147.483.647 Millisekunden liegen (1 Sekunde = 1000 Millisekunden). Die maximale Dauer eines Timers beläuft sich auf etwa 24,85 Tage.

Bei der Arbeit mit Timern führen Sie folgende Schritte aus:

1.	Mit der vordefinierten Prozedur CREATE_TIMER erstellen Sie die gewünschte Anzahl von sich wiederholenden oder nicht wiederholenden Timern.

2.	Erstellen Sie einen When-Timer-Expired-Trigger, der die gewünschte Aktion ausführt, wenn der Timer abläuft.


Über Regeln zur Benutzung von Timern

  Verwandte Themen

Bei der Benutzung von Timern berücksichtigen Sie die folgenden Regeln:

•	Ein When-Timer-Expired-Trigger kann während Transaktionen, der Triggerverarbeitung, der Navigation usw. nicht ausgelöst werden. Deshalb wird ein When-Timer-Expired-Trigger nur ausgelöst, während Form Builder auf eine Benutzereingabe wartet.

Somit kann ein Timer möglicherweise nicht auf die Millisekunde genau ablaufen, sondern wird nach der angegebenen Anzahl von Millisekunden ausgelöst.

•	Standardmäßig wird ein Timer nach dem Ablauf wiederholt, es sei denn, Sie geben NO_REPEAT an.

•	Wenn ein Timer erstellt wird, setzt Form Builder ihn in eine Warteschlange.

Ein When-Timer-Expired-Trigger wird nur einmal für jeden Timer ausgelöst, der in der Warteschlange steht.

•	Ein sich wiederholender Timer wird nicht wiederholt, während er in der Warteschlange steht. Er wird wiederholt, nachdem er einmal mit einem When-Timer-Expired-Trigger aus der Warteschlange ausgeführt wurde. Somit kann jeweils nur eine Instanz eines Timers in eine Warteschlange für abgelaufene Timer gestellt werden.

•	Wenn der Operator eine Anwendung vor Ablauf des Timers beendet, werden in der Warteschlange stehende Timer von dem When-Timer-Expired-Trigger nicht ausgeführt.


Timer erstellen

 Beispiele	     Verwandte Themen

Sie können einen Timer mit der vordefinierten Prozedur CREATE_TIMER erstellen.

CREATE_TIMER(timer_name, milliseconds, iterate);

wobei:

timer_name	den Timer-Namen mit maximal 30 alphanumerischen Zeichen angibt. Der Name muß mit einem Buchstaben beginnen. Der Datentyp des Namens ist CHAR.
Milliseconds	die Dauer des Timers in Millisekunden angibt. Der für diesen Parameter zulässige Wertebereich geht von 1 bis 2147483648 Millisekunden. Werte > 2147483648 werden auf 2147483648 abgerundet. Beachten Sie, daß nur positive Zahlen zulässig sind. Der Datentyp des Parameters ist NUMBER. Weitere Informationen finden Sie unter den Einschränkungen.
Iterate	angibt, ob der Timer beim Ablauf wiederholt werden soll oder nicht. Dieser Parameter verwendet die folgenden Konstanten als Argumente:
	REPEAT  Gibt an, daß der Timer beim Ablauf wiederholt werden soll. Standardwert
	NO_REPEAT  Gibt an, daß der Timer beim Ablauf nicht wiederholt werden soll, sondern nur einmal benutzt wird, bis er explizit erneut aufgerufen wird.


Beispiele für das Erstellen eines Timers

/*  Create a repeating timer that expires every hour */
DECLARE
     hour_timer TIMER;
     one_hour     NUMBER(7):=3600000;
BEGIN
     hour_timer:= CREATE_TIMER('alarm',one_hour,REPEAT);
END;


Auf mehrere Timer reagieren

 Beispiele	     Verwandte Themen

Wenn Sie mit mehreren Timern arbeiten, denken Sie daran, daß der When-Timer-Expired-Trigger ein Trigger auf Formebene ist. Er wird immer dann ausgelöst, wenn ein Timer abläuft. Wenn Ihre Anwendung mehrere Timer enthält, muß der When-Timer-Expired-Trigger einen Code enthalten, der die verschiedenen Timer entsprechend bearbeitet.

Hinweis:  Um den Timer-Namen des zuletzt ausgeführten Timers abzurufen, rufen Sie GET_APPLICATION_PROPERTY aus einem When-Timer-Expired-Trigger auf. Sonst sind die Ergebnisse der vordefinierten Prozedur undefiniert.


Beispiele für die Reaktion auf mehrere Timer

/*  Create a When-Timer-Expired trigger that can handle multiple
**  application timers.
*/
DECLARE
     expired_timer  CHAR(20);
BEGIN
     expired_timer:=GET_APPLICATION_PROPERTY(TIMER_NAME);
     IF expired_timer='T1'
        THEN /* handle timer T1 */;
     ELSIF expired_timer='T2'
        THEN /* handle timer T2 */;
     ELSE /* handle all other timers */;
     END IF;
END;


Timer programmgesteuert ändern

 Beispiele   [image]  Verwandte Themen

Bei der Arbeit mit Timern können Sie die folgenden vordefinierten Prozeduren verwenden:

•	CREATE_TIMER

•	DELETE_TIMER

•	FIND_TIMER

•	GET_APPLICATION_PROPERTY

•	SET_TIMER

Hinweis:  Sie können den Namen eines Timers nicht programmgesteuert ändern.


Beispiele für das programmgesteuerte Ändern eines Timers

/*
** Builtin:  FIND_TIMER
**
** Example:  If the timer exists, reset it. Otherwise create
**           it.
*/
PROCEDURE Reset_Timer_Interval( Timer_Name VARCHAR2,
Timer_Intv NUMBER ) IS
  tm_id       Timer;
  tm_interval NUMBER;
BEGIN
  /*
  ** User gives the interval in seconds, the timer routines
  ** expect milliseconds
  */
  tm_interval := 1000 * Timer_Intv;
  /* Lookup the timer by name */
  tm_id := Find_Timer(Timer_Name);
  /* If timer does not exist, create it */
  IF Id_Null(tm_id) THEN
    tm_id := Create_Timer(Timer_Name,tm_interval,NO_REPEAT);
  /*
  ** Otherwise, just restart the timer with the new interval
  */
  ELSE
    Set_Timer(tm_id,tm_interval,NO_REPEAT);
  END IF;
END;


Timer löschen

 Beispiele   [image]  Verwandte Themen

Sie können sich wiederholende und nicht wiederholende Timer mit der vordefinierten Prozedur DELETE_TIMER löschen.


Beispiele für das Löschen eines Timers

/*
** Builtin:  DELETE_TIMER
** Example:  Remove a timer after first checking to see if it
**           exists
*/
PROCEDURE Cancel_Timer (tm_name VARCHAR2) IS
     tm_id  TIMER;
BEGIN
  tm_id:=Find_Timer(tm_name);
  IF NOT Id_Null(tm_id) THEN
    Delete_Timer(tm_id);
  ELSE
    Message('Timer '||' has already been cancelled.');
  END IF;
END;


Über Tooltips

  Verwandte Themen

Ein Tooltip ist ein kleines Textfeld, in dem Hilfetexte zu einem Objekt angezeigt werden, wenn der Mauszeiger zu dem Objekt gesetzt wird.

Ein Tooltip wird angezeigt, wenn der Mauszeiger zu einem Objekt gesetzt wird und mindesten eine halbe Sekunde in dem Objekt verbleibt. Der Text wird in einem Feld zentriert direkt unter dem Objekt angezeigt. Die Größe des Feldes wird davon bestimmt, wieviel Platz zur Anzeige des Textes erforderlich ist. Die horizontalen und vertikalen Abmessungen des Feldes sind gerade groß genug, um den Text innerhalb eines dünnen Randes anzuzeigen.

Der Tooltip wird in dem angegebenen visuellen Attribut angezeigt. Wenn kein visuelles Attribut angegeben ist, benutzt der Tooltip dieselben visuellen Attributinformationen wie das Objekt, für das er angezeigt wird.

Der Tooltip bleibt sichtbar, bis die Maus aus dem Objekt herausbewegt bzw. zu einem anderen Objekt gesetzt wird, bis ein anderes Fenster angezeigt wird, oder bis der Benutzer eine Aktion mit dem Objekt durchführt, für das der Tooltip angezeigt wird.


Tooltips erstellen

  Verwandte Themen

So erstellen Sie einen Tooltip:

1.	Doppelklicken Sie im Objektnavigator auf das Objektsymbol neben dem Objekt, für das Sie einen Tooltip erstellen möchten. Dadurch wird die Attributpalette angezeigt.

2.	Unter dem Knoten Hilfe wählen Sie das Attribut Tooltip.

3.	Geben Sie den gewünschten Tooltip-Text in das Attributfeld Tooltip ein.

Tooltips programmgesteuert erstellen und bearbeiten  Sie können Tooltips auch programmgesteuert mit TOOLTIP_TEXT und TOOLTIP_ATTRIBUTE mit den folgenden vordefinierten Prozeduren erstellen und bearbeiten:

GET_ITEM_PROPERTY

SET_ITEM_PROPERTY


Über Ereignisse und Trigger

  Verwandte Themen

Trigger sind Blöcke mit PL/SQL-Code, die geschrieben werden, um bestimmte Aufgabe auszuführen, wenn ein bestimmtes Ereignis innerhalb einer Anwendung auftritt. Ein Form Builder-Trigger ist ein Ereignis-Handler, der in PL/SQL geschrieben ist, um das Standardverhalten bei der Verarbeitung zu verbessern (oder auch zu ersetzen). Jeder Trigger hat einen Namen und enthält eine oder mehrere PL/SQL-Anweisungen. Ein Trigger umfaßt PL/SQL-Code, damit dieser mit einem Ereignis verknüpft und als eindeutiges Objekt ausgeführt und verwaltet werden kann.

Wenn Form Builder auf ein Ereignis reagiert, indem der Code in einem Trigger ausgeführt wird, wird der Trigger "ausgelöst". Die meisten Formanwendungen umfassen zahlreiche Trigger, die als Antwort auf eine Vielzahl von Ereignissen ausgelöst werden.

Ein Trigger muß einem bestimmten Objekt in der Form zugeordnet sein, d.h. einem Objekt, einem Block oder der Form selbst. Das Objekt, dem ein Trigger zugeordnet ist, definiert den Geltungsbereich des Triggers und hilft somit Form Builder bei der Entscheidung, welcher Trigger ausgelöst werden soll, wenn das entsprechende Ereignis eintritt. Nicht alle Trigger sind für alle Objekte relevant. Ein When-Button-Pressed-Trigger würde z.B.keinem Anzeigeobjekt zugeordnet.

Triggernamen entsprechen vordefinierten Laufzeitereignissen. Der When-Button-Pressed -Trigger entspricht z.B. dem Ereignis Drücken einer Schaltfläche, das eintritt, wenn ein Operator eine Schaltfläche auswählt.  Der Name des Triggers stellt die Verbindung zwischen dem Ereignis und dem Triggercode dar. Wenn der Operator mit einer Maus auf eine Schaltfläche klickt, reagiert Form Builder, indem der Code in dem When-Button-Pressed-Trigger ausgeführt wird.

In einer Form mit drei Schaltflächen ist jeder Schaltfläche ein When-Button-Pressed-Trigger zugeordnet, und jeder Trigger enthält andere PL/SQL-Anweisungen. Wenn ein Operator eine der Schaltflächen auswählt, d.h. wenn das Ereignis Schaltfläche gedrückt eintritt, reagiert Form Builder, indem nur der When-Button-Pressed-Trigger ausgelöst wird, der der ausgewählten Schaltfläche zugeordnet ist. Die When-Button-Pressed-Trigger, die den beiden anderen Schaltflächen zugeordnet sind, liegen außerhalb des Geltungsbereichs des Ereignisses und werden somit ignoriert.


Ereignistypen

  Verwandte Themen

Form Builder erkennt eine vordefinierte Gruppe von Laufzeitereignissen, von denen ein jedes einen entsprechenden vordefinierten Trigger hat. Wenn Sie Code zu einer Anwendung hinzufügen, indem Sie einen Trigger schreiben, müssen Sie entscheiden, welches Ereignis den Trigger auslösen soll. Das ausgewählte Ereignis bestimmt den Namen, den Sie dem Trigger zuweisen.

Schnittstellenereignisse

Bei der Auswahl von Triggern müssen Sie genau verstehen, wann Ereignisse eintreten, sowohl in bezug auf andere Ereignisse als auch in bezug auf die Formverarbeitung. Einige Ereignisse sind externe Schnittstellenereignisse, und ihr Auftreten ist eindeutig. Beispiele für derartige Ereignisse und die entsprechenden Trigger umfassen:

Ereignis	Triggername
Drücken einer Schaltfläche	When-Button-Pressed
Klicken auf ein Kontrollkästchen	When-Checkbox-Changed
Drücken der Tabulatortaste	KEY-FN
Interne Verarbeitungsereignisse

Interne Ereignisse treten als Ergebnis der Laufzeitverarbeitung auf. Diese Ereignisse treten entsprechend dem Verarbeitungsmodell von Form Builder auf.

Betrachten Sie eine Form mit zwei Blöcken, Block A und Block B, mit Textobjekten in jedem Block. Bei GUI-Plattformen können Operatoren den Eingabefokus von einem Textobjekt in Block A zu einem Textobjekt in Block B verschieben, indem sie mit einer Maus auf das Zielobjekt klicken. Auch wenn dieser Vorgang nur eine Schnittstellenaktion umfaßt (den Mausklick auf das Zielobjekt), löst er in Wirklichkeit eine Reihe von internen Verarbeitungsereignissen aus, die alle einen oder mehrere entsprechende Trigger haben:

Ereignis	Triggername
Objekt validieren	When-Validate-Item
Objekt verlassen	Post-Text-Item
Datensatz validieren	When-Validate-Record
Datensatz verlassen	Post-Record
Block verlassen	Post-Block
In den Block gehen	Pre-Block
In den Datensatz gehen	Pre-Record
In Objekt gehen	Pre-Text-Item
Block zur Eingabe bereit machen	When-New-Block-Instance
Datensatz zur Eingabe bereit machen	When-New-Record-Instance
Objekt zur Eingabe bereit machen	When-New-Item-Instance

Sie müssen unbedingt verstehen, daß Navigationsereignisse, wie z.B. "Objekt verlassen" und "In Block gehen" als Folge der internen Formverarbeitungsnavigation auftreten. Diese Ereignisse treten auf, während Form Builder Daten in der Form validiert und durch die Objekthierarchie "navigiert", um von einem Objekt zu einem anderen zu gehen.

Um den Eingabefokus in dem Beispiel von einem Quellobjekt in einem Block zu einem Zielobjekt in einem anderen Block zu verschieben, validiert Form Builder zuerst den Wert im Quellobjekt, geht dann "in den Datensatz", um alle Objekte in dem Datensatz zu validieren, verläßt dann den Datensatz und "geht in den Block" usw., bis schließlich das Zielobjekt erreicht ist.

Das Verarbeitungsmodell von Form Builder erzwingt die Datenintegrität auf Objekt-, Datensatz-, Block- und Formebene. Die große Menge an Ereignissen, auf die Sie mit Triggercode reagieren können, gibt Ihnen eine vollständige Kontrolle über jeden Aspekt Ihrer Anwendung.

Prozesse und Unterprozesse

Ein Prozeß besteht aus einer Reihe von individuellen, zusammengehörigen Ereignissen, die während einem bestimmten Vorgang von Form Builder Runform auftreten. Im vorherigen Beispiel wurde ein Navigationsprozeß beschrieben. Andere Prozesse umfassen Validierungs- und Datenbanktransaktionen. So umfaßt z.B. der Prozeß Transaktionen abschicken und speichern eine komplexe Folge von Ereignissen und Unterprozessen.


Triggerdefinitionsebene und -geltungsbereich

  Verwandte Themen

Wenn Sie einen Trigger erstellen, ordnen Sie ihn einem bestimmten Objekt zu, d.h. einem Element, einem Block oder der Form selbst. Das Objekt, dem ein Trigger zugeordnet ist, bestimmt die Definitionsebene des Triggers in der Objekthierarchie. So hat z.B. ein Trigger, der einem Block namens Customer zugeordnet ist, eine Block-Definitionsebene und wird als "Trigger auf Blockebene" bezeichnet.

Die Definitionsebene eines Triggers ist wichtig, da sie den Geltungsbereich des Triggers bestimmt. Der Geltungsbereich eines Triggers ist dessen Domäne in der Objekthierarchie von Form Builder und bestimmt, wann ein Ereignis eintreten muß, damit der Trigger auf dieses Ereignis reagiert.

Der Trigger-Geltungsbereich wird als Trigger-Definitionsebene (Form, Block oder Objekt) und darunter definiert. Somit wird ein Trigger auf Blockebene ausgelöst, wenn das Triggerereignis innerhalb dieses Blocks auftritt, wird jedoch nicht ausgelöst, wenn dasselbe Ereignis in irgendeinem anderen Block auftritt.

Betrachten Sie den When-New-Item-Instance-Trigger. Dieser Trigger wird infolge eines Ereignisses "In das Objekt gehen" ausgelöst, das auftritt, wenn der Operator oder die Anwendung zu einem anderen Objekt navigiert. Wenn der When-New-Item-Instance-Trigger einem Textobjekt zugeordnet ist, wird er nur ausgelöst, wenn der Operator in dieses bestimmte Objekt geht. Wenn derselbe When-New-Item-Instance-Trigger dem Block zugeordnet wäre, würde er ausgelöst, wenn der Operator in ein beliebiges Objekt in diesem Block gehen würde. Wenn der Trigger der Form zugeordnet wäre, würde er gleichermaßen ausgelöst, wenn der Operator in einem beliebigen Block in der Form in ein Objekt gehen würde.

Prioritätsfolge von Triggern, die auf dasselbe Ereignis reagieren

Im allgemeinen werden Trigger auf verschiedenen Ebenen definiert, die demselben Ereignis entsprechen. Wenn ein Ereignis eintritt, das innerhalb des Geltungsbereichs von mehr als einem Trigger liegt, ist der Trigger mit der niedrigsten Definitionsebene vorrangig.

Sie könnten z.B. einen When-New-Item-Instance-Trigger einem Block zuordnen und einen anderen When-New-Item-Instance-Trigger einem Textobjekt in diesem Block. Wenn der Operator zu dem Textobjekt navigiert, wird der Trigger auf Objektebene ausgelöst und der Trigger auf Blockebene ignoriert.

Einschränkungen bei Trigger-Definitionsebenen

Einige Trigger können nur auf einer bestimmten Definitionsebene definiert werden. Der When-Validate-Record-Trigger, der ausgelöst wird, wenn das Ereignis "Datensatz validieren" eintritt, ist z.B. nur gültig, wenn er einem Block oder der Form zugeordnet ist - er kann keinem Objekt zugeordnet sein. Die meisten Trigger können jedoch auf Form-, Block- oder Objektebene definiert werden, und Sie müssen die entsprechende Definitionsebene auswählen, um die gewünschte Funktionalität zu erreichen.


Trigger im Objektnavigator erstellen

  Verwandte Themen

So erstellen Sie einen Trigger im Objektnavigator:

1	Setzen Sie den Cursor im Objektnavigator zu dem Knoten Trigger unter der Form, dem Block oder dem Objekt, dem Sie den Trigger zuordnen.

Wenn Sie einen Trigger z.B. einer Schaltfläche zuordnen, klicken Sie auf den Knoten Trigger unter dem Namen der Schaltfläche.

2	Wählen Sie Navigator [image] Erstellen, um die Werteliste der Trigger anzuzeigen.

3	Wählen Sie den gewünschten Triggernamen aus der Werteliste, und klicken Sie auf OK.

Daraufhin wird der  PL/SQL-Editor angezeigt. Die Optionen Typ, Objekt und Name werden automatisch entsprechend dem Objekt, dem Sie den Trigger zuordnen, und dem ausgewählten Triggernamen eingestellt.

4	Geben Sie den gewünschten Triggercode in den PL/SQL-Editor ein.

5	Wählen Sie Kompilieren, um den Trigger zu kompilieren.

6	Danach wählen Sie Schließen, um den Editor zu schließen.


Trigger mit Smart Triggers erstellen

  Verwandte Themen

So erstellen Sie einen Trigger mit  Smart Triggers:

1	Klicken Sie im Objektnavigator auf das Objekt, für das Sie einen Trigger zuordnen möchten.

2	Wählen Sie Programm [image] Smart Trigger…

3	Wählen Sie einen Trigger unter den in dem Untermenü angezeigten Triggern.

Daraufhin wird der  PL/SQL-Editor angezeigt. Die Optionen Typ, Objekt und Name werden automatisch entsprechend dem Objekt, dem Sie den Trigger zuordnen, und dem ausgewählten Triggernamen eingestellt.

4	Geben Sie den gewünschten Triggercode in den PL/SQL-Editor ein.

5	Wählen Sie Kompilieren, um den Trigger zu kompilieren.

6	Danach wählen Sie Schließen, um den Editor zu schließen.


Trigger im PL/SQL-Editor erstellen

  Verwandte Themen

So erstellen Sie einen Trigger im PL/SQL-Editor:

1	Im PL/SQL-Editor setzen Sie die Option Typ auf Trigger.

2	Stellen Sie die Objekt-Optionen so ein, daß das Objekt (Form, Block oder Element) angegeben wird, für das der Trigger definiert wird.

Um den Trigger z.B. einem Block zuzuordnen, setzen Sie die erste Dropdown-Liste von Optionen auf den Namen des Blocks und die zweite Dropdown-Liste auf Blockebene.

3	Wählen Sie Neu, um die Trigger-Werteliste anzuzeigen.

4	Wählen Sie den gewünschten Triggernamen aus der Werteliste, und klicken Sie auf OK.

5	Geben Sie den gewünschten Triggercode ein.

6	Wählen Sie Kompilieren, um den Code zu kompilieren.

7	Danach wählen Sie Schließen, um den Editor zu schließen.


Trigger im Layouteditor erstellen

  Verwandte Themen

So erstellen Sie einen Trigger für ein Objekt im Layouteditor:

1	Wählen Sie das Objekt im Layouteditor, dem Sie den Trigger zuordnen möchten.

2	Wählen Sie Trigger aus dem Popup-Menü, um den PL/SQL-Editor aufzurufen. (Bei Microsoft Windows drücken Sie die rechte Maustaste, um das Popup-Menü aufzurufen.)

Die Optionen Typ und Objekt im PL/SQL-Editor sind automatisch entsprechend dem Objekt ausgefüllt, das beim Aufruf des Editors ausgewählt war. Wenn dem Objekt schon ein Trigger zugeordnet ist, werden dessen Name und Code im Editor angezeigt.

3	Wählen Sie Neu, um die Trigger-Werteliste anzuzeigen.

4	Wählen Sie den gewünschten Triggernamen aus der Werteliste, und klicken Sie auf OK.

5	Geben Sie den gewünschten Triggercode ein.

6	Wählen Sie Kompilieren, um den Code zu kompilieren.

7	Danach wählen Sie Schließen, um den Editor zu schließen.


Trigger-Attribute einstellen

Genau wie andere Objekte haben Trigger Attribute. Nachdem Sie einen Trigger erstellt haben, können Sie seine Attribute einstellen, indem Sie den Trigger im Objektnavigator auswählen und die Attribute in der Attributpalette bearbeiten.


Über das Kompilieren von Triggern

  Verwandte Themen

Form Builder kompiliert nicht kompilierte Trigger in einer Form, wenn Sie die Form generieren, um eine Laufzeitdatei zu erstellen. Die Kompilierung einzelner Trigger ist nicht erforderlich. Durch das lokale Kompilieren können Sie jedoch Fehler im Triggercode finden und beheben, während Sie den Trigger schreiben, und nicht erst beim Generieren der Form.

Wenn Sie einen Trigger kompilieren, prüft Form Builder den Triggertext auf Syntaxfehler, semantische Fehler und Referenzen auf nicht vorhandene Objekte oder Unterprogramme. Wenn ein Fehler entdeckt wird, zeigt Form Builder die Zeilennummer der entsprechenden Anweisung an und gibt eine Beschreibung des Fehlers aus.


Benutzerdefinierte Trigger aufrufen

  Verwandte Themen

Ein benutzerdefinierter Trigger ist ein Trigger, der einen eindeutigen, vom Benutzer angegebenen Namen hat. Da der Name keinem Ereignis von Form Builder entspricht, kann ein benutzerdefinierter Trigger nur ausgeführt werden, indem er aus einem vordefinierten Trigger, Befehl eines Menüpunkts oder benutzerdefinierten Unterprogramm aufgerufen wird. Um einen benutzerdefinierten Trigger aufzurufen, führen Sie die vordefinierte Prozedur EXECUTE_TRIGGER aus. Diese Prozedur verwendet einen Parameter, der den auszulösenden Trigger benennt:

Execute_Trigger('my_user_named_trigger');

Benutzerdefinierte Trigger sind nur in besonderen Situationen erforderlich. In den meisten Fällen wird man eher ein benutzerdefiniertes Unterprogramm schreiben und dieses dann aus einem Trigger oder einem Menübefehl aufrufen.


Über das Schreiben von Triggercode

  Verwandte Themen

Der Code in Form Builder-Triggern und Befehlen von Menüpunkten wird in der PL/SQL-Sprache von Oracle geschrieben. PL/SQL ist eine Erweiterung der SQL-Datenbanksprache, und Sie können sowohl SQL-Anweisungen als auch PL/SQL-Anweisungen in einem Form Builder-Trigger aufnehmen. Außerdem können Sie vordefinierte Form Builder-Prozeduren und benutzerdefinierte PL/SQL-Unterprogramme aufrufen, die Sie selbst schreiben.

Der Aufruf von PL/SQL-Prozeduren innerhalb eines PL/SQL-Triggers kann damit verglichen werden, daß der gesamte Prozedurtext intern in dem Trigger ersetzt wird. Ausnahmen (einschließlich FORM_TRIGGER_FAIL) emtsprechen den normalen Regeln des PL/SQL Exception-Handlers

Der Text eines Form Builder-Triggers ist ein anonymer PL/SQL-Block. Ein Block kann aus drei Bereichen bestehen:

1	Einem Deklarationsbereich für Variablen, Konstanten, Cursor und Exceptions

2	Einem Bereich mit ausführbaren Anweisungen

3	Einem Bereich mit Exception-Routinen

Die Syntax für die Begrenzung der Bereiche eines PL/SQL-Blocks sieht folgendermaßen aus:

DECLARE
-- declarative statements (optional)
BEGIN
-- executable statements (required)
EXCEPTION
-- exception handlers (optional)
END;

In einem Trigger ist nur der ausführbare Bereich erforderlich. Wenn Sie einen Trigger schreiben, der keinen DECLARE-Bereich enthält, müssen Sie die Schlüsselwörter BEGIN und END nicht aufnehmen, da diese implizit hinzugefügt werden. Im folgenden Beispiel wird ein derartiger Trigger dargestellt:

/*  Key-CLRREC Trigger:         */
IF :System.Record_Status = 'CHANGED' OR
   :System.Record_Status = 'INSERT' THEN
Commit_Form;
END IF;
Clear_Record;

Wenn Ihr Trigger jedoch einen DECLARE-Bereich enthält, müssen Sie die Schlüsselwörter BEGIN und END aufnehmen, damit der Compiler den Anfang des ausführbaren Bereichs erkennen kann:

/*  When-Button-Pressed Trigger:  */
DECLARE
discount_variable NUMBER (5);
BEGIN
SELECT discount into discount_variable from Promotions
WHERE custid = :cust_id;
:total := calculate_total(:amount, discount_variable);
END;


Über das Aufrufen von vordefinierten Unterprogrammen in Triggern

  Verwandte Themen

Form Builder umfaßt mehr als 100 vordefinierte Unterprogramme, die Sie aus Triggern aufrufen können. Ein vordefiniertes Unterprogramm ist eine vordefinierte Prozedur oder Funktion, die in Form Builder immer verfügbar ist. Mit vordefinierten Unterprogrammen können Sie eine Vielzahl von Anwendungsfunktionen handhaben. Um z.B. den Eingabefokus programmgesteuert von einem Objekt zu einem anderen zu verschieben, könnten Sie eines der folgenden vordefinierten Unterprogramme aufrufen:

NEXT_ITEM	GO_ITEM
NEXT_BLOCK	GO_BLOCK
NEXT_RECORD

Mit weiteren vordefinierten Unterprogrammen können Sie Vorgänge mit Daten in der Form oder in der Datenbank durchführen:

CLEAR_RECORD	EXECUTE_QUERY
DELETE_RECORD	COMMIT_FORM
ENTER_QUERY

Mit weiteren Unterprogrammen können Sie die Anzeige von Schnittstellenobjekten zur Laufzeit steuern:

MOVE_WINDOW	SHOW_LOV
HIDE_WINDOW	SHOW_ALERT
SHOW_EDITOR

Im folgenden Beispiel sehen Sie den Text eines When-Button-Pressed trigger-Triggers. Wenn Sie auf die Schaltfläche klicken, wird ein Dialogfeld namens order_info_window angezeigt, in das Operatoren Informationen über einen Auftrag eingeben können:

/*  When-Button-Pressed trigger:   */
Show_Window('order_info_window');

Dieser Trigger verfügt nur über eine einzige Anweisung, den Aufruf des vordefinierten Unterprogramms SHOW_WINDOW. Das vordefinierte Unterprogramm SHOW_WINDOW ist eine Prozedur, mit der das in der Argumentliste benannte Fenster angezeigt wird.

Im Objektnavigator können Sie eine Liste der vordefinierten Prozeduren von Form Builder unter dem Knoten Vordefinierte Prozeduren durchsuchen. Das Standard-Erweiterungspaket umfaßt die vordefinierten Prozeduren des Form Builder-Core. Weitere vordefinierte Prozeduren umfassen eine besondere Funktionalität für spezifische Anwendungszwecke.


Über eingeschränkte vordefinierte Unterprogramme

  Verwandte Themen

Jedes vordefinierte Unterprogramm, das eine Navigation einleitet, ist eingeschränkt. Dies umfaßt Unterprogramme, die den Eingabefokus von einem Objekt zu einem anderen bewegen, und Unterprogramme, die Datenbanktransaktionen umfassen. Eingeschränkte vordefinierte Unterprogramme sind in Triggern nicht zulässig, die infolge einer Navigation ausgelöst werden.

So sind z.B. die vordefinierten Prozeduren GO_ITEM und NEXT_SET beides eingeschränkte Prozeduren. Mit GO_ITEM wird der Eingabefokus von einem Quellobjekt zu einem Zielobjekt versetzt, was eine Navigation erfordert. Gleichermaßen führt die Prozedur NEXT_SET dazu, daß Form Builder intern zur Blockebene navigiert, eine Gruppe mit Datensätzen abruft und dann zum ersten Objekt im ersten Datensatz navigiert. (Beachten Sie, daß diese Navigation intern als Folge der Standardverarbeitung erfolgt und für den Formoperator möglicherweise nicht sichtbar ist.)

Da GO_ITEM und NEXT_SET beide eine Navigation einleiten, können sie nicht von Triggern aufgerufen werden, die infolge interner Navigationsereignisse ausgelöst werden, d.h. Trigger, die ausgelöst werden, während die Navigation schon erfolgt. So kann eine eingeschränkte Prozedur nicht aus einem Pre-Block-Trigger aufgerufen werden, da der Pre-Block-Trigger während der internen Navigation ausgelöst wird. Eingeschränkte Unterprogramme können nicht aus Pre- oder Post-Navigationstriggern aufgerufen werden.

Sie können jedoch eine eingeschränkte vordefinierte Prozedur aus einem When-New-Instance-Trigger aufrufen. So wird z.B. der When-New-Item-Instance-Trigger ausgelöst, nachdem die Navigation zu einem Objekt erfolgte, wenn die Form auf eine Eingabe wartet. Dies ist ein wichtiger Punkt der berücksichtigt werden muß, wenn Sie Triggertypen während der Anwendungsentwicklung auswählen.

Jede Triggerbeschreibung hat einen Abschnitt "Zulässige Befehle", in dem beschrieben wird, welche Art von vordefinierter Prozedur (eingeschränkt oder ungeschränkt) aus dem Trigger aufgerufen werden kann. Außerdem verfügt die Beschreibung jeder vordefinierten Prozedur über einen Abschnitt "Prozedurtyp", in dem angegeben wird, ob es sich bei der vordefinierten Prozedur um eine eingeschränkte oder uneingeschränkte Prozedur bzw. Funktion handelt.


Über das Schreiben von SQL-Anweisungen in Triggern

  Verwandte Themen

Standardmäßig unterstützt ein Datenblock die Abfrage-nach-Beispiel-, Aktualisieren-, Einfügen- und Löschen-Funktionalität. Form Builder gibt die entsprechenden SQL-Anweisungen SELECT, UPDATE, INSERT und DELETE als Antwort auf Operatoraktionen und programmgesteuerte Vorgänge aus. Wenn Sie z.B. eine Abfrage programmgesteuert ausführen möchten, müssen Sie nur zu dem gewünschten Block navigieren (z.B. mit GO_BLOCK) und dann die vordefinierte Prozedur EXECUTE_QUERY aufrufen.

Sie müssen keine SQL SELECT-Anweisung schreiben, um die entsprechenden Objekte in den Blöcken aufzufüllen, da Datenobjekte beim Entwurf mit den entsprechenden Datenbankspalten verknüpft sind und Form Builder die SQL-Anweisung automatisch für Sie ausgibt. Außerdem gibt Form Builder die SQL-Anweisungen aus, die erforderlich sind, um die Standardsperr-Funktionalität zu unterstützen.

Bei den meisten Anwendungen müssen Sie SQL-Anweisungen in Triggern nur schreiben, wenn Sie die Standardfunktionalität von Form Builder erweitern. Wenn Sie z.B. ein Verweisobjekt auffüllen möchten, das einer anderen Tabelle als der Basistabelle des Blocks entspricht, könnten Sie eine SELECT...INTO-Anweisung in einem Post-Query-Trigger schreiben.

Sie können einen Datenbankwert in einem Formobjekt auswählen, indem Sie die Schreibweise block_name.item_name zur Referenzierung des Formobjekts verwenden:

SELECT column
INTO :block.item
FROM table
WHERE primarykey = :block.pri_key_item;

Die obige Anweisung öffnet einen impliziten Cursor. Sie können auch explizite Cursor deklarieren, wenn Sie vollständige Kontrolle über Datenbankabfragen benötigen.

Generell werden DML-Anweisungen nur in Transaktionstriggern unterstützt, d.h. Triggern, die als Folge von Transaktionsverarbeitungsereignissen ausgelöst werden, wie z.B. Pre-Update, Post-Insert, and On-Delete. Die On-Event-Trigger ersetzen die SQL-Standardanweisung vollständig, die Form Builder an dieser Stelle ausgegeben hätte. Während Sie einen Trigger schreiben können, der eine beliebige DML-Anweisung (Data Manipulation Language) verwendet, empfiehlt Oracle Corporation, daß Sie die Empfehlungen befolgen, die für jeden Triggertyp in dem entsprechenden Hilfethema aufgeführt werden.

Durch Benutzung von DML-Anweisungen in bestimmten Triggern kann der Status von Datensätzen in Form Builder und Zeilen in der Datenbank desynchronisiert werden und kann zu unerwarteten Ergebnissen führen. Form Builder verfolgt Änderungen an den Daten in einer Form, indem der Objekt-, Datensatz-, Block- und Formstatus überprüft wird.

Wenn der Operator z.B. den Wert eines Textobjektes ändert und dann den Befehl Speichern ausgibt, überprüft Form Builder den Status des Datensatzes, um festzustellen, ob eine UPDATE-Anweisung ausgeführt werden muß.

Wenn Sie DML-Anweisungen unabhängig von der Standardverarbeitung ausgeben, ist Form Builder sich derartiger Änderungen nicht bewußt, und Sie können sich nicht auf die standardmäßige Commit-Verarbeitung zur Verwaltung dieser Anweisungen verlassen.

DDL-Befehle (Data Dictionary Language), wie z.B. CREATE TABLE und DROP SEQUENCE, können ausgegeben werden, indem die vordefinierte Prozedur FORMS_DDL aufgerufen wird. Beachten Sie, daß FORMS_DDL nach Ausführung der gewünschten Anweisung immer einen impliziten Befehl COMMIT_FORM ausgibt. Somit sollte FORMS_DDL nur aufgerufen werden, wenn die Anwendung keine ungespeicherten Änderungen enthält, die der Operator möglicherweise später rückgängig machen möchte.


Überblick über Trigger-Kategorien

  Verwandte Themen

Dieses Hilfethema enthält einen Überblick über die gebräuchlichsten Trigger, in folgende Funktionskategorien unterteilt:

•	Blockverarbeitende Trigger

•	Schnittstellenereignis-Trigger

•	Master-Detail-Trigger

•	Meldungsbehandlungs-Trigger

•	Navigations-Trigger

•	Abfragezeit-Trigger

•	Transkations-Trigger

•	Validierungs-Trigger

In diesem Thema werden nicht alle Trigger aufgeführt, die in Form Builder verfügbar sind, von denen viele für hochspezialisierte Vorgänge verwendet werden. Eine vollständige Liste der Trigger bzw. detaillierte Informationen über einen bestimmten Trigger finden Sie unter Trigger-Kategorien..


Blockverarbeitende Trigger

  Verwandte Themen

Blockverarbeitende Trigger werden infolge von Ereignissen ausgelöst, die mit der Datensatzverwaltung in einem Block zusammenhängen.

Trigger	Typische Verwendung
When-Create-Record	Führt eine Aktion aus, wenn Form Builder versucht, einen neuen Datensatz in einem Block zu erstellen. Um z.B. komplexe, berechnete oder datengesteuerte Standardwerte einzustellen, muß dieses zur Laufzeit und nicht beim Entwurf angegeben werden.
When-Clear-Block	Führt eine Aktion aus, wenn Form Builder den aktuellen Block leert, d.h. alle Datensätze aus dem Block entfernt.
When-Database-Record	Führt eine Aktion durch, wenn Form Builder den Status eines Datensatzes in Einsetzen oder Aktualisieren ändert und somit angibt, daß der Datensatz bei dem nächsten COMMIT_FORM-Vorgang verarbeitet werden soll.
When-Remove-Record	Führt eine Aktion aus, wenn ein Datensatz entfernt oder gelöscht wird. Um z.B. eine laufende Gesamtsumme anzupassen, die für alle Datensätze berechnet wird, die in einem Block angezeigt werden.


Schnittstellenereignis-Trigger

  Verwandte Themen

Schnittstellenereignis-Trigger werden infolge von Ereignissen ausgelöst, die in der Formschnittstelle auftreten. Einige dieser Trigger, wie z.B. When-Button-Pressed, werden nur infolge einer Operatoreingabe oder -bearbeitung ausgelöst. Andere Trigger, wie When-Window-Activated, können sowohl als Reaktion auf eine Operatoreingabe als auch programmgesteuerte Ereignisse ausgelöst werden.

Trigger	Typische Verwendung
When-Button-Pressed	Löst eine Aktion aus, wenn ein Operator eine Schaltfläche auswählt, entweder mit der Maus oder über die Tastatur.
When-Checkbox-Changed	Löst eine Aktion aus, wenn der Operator den Status eines Kontrollkästchens umschaltet, entweder mit der Maus oder über die Tastatur.
When-Image-Activated	Löst eine Aktion aus, wenn der Operator auf ein Bildobjekt doppelklickt.
When-Image-Pressed	Löst eine Aktion aus, wenn ein Operator auf ein Bildobjekt klickt.
Key- [all]	Ersetzt die Standardfunktion, die mit einer Funktionstaste verknüpft ist. Sie können z.B. einen Key-EXIT-Trigger definieren, um die Standardfunktionalität der [Hilfe]-Taste zu ersetzen.
When-Radio-Changed	Löst eine Aktion aus, wenn ein Operator die aktuelle Optionsschaltfläche ändert, die in einem Optionsgruppenobjekt ausgewählt ist.
When-Timer-Expired	Löst eine Aktion aus, wenn ein programmgesteuerter Timer abläuft.
When-Window-Activated	Löst eine Aktion aus, wenn ein Operator oder die Anwendung ein Fenster aktiviert.
When-Window-Closed	Löst eine Aktion aus, wenn ein Operator ein Fenster mit dem Schließen-Befehl des Fensterverwaltungsprogramms schließt.
When-Window-Deactivated	Löst eine Aktion aus, wenn ein Fenster deaktiviert wird, weil ein anderes Fenster zum aktiven Fenster wird.
When-Window-Resized	Löst eine Aktion aus, wenn die Größe eines Fensters geändert wird, entweder vom Operator oder programmgesteuert.


Master-Detail-Trigger

  Verwandte Themen

Form Builder generiert Master-Detail-Trigger automatisch, wenn Sie eine Master-Detail-Beziehung zwischen Blöcken definieren. Die standardmäßigen Master-Detail-Trigger erzwingen die Synchronisation zwischen Datensätzen in einem Detail-Block und dem Master-Datensatz in einem Master-Block. Es sei denn, Sie entwickeln ein eigenes Blocksynchronisationsschema, müssen Sie diese Trigger nicht selbst definieren. Statt dessen erstellen Sie einfach ein Beziehungsobjekt und lassen Form Builder die Trigger generieren, die zur Verwaltung der Synchronisation zwischen den Master- und Detail-Blöcken in der Beziehung erforderlich sind.

Trigger	Typische Verwendung
On-Check-Delete-Master	Wird ausgelöst, wenn Form Builder versucht, einen Datensatz in einem Block zu löschen, bei dem es sich um einen Master-Block in einer Master-Detail-Beziehung handelt.
On-Clear-Details	Wird ausgelöst, wenn Form Builder Datensätze in einem Block löschen muß, bei dem es sich um einen Detail-Block in einer Master-Detail-Beziehung handelt, weil diese Datensätze nicht mehr dem aktuellen Datensatz im Master-Block entsprechen.
On-Populate-Details	Wird ausgelöst, wenn Form Builder Datensätze in einen Block abrufen muß, bei dem es sich um den Detail-Block in einer Master-Detail-Beziehung handelt, so daß Detail-Datensätze mit dem aktuellen Datensatz im Master-Block synchronisiert werden.


Meldungsbehandlungs-Trigger

  Verwandte Themen

Form Builder gibt automatisch entsprechende Fehler- und Informationsmeldungen als Antwort auf Laufzeitereignisse aus. Meldungsbehandlungs-Trigger werden infolge dieser Standard-Meldungsereignisse ausgelöst.

Trigger	Typische Verwendung
On-Error	Ersetzt eine Standard-Fehlermeldung durch eine benutzerdefinierte Fehlermeldung, um einen Fehler abzufangen oder zu beheben.
On-Message	Für das Abfangen und Beantworten einer Fehlermeldung, z.B. um eine von Form Builder ausgegebene Standardmeldung durch eine benutzerdefinierte Meldung zu ersetzen.


Navigations-Trigger

  Verwandte Themen

Navigationstrigger werden als Reaktion auf Navigationsereignisse ausgelöst. Wenn der Operator z.B. auf ein Textobjekt in einem anderen Block klickt, treten Navigationsereignisse auf, während Form Builder den Eingabefokus vom aktuellen Objekt zum Zielobjekt verschiebt.

Navigationsereignisse treten auf verschiedenen Ebenen der Objekthierarchie von Form Builder auf (Form, Block, Datensatz, Objekt). Navigationstrigger können weiter in zwei Kategorien unterteilt werden: Pre- und Post-Trigger sowie When-New-Instance-Trigger.

Pre- und Post-Trigger werden ausgelöst, während Form Builder intern durch verschiedene Ebenen der Objekthierarchie navigiert. Wie erwartet, werden diese Trigger als Reaktion auf eine vom Operator eingeleitete Navigation ausgelöst, wie z.B. das Drücken der Taste [Nächstes Objekt]. Beachten Sie jedoch, daß diese Trigger auch als Reaktion auf eine interne Navigation ausgelöst werden, die Form Builder während der Standardverarbeitung ausführt. Um unerwartete Ergebnisse zu vermeiden, müssen Sie bei der Benutzung dieser Trigger diese interne Navigation berücksichtigen.

Trigger	Typische Verwendung
Pre-Form	Führt eine Aktion aus, direkt bevor Form Builder von "außerhalb" der Form in die Form navigiert, z.B. beim Starten der Form.
Pre-Block	Führt eine Aktion aus, bevor Form Builder von der Formebene zu der Blockebene navigiert.
Pre-Record	Führt eine Aktion aus, bevor Form Builder von der Blockebene zur Datensatzebene navigiert.
Pre-Text-Item	Führt eine Aktion aus, bevor Form Builder von der Datensatzebene zu einem Textobjekt navigiert.
Post-Text-Item	Bearbeitet ein Objekt, wenn Form Builder ein Textobjekt verläßt und zur Datensatzebene navigiert.
Post-Record	Bearbeitet einen Datensatz, wenn Form Builder den Datensatz verläßt und zur Blockebene navigiert.
Post-Block	Bearbeitet den aktuellen Datensatz, wenn Form Builder einen Block verläßt und zur Formebene navigiert.
Post-Form	Führt eine Aktion aus, bevor Form Builder an eine Stelle "außerhalb" der Form navigiert, z.B. beim Verlassen der Form.
When-New-Instance-Trigger werden am Ende einer Navigationsfolge ausgelöst, die den Eingabefokus in ein anderes Objekt setzt. Insbesondere werden diese Trigger ausgelöst, direkt nachdem Form Builder den Eingabefokus zu einem anderen Objekt setzt, wenn die Form in einen Ton-aus-Status zurückgeht, um auf die Operatoreingabe zu warten.

Im Gegensatz zu den Pre- und Post-Navigationstriggern werden die When-New-Instance-Trigger nicht als Folge von internen Navigationsereignissen ausgelöst, die während der Standard-Formverarbeitung eintreten.

Trigger	Typische Verwendung
When-New-Form-Instance	Führt eine Aktion beim Starten der Form aus. (Tritt auf, nachdem der Pre-Form-Trigger ausgelöst wurde).
When-New-Block-Instance	Führt eine Aktion aus, unmittelbar nachdem der Eingabefokus zu einem Objekt in einem Block gesetzt wird, bei dem es sich nicht um den Block handelt, der den Eingabefokus vorher hatte.
When-New-Record-Instance	Führt eine Aktion aus, unmittelbar nachdem der Eingabefokus zu einem Objekt in einem anderen Datensatz gesetzt wird. Wenn der neue Datensatz in einem anderen Block steht, wird der Trigger nach dem When-New-Block-Instance trigger-Trigger, jedoch vor dem When-New-Item-Instance trigger-Trigger ausgelöst.
When-New-Item-Instance	Führt eine Aktion aus, unmittelbar nachdem der Eingabefokus zu einem anderen Objekt gesetzt wird. Wenn das neue Objekt in einem anderen Block steht, wird der Trigger nach dem When-New-Block-Instance trigger-Trigger ausgelöst.


Abfragezeit-Trigger

  Verwandte Themen

Abfragezeit-Trigger werden direkt bevor und direkt nachdem der Operator oder die Anwendung eine Abfrage in einem Block ausführt, ausgelöst.

Trigger	Typische Verwendung
Pre-Query	Validiert die aktuellen Abfragekriterien oder liefert zusätzliche Abfragekriterien programmgesteuert, direkt bevor die SELECT-Anweisung an die Datenbank gesendet wird.
Post-Query	Führt eine Aktion aus, nachdem ein Datensatz abgerufen wurde, wie z.B. das Nachschlagen von Werten in anderen Tabellen basierend auf einem Wert im aktuellen Datensatz. Wird einmal für jeden Datensatz ausgelöst, der in den Block abgerufen wird.


Transaktions-Trigger

  Verwandte Themen

Transaktions-Trigger werden als Reaktion auf eine Vielzahl von Ereignissen ausgelöst, die auftreten, während eine Form mit der Datenquelle kommuniziert.

Trigger	Typische Verwendung
On-Delete	Ersetzt die Standardverarbeitung von Form Builder für die Handhabung von gelöschten Datensätzen während des Abschickens einer Transaktion.
On-Insert	Ersetzt die Standardverarbeitung von Form Builder für die Handhabung von Datensätzen, die während des Abschickens von Transaktionen eingefügt werden.
On-Lock	Ersetzt die Standardverarbeitung von Form Builder für das Sperren von Zeilen in der Datenbank.
On-Logon	Ersetzt die Standardverarbeitung von Form Builder für die Anmeldung bei ORACLE, insbesondere bei einer Form, die keine Datenbankanmeldung erfordert oder bei der Anmeldung bei einer fremden Datenquelle.
On-Logout	Ersetzt die Form Builder Standardverarbeitung für das Abmelden von ORACLE.
On-Update	Ersetzt die Standardverarbeitung von Form Builder für die Handhabung von aktualisierten Datensätzen während des Abschickens der Transaktion.
Post-Database-Commit	Verbessert die Standardverarbeitung von Form Builder im Anschluß an einen Speichervorgang der Datenbank.
Post-Delete	Überwacht Transaktionen nach dem Löschen einer Zeile aus der Datenbank.
Post-Forms-Commit	Verbessert die standardmäßige Speichern-Anweisung von Form Builder vor dem Speichern einer Transaktion.
Post-Insert	Überwacht Transaktionen nach dem Einfügen einer Zeile in die Datenbank.
Post-Update	Überwacht Transaktionen nach dem Aktualisieren einer Zeile in der Datenbank.
Pre-Commit	Führt eine Aktion unmittelbar vor dem Prozeß Transaktionen abschicken und speichern aus, wenn Form Builder feststellt, daß in der Form abzuschickende oder zu speichernde Änderungen vorhanden sind.
Pre-Delete	Bearbeitet einen Datensatz, bevor dieser während des Standardprozesses Transaktionen abschicken und speichern aus der Datenbank gelöscht wird, z.B. um das Löschen des Datensatzes zu verhindern, wenn bestimmte Bedingungen vorhanden sind.
Pre-Insert	Bearbeitet einen Datensatz, bevor dieser während des Standardprozesses Transaktionen abschicken und speichern in die Datenbank eingefügt wird.
Pre-Update	Validiert oder ändert einen Datensatz, bevor dieser während des Standardprozesses Transaktionen abschicken und speichern in der Datenbank aktualisiert wird.

Hinweis:  Dies ist nur eine teilweise Liste der verfügbaren Transaktionstrigger. Viele der hier nicht aufgeführten Trigger sind On-event-Trigger, die im wesentlichen für Anwendungen gedacht sind, die mit einer fremden Datenquelle ausgeführt werden.


Validierungs-Trigger

  Verwandte Themen

Validierungs-Trigger werden ausgelöst, wenn Form Builder Daten in einem Objekt oder Datensatz validiert. Form Builder führt Validierungsprüfungen während der Navigation durch, die als Antwort auf eine Operatoreingabe, eine Programmsteuerung oder Standardverarbeitung erfolgt, wie z.B. einen Speichervorgang.

Trigger	Typische Verwendung
When-Validate-Item	Verbessert die Standardvalidierung eines Objekts.
When-Validate-Record	Verbessert die Standardvalidierung eines Datensatzes.


Andere Trigger-Kategorien

  Verwandte Themen

In den vorherigen Abschnitten wurden die Trigger in Gruppen entsprechend ihrer Funktion aufgeführt. Trigger können auch nach Namen unterteilt werden. Es gibt fünf derartige Kategorien, die alle zu einem bestimmten Ereignistyp gehören, der während der Laufzeitverarbeitung auftritt.

When-Event-Trigger signalisieren einen Punkt, bei dem Sie die Standardverarbeitung von Form Builder mit zusätzlichen Tasks oder Vorgängen verbessern können. So wird z.B. der When-Validate-Item-Trigger ausgelöst, unmittelbar nachdem Form Builder Daten in einem Objekt validiert.

Sie können die Standardvalidierungsprüfungen verbessern, die Form Builder durchführt, indem Sie die zusätzliche Validierung in einem When-Validate-Item -Trigger codieren.

On-Event-Trigger signalisieren einen Punkt, bei dem Sie die Standardverarbeitung von Form Builder ersetzen können. So wird z.B. der On-Logon-Trigger ausgelöst, wenn Form Builder zur Anmeldung bei einer ORACLE-Datenquelle bereit ist. Wenn Ihre Anwendung eine Anmeldung bei einer fremden Datenquelle erfordert, könnten Sie einen On-Logon-Trigger schreiben, der die erforderlichen Anmeldeparameter an die fremde Datenquelle übergibt, wobei die Standardanmeldung bei ORACLE vollständig ersetzt wird. On-event-Trigger können Aufrufe von uneingeschränkten vordefinierten Prozeduren umfassen.

Pre-Event-Trigger signalisieren einen Punkt direkt vor dem Auftreten eines When-event oder On-event. Sie können Trigger für diese Ereignisse schreiben, die Objekte oder Daten für das kommende Ereignis vorbereiten. Pre-event-Trigger können ebenfalls Aufrufe von uneingeschränkten vordefinierten Unterprogrammen umfassen.

Post-Event-Trigger signalisieren einen Punkt direkt nach dem Auftreten eines When-event oder On-event. Sie können Trigger für diese Ereignisse schreiben, die Objekte oder Daten validieren oder Prüftasks basierend auf dem vorherigen Ereignis ausführen. Post-event-Trigger können Aufrufe von uneingeschränkten vordefinierten Prozeduren umfassen.

Key-Trigger haben eine Eins-zu-eins-Beziehung mit bestimmten Tasten. Das heißt, der Trigger wird ausgelöst, wenn der Operator eine bestimmte Taste oder Tastenfolge drückt.

Beachten Sie, daß die meisten GUI-Anwendungen Operatoren mehrere Möglichkeiten zur Ausführung von Befehlen bieten. So kann ein Operator z.B. eine Abfrage ausführen, indem er auf eine Schaltfläche klickt, einen Menübefehl auswählt oder die Taste [Abfrage ausführen] drückt.

In derartigen Fällen wäre es falsch, die gesamte Anwendungslogik in einen Tastentrigger zu setzen, der niemals ausgelöst wird. Gleichermaßen können Sie sich in einer mausgesteuerten Anwendung niemals ganz auf Tastentrigger für Navigationstasten verlassen, wie [Nächstes Objekt] und [Nächster Block]. Da Operatoren mit einer Maus navigieren können, benutzen sie diese Tasten möglicherweise nicht für die Navigation, und die zugehörigen Trigger würden niemals ausgelöst.


Delete-Procedure-Trigger

 Alle Trigger

Beschreibung

Dieser Trigger wird automatisch von Form Builder erstellt, wenn die gelöschte Datenquelle eine gespeicherte Prozedur ist. Dieser Trigger auf aufgerufen, wenn ein Löschenvorgang erforderlich ist. Stellen Sie sich diesen Trigger als einen ON-DELETE-Trigger vor, der vom System aufgerufen wird, anstatt den standardmäßigen Löschenvorgang durchzuführen.

Ändern Sie diesen Trigger nicht.

Abfragemodus  Nicht anwendbar.

Bei Fehler

Keine Auswirkung


Funktionstasten-Trigger

 Einschränkungen	 Alle Trigger

Beschreibung

Funktionstasten-Trigger sind mit individuellen Runform-Funktionstasten verknüpft. Ein Funktionstasten-Trigger wird nur ausgelöst, wenn ein Operator die zugehörige Funktionstaste drückt. Die Aktionen, die Sie in einem Funktionstasten-Trigger definieren, ersetzen die Standardaktion, die die Funktionstaste normalerweise ausführen würde.

In der folgenden Tabelle werden alle Funktionstasten-Trigger und die zugehörigen Runform-Funktionstasten aufgeführt.

Tastentrigger	Zugehörige Funktionstaste
Key-CLRBLK	[Daten aus Block entfernen]
Key-CLRFRM	[Daten aus Form entfernen]
Key-CLRREC	[Datensatz entfernen]
Key-COMMIT	[Akzeptieren]
Key-CQUERY	[Treffer zählen]
Key-CREREC	[Datensatz einfügen]
Key-DELREC	[Datensatz löschen]
Key-DOWN	[Nach unten]
Key-DUP-ITEM	[Objekt duplizieren]
Key-DUPREC	[Datensatz duplizieren]
Key-EDIT	[Bearbeiten]
Key-ENTQRY	[Abfragemodus]
Key-EXEQRY	[Abfrage ausführen]
Key-EXIT	[Beenden]
Key-HELP	[Hilfe]
Key-LISTVAL	[Werteliste]
Key-MENU	[Blockmenü]
Key-NXTBLK	[Nächster Block]
Key-NXT-ITEM	[Nächstes Objekt]
Key-NXTKEY	[Nächster Primärschlüssel]
Key-NXTREC	[Nächster Datensatz]
Key-NXTSET	[Nächste Gruppe mit Datensätzen]
Key-PRINT	[Drucken]
Key-PRVBLK	[Vorheriger Block]
Key-PRV-ITEM	[Vorheriges Objekt]
Key-PRVREC	[Vorheriger Datensatz]
Key-SCRDOWN	[Bild-ab]
Key-SCRUP	[Bild-auf]
Key-UP	[Nach oben]
Key-UPDREC	Entspricht dem Befehl Datensatz, Sperren im Standardmenü

Beachten Sie, daß Sie nicht alle Runform-Funktionstasten durch Funktionstasten-Trigger ersetzen können. Insbesondere können Sie die folgenden statischen Funktionstasten in keinem Fall neu definieren, da sie häufig vom Terminal oder der grafischen Benutzeroberfläche und nicht von Form Builder ausgeführt werden.

[Objekt löschen]	[Erste Zeile]	[Bildlauf nach links]
[Kopieren]	[Zeile einfügen]	[Bildlauf nach rechts]
[Ausschneiden]	[Letzte Zeile]	[Suchen]
[Zeichen löschen]	[Nach links]	[Auswählen]
[Zeile löschen]	[Einfügen]	[Tastenbelegung]
[Fehler anzeigen]	[Auffrischen]	[Einfügen/Überschreiben]
[Zeilenende]	[Nach rechts]	[Übertragen]

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, eingeschränkte vordefinierte Prozeduren, uneingeschränkte vordefinierte Prozeduren

Bei Fehler

Keine Auswirkung

Abfragemodus  Ja

Verwendungshinweise

Die Standardfunktionalität der folgenden Tasten ist im Abfragemodus nicht zulässig:

[Daten aus Block entfernen]	[Nach unten]	[Nächster Datensatz]
[Daten aus Form entfernen]	[Objekt duplizieren]	[Nächste Gruppe mit Datensätzen]
[Datensatz entfernen]	[Datensatz duplizieren]	[Vorheriger Block]
[Akzeptieren]	[Blockmenü]	[Vorheriger Datensatz]
[Datensatz einfügen]	[Nächster Block]	[Nach oben]
[Datensatz löschen]	[Nächster Primärschlüssel]	[Datensatz sperren]

Gebräuchliche Verwendung:

Benutzen Sie Funktionstasten-Trigger zur Ausführung der folgenden Tasks:

•	Funktionstasten dynamisch deaktivieren.

•	Standardverhalten von Funktionstasten ersetzen.

•	Zuordnung von Funktionstasten dynamisch ändern.

•	Komplexe oder mehrere Funktionen mit einer einzelnen Taste bzw. Tastenfolge ausführen.


Einschränkungen bei Funktionstasten-Triggern

•	Form Builder ignoriert den Key-Commit-Trigger, wenn [Speichern/Akzeptieren] in einem Dialogfeld ausgewählt wird.


Insert-Procedure-Trigger

 Alle Trigger

Beschreibung

Dieser Trigger wird automatisch von Form Builder erstellt, wenn die eingefügte Datenquelle eine gespeicherte Prozedur ist. Dieser Trigger auf aufgerufen, wenn ein Einfügenvorgang erforderlich ist. Stellen Sie sich diesen Trigger als einen ON-INSERT-Trigger vor, der vom System aufgerufen wird, anstatt einen standardmäßigen Einfügenvorgang durchzuführen.

Definitionsebene

Ändern Sie diesen Trigger nicht.

Abfragemodus Nicht anwendbar.

Bei Fehler

Keine Auswirkung


Key-Fn-Trigger

 Einschränkungen	 Alle Trigger

Beschreibung

Ein Key-Fn-Trigger wird ausgelöst, wenn ein Operator die zugehörige Taste drückt.

Sie können Key-Fn-Triggern 10 Tasten oder Tastenfolgen zuordnen, die normalerweise keine Form Builder-Vorgänge ausführen. Diese Tasten werden als Key-F0 bis Key-F9 bezeichnet. Bevor Sie diesen Tasten Tastentrigger zuordnen können, müssen Sie oder der DBA die Tasten den entsprechenden Funktionen mit Oracle Terminal zuordnen.

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, eingeschränkte vordefinierte Prozeduren, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

•	Verwenden Sie Key-Fn-Trigger, um zusätzliche Funktionstasten für benutzerdefinierte Funktionen zu erstellen.

•	Die Tastenbeschreibung im Standardmenü ?Tasten gilt immer für den Trigger auf Formebene, der für diese Taste definiert ist. Wenn für die Taste auch Trigger auf niedrigerer Ebene (z.B. auf Blockebene) definiert sind, wird deren Beschreibung angezeigt, wenn der Fokus auf der niedrigeren Ebene steht (z.B. auf Blockebene) und [Tastenbelegung] gedrückt wird. Sie werden jedoch nicht in dem Standardmenü ?Tasten angezeigt.

•	Unter bestimmten Betriebssystemen können nicht alle Tasten zugeordnet werden. Unter Microsoft Windows wird z.B. immer das Windows-Hilfesystem angezeigt, wenn F1 gedrückt wird. Außerdem wird versucht, die Anwendung zu schließen, wenn Alt-F4 gedrückt wird.


Einschränkungen bei Key-Fn-Triggern

Form Builder ignoriert Key-Fn-Trigger im Bearbeitungsmodus.


Key-Others-Trigger

 Einschränkungen	 Alle Trigger

Beschreibung

Ein Key-Others-Trigger wird ausgelöst, wenn ein Operator die zugehörige Taste drückt.

Ein Key-Others-Trigger ist mit allen Tasten verknüpft, denen Tastentrigger zugeordnet werden können, die jedoch im Augenblick nicht von Funktionstasten-Triggern (auf einer beliebigen Ebene) definiert sind.

Ein Key-Others-Trigger setzt das Standardverhalten einer Runform-Funktionstaste außer Kraft (es sei denn, eine der folgenden Einschränkungen ist gültig). In diesem Fall zeigt Form Builder immer noch den Standardeintrag der Funktionstaste auf dem Bildschirm Tastenbelegung an.

Triggertyp: Taste

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, eingeschränkte vordefinierte Prozeduren, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

Benutzen Sie Key-Others-Trigger, um die möglichen Aktionen eines Operators einzugrenzen. Insbesondere benutzen Sie Key-Others-Trigger, um folgende Aufgaben auszuführen:

•	Alle Tasten deaktivieren, die in dieser bestimmten Situation nicht relevant sind.

•	Eine bestimmte Aktion ausführen, wenn ein Operator eine Taste drückt.

Beachten Sie außerdem:

•	Die Tastenbeschreibung im Standardmenü ?Tasten gilt immer für den Trigger auf Formebene, der für diese Taste definiert ist. Wenn für die Taste auch Trigger auf niedrigerer Ebene (z.B. auf Blockebene) definiert sind, wird deren Beschreibung angezeigt, wenn der Fokus auf der niedrigeren Ebene steht (z.B. auf Blockebene) und [Tastenbelegung] gedrückt wird. Sie werden jedoch nicht in dem Standardmenü ?Tasten angezeigt.


Einschränkungen bei Key-Others-Triggern

Form Builder ignoriert einen Key-Others-Trigger unter folgenden Bedingungen:

•	Die Form befindet sich im Abfragemodus, und das Attribut Im Abfragemodus auslösen ist ausgeschaltet.

•	Eine Werteliste, der Bildschirm Tastenbelegung, ein Hilfebildschirm oder ein Fehlerbildschirm wird angezeigt.

•	Der Operator reagiert auf eine Runform-Eingabeaufforderung.

•	Der Operator drückt eine statische Funktionstaste.


Lock-Procedure-Trigger

 Alle Trigger

Beschreibung

Dieser Trigger wird automatisch von Form Builder erstellt, wenn die gesperrte Datenquelle eine gespeicherte Prozedur ist. Dieser Trigger auf aufgerufen, wenn ein Sperrenvorgang erforderlich ist. Stellen Sie sich diesen Trigger als einen ON-LOCK trigger vor, der vom System aufgerufen wird, anstatt einen standardmäßigen Einfügenvorgang durchzuführen.

Ändern Sie diesen Trigger nicht.

Abfragemodus Nicht anwendbar.

Bei Fehler

Keine Auswirkung


On-Check-Delete-Master-Trigger

 Beispiele	 Alle Trigger

Beschreibung

Form Builder erstellt diesen Trigger automatisch, wenn Sie eine Master-Detail-Beziehung definieren und das Attribut Verhalten bei Datensatz löschen auf Nicht isoliert setzen. Der Trigger wird ausgelöst, wenn versucht wird, einen Datensatz im Master-Block einer Master-Detail-Beziehung zu löschen.

Definitionsebene  Form oder Block

Zulässige Befehle

Beliebiger Befehl, einschließlich eingeschränkter vordefinierter Prozeduren

Abfragemodus  Nein

Bei Fehler

Verhindert das Löschen des aktuellen Master-Datensatzes

Wird ausgelöst

Master-Detail-Synchronisation


Beispiele für On-Check-Delete-Master-Trigger

Beispiel

In dem folgenden Beispiel wird der On-Check-Delete-Master-Trigger ersetzt, der standardmäßig für eine Master-Detail-Beziehung mit einem Trigger generiert wird, der nicht erfolgreich ausgeführt wird, wenn die Summe der Verteilungen nicht gleich der Gesamtsumme der Aufträge ist.

DECLARE
  the_sum NUMBER;
BEGIN
  SELECT SUM(dollar_amt)
    INTO the_sum
    FROM po_distribution
   WHERE po_number = :purchase_order.number;

/* Check for errors */
  IF the_sum <> :purchase_order.total THEN
    Message('PO Distributions do not reconcile.');
    RAISE Form_Trigger_Failure;
     ELSIF form_fatal OR form_failure THEN
     raise form_trigger_failure;
  end if;
END;


On-Check-Unique-Trigger

 Beispiele	     Verwandte Themen	 Alle Trigger

Beschreibung

Während eines Speichervorgangs wird der On-Check-Unique-Trigger ausgelöst, wenn Form Builder normal prüft, ob Primärschlüsselwerte eindeutig sind, bevor ein Datensatz in einer Basistabelle eingefügt bzw. aktualisiert wird. Er wird einmal für jeden Datensatz ausgelöst, der eingefügt oder aktualisiert wurde.

Die Standardverarbeitung für das Überprüfen der Eindeutigkeit des Datensatzes. Wenn bei einem Block das Attribut PRIMKEYB auf Ja gesetzt ist, prüft Form Builder standardmäßig die Eindeutigkeit eines Datensatzes, indem die entsprechende SQL-Anweisung zur Auswahl von Zeilen erstellt und ausgeführt wird, die mit den Primärschlüsselwerten des aktuellen Datensatzes übereinstimmen. Wenn eine doppelt vorhandene Zeile gefunden wird, zeigt Form Builder folgende Meldung an: FRM-40600: Datensatz wurde bereits eingefügt.

Bei einem Datensatz, der für das Einfügen markiert wurde, prüft Form Builder immer auf eindeutige Primärschlüsselwerte. Bei einem Update prüft Form Builder nur dann auf eindeutige Primärschlüsselwerte, wenn ein oder mehrere Objekte, für die das Attribut Primärschlüssel angegeben wurde, geändert wurden.

Definitionsebene

Form, Block

Zulässige Befehle

SELECT-Anweisungen, PL/SQL, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Zur Ausführung der Standardverarbeitung aus diesem Trigger rufen Sie die vordefinierte Prozedur CHECK_RECORD_UNIQUENESS auf.

Bei Fehler

Keine Auswirkung

Wird ausgelöst

Prüfung der Eindeutigkeit eines Datensatzes

Transaktionen abschicken und speichern

Siehe Flußdiagramme von Form Builder


Beispiele für On-Check-Unique-Trigger

Beispiel

Mit dem folgenden Beispiel wird geprüft, ob der aktuelle Datensatz noch nicht in der Tabelle DEPT vorhanden ist.

DECLARE
  CURSOR chk_unique IS SELECT 'x'
                         FROM dept
                        WHERE deptno = :dept.deptno;
  tmp VARCHAR2(1);
BEGIN
  OPEN chk_unique;
  FETCH chk_unique INTO tmp;
  CLOSE chk_unique;
  IF tmp IS NOT NULL THEN
    Message('This department already exists.');
    RAISE Form_Trigger_Failure;
     ELSIF form_fatal OR form_failure THEN
     raise form_trigger_failure;
  END IF;
END;


On-Clear-Details-Trigger

 Alle Trigger

Beschreibung

Wird ausgelöst, wenn ein synchronisationsauslösendes Ereignis in einem Block eintritt, bei dem es sich um einen Master-Block in einer Master-Detail-Beziehung handelt. Ein synchronisationsauslösendes Ereignis ist ein Ereignis, mit dem ein anderer Datensatz zum aktuellen Datensatz im Master-Block gemacht wird.

Definitionsebene  Form, Block

Zulässige Befehle

Beliebiger Befehl, einschließlich eingeschränkter vordefinierter Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Form Builder erstellt den On-Clear-Details-Trigger automatisch, wenn Sie eine Master-Detail-Block-Beziehung definieren.

Bei Fehler

Veranlaßt, daß der synchronisationsauslösende Vorgang und eventuell geplante Synchronisations-Trigger abgebrochen werden.

Wird ausgelöst

Master-Detail-Synchronisation

Siehe Flußdiagramme von Form Builder


On-Close-Trigger

 Beispiele	     Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn ein Operator oder die Anwendung eine Abfrage schließt. Standardmäßig schließt Form Builder eine Abfrage, wenn alle von den Abfragekriterien gekennzeichneten Datensätze abgerufen wurden oder wenn der Operator bzw. die Anwendung die Abfrage abbricht.

Mit dem On-Close-Trigger wird die normale Phase "Cursor schließen" einer Abfrage bei Form Builder verbessert.

Definitionsebene  Form

Zulässige Befehle

SELECT-Anweisungen, PL/SQL, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

•	Benutzen Sie einen On-Close-Trigger, nachdem Sie die On-Select oder On-Fetch-Trigger verwendet haben, besonders, um Dateien zu schließen, Cursor zu schließen und Speicherplatz freizugeben.

•	Der On-Close-Trigger wird automatisch ausgelöst, wenn die vordefinierte Prozedur ABORT_QUERY aus einem On-Select-Trigger aufgerufen wird.

Bei Fehler

Keine Auswirkung

Wird ausgelöst

ABORT_QUERY

Schließen der Abfrage

Siehe Flußdiagramme von Form Builder


Beispiele für On-Close-Trigger

Beispiel

Mit dem folgenden Beispiel wird Speicherplatz freigegeben, der von einer benutzerdefinierten Datenzugriffsmethode über Transaktionstrigger benutzt wird.

BEGIN
  IF NOT my_data source_open('DX110_DEPT') THEN
    my_datasource_close('DX110_DEPT');
     ELSIF form_fatal OR form_failure THEN
     raise form_trigger_failure;
  END IF;
END;


On-Column-Security-Trigger

 Beispiele	     Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn Form Builder normalerweise eine Sicherheit auf Spaltenebene für jeden Block durchsetzen würde, für den das Blockattribut Spaltensicherheit durchsetzen eingeschaltet ist.

Die normale Form Builder-Verarbeitung für das Überprüfen der Spaltensicherheit. Standardmäßig setzt Form Builder die Spaltensicherheit durch, indem die Datenbank abgefragt wird, um die Basistabellenspalten zu bestimmen, für die der aktuelle Formoperator die Aktualisierungsberechtigung hat. Bei Spalten, für die der Operator keine Aktualisierungsberechtigung hat, macht Form Builder die entsprechenden Basistabellenobjekte in der Form zu nicht aktualisierbaren Objekten, indem das Objektattribut Aktualisieren zulässig dynamisch auf Aus gesetzt wird. Form Builder führt diesen Vorgang beim Starten der Form durch, wobei die Blöcke folgerichtig abgearbeitet werden.

Definitionsebene  Form, Block

Zulässige Befehle

SELECT-Anweisungen, PL/SQL, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Zur Durchführung der Standardverarbeitung aus diesem Trigger rufen Sie die vordefinierte Prozedur ENFORCE_COLUMN_SECURITY auf.

Bei Fehler

Keine Auswirkung


Beispiele für On-Column-Security-Trigger

Beispiel

Mit dem folgenden Beispiel werden die Gehalts- und Provisions-Textobjekte im aktuellen Block auf Deaktiviert und Nicht aktualisierbar gesetzt, es sei denn, die Rolle SUPERUSER ist aktiviert. Nur Benutzer mit der benutzerdefinierten SUPERUSER-Rolle können diese Zahlenfelder ändern.

DECLARE
  itm_id Item;
  on_or_off NUMBER;
BEGIN
  IF NOT role_is_set('SUPERUSER') THEN
     on_or_off := PROPERTY_OFF;
  ELSE
    on_or_off := PROPERTY_ON;
  END IF;
  itm_id := Find_Item('Emp.Sal');
  Set_Item_Property(itm_id,ENABLED,on_or_off);
  Set_Item_Property(itm_id,UPDATEABLE,on_or_off);
  itm_id := Find_Item('Emp.Comm');
  Set_Item_Property(itm_id,ENABLED,on_or_off);
  Set_Item_Property(itm_id,UPDATEABLE,on_or_off);

 IF form_fatal OR form_failure THEN
     raise form_trigger_failure;
END IF;
END;


On-Commit-Trigger

 Beispiele	  Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn Form Builder normalerweise eine Anweisung für das Speichern der Datenbank ausgeben würde, um eine Transaktion abzuschließen. Standardmäßig wird dieser Vorgang ausgeführt, nachdem alle Datensätze, die als Aktualisieren-, Einfügen- und Löschenvorgänge markiert wurden, an die Datenbank abgeschickt wurden.

Die standardmäßige COMMIT-Anweisung, die Form Builder ausgibt, um eine Transaktion während des Prozesses Transaktionen abschicken und speichern abzuschließen.

Definitionsebene  Form

Zulässige Befehle

SELECT-Anweisungen, PL/SQL, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

•	Verwenden Sie einen On-Commit-Trigger, um die Bedingungen der normalen Speicherverarbeitung von Form Builder so zu ändern, daß sie den besonderen Anforderungen eines Speichervorgangs in einer Nicht-ORACLE-Datenbank gerecht werden.

•	Um die Standardverarbeitung aus diesem Trigger auszuführen, rufen Sie die vordefinierte Prozedur  auf.

Bei Fehler

Bricht die Abschicken- und Speichern-Verarbeitung ab

Wird ausgelöst

Transaktionen abschicken und speichern

Siehe Flußdiagramme von Form Builder


Beispiele für On-Commit-Trigger

Beispiel

In diesem Beispiel wird der Speichervorgang deaktiviert, wenn mit einer Datenquelle gearbeitet wird, die die Transaktionssteuerung nicht unterstützt. Wenn die Anwendung mit einer ORACLE-Datenbank ausgeführt wird, verhält sich der Speichervorgang normal.

BEGIN
  IF Get_Application_Property(DATA_SOURCE) = 'ORACLE' THEN
    Commit_Form;
     ELSIF form_fatal OR form_failure THEN
     raise form_trigger_failure;
  END IF;

  /*
  ** Otherwise, no action is performed
  */
END;


On-Count-Trigger

 Beispiele	     Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn Form Builder normalerweise die Standardverarbeitung Treffer zählen ausführen würde, um die Anzahl von Zeilen in der Datenbank zu bestimmen, die den aktuellen Abfragekriterien entsprechen. Nachdem der On-Count-Trigger ausgeführt wurde, gibt Form Builder die folgende Standardmeldung für Treffer zählen aus: FRM-40355: Die Abfrage wird <n> Datensätze liefern.

Definitionsebene  Form, Block

Zulässige Befehle

SELECT-Anweisungen, PL/SQL, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

•	Verwenden Sie einen On-Count-Trigger, um die Standardverarbeitung für Treffer zählen in einer Anwendung zu ersetzen, die mit einer fremden Datenquelle ausgeführt wird.

•	Um die Standardverarbeitung von Form Builder aus diesem Trigger auszuführen, nehmen Sie einen Aufruf der vordefinierten Prozedur  auf.

•	Wenn Sie die Standardverarbeitung ersetzen, können Sie den Wert des Blockattributs Query_Hits so einstellen, daß die Anzahl von Datensätzen in der fremden Datenquelle angegeben wird, die den Abfragekriterien entspricht.

•	Form Builder zeigt die Meldung für Treffer zählen (FRM-40355) selbst dann an, wenn der On-Count-Trigger den Wert des Blockattributs Query_Hits nicht einstellen kann. In diesem Fall gibt die Meldung 0 Datensätze an.

Bei Fehler

Keine Auswirkung

Wird ausgelöst

Siehe Flußdiagramme von Form Builder


Beispiele für On-Count-Trigger

Beispiel

Dieses Beispiel ruft ein benutzerdefiniertes Unterprogramm auf, mit dem die Anzahl von Datensätzen gezählt wird, die von den aktuellen Abfragekriterien abgerufen werden sollen, und stellt das Attribut Query_Hits auf den entsprechenden Wert ein.

DECLARE
  j NUMBER;
BEGIN
  j := Recs_Returned('DEPT',Name_In('DEPT.DNAME'));
  Set_Block_Property('DEPT',QUERY_HITS,j);
END;


On-Delete-Trigger

 Beispiele	     Verwandte Themen	 Alle Trigger

Beschreibung

Wird während des Prozesses Transaktionen abschicken und speichern ausgelöst. Dieser Trigger wird ausgelöst, nachdem der Pre-Delete-Trigger ausgelöst wurde und bevor der Post-Delete-Trigger ausgelöst wird, wobei der eigentliche Datenbanklöschvorgang einer bestimmten Zeile ersetzt wird. Der Trigger wird einmal für jede Zeile ausgelöst, die für das Löschen aus der Datenbank markiert ist.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, DML-Anweisungen (DELETE, INSERT, UPDATE), uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

•	Verwenden Sie einen On-Delete-Trigger, um die Standardverarbeitung von Form Builder für die Handhabung von gelöschten Datensätzen beim Abschicken von Transaktionen zu ersetzen.

•	Um die Standardverarbeitung von Form Builder aus diesem Trigger auszuführen, d.h. um einen Datensatz aus der Form oder aus der Datenbank zu löschen, nehmen Sie einen Aufruf der vordefinierten Prozedur DELETE_RECORD auf.

Bei Fehler

Form Builder setzt den Status auf den letzten Savepoint zurück.

Wird ausgelöst

Transaktionen abschicken und speichern

Siehe Flußdiagramme von Form Builder


Beispiele für On-Delete-Trigger

Beispiel

Dieses Beispiel aktualisiert die Mitarbeitertabelle so, daß Termination_Date eingestellt wird, anstatt den Mitarbeiter aus der Datenbank zu löschen.

BEGIN
  UPDATE emp
     SET termination_date = SYSDATE
   WHERE empno = :Emp.Empno;
IF form_fatal OR form_failure THEN
   raise form_trigger_failure;
END IF;
END;


On-Dispatch-Event-Trigger

 Alle Trigger

Beschreibung

Dieser Trigger wird aufgerufen, wenn ein ActiveX-Steuerelementereignis auftritt. Sie können die vordefinierte Prozedur DISPATCH_EVENT  aus diesem Trigger aufrufen, um den Dispatch-Modus al Eingeschränkt oder Uneingeschränkt anzugeben.  Weitere Informationen über das Arbeiten mit ActiveX-Steuerelementereignissen finden Sie unter Auf ActiveX-Steuerelemente reagieren.

Zulässige Befehle

SELECT-Anweisungen, eingeschränkte vordefinierte Prozeduren, uneingeschränkte vordefinierte Prozeduren

Abfragemodus Nein

Bei Fehler

Keine Auswirkung


Beispiele für On-Dispatch Event

Beispiel

/*

ON-DISPATCH-EVENT trigger
*/
BEGIN
IF SYSTEM.CUSTOM_ITEM_EVENT = 4294966696 THEN
/*when event occurs, allow it to apply to different items */.
FORMS4W.DISPATCH_EVENT(RESTRICTED_ALLOWED);
ELSE
/*run the default, that does not allow applying any other 	item */
FORMS4W.DISPATCH_EVENT(RESTRICTED_UNALLOWED);
ENDIF;

  IF form_fatal OR form_failure THEN
     raise form_trigger_failure;
  END IF;

END;


On-Error-Trigger

 Beispiele	     Verwandte Themen	 Alle Trigger

Beschreibung

Ein On-Error-Trigger wird ausgelöst, wenn Form Builder normalerweise eine Fehlermeldung anzeigen würde.

Ersetzt

Das Schreiben einer Fehlermeldung in der Meldungszeile.

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

•	Verwenden Sie einen On-Message-Trigger für die folgenden Zwecke:

•	Um einen Fehler abzufangen und zu beheben

•	Um eine Standard-Fehlermeldung durch eine benutzerdefinierte Fehlermeldung zu ersetzen

Verwenden Sie die vordefinierte Funktion ERROR_CODE , ERROR_TEXT , ERROR_TYPE , DBMS_ERROR_TEXT oder DBMS_ERROR_CODE in einem On-Error-Trigger, um eine bestimmte Fehlerbedingung zu kennzeichnen.

•	In den meisten Fällen müssen On-Error-Trigger der Form und nicht einem Block oder Objekt zugeordnet werden. Das Abfangen bestimmter Fehler auf Block- oder Objektebene kann schwierig sein, wenn diese Fehler auftreten, während Form Builder eine interne Navigation durchführt, z.B. während eines Speichervorgangs.

Bei Fehler

Keine Auswirkung


Beispiele für On-Error-Trigger

Beispiel

Das folgende Beispiel prüft bestimmte Fehlermeldungscodes und reagiert entsprechend.

DECLARE
   lv_errcod  NUMBER       := ERROR_CODE;
   lv_errtyp  VARCHAR2(3)  := ERROR_TYPE;
   lv_errtxt  VARCHAR2(80) := ERROR_TEXT;
BEGIN
   IF (lv_errcod = 40nnn) THEN
   /*
   **  Perform some tasks here
   */
   ELSIF (lv_errcod = 40mmm) THEN
   /*
   **  More tasks here
   */
...
...
ELSIF (lv_errcod = 40zzz) THEN
   /*
   **  More tasks here
   */
ELSE
   Message(lv_errtyp||'-'||to_char(lv_errcod)||': '||lv_errtxt);
   RAISE Form_Trigger_Failure;
END IF;
END;


On-Fetch-Trigger

 Beispiele	     Verwandte Themen	 Alle Trigger

Beschreibung

Wenn eine Abfrage das erste Mal geöffnet wird, wird dieser Trigger unmittelbar nach Auslösung des On-Select-Triggers ausgelöst, wenn die ersten Datensätze in den Block abgerufen werden. Während die Abfrage geöffnet bleibt, wird dieser Trigger jedesmal ausgelöst, wenn eine Reihe von Zeilen in den Block abgerufen werden muß.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, PL/SQL, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Wenn Sie einen On-Fetch-Trigger schreiben, um die standardmäßige Abrufenverarbeitung zu ersetzen, muß der Trigger:

•	die entsprechende Anzahl von Datensätzen aus der fremden Datenquelle abrufen, wie mit der Einstellung des Attributs Records_To_Fetch angegeben.

•	diese Anzahl von abgerufenen Datensätzen im aktuellen Block erstellen.

•	die Datensätze mit den abgerufenen Daten auffüllen.

•	durch Aufrufen des vordefinierten Unterprogramms CREATE_QUERIED_RECORD abgefragte Datensätze aus einem On-Fetch-Trigger erstellen.

Während die Abfrage geöffnet bleibt, wird der On-Fetch-Trigger weiter ausgelöst, wenn weitere Datensätze in dem Block benötigt werden. Dieses Verhalten wird fortgesetzt,

•	bis keine abgefragten Datensätze bei einer einzelnen Ausführung des Triggers mehr erstellt werden. Wenn keine Datensätze mehr erstellt werden, signalisiert Form Builder das Ende des Abrufenvorgangs und gibt an, daß keine weiteren Datensätze mehr abgerufen werden können.

•	bis die Abfrage geschlossen wird, entweder vom Operator oder programmgesteuert über einen Aufruf von ABORT_QUERY.

•	bis der Trigger die vordefinierte Exception FORM_TRIGGER_FAILURE auslöst.

Um die Standardverarbeitung von Form Builder aus diesem Trigger auszuführen, nehmen Sie einen Aufruf der vordefinierten Prozedur FETCH_RECORDS auf.

Benutzen Sie die vordefinierte Prozedur ABORT_QUERY in einem On-Fetch-Trigger nicht. ABORT_QUERY ist in einem On-Fetch-Trigger nicht gültig und erzeugt inkonsistente Ergebnisse.

Bei Fehler

Keine Auswirkung

Wird ausgelöst

Datensätze abrufen

Siehe Flußdiagramme von Form Builder


Beispiele für On-Fetch-Trigger

In diesem Beispiel wird eine client-seitige Paketfunktion aufgerufen, um die richtige Anzahl von Zeilen aus einem Paketcursor abzurufen.

DECLARE
  j NUMBER := Get_Block_Property(blk_name, RECORDS_TO_FETCH);
  emprow emp%ROWTYPE;

BEGIN
  FOR ctr IN 1..j LOOP
    /*
    ** Try to get the next row.
    */
    EXIT WHEN NOT MyPackage.Get_Next_Row(emprow);
    Create_Queried_Record;
    :Emp.rowid := emprow.ROWID;
    :Emp.empno := emprow.EMPNO;
    :Emp.ename := emprow.ENAME;
       :
       :
  END LOOP;
    IF form_fatal OR form_failure THEN
     raise form_trigger_failure;
  END IF;

END;


On-Insert-Trigger

  Verwandte Themen	 Alle Trigger

Beschreibung

Wird während des Prozesses Transaktionen abschicken und speichern ausgelöst, wenn ein Datensatz eingefügt wird. Dieser Trigger wird nach Auslösen des Pre-Insert-Triggers und vor Auslösen des Post-Insert-Triggers ausgelöst, wenn Form Builder normalerweise einen Datensatz in die Datenbank einfügen würde. Dieser Trigger wird einmal für jede Zeile ausgelöst, die für das Einfügen in die Datenbank markiert ist.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, DML-Anweisungen (DELETE, INSERT, UPDATE), uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

•	Verwenden Sie einen On-Insert-Trigger, um die Standardverarbeitung von Form Builder für die Handhabung von eingefügten Datensätzen beim Abschicken einer Transaktion zu ersetzen.

•	Um die Standardverarbeitung von Form Builder aus diesem Trigger auszuführen, nehmen Sie einen Aufruf der vordefinierten Prozedur INSERT_RECORD auf.

Bei Fehler

Form Builder führt die folgenden Schritte aus, wenn der On-Insert-Trigger nicht erfolgreich ausgeführt wird:

•	Bestimmt die Fehlerposition

•	Setzt auf den letzten Savepoint zurück

Wird ausgelöst

Transaktionen abschicken und speichern

Siehe Flußdiagramme von Form Builder


On-Lock-Trigger

  Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn Form Builder normalerweise versuchen würde, eine Zeile zu sperren, z.B. wenn ein Operator eine Taste drückt, um Daten in einem Objekt zu ändern. Der Trigger wird zwischen dem Drücken der Taste und der Anzeige der geänderten Daten ausgelöst.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

•	Verwenden Sie einen On-Lock-Trigger, um die Standardverarbeitung von Form Builder für das Sperren von Zeilen zu ersetzen. Wenn Sie z.B. eine Anwendung für ein Einzelplatzsystem entwickeln, können Sie die Verarbeitung mit dem On-Lock-Trigger beschleunigen, indem Sie die ganze Sperrverarbeitung umgehen. Benutzen Sie On-Lock außerdem, wenn Sie direkt auf eine fremde Datenquelle zugreifen und nicht über Open Gateway.

•	Wenn der On-Lock-Trigger ausgelöst wird, weil ein Operator versucht, Daten zu ändern, wird der Trigger nur das erste Mal ausgelöst, wenn der Operator versucht, ein Objekt in dem Datensatz zu ändern. Der Trigger wird während nachfolgender Änderungen der Objekte in demselben Datensatz nicht mehr ausgelöst. Anders ausgedrückt, für jede zu sperrende Zeile wird der Trigger einmal ausgelöst.

•	Um die Standardverarbeitung von Form Builder aus diesem Trigger auszuführen, nehmen Sie einen Aufruf der vordefinierten Prozedur LOCK_RECORD auf.

•	Verwenden Sie diesen Trigger, um zugrundeliegende Tabellen für nicht aktualisierbare Ansichten zu sperren.

Achtung

Bei besonderen Umständen können Sie die DML-Anweisung LOCK TABLE in einem On-Lock-Trigger verwenden. Da dies jedoch dazu führen könnte, daß anderen Benutzern der Zugang zu der Tabelle verwehrt wird, benutzen Sie diese Anweisung mit Vorsicht und lesen Sie ORACLE RDMS Database Administrator's Guide, bevor Sie LOCK TABLE verwenden.

Bei Fehler

Wenn der On-Lock-Trigger nicht erfolgreich ausgeführt wird, wird der Zieldatensatz nicht gesperrt, und Form Builder versucht, den Eingabefokus in das aktuelle Objekt zu setzen. Wenn der Eingabefokus aus bestimmten Gründen nicht in das aktuelle Objekt gesetzt werden kann, versucht Form Builder, den Eingabefokus in das vorherige navigierbare Objekt zu setzen.

Wird ausgelöst

Sperren der Zeile

Siehe Flußdiagramme von Form Builder


On-Logon-Trigger

  Verwandte Themen	 Alle Trigger

Beschreibung

Wird einmal pro Anmeldevorgang ausgelöst, wenn Form Builder normalerweise die Anmeldesequenz auslöst.

Definitionsebene  Form

Zulässige Befehle

Uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

•	Verwenden Sie einen On-Logon-Trigger, um ein Anmeldeverfahren bei einer fremden Datenquelle einzuleiten.

•	Als Bestandteil des Anmeldeverfahrens werden Pre-Logon und Post-Logon-Trigger ausgelöst.

•	Sie können einen NULL-Befehl für diesen Trigger angeben, damit die Anmeldung bei einer Datenquelle umgangen wird, wenn Sie eine Anwendung erstellen möchten, die keine Datenquelle erfordert.

•	Um die Standardverarbeitung von Form Builder aus diesem Trigger auszuführen, nehmen Sie einen Aufruf der vordefinierten Prozedur LOGON auf.

Bei Fehler

Form Builder versucht, die Form ordnungsgemäß zu beenden, löst jedoch den Post-Logon-Trigger nicht aus.

Wird ausgelöst

LOGON

Siehe Flußdiagramme von Form Builder


On-Logout-Trigger

  Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn Form Builder normalerweise einen Abmeldevorgang aus Form Builder und aus dem RDBMS einleitet.

Definitionsebene  Form

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

•	Verwenden Sie einen On-Logout-Trigger, um die Standardverarbeitung für das Abmelden von der RDBMS oder von einer fremden Datenquelle zu ersetzen.

•	Um die Standardverarbeitung von Form Builder aus diesem Trigger auszuführen, nehmen Sie einen Aufruf der vordefinierten Prozedur LOGOUT auf.

•	Wenn Sie bestimmte vordefinierte Prozeduren aus einem der Logout-Trigger aufrufen, sind die Ergebnisse undefiniert. So können Sie z.B. die vordefinierte Prozedur COPY nicht aus einem Pre-Logout-Trigger aufrufen, da Pre-Logout nach dem Ereignis "Form verlassen" ausgelöst wird. Da nicht mehr auf die Form zugegriffen werden kann, ist ein COPY-Vorgang nicht möglich.

Bei Fehler

Wenn eine Exception in einem On-Logout-Trigger ausgelöst wird und die aktuelle Runform-Sitzung beendet wird, löst Form Builder keine weiteren Trigger aus, wie z.B. Post-Logout.

Wird ausgelöst

LOGOUT

Siehe Flußdiagramme von Form Builder


On-Message-Trigger

 Beispiele	     Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn Form Builder normalerweise eine Meldung anzeigen würde, und gibt die Meldung aus.

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

•	Benutzen Sie einen On-Message-Trigger für die folgenden Zwecke:

•	Um eine Informationsmeldung abzufangen und zu beantworten

•	Um eine Standard-Fehlermeldung durch eine benutzerdefinierte Fehlermeldung zu ersetzen

•	Um eine nicht zutreffende Meldung auszuschließen

•	Verwenden Sie die vordefinierten Prozeduren MESSAGE_CODE, MESSAGE_TEXT, MESSAGE_TYPE in einem On-Message-Trigger, um das Vorhandensein einer bestimmten Meldungsbedingung zu kennzeichnen.

•	Wenn Sie den On-Message-Trigger benutzen, um eine Meldung abzufangen, damit diese nicht auf der Meldungszeile angezeigt wird, gibt die vordefinierte Prozedur GET_MESSAGE keinen Wert zurück. Um die aktuelle Meldung aus diesem Trigger anzuzeigen, müssen Sie die Meldung abfangen und explizit in das Ausgabegerät schreiben.

•	In den meisten Fällen müssen On-Message-Trigger der Form und nicht einem Block oder Objekt zugeordnet werden. Das Abfangen bestimmter Fehler auf Block- oder Objektebene kann schwierig sein, wenn diese Fehler auftreten, während Form Builder eine interne Navigation durchführt, z.B. während eines Speichervorgangs.

Bei Fehler

Keine Auswirkung


Beispiele für On-Message-Trigger

Beispiel

Das folgende Beispiel reagiert auf eine Fehlermeldung, indem ein Warnfenster angezeigt wird, das eine Meldung für den Benutzer enthält, wobei der Benutzer die Möglichkeit hat, die Verarbeitung fortzusetzen oder zu stoppen.

DECLARE
  alert_button NUMBER;
  lv_errtype VARCHAR2(3) := MESSAGE_TYPE;
  lv_errcod NUMBER := MESSAGE_CODE;
  lv_errtxt VARCHAR2(80) := MESSAGE_TEXT;
BEGIN
  IF lv_errcod = 40350 THEN
    alert_button := Show_Alert('continue_alert');
    IF alert_button = ALERT_BUTTON1 THEN
      ...
    ELSE
      ...
    END IF;
  ELSE
    Message(lv_errtyp||'-'||to_char(lv_errcod)||':  '||lv_errtxt);
    RAISE Form_Trigger_Failure;
  END IF;
    IF form_fatal OR form_failure THEN
     raise form_trigger_failure;
  END IF;

END;


On-Populate-Details-Trigger

 Alle Trigger

Beschreibung

Form Builder erstellt diesen Trigger automatisch, wenn Sie eine Master-Detail-Beziehung definieren. Der Trigger wird ausgelöst, wenn Form Builder normalerweise den Detail-Block in einer Master-Detail-Beziehung auffüllen müßte.

Definitionsebene  Form, Block

Zulässige Befehle

SELECT-Anweisungen, PL/SQL, uneingeschränkte vordefinierte Prozeduren, eingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen On-Populate-Details-Trigger, wenn Sie eine Master-Detail-Beziehung festgelegt haben und die standardmäßige Auffüllenphase einer Abfrage ersetzen möchten.

Hinweis:  Der On-Populate-Details-Trigger wird nur ausgelöst, wenn ein On-Clear-Details-Trigger vorhanden ist. Wenn Sie die standardmäßige Master-Detail-Funktionalität verwenden, erstellt Form Builder die erforderlichen Trigger automatisch. Wenn Sie jedoch eine eigene Master-Detail-Logik schreiben, beachten Sie, daß der On-Clear-Details-Trigger vorhanden sein muß, selbst wenn dieser nur die NULL-Anweisung enthält.

Wenn die Sofortige Synchronisation eingestellt ist, werden die Details des aufgerufenen Masters sofort aufgefüllt. Die sofortige Synchronisation ist der Standardwert.

Wenn die Verzögerte Synchronisation eingestellt ist und dieser Trigger ausgelöst wird, markiert Form Builder die Blöcke zur Synchronisation.

Wenn Sie die Blocksynchronisation selbst verwalten wollen, können Sie die vordefinierte Prozedur SET_BLOCK_PROPERTY(COORDINATION_STATUS) aufrufen.

Bei Fehler

Kann einen inkonsistenten Status in der Form verursachen

Wird ausgelöst

Master-Detail-Synchronisation

Siehe Flußdiagramme von Form Builder


On-Rollback-Trigger

  Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn Form Builder normalerweise eine ROLLBACK-Anweisung ausgeben würde, um eine Transaktion auf den letzten Savepoint zurückzusetzen, der ausgegeben wurde.

Definitionsebene  Form

Zulässige Befehle

SELECT-Anweisungen, PL/SQL, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen On-Rollback-Trigger, um die standardmäßige Rollback-Verarbeitung von Form Builder zu ersetzen.

Um die Standardverarbeitung von Form Builder aus diesem Trigger auszuführen, nehmen Sie einen Aufruf der vordefinierten Prozedur ISSUE_ROLLBACK auf.

Wird ausgelöst

CLEAR_FORM

Transaktionen abschicken und speichern

ROLLBACK_FORM

Siehe Flußdiagramme von Form Builder


On-Savepoint-Trigger

  Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn Form Builder normalerweise eine Savepoint-Anweisung ausgeben würde. Standardmäßig gibt Form Builder Savepoints beim Starten der Form und beim Starten jedes Vorgangs "Transaktion abschicken und speichern" aus.

Definitionsebene  Form

Zulässige Befehle

SELECT-Anweisungen, PL/SQL, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Um die Standardverarbeitung von Form Builder aus diesem Trigger auszuführen, nehmen Sie einen Aufruf der vordefinierten Prozedur ISSUE_SAVEPOINT auf.

In einem On-Savepoint-Trigger gibt das Anwendungsattribut Savepoint_Name den Namen des nächsten Savepoints zurück, den Form Builder standardmäßig ausgeben würde, wenn kein On-Savepoint-Trigger vorhanden wäre. In einem On-Rollback-Trigger gibt Savepoint_Name den Namen des Savepoints zurück, auf den Form Builder den Status zurücksetzen würde.

Sie können die standardmäßige Savepoint-Verarbeitung unterdrücken, indem Sie das Formdokumentattribut Savepoint-Modus ausschalten. Wenn der Savepoint-Modus ausgeschaltet ist, gibt Form Builder keine Savepoints aus und wird somit der On-Savepoint-Trigger niemals ausgelöst.

Bei Fehler

Keine Auswirkung

Wird ausgelöst

CALL_FORM

Transaktionen abschicken und speichern

SAVEPOINT

Siehe Flußdiagramme von Form Builder


On-Select-Trigger

 Beispiele	     Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn Form Builder normalerweise die Cursor-öffnen-, Analysieren- und Ausführenphase einer Abfrage ausführen würde, um die Datensätze in der Datenbank zu kennzeichnen, die den aktuellen Abfragekriterien entsprechen.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, PL/SQL, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen On-Select-Trigger, um den Datenbankcursor zu öffnen und auszuführen. Benutzen Sie diesen Trigger besonders dann, wenn Sie Daten aus einer fremden Datenquelle abrufen. der On-Select-Trigger kann in Verbindung mit dem On-Fetch-Trigger benutzt werden, um die Verarbeitung zu ersetzen, die normalerweise in dem vordefinierten Unterprogramm EXECUTE_QUERY ausgeführt wird.

Um die Standardverarbeitung von Form Builder aus diesem Trigger auszuführen, nehmen Sie einen Aufruf der vordefinierten Prozedur SELECT_RECORDS auf.

Bei Fehler

Keine Auswirkung

Wird ausgelöst

EXECUTE_QUERY

Abfrage öffnen

Siehe Flußdiagramme von Form Builder


Beispiele für On-Select-Trigger

Beispiel

Im folgenden Beispiel wird der On-Select-Trigger benutzt, um einen User Exit, 'Query,' und ein vordefiniertes Unterprogramm, SELECT_RECORDS, aufzurufen, um eine Abfrage bei einer Datenbank durchzuführen.

IF Get_Application_Property(DATASOURCE) = 'DB2' THEN
  User_Exit ( 'Query' );
  IF Form_Failure OR Form_Fatal THEN
    ABORT_QUERY;
  END IF;
ELSE
  /*
  **  Perform the default Form Builder task of opening the query.
  */
  Select_Records;
END IF;


On-Sequence-Number -Trigger

 Alle Trigger

Beschreibung

Wird ausgelöst, wenn Form Builder normalerweise die Standardverarbeitung für das Generieren von Folgenummern für Standardobjektwerte ausführen würde.Ersetzt die Standardreihe von Ereignissen, die eintritt, wenn Form Builder mit der Datenbank zusammenarbeitet, um den nächsten Wert aus einem SEQUENCE-Objekt einzulesen, das in der Datenbank definiert ist.

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Wenn eine SEQUENCE als Standardobjektwert benutzt wird, fragt Form Builder die Datenbank ab, um den nächsten Wert aus der SEQUENCE einzulesen, wenn das Ereignis "Datensatz erstellen" eintritt. Sie können diese Funktionalität mit einem On-Sequence-Number-Trigger unterdrücken oder außer Kraft setzen.

Um die Standardverarbeitung von Form Builder aus diesem Trigger auszuführen, rufen Sie die vordefinierte Prozedur GENERATE_SEQUENCE_NUMBER auf.

Bei Fehler

Keine Auswirkung

Wird ausgelöst

GENERATE_SEQUENCE_NUMBER

Siehe Flußdiagramme von Form Builder


On-Update-Trigger

 Alle Trigger

Beschreibung

Wird während des Prozesses Transaktionen abschicken und speichern beim Aktualisieren eines Datensatzes ausgelöst. Dieser Trigger wird besonders nach Auslösen des Pre-Update-Triggers und vor Auslösen des Post-Update-Trigger ausgelöst, wenn Form Builder normalerweise einen Datensatz in der Datenbank aktualisieren würde. Dieser Trigger wird einmal für jede Zeile ausgelöst, die zur Aktualisierung in der Form markiert ist.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, DML-Anweisungen (DELETE, INSERT, UPDATE), uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen On-Update-Trigger, um die Standardverarbeitung von Form Builder für die Handhabung von aktualisierten Datensätzen beim Abschicken einer Transaktion zu ersetzen.

Um die Standardverarbeitung von Form Builder aus diesem Trigger auszuführen, nehmen Sie einen Aufruf der vordefinierten Prozedur UPDATE_RECORD auf.

Bei Fehler

Form Builder führt die folgenden Schritte aus, wenn der On-Update-Trigger nicht erfolgreich ausgeführt wird:

•	Bestimmt die Fehlerposition

•	Schreibt den Status auf den zuletzt ausgegebenen Savepoint zurück

Wird ausgelöst

Transaktionen abschicken und speichern

Siehe Flußdiagramme von Form Builder


Post-Block-Trigger

 Einschränkungen	 Alle Trigger

Beschreibung

Wird während des Prozesses Block verlassen ausgelöst, wenn der Fokus aus dem Block bewegt wird.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen Post-Block-Trigger, um den aktuellen Datensatz des Blocks zu validieren, d.h. den Datensatz, der den Eingabefokus hatte, als das Ereignis Block verlassen eingetreten ist.

Mit diesem Trigger könnten Sie auch eine Bedingung testen und basierend auf dieser Bedingung verhindern, daß der Benutzer einen Block verläßt.

Bei Fehler

Wenn der Trigger mit einem Fehler beendet wird, während versucht wird, die Form zur Navigationseinheit zu machen, versucht Form Builder, das Ziel zu einem bestimmten Block, Datensatz oder Objekt zu setzen. Wenn dies nicht gelingt, versucht Form Builder, den Cursor zur Zielposition zu setzen. Wenn das Ziel jedoch außerhalb der aktuellen Einheit liegt oder der Operator ein Ende des Prozesses angibt, bricht Form Builder die Form ab.

Wird ausgelöst

Block verlassen

Siehe Flußdiagramme von Form Builder


Einschränkungen bei Post-Block-Triggern

Ein Post-Block-Trigger wird nicht ausgelöst, wenn das Formdokumentattribut Validierungseinheit auf Form eingestellt ist.


Post-Change-Trigger

 Einschränkungen	    Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn eine der folgenden Bedingungen vorhanden ist:

•	Der Prozeß Objekt validieren bestimmt, daß ein Objekt als Geändert markiert und nicht gleich NULL ist.

•	Ein Operator gibt einen Wert in ein Objekt zurück, indem eine Auswahl aus einer Werteliste getroffen wird, und das Objekt ist nicht NULL.

•	Form Builder ruft einen Nicht-NULL-Wert in ein Objekt ab. In diesem Fall wird der When-Validate-Item-Trigger nicht ausgelöst. Wenn diese Situation umgangen und der Post-Query-Trigger nicht benutzt werden soll, müssen Sie einen Post-Query-Trigger zusätzlich zu dem When-Validate-Item-Trigger aufnehmen. Hierzu wird auf die "Verwendungshinweise" unten verwiesen.

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Der Post-Change-Trigger ist nur aus Gründen der Kompatibilität mit früheren Versionen von Form Builder enthalten. Von der Benutzung dieses Triggers in neuen Anwendungen wird abgeraten.

Der Post-Query-Trigger hat die Einschränkungen des Post-Change-Triggers nicht. Sie können Post-Query benutzen, um Änderungen an den abgerufenen Datenbankwerten vorzunehmen. Bei derartigen Änderungen markiert Form Builder die entsprechenden Objekte und Datensätze als geändert.

Bei Fehler

Wenn dieser Trigger als Bestandteil der von der Navigation eingeleiteten Validierung ausgelöst wird, ist die Navigierung nicht erfolgreich, und der Fokus bleibt im Originalobjekt.

•	Wenn V2-Trigger in Ihrer Form vorhanden sind und Form Builder einen Datensatz mit abgerufenen Werten auffüllt, gelten folgende Einschränkungen:

•	Form Builder ignoriert jeden Versuch, den Wert eines Datenbankobjekts in dem Datensatz zu ändern.

•	Form Builder führt keine SELECT-Anweisung aus, die sich nur auf Datenbankobjekte in dem Datensatz auswirkt.

•	Form Builder führt keine SELECT-Anweisung aus, die keine INTO-Klausel hat.

Wenn Form Builder keine SELECT-Anweisung in einem V2-Triggerschritt ausführt, wird der Triggerschritt so behandelt, als wäre der Schritt erfolgreich ausgeführt worden, selbst wenn das Triggerschrittattribut Umgekehrter Rückgabewert gesetzt ist.

Während der Abrufverarbeitung können Post-Change-Trigger, die als PL/SQL-Trigger definiert sind, mit diesen Einschränkungen nicht ausgeführt werden. Unabhängig vom Triggerstil führt Form Builder beim Abrufen eines Datensatzes keine Validierungsprüfungen durch, markiert den Datensatz und die zugehörigen Objekte jedoch als Gültig, nachdem der Post-Change-Trigger für jedes Objekt ausgelöst wurde.

Wird ausgelöst

Objekt validieren

Datensätze abrufen

Siehe Flußdiagramme von Form Builder


Einschränkungen bei Post-Change-Triggern

Beachten Sie, daß Sie einen Post-Change-Trigger schreiben können, der den Wert eines Objektes ändert, das Form Builder validiert. Wenn die Validierung erfolgreich verläuft, markiert Form Builder das geänderte Objekt als Gültig und validiert es nicht neu. Dieses Verhalten ist zwar erforderlich, um Validierungsschleifen zu vermeiden, mit ihm können Sie jedoch auch einen ungültigen Wert in der Datenbank speichern.


Post-Database-Commit-Trigger

 Beispiele	     Verwandte Themen	 Alle Trigger

Beschreibung

Wird einmal während des Prozesses Transaktionen abschicken und speichern ausgelöst, nachdem der Datenbank-Speichervorgang eingetreten ist. Beachten Sie, daß der Post-Forms-Commit -Trigger ausgelöst wird, nachdem Einfügen-, Aktualisieren- und Löschenvorgänge an die Datenbank abgeschickt wurden, jedoch bevor die Transaktion durch Ausgabe eines Speichern-Befehls abgeschlossen wurde. Der Post-Database-Commit-Trigger wird ausgelöst, nachdem Form Builder einen Speichern-Befehl für den Abschluß der Transaktion ausgegeben hat.

Definitionsebene  Form

Zulässige Befehle

SELECT-Anweisungen, DML-Anweisungen (DELETE, INSERT, UPDATE), uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen Post-Database-Commit-Trigger, um immer dann eine Aktion auszuführen, wenn ein Datenbank-Speichervorgang eingetreten ist.

Bei Fehler

Es findet kein Rollback statt, da an der Stelle, an der dieser Trigger einen Fehler verursachen könnte, Form Builder schon über den Punkt hinausgegangen ist, bei dem ein erfolgreicher Rollback-Vorgang als Reaktion auf den Fehler ausgelöst werden kann.

Wird ausgelöst

Transaktionen abschicken und speichern

Siehe Flußdiagramme von Form Builder


Beispiele für Post-Database-Commit-Trigger

Beispiel

/*

** FUNCTION recs_posted_and_not_committed
**  RETURN BOOLEAN IS
** BEGIN
**  Default_Value('TRUE','Global.Did_DB_Commit');
**  RETURN (:System.Form_Status = 'QUERY'
**         AND :Global.Did_DB_Commit = 'FALSE');
** END;
*/
BEGIN
  :Global.Did_DB_Commit := 'FALSE';
END;


Post-Delete-Trigger

 Alle Trigger

Beschreibung

Wird während des Prozesses Transaktionen abschicken und speichern ausgelöst, nachdem eine Zeile gelöscht wurde. Dieser Trigger wird einmal für jede Zeile ausgelöst, die während des Speichervorgangs aus der Datenbank gelöscht wird.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, DML-Anweisungen (DELETE, INSERT, UPDATE), uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen Post-Delete-Trigger, um Transaktionen zu überprüfen.

Bei Fehler

Form Builder führt folgende Schritte aus, wenn der Post-Delete-Trigger nicht erfolgreich ausgeführt wird:

•	Bestimmt die Fehlerposition

•	Setzt auf den letzten Savepoint zurück

Wird ausgelöst

Transaktionen abschicken und speichern

Siehe Flußdiagramme von Form Builder


Post-Form-Trigger

 Alle Trigger

Beschreibung

Wird während des Prozesses Form verlassen ausgelöst, wenn eine Form verlassen wird.

Definitionsebene  Form

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Sie können einen Post-Form-Trigger für folgende Aufgaben verwenden:

•	Um die Form vor dem Verlassen aufzuräumen. Benutzen Sie z.B. einen Post-Form-Trigger, um globale Variablen zu löschen, die eine Form nicht mehr benötigt.

•	Um eine Meldung an den Operator beim Verlassen der Form zu senden.

Dieser Trigger wird nicht ausgelöst, wenn eine Form anormal beendet wird, z.B. wenn die Validierung in der Form nicht erfolgreich verläuft.

Bei Fehler

Verarbeitung wird angehalten

Wird ausgelöst

Form verlassen

Siehe Flußdiagramme von Form Builder


Post-Forms-Commit-Trigger

 Beispiele	     Verwandte Themen	 Alle Trigger

Beschreibung

Wird einmal während des Prozesses Transaktionen abschicken und speichern ausgelöst. Wenn in der Form Datensätze vorhanden sind, die als Einfügen-, Aktualisieren- oder Löschenvorgänge markiert wurden, wird der Post-Forms-Commit-Trigger ausgelöst, nachdem diese Änderungen in die Datenbank geschrieben wurden, jedoch bevor Form Builder den Datenbank-Speichern-Befehl ausgibt, um die Transaktion abzuschließen.

Wenn der Operator oder die Anwendung einen Speichern-Befehl auslöst, während keine Datensätze in der Form vorhanden sind, die als Einfügungen, Aktualisierungen oder Löschungen markiert wurden, löst Form Builder den Post-Forms-Commit-Trigger sofort aus, ohne die Änderungen an die Datenbank zu schicken.

Definitionsebene  Form

Zulässige Befehle

SELECT-Anweisungen, DML-Anweisungen (DELETE, INSERT, UPDATE), uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen Post-Forms-Commit-Trigger, um eine Aktion auszuführen, wie z.B. das Aktualisieren eines Überprüfungspfades, sobald ein Datenbank-Speichern-Vorgang eintritt.

Bei Fehler

Bricht die Abschicken- und Speichern-Verarbeitung ab: Form Builder gibt einen ROLLBACK-Befehl aus und verringert den internen Savepoint-Zähler.

Wird ausgelöst

Transaktionen abschicken und speichern

Siehe Flußdiagramme von Form Builder


Beispiele für Post-Forms-Commit-Trigger

Beispiel

Dieses Beispiel kann zusammen mit dem Post-Database-Commit-Trigger benutzt werden, um festzustellen, ob Datensätze abgeschickt, jedoch noch nicht gespeichert wurden.

/*
** FUNCTION recs_posted_and_not_committed
** RETURN BOOLEAN IS
** BEGIN
**    Default_Value('TRUE','Global.Did_DB_Commit');
**    RETURN (:System.Form_Status = 'QUERY'
**       AND :Global.Did_DB_Commit = 'FALSE');
** END;
*/
BEGIN
  :Global.Did_DB_Commit := 'FALSE';
END;


Post-Insert-Trigger

 Alle Trigger

Beschreibung

Wird während des Prozesses Transaktionen abschicken und speichern ausgelöst, direkt nachdem ein Datensatz eingefügt wurde. Dieser Trigger wird einmal für jeden Datensatz ausgelöst, der während des Speichervorgangs in die Datenbank eingefügt wird.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, DML-Anweisungen (DELETE, INSERT, UPDATE), uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen Post-Insert-Trigger, um Transaktionen zu überprüfen.

Bei Fehler

Form Builder führt die folgenden Schritte aus, wenn der Post-Insert-Trigger nicht erfolgreich ausgeführt wird:

•	Bestimmt die Fehlerposition

•	Setzt auf den letzten Savepoint zurück

Wird ausgelöst

Transaktionen abschicken und speichern

Siehe Flußdiagramme von Form Builder


Post-Logon-Trigger

 Beispiele	  Verwandte Themen	 Alle Trigger

Beschreibung

Wird nach einem der folgenden Ereignisse ausgelöst:

•	Dem erfolgreichen Abschluß der Standard-Anmeldeverarbeitung von Form Builder

•	Der erfolgreichen Ausführung des On-Logon-Triggers

Definitionsebene  Form

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen Post-Logon-Trigger, um einen Ereignispunkt für eine Task festzulegen, wie z.B. das Einrichten einer benutzerdefinierten Umgebung mit speziellen Variablen, die auf Anwendungsebene und nicht auf einer Formbasis initialisiert werden. Sie könnten dies erreichen, indem Sie spezielle globale Variablen aus diesem Trigger initialisieren.

Bei Fehler

Variiert je nach den folgenden Bedingungen:

•	Wenn der Trigger während des ersten Anmeldevorgangs nicht erfolgreich ausgeführt wird, beendet Form Builder die Form und geht auf Systemebene zurück.

•	Wenn der Trigger nach einer erfolgreichen Anmeldung mit einem Fehler beendet wird, löst Form Builder die vordefinierte Exception FORM_TRIGGER_FAILURE aus.

Wird ausgelöst

LOGON

Siehe Flußdiagramme von Form Builder


Beispiele für Post-Logon-Trigger

Beispiel

Dieses Beispiel ruft einen User Exit auf, um den aktuellen Benutzernamen und die Zeit in einer codierten Audit-Protokolldatei im Dateisystem zu protokollieren, die aus Sicherheitsgründen nicht in der Datenbank gespeichert ist.

BEGIN
  User_Exit('LogCrypt '||
            USER||' '  ||
            TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS'));
END;


Post-Logout-Trigger

  Verwandte Themen	 Alle Trigger

Beschreibung

Wird nach einem der folgenden Ereignisse ausgelöst:

•	Form Builder meldet sich erfolgreich bei ORACLE ab.

•	Erfolgreiche Ausführung des On-Logout-Triggers.

Definitionsebene  Form

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen Post-Logout-Trigger, um Tasks mit einer Form Builder-Anwendung zu überprüfen oder auszuführen, die die RDBMS oder eine andere Datenquelle nicht benötigen bzw. nicht beeinflussen.

Wenn Sie aus einem der Logout-Trigger bestimmte vordefinierte Prozeduren aufrufen, sind die Ergebnisse undefiniert. Sie können z.B. COPY nicht aus einem Pre-Logout-Trigger aufrufen, da Pre-Logout nach dem Ereignis Form verlassen ausgelöst wird. Da nicht mehr auf die Form zugegriffen werden kann, ist ein COPY-Vorgang nicht möglich.

Bei Fehler

Wenn dieser Trigger beim Verlassen der Form scheitert, gibt es keine Auswirkung.

Wenn dieser Trigger nicht erfolgreich ausgeführt wird und Sie die vordefinierte Prozedur LOGOUT aus dem Trigger aufgerufen haben, wird , FORM_FAILURE auf TRUE gesetzt.

Wird ausgelöst

LOGOUT

Siehe Flußdiagramme von Form Builder


Post-Query-Trigger

 Beispiele	     Verwandte Themen	 Alle Trigger

Beschreibung

Wenn eine Abfrage in dem Block geöffnet ist, wird der Post-Query-Trigger jedesmal ausgelöst, wenn Form Builder einen Datensatz in einen Block abruft. Der Trigger wird einmal für jeden Datensatz ausgelöst, der in der Liste mit Datensätzen des Blocks steht.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

•	Benutzen Sie einen Post-Query-Trigger, um die folgenden Aufgaben auszuführen:

•	Auffüllen von Steuerelementen oder Objekten in anderen Blöcken

•	Berechnen von Statistiken über die Datensätze, die von einer Abfrage abgerufen werden.

•	Berechnen der laufenden Summe

•	Wenn Sie einen Post-Query-Trigger benutzen, um nicht zu einer Basistabelle gehörige Werte in Steuerelemente abzurufen, markiert Form Builder jeden Datensatz als GEÄNDERT und löst somit standardmäßig den When-Validate-Item-Trigger aus. Sie können die Ausführung des When-Validate-Item-Triggers vermeiden, indem Sie das Attribut Status jedes Datensatzes im Post-Query-Trigger explizit auf QUERY_STATUS setzen. Um den Datensatzstatus programmgesteuert zu setzen, verwenden Sie SET_RECORD_PROPERTY.

Bei Fehler

Form Builder entfernt den Datensatz aus dem Block und versucht, den nächsten Datensatz aus der Datenbank abzurufen. Wenn keine weiteren Datensätze in der Datenbank vorhanden sind, schließt Form Builder die Abfrage und wartet auf die nächste Operatoraktion.

Wird ausgelöst

Datensätze abrufen

Siehe Flußdiagramme von Form Builder


Beispiele für Post-Query-Trigger

Beispiel

In diesem Beispiel werden Beschreibungen für Codefelder zur Anzeige in Nicht-Datenbankobjekten im aktuellen Block abgerufen.

DECLARE

  CURSOR lookup_payplan IS SELECT Payplan_Desc
                             FROM Payplan
                            WHERE Payplan_Id =
                                  :Employee.Payplan_Id;

  CURSOR lookup_area    IS SELECT Area_Name
                             FROM Zip_Code
                             WHERE Zip = :Employee.Zip;

BEGIN
  /*
  ** Lookup the Payment Plan Beschreibung given the
  ** Payplan_Id in the Employee Record just fetched.
  ** Use Explicit Cursor for highest efficiency.
  */
  OPEN lookup_payplan;
  FETCH lookup_payplan INTO :Employee.Payplan_Desc_Nondb;
  CLOSE lookup_payplan;

  /*
  ** Lookup Area Descript given the Zipcode in
  ** the Employee Record just fetched. Use Explicit
  ** Cursor for highest efficiency.
  */
  OPEN lookup_area;
  FETCH lookup_area INTO :Employee.Area_Desc_Nondb;
  CLOSE lookup_area;
END;


Post-Record-Trigger

 Einschränkungen	 Alle Trigger

Beschreibung

Wird während des Prozesses Datensatz verlassen ausgelöst. Der Post-Record-Trigger wird besonders dann ausgelöst, wenn der Operator oder die Anwendung den Eingabefokus von einem Datensatz zu einem anderen setzt. Der Prozeß Datensatz verlassen kann als Folge zahlreicher Vorgänge auftreten, einschließlich INSERT_RECORD, DELETE_RECORD, NEXT_RECORD, NEXT_BLOCK , CREATE_RECORD, PREVIOUS_BLOCK usw.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen Post-Record-Trigger, wenn Sie immer dann eine Aktion ausführen möchten, wenn der Operator oder die Anwendung den Eingabefokus von einem Datensatz zu einem anderen setzt. Wenn Sie z.B. ein visuelles Attribut für ein Objekt setzen möchten, während der Operator einen Bildlauf nach unten durch eine Reihe von Datensätzen durchführt, können Sie dies in diesem Trigger tun.

Bei Fehler

Der Eingabefokus bleibt im aktuellen Datensatz.

Wird ausgelöst

Datensatz verlassen

Siehe Flußdiagramme von Form Builder


Einschränkungen bei Post-Record-Triggern

Ein Post-Record-Trigger wird nur ausgelöst, wenn die Form mit einer Validierungseinheit des Objekts oder Datensatzes ausgeführt wird, wie mit dem Formattribut Validierungseinheit angegeben.


Post-Select-Trigger

 Alle Trigger

Beschreibung

Der Post-Select-Trigger wird nach der Standard-Auswahlphase der Abfrageverarbeitung oder nach der erfolgreichen Ausführung des On-Select-Triggers ausgelöst. Er wird ausgelöst, bevor tatsächlich Datensätze mit der entsprechenden Verarbeitung abgerufen werden.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie den Post-Select-Trigger, um eine Aktion aufgrund des Ergebnisses der Auswahlphase der Abfrageverarbeitung auszuführen, z.B. eine Aktion, die auf der Anzahl von Datensätzen basiert, die dem Abfragekriterium entsprechen.

Bei Fehler

Keine Auswirkung

Wird ausgelöst

Abfrage ausführen

Abfrage öffnen

Siehe Flußdiagramme von Form Builder


Post-Text-Item-Trigger

 Einschränkungen	    Verwandte Themen	 Alle Trigger

Beschreibung

Wird während des Prozesses Objekt verlassen für ein Textobjekt ausgelöst. Dieser Trigger wird besonders dann ausgelöst, wenn der Eingabefokus von einem Textobjekt zu einem anderen Objekt gesetzt wird.

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen Post-Text-Item-Trigger, um Objektwerte zu berechnen oder zu ändern.

Bei Fehler

Die Navigation kann nicht erfolgreich ausgeführt werden, und der Fokus bleibt im Textobjekt.

Wird ausgelöst

Objekt verlassen

Siehe Flußdiagramme von Form Builder


Einschränkungen bei Post-Text-Item-Triggern

Der Post-Text-Item-Trigger wird nicht ausgelöst, wenn der Eingabefokus in einem Textobjekt steht und der Operator mit der Maus auf eine Schaltfläche, ein Kontrollkästchen, ein Listenelement oder ein Optionsgruppenelement klickt, bei dem das Attribut Maus-Navigation auf Aus eingestellt ist. Wenn das Attribut Maus-Navigation für diese Objekte auf Aus eingestellt ist, ist das Klicken auf diese Objekte mit der Maus kein Navigationsereignis, und der Eingabefokus bleibt im aktuellen Objekt (in diesem Beispiel einem Textobjekt).


Post-Update-Trigger

 Alle Trigger

Beschreibung

Wird während des Prozesses Transaktionen abschicken und speichern ausgelöst, nachdem eine Zeile aktualisiert wurde. Dieser Trigger wird einmal für jede Zeile ausgelöst, die während des Speichervorgangs in der Datenbank aktualisiert wird.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, DML-Anweisungen (DELETE, INSERT, UPDATE), uneingeschränkte Funktionscodes, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen Post-Update-Trigger, um Transaktionen zu überprüfen.

Bei Fehler

Form Builder führt die folgenden Schritte aus, wenn der Post-Update-Trigger nicht erfolgreich ist:

•	Bestimmt die Fehlerposition

•	Setzt auf den letzten Savepoint zurück

Wird ausgelöst

Transaktionen abschicken und speichern

Siehe Flußdiagramme von Form Builder


Pre-Block-Trigger

 Einschränkungen	 Alle Trigger

Beschreibung

Wird während des Prozesses In Block gehen während der Navigation von einem Block zu einem anderen ausgelöst.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen Pre-Block-Trigger, um:

•	den Zugriff zu einem Block zuzulassen oder zu untersagen.

•	Variablenwerte einzustellen.

Bei Fehler

Die Navigation ist nicht erfolgreich, und der Fokus bleibt im Quellobjekt.

Wird ausgelöst

In Block gehen

Siehe Flußdiagramme von Form Builder


Einschränkungen bei Pre-Block-Triggern

Ein Pre-Block-Trigger wird nur ausgelöst, wenn die Form mit einer Validierungseinheit des Objekts, Datensatzes oder Blocks ausgeführt wird, wie mit dem Formattribut Validierungseinheit angegeben.


Pre-Commit-Trigger

 Alle Trigger

Beschreibung

Wird einmal während des Prozesses Transaktionen abschicken und speichern ausgelöst, bevor Form Builder zu ändernde Datensätze verarbeitet. Dieser Trigger wird besonders dann ausgelöst, nachdem Form Builder festgestellt hat, daß in der Form Einfügen-, Aktualisieren- oder Löschen-Vorgänge vorhanden sind, die abgeschickt oder gespeichert werden müssen. Der Trigger wird hierbei vor dem Festschreiben der Änderungen ausgelöst. Der Trigger wird nicht ausgelöst, wenn ein Speicherversuch vorliegt, die Validierung jedoch ergibt, daß in der Form keine geänderten Datensätze vorhanden sind.

Definitionsebene  Form

Zulässige Befehle

SELECT-Anweisungen, DML-Anweisungen (DELETE, INSERT, UPDATE), uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen Pre-Commit-Trigger, um immer dann eine Aktion auszuführen, wie z.B. das Festlegen besonderer Sperranforderungen, wenn ein Datenbank-Speichervorgang kurz bevorsteht.

Bei Fehler

Der Abschicken- und Speichern-Prozeß wird nicht erfolgreich ausgeführt: Keine Datensätze werden in die Datenbank geschrieben, und der Fokus bleibt im aktuellen Objekt.

Hinweis:  Wenn Sie DML in einem Pre-Commit-Trigger ausführen und der Trigger nicht erfolgreich abgeschlossen wird, müssen Sie einen manuellen Rollback-Vorgang durchführen, da Form Builder keinen automatischen Rollback-Vorgang vornimmt. Als Vorbereitung für einen möglichen manuellen Rollback-Vorgang speichern Sie den Savepoint-Namen in einem On-Savepoint-Trigger mit GET_APPLICATION_PROPERTY(Savepoint_Name). Danach können Sie den Status mit ISSUE_ROLLBACK (Savepoint_Name) zurücksetzen.

Wird ausgelöst

Transaktionen abschicken und speichern

Siehe Flußdiagramme von Form Builder


Pre-Delete-Trigger

 Alle Trigger

Beschreibung

Wird während des Prozesses Transaktionen abschicken und speichern ausgelöst, bevor eine Zeile gelöscht wird. Dieser Trigger wird einmal für jeden Datensatz ausgelöst, der für das Löschen markiert ist.

Hinweis:  Form Builder erstellt automatisch einen Pre-Delete-Trigger für jede Master-Detail-Beziehung, bei der das Attribut Verhalten bei Datensatz löschen auf Kaskadierend gesetzt ist.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, DML-Anweisungen (DELETE, INSERT, UPDATE), uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen Pre-Delete-Trigger, um den Detail-Datensatz eines Master-Datensatzes zu löschen.

Benutzen Sie einen Pre-Delete-Trigger, um das Löschen eines Datensatzes zu verhindern, wenn es sich bei diesem Datensatz um den Master-Datensatz für Detail-Datensätze handelt, die noch vorhanden sind.

Bei Fehler

Form Builder führt die folgenden Schritte aus, wenn der Pre-Delete-Trigger erfolglos verläuft:

•	Bestimmt die Fehlerposition

•	Setzt auf den letzten Savepoint zurück

Wird ausgelöst

Transaktionen abschicken und speichern

Siehe Flußdiagramme von Form Builder


Pre-Form-Trigger

  Verwandte Themen	 Alle Trigger

Beschreibung

Wird während des Ereignisses In Form gehen beim Starten der Form ausgelöst.

Definitionsebene  Form

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen Pre-Form-Trigger, um folgende Tasks auszuführen:

•	Eindeutigen Primärschlüssel aus der Folge zuweisen

•	Zugriff zu einer Form beschränken

•	Globale Variablen initialisieren

Bei Fehler

Form Builder verläßt die aktuelle Form und löst keine weiteren Trigger aus.

Wird ausgelöst

In Form gehen

Siehe Flußdiagramme von Form Builder


Pre-Insert-Trigger

 Beispiele	 Alle Trigger

Beschreibung

Wird während des Prozesses Transaktionen abschicken und speichern ausgelöst, bevor eine Zeile eingefügt wird. Dieser Trigger wird einmal für jeden Datensatz ausgelöst, der für das Einfügen markiert ist.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, DML-Anweisungen (DELETE, INSERT, UPDATE), uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen Pre-Insert-Trigger, um die folgenden Tasks auszuführen:

•	Objektwerte ändern

•	Datum verfolgen, an dem ein Datensatz erstellt wird, und Speichern dieses Datums in dem Datensatz vor dem Commit-Vorgang

Bei Fehler

Form Builder führt die folgenden Schritte aus, wenn der Pre-Insert-Trigger nicht erfolgreich ausgeführt wird:

•	Bestimmt die Fehlerposition

•	Setzt auf den letzten Savepoint zurück

Wird ausgelöst

Transaktionen abschicken und speichern

Siehe Flußdiagramme von Form Builder


Beispiele für Pre-Insert-Trigger

Beispiel

Dieses Beispiel weist ein Primärschlüsselfeld basierend auf einer Folgenummer zu und schreibt dann eine Zeile in eine Prüftabelle, so daß das Erstellen eines neuen Auftrags gekennzeichnet wird.

DECLARE
  CURSOR next_ord IS SELECT orderid_seq.NEXTVAL FROM dual;
BEGIN

  /*
  ** Fetch the next sequence number from the
  ** explicit cursor directly into the item in
  ** the Order record. Could use SELECT...INTO,
  ** but explicit cursor is more efficient.
  */
  OPEN next_ord;
  FETCH next_ord INTO :Order.OrderId;
  CLOSE next_ord;

  /*
  ** Make sure we populated a new order id ok...
  */
  IF :Order.OrderId IS NULL THEN
    Message('Error Generating Next Order Id');
    RAISE Form_Trigger_Failure;
  END IF;

  /*
  ** Insert a row into the audit table
  */
  INSERT INTO ord_audit( orderid, operation, username, timestamp )
  VALUES ( :Order.OrderId,
           'New Order',
           USER,
           SYSDATE );

END;


Pre-Logon-Trigger

 Alle Trigger

Beschreibung

Wird direkt ausgelöst, bevor Form Builder ein Anmeldeverfahren bei der Datenquelle einleitet.

Definitionsebene  Form

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen Pre-Logon-Trigger, um die Form für das Anmeldeverfahren vorzubereiten, insbesondere bei einer Nicht-ORACLE-Datenquelle.

Bei Fehler

Die Ergebnisse bei einem Fehler hängen davon ab, welche der folgenden Bedingungen zutrifft:

•	Wenn Form Builder die Form das erste Mal aufruft und der Trigger nicht erfolgreich ausgeführt wird, wird die Form ordnungsgemäß beendet, es werden jedoch keine weiteren Trigger ausgelöst.

•	Wenn der Trigger erfolglos beendet wird, während Form Builder versucht, die vordefinierte Prozedur LOGON aus dem Trigger auszuführen, löst Form Builder die Exception FORM_TRIGGER_FAILURE aus.

Wird ausgelöst

LOGON

Siehe Flußdiagramme von Form Builder


Pre-Logout-Trigger

 Alle Trigger

Beschreibung

Wird einmal ausgelöst, bevor Form Builder ein Abmeldeverfahren einleitet.

Definitionsebene  Form

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen Pre-Logout-Trigger, um die Form für das Abmelden von der Datenquelle vorzubereiten, insbesondere bei einer Nicht-ORACLE-Datenquelle.

Wenn Sie bestimmte vordefinierte Prozeduren aus einem der Logout-Trigger aufrufen, sind die Ergebnisse undefiniert. Sie können z.B. die vordefinierte Prozedur COPY nicht aus einem Pre-Logout-Trigger aufrufen, da Pre-Logout nach dem Ereignis Form verlassen ausgelöst wird. Da nicht mehr auf die Form zugegriffen werden kann, ist der COPY-Vorgang nicht möglich.

Bei Fehler

Die Ergebnisse bei einem Fehler hängen davon ab, welche der folgenden Bedingungen zutrifft:

•	Wenn Form Builder die Form beendet und der Trigger nicht erfolgreich ausgeführt wird, wird die Form ordnungsgemäß beendet, es werden jedoch keine weiteren Trigger ausgelöst.

•	Wenn der Trigger erfolglos ausgeführt wird, während Form Builder versucht, die vordefinierte Prozedur LOGOUT aus dem Trigger auszuführen, löst Form Builder die Exception FORM_TRIGGER_FAILURE aus.

Wenn eine Exception in einem Pre-Logout-Trigger ausgelöst wird, löst Form Builder keine weiteren Trigger aus, wie z.B. On-Logout und Post-Logout.

Wird ausgelöst

LOGOUT

Siehe Flußdiagramme von Form Builder


Pre-Popup-Menu-Trigger

 Alle Trigger

Beschreibung

Dieser Trigger wird aufgerufen, wenn ein Benutzer ein Popup-Menü anzeigt. (In einer Microsoft Windows-Umgebung geschieht dies, wenn ein Benutzer die rechte Maustaste drückt.)  Für diesen Trigger definierte Aktionen werden ausgeführt, bevor das Popup-Menü angezeigt wird.

Zulässige Befehle

SELECT-Anweisungen, eingeschränkte vordefinierte Prozeduren, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

Benutzen Sie diesen Trigger, um Menüpunkte in einem Popup-Menü zu aktivieren oder zu deaktivieren, bevor es angezeigt wird

Bei Fehler

Keine Auswirkung


Pre-Query-Trigger

 Beispiele	     Verwandte Themen	 Alle Trigger

Beschreibung

Wird während der Verarbeitung von Abfrage ausführen oder Treffer zählen ausgelöst, direkt bevor Form Builder die SELECT-Anweisung erzeugt und ausgibt, mit der die Zeilen gekennzeichnet werden, die den Abfragekriterien entsprechen.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen Pre-Query-Trigger, um den Beispieldatensatz zu ändern, mit dem bestimmt wird, welche Zeilen von der Abfrage gekennzeichnet werden.

Bei Fehler

Die Abfrage wird abgebrochen. Wenn der Operator oder die Anwendung die Form in den Abfragemodus versetzt hat, bleibt die Form im Abfragemodus.

Wird ausgelöst

COUNT_QUERY

EXECUTE_QUERY

Abfrage öffnen

Abfrage vorbereiten

Siehe Flußdiagramme von Form Builder


Beispiele für Pre-Query-Trigger

Beispiel

Dieses Beispiel validiert oder ändert Abfragekriterien für eine Datenbankblockabfrage.

BEGIN
  /*
  ** Set the ORDER BY clause for the current block
  ** being queried, based on a radio group
  ** called 'Sort_Column' in a control block named
  ** 'Switches'. The Radio Group has three buttons
  ** with character values giving the names of
  ** three different columns in the table this
  ** block is based on:
  **
  **     SAL
  **     MGR,ENAME
  **     ENAME
  */
  Set_Block_Property('EMP',ORDER_BY, :Switches.Sort_Column);
  /*
  ** Make sure the user has given one of the two
  ** Columns which we have indexed in their search
  ** criteria, otherwise fail the query with a helpful
  ** message
  */
  IF :Employee.Ename IS NULL AND :Employee.Mgr IS NULL THEN
    Message('Supply Employee Name and/or Manager Id '||
            'for Query.');
    RAISE Form_Trigger_Failure;
  END IF;

  /*
  ** Change the default where clause to either show "Current
  ** Employees Only" or "Terminated Employees" based on the
  ** setting of a check_box named 'Show_Term' in a control
  ** block named 'Switches'.
  */
  IF Check_box_Checked('Switches.Show_Term') THEN
    Set_Block_Property('EMP',DEFAULT_WHERE,'TERM_DATE IS NOT NULL');
  ELSE
    Set_Block_Property('EMP',DEFAULT_WHERE,'TERM_DATE IS NULL');
  END IF;
END;


Pre-Record-Trigger

 Beispiele	   Einschränkungen	    Verwandte Themen	 Alle Trigger

Beschreibung

Wird während des Prozesses In Datensatz gehen während der Navigation zu einem anderen Datensatz ausgelöst.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen Pre-Record-Trigger, um eine laufende Gesamtsumme zu behalten.

Bei Fehler

Die Navigation verläuft nicht erfolgreich, und der Fokus bleibt im aktuellen Objekt.

Wird ausgelöst

In Datensatz gehen

Siehe Flußdiagramme von Form Builder


Einschränkungen bei Pre-Record-Triggern

Ein Pre-Record-Trigger wird nur ausgelöst, wenn die Form mit einer Validierungseinheit des Objekts oder Datensatzes ausgeführt wird, wie mit dem Formattribut Validierungseinheit angegeben.


Beispiele für Pre-Record-Trigger

Beispiel

Der folgende Trigger verhindert, daß der Benutzer zu einem neuen Datensatz geht, wobei eine bestimmte dynamische Bedingung gegeben ist und der Status von SYSTEM.RECORD_STATUS mit NEW ausgewertet wird.

IF (( dynamic-condition)
   AND :System.Record_Status = 'NEW') THEN
   RAISE Form_Trigger_Failure;
END IF;


Pre-Select-Trigger

  Verwandte Themen	 Alle Trigger

Beschreibung

Wird während der Verarbeitung von Abfrage ausführen und Treffer zählen ausgelöst, nachdem Form Builder die auszugebende SELECT-Anweisung erzeugt hat, jedoch bevor die Anweisung tatsächlich ausgegeben wird. Beachten Sie, daß die SELECT-Anweisung in einem Pre-Select-Trigger überprüft werden kann, indem der Wert der Systemvariablen SYSTEM.LAST_QUERY gelesen wird.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen Pre-Select-Trigger, um eine Abfrage vor der Ausführung mit einer fremden Datenquelle vorzubereiten.

Bei Fehler

Ursache: Die aktuelle Abfrage hat keine Datensätze aus der Tabelle abgerufen. Die Tabelle ist leer oder enthält keine Datensätze, die den Suchkriterien der Abfrage entsprechen.

Wird ausgelöst

EXECUTE_QUERY

Abfrage öffnen

Abfrage vorbereiten

Siehe Flußdiagramme von Form Builder


Pre-Text-Item-Trigger

 Einschränkungen

Beschreibung

Wird während des Prozesses In Objekt gehen während der Navigation von einem Objekt zu einem Textobjekt ausgelöst.

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen Pre-Text-Item-Trigger, um die folgenden Arten von Tasks auszuführen:

•	Ableiten eines komplexen Standardwerts aufgrund anderer Objekte, die vorher in denselben Datensatz eingegeben wurden

•	Aufzeichnen des aktuellen Wertes des Textobjekts zur späteren Bezugnahme und Speichern dieses Wertes in einer globalen Variablen oder einem Formparameter

Bei Fehler

Die Navigation verläuft nicht erfolgreich, und der Fokus bleibt im aktuellen Objekt.

Wird ausgelöst

In Objekt gehen

Siehe Flußdiagramme von Form Builder


Einschränkungen bei Pre-Text-Item-Triggern

Ein Pre-Text-Item-Trigger wird nur ausgelöst, wenn die Form mit einer Validierungseinheit des Objekts ausgeführt wird, wie mit dem Formattribut Validierungseinheit angegeben.


Pre-Update-Trigger

 Beispiele	 Alle Trigger

Beschreibung

Wird während des Prozesses Transaktionen abschicken und speichern ausgelöst, bevor eine Zeile aktualisiert wird. Dieser Trigger wird einmal für jeden Datensatz ausgelöst, der zur Aktualisierung markiert ist.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, DML-Anweisungen (DELETE, INSERT, UPDATE), uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen Pre-Update-Trigger, um Transaktionen zu überprüfen.

Bei Fehler

Form Builder führt die folgenden Schritte aus, wenn der Pre-Update-Trigger nicht erfolgreich verläuft:

•	Bestimmt die Fehlerposition

•	Setzt auf den letzten Savepoint zurück

Wird ausgelöst

Transaktionen abschicken und speichern

Siehe Flußdiagramme von Form Builder


Beispiele für Pre-Update-Trigger

Beispiel

Das folgende Beispiel schreibt eine Zeile in eine Audit-Tabelle, in der der alte Diskont und neue Diskont für einen bestimmten Kunden angegeben wird, einschließlich Zeitstempel und Name des Benutzers, der die Änderung vornimmt.

DECLARE
  old_discount NUMBER;
  new_discount NUMBER := :Customer.Discount_Pct;
  oper_desc    VARCHAR2(80);
  CURSOR old_value IS SELECT discount_pct FROM customer
                      WHERE CustId = :Customer.CustId;
BEGIN
  /*
  ** Fetch the old value of discount percentage from the
  ** database by CustomerId. We need to do this since the
  ** value of :Customer.Discount_Pct will be the *new* value
  ** we're getting ready to commit and we want to record for
  ** posterity the old and new values. We could use
  ** SELECT...INTO but choose an explicit cursor for
  ** efficiency.
  */
  OPEN old_value;
  FETCH old_value INTO old_discount;
  CLOSE old_value;

  /*
  ** If the old and current values are different, then
  ** we need to write out an audit record
  */
  IF old_discount <> new_discount THEN
    /*
    ** Construct a string that shows the operation of
    ** Changing the old value to the new value. e.g.
    **
    **   'Changed Discount from 13.5% to 20%'
    */
    oper_desc := 'Changed Discount from '||
                 TO_CHAR(old_discount)||'% to '||
                 TO_CHAR(new_discount)||'%';

    /*
    ** Insert the audit record with timestamp and user
    */
    INSERT INTO cust_audit( custid, operation, username,
       timestamp )
    VALUES ( :Customer.CustId,
             oper_desc,
             USER,
             SYSDATE );
  END IF;
END;


Query-Procedure-Trigger

 Alle Trigger

Beschreibung

Wird automatisch von Form Builder erstellt, wenn die Abfragedatenquelle einer gespeicherte Prozedur ist. Dieser Trigger wird aufgerufen, wenn eine Abfrage erforderlich ist. Stellen Sie sich diesen Trigger wie einen On-Query-Trigger vor, der vom System aufgerufen wird, anstatt einen standardmäßigen Abfragevorgang durchzuführen.

Ändern Sie diesen Trigger nicht.

Abfragemodus Siehe Verwendungshinweise

Verwendungshinweise

Beim Erstellen einer Abfrage können beliebige Objekte benutzt werden, das Attribut Datenquellspalten abfragen muß jedoch eingestellt sein, damit diese Objekte an die gespeicherte Prozedur übergeben  werden können. Danach muß die gespeicherte Prozedur diese Werte benutzen, um die Daten zu filtern. Dies bedeutet, daß der Abfragemodus nicht automatisch aufgerufen werden, es sei denn, Sie geben dies an.

Bei Fehler

Keine Auswirkung


Update-Procedure-Trigger

 Alle Trigger

Beschreibung

Wird automatisch von Form Builder erstellt, wenn die Aktualisieren-Datenquelle eine gespeicherte Prozedur ist- Dieser Trigger wird aufgerufen, wenn ein Aktualisierenvorgang erforderlich ist. Stellen Sie sich diesen Trigger wie einen On-Update-Trigger vor, der vom System aufgerifen wird, anstatt einen standardmäßigen Aktualisierenvorgang durchzuführen.

Ändern Sie diesen Trigger nicht.

Abfragemodus Nicht anwendbar.

Bei Fehler

Keine Auswirkung


Benutzerdefinierter Trigger

 Alle Trigger

Beschreibung

Ein benutzerdefinierter Trigger ist ein Trigger, den Sie selbst in einer Form definieren. Benutzerdefinierte Trigger werden nicht automatisch als Folge eines Form Builder-Ereignisses ausgelöst. Sie müssen explizit aus anderen Triggern oder benutzerdefinierten Unterprogrammen aufgerufen werden. Jeder benutzerdefinierte Trigger, der auf derselben Definitionsebene definiert wird, muß einen eindeutigen Namen haben.

Um einen benutzerdefinierten Trigger auszuführen, müssen Sie die vordefinierte Prozedur EXECUTE_TRIGGER aufrufen, wie hier dargestellt:

Execute_Trigger('my_user_named_trigger');

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

Alle Befehle, die in dem übergeordneten Trigger zulässig sind, aus dem der benutzerdefinierte Trigger aufgerufen wird.

Abfragemodus  Nein

Verwendungshinweise

Sie können benutzerdefinierte PL/SQL-Unterprogramme zur Ausführung nahezu jeder Task schreiben, für die Sie einen benutzerdefinierten Trigger verwenden könnten.

Wie bei allen Triggern entspricht der Geltungsbereich eines benutzerdefinierten Triggers der Definitionsebene und darunter. Wenn mehr als ein benutzerdefinierter Trigger denselben Namen hat, ist der auf der niedrigsten Ebene definierte Trigger vorrangig.

Am besten werden benutzerdefinierte Trigger auf Formebene definiert.

Erstellen Sie einen benutzerdefinierten Trigger, wenn Sie in einem Formdokument definierte benutzerdefinierte Unterprogramme aus PL/SQL-Menübefehlen und benutzerdefinierten Unterprogrammen ausführen möchten. (Benutzerdefinierte Unterprogramme, die in einer Form definiert sind, können nicht direkt aus einem PL/SQL-Menü aufgerufen werden, das in einem anderen Dokument definiert ist.) In dem PL/SQL-Menü rufen Sie die vordefinierte Prozedur EXECUTE_TRIGGER zur Ausführung eines benutzerdefinierten Triggers auf, der wiederum das benutzerdefinierte Unterprogramm aufruft, das in der aktuellen Form definiert ist.

Bei Fehler

Setzt die vordefinierte Prozedur FORM_FAILURE auf TRUE. Da der benutzerdefinierte Trigger immer von der vordefinierten Prozedur EXECUTE_TRIGGER aufgerufen wird, können Sie das Ergebnis eines benutzerdefinierten Triggers genauso testen, wie Sie das Ergebnis eines vordefinierten Unterprogramms testen, d.h. durch Testen auf Fehler mit den vordefinierten Funktionen FORM_FAILURE, FORM_SUCCESS, FORM_FATAL .


When-Button-Pressed-Trigger

 Beispiele	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn ein Operator eine Schaltfläche entwederüber die Tastatur oder durch Klicken mit einer Maus auswählt.

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren, eingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

Benutzen Sie einen When-Button-Pressed-Trigger, um eine Navigation durchzuführen, Werte von Textobjekten zu berechnen oder für eine andere Funktionalität auf Objekt-, Block- oder Formebene.

Bei Fehler

Keine Auswirkung


Beispiele für When-Button-Pressed-Trigger

Beispiel

Dieses Beispiel führt eine Prozedur COMMIT_FORM aus, wenn Änderungen in der Form vorhanden sind.

BEGIN
  IF :System.Form_Status = 'CHANGED' THEN
    Commit_Form;
    /*
    ** If the Form_Status is not back to 'QUERY'
    ** following a commit, then the commit was
    ** not successful.
    */
    IF :System.Form_Status <> 'QUERY' THEN
      Message('Unable to commit order to database...');
      RAISE Form_Trigger_Failure;
    END IF;
  END IF;
END;


When-Checkbox-Changed-Trigger

 Alle Trigger

Beschreibung

Wird ausgelöst, wenn ein Operator den Status eines Kontrollkästchens ändert, indem er mit der Maus klickt oder die Tastatur benutzt.

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren, eingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

Benutzen Sie einen When-Checkbox-Changed-Trigger, um eine Task je nach Status eines Kontrollkästchens einzuleiten.

Wenn ein Operator auf ein Kontrollkästchen klickt, ändert sich der interne Wert dieses Objektes erst, wenn die Navigation erfolgreich abgeschlossen ist. Somit ist der When-Checkbox-Changed-Trigger der erste Trigger, der den geänderten Wert eines Kontrollkästchen-Objekts registriert. Demzufolge bleibt der Wert des Kontrollkästchen-Objekts bei allen Navigationstriggern, die vor dem When-Checkbox-Changed-Trigger ausgelöst werden, so wie er war, bevor der Operator zu diesem Kontrollkästchen navigiert ist.

Bei Fehler

Keine Auswirkung


When-Clear-Block-Trigger

  Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, direkt bevor Form Builder die Daten aus dem aktuellen Block entfernt.

Beachten Sie, daß der When-Clear-Block-Trigger nicht ausgelöst wird, wenn Form Builder die Daten mit dem Ereignis CLEAR_FORM aus dem aktuellen Block entfernt.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

•	Benutzen Sie einen When-Clear-Block-Trigger, um immer dann eine Aktion auszuführen, wenn Form Builder den aktuellen Block leert. So könnten Sie z.B. jedesmal einen automatischen Speichervorgang ausführen, wenn diese Bedingung eintritt.

•	In einem When-Clear-Block-Trigger ist der Wert von SYSTEM.RECORD_STATUS nicht zuverlässig, da kein aktueller Datensatz vorhanden ist. Als Alternative können Sie GET_RECORD_PROPERTY benutzen, um den Datensatzstatus zu ermitteln. Da Sie bei GET_RECORD_PROPERTY einen bestimmten Datensatz referenzieren müssen, ist dessen Wert immer akkurat.

Bei Fehler

Keine Auswirkung auf das Entfernen von Daten aus dem Block

Wird ausgelöst

CLEAR_BLOCK

COUNT_QUERY

ENTER_QUERY

Abfrage öffnen

Siehe Flußdiagramme von Form Builder


When-Create-Record-Trigger

 Beispiele	  Verwandte Themen	 Alle Trigger

Beschreibung

Wird immer dann ausgelöst, wenn Form Builder einen neuen Datensatz erstellt. Wenn der Operator z.B. die Taste [Einfügen] drückt oder bei einem Bildlauf nach unten zum letzten Datensatz in einer Gruppe navigiert, löst Form Builder diesen Trigger aus.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen When-Create-Record-Trigger, um immer dann eine Aktion auszuführen, wenn Form Builder versucht, einen neuen Datensatz zu erstellen. Dieser Trigger wird auch für das Festlegen von komplexen, berechneten oder datengesteuerten Standardwerten benutzt, die zur Laufzeit und nicht beim Entwurf angegeben werden müssen.

Bei Fehler

Verhindert, daß der neue Datensatz erstellt wird. Geht wenn möglich zur vorherigen Position zurück.

Wird ausgelöst

CREATE_RECORD

Siehe Flußdiagramme von Form Builder


Beispiele für When-Create-Record-Trigger

Beispiel

In diesem Beispiel werden datengesteuerte oder berechnete Standardwerte zugewiesen, ohne den Datensatz als geändert zu markieren.

DECLARE
  CURSOR ship_dflt IS SELECT val
                        FROM cust_pref
                       WHERE Custid = :Customer.Custid
                         AND pref   = 'SHIP';
BEGIN
  /*
  ** Default Invoice Due Date based on Customer's
  ** Net Days Allowed value from the Customer block.
  */
  :Invoice.Due_Date := SYSDATE + :Customer.Net_Days_Allowed;
  /*
  ** Default the shipping method based on this customers
  ** preference, stored in a preference table. We could
  ** use SELECT...INTO, but explicit cursor is more
  ** efficient.
  */
  OPEN ship_dflt;
  FETCH ship_dflt INTO :Invoice.Ship_Method;
  CLOSE ship_dflt;
END;


When-Custom-Item-Event-Trigger

 Beispiele	     Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn eine benutzerdefinierte JavaBean-, ActiveX- (bei 32-Bit Windows) oder VBX- (bei 16-Bit Microsoft Windows 3.x) Komponente in der Form ein Ereignis an Form Builder sendet.

Definitionsebene

Form, Block, Objekt

Zulässige Befehle

Uneingeschränkte vordefinierte Prozedur, eingeschränkte vordefinierte Prozedur

Abfragemodus

Ja

Verwendungshinweise

Verwenden Sie einen When-Custom-Item-Event-Trigger, um auf eine Auswahl oder die Änderung eines Wertes für eine benutzerdefinierte Komponente zu reagieren. Die Systemvariable SYSTEM.CUSTOM_ITEM_EVENT speichert den Namen des eingetretenen Ereignisses, wobei die Schreibweise berücksichtigt werden muß, während die Systemvariable SYSTEM.CUSTOM_ITEM_EVENT_PARAMETERS einen Parameternamen speichert, der die zusätzlichen Argumente für ein Ereignis enthält, das mit einem benutzerdefinierten Steuerelement ausgelöst wird.

Bei den Namen von Steuerelementereignissen muß die Schreibweise berücksichtigt werden.

Bei Fehler

Keine Auswirkung


Beispiele für When-Custom-Item-Event-Trigger

JavaBeans-Beispiel

Dies ist ein Beispiel für eine Prozedur, deren Aufruf in einer Form, in der zwei JavaBeans verwendet werden, durch einen When-Custom-Item-Event-Trigger erfolgt. (Informationen zum Kontext finden Sie im vollständigen Beispiel.)

Der Trigger wird ausgelöst, wenn ein benutzerdefiniertes Ereignis in einer der JavaBeans als Reaktion auf die Änderung eines Wertes weitergeleitet wird.

     CustomEvent ce = new CustomEvent(mHandler, VALUECHANGED);

     dispatchCustomEvent(ce);

In der Form wird als Reaktion auf dieses benutzerdefinierte Ereignis automatisch der dem Bean-Bereich dieses JavaBeans zugeordnete When_Custom_Item_Event-Trigger ausgelöst.

Im Triggercode wird die folgende Prozedur ausgeführt. Beachten Sie, daß diese Prozedur die im JavaBean-Container eingestellten neuen Werte (zum Beispiel eine neue Animationsgeschwindigkeit) durch Zugriff auf System.Custom_Item_Event_Parameters abruft.

In diesem Beispiel verwendet die Prozedur dann die vordefinierte Prozedur Set_Custom_Item_Property, um diese Werte an das andere JavaBean zu übergeben.

PROCEDURE Slider_Event_Trap IS

  BeanHdl          Item;

BeanValListHdl   ParamList;

paramType        Number;

EventName        VarChar2(20);

CurrentValue     Number(4);

NewAnimationRate Number(4);

Begin

-- Update data items and Display fields with current radius information

BeanValListHdl := get_parameter_list(:SYSTEM.Custom_Item_Event_Parameters);

EventName      := :SYSTEM.Custom_Item_Event;

:event_name    := EventName;

if (EventName = 'ValueChanged') then

   get_parameter_attr(BeanValListHdl,'Value',ParamType, CurrentValue);

   NewAnimationRate := (300 - CurrentValue);

   :Animation_Rate  := NewAnimationRate;

     set_custom_item_property('Juggler_Bean','SetAnimationRate', NewAnimationRate);

elsif (EventName = 'mouseReleased') then

   get_parameter_attr(BeanValListHdl,'Value',ParamType, CurrentValue);

     set_custom_item_property('Juggler_Bean','SetAnimationRate', CurrentValue);

  end if;

End;

VBX-Beispiel

Dies ist ein Beispiel für eine Prozedur, die aufgerufen werden kann, wenn Form Builder den When-Custom-Item-Event-Trigger auslöst.

DECLARE
 TabEvent  varchar2(80);
 TabNumber Number;
BEGIN
 TabEvent := :system.custom_item_event;
 /*
 ** After detecting a Click event, identify the
 ** tab selected, and use the user-defined Goto_Tab_Page
 ** procedure to navigate to the selected page.
 */
 IF (UPPER(TabEvent) = 'CLICK') THEN
  TabNumber := VBX.Get_Property('TABCONTROL','CurrTab');
  Goto_Tab_Page(TabNumber);
 END IF;
END;


When-Database-Record-Trigger

 Alle Trigger

Beschreibung

Wird ausgelöst, wenn Form Builder einen Datensatz das erste Mal als Einfügung oder Aktualisierung markiert. Das heißt, der Trigger wird ausgelöst, sobald Form Builder über die Validierung bestimmt, daß der Datensatz von dem nächsten Abschicken- oder Speichervorgang als Einfügung oder Aktualisierung verarbeitet werden soll. Dies geschieht im allgemeinen nur, wenn der Operator das erste Objekt in einem Datensatz ändert und nachdem der Operator versucht, aus dem Objekt heraus zu navigieren.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen When-Database-Record-Trigger, um immer dann eine Aktion auszuführen, wenn ein Datensatz das erste Mal als Einfügung oder Aktualisierung markiert wird.

Bei Fehler

Keine Auswirkung


When-Form-Navigate-Trigger

 Beispiele	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn eine Navigation zwischen Forms erfolgt, z.B. wenn der Benutzer den Fokus zu einer anderen geladenen Form verschiebt.

Definitionsebene  Form

Zulässige Befehle

Uneingeschränkte vordefinierte Prozedur, eingeschränkte vordefinierte Prozedur

Abfragemodus

Nein

Verwendungshinweise

Benutzen Sie einen When-Form-Navigate-Trigger, um Aktionen auszuführen, wenn eine formübergreifende Navigation stattfindet, ohne sich auf die Ereignisse Fenster aktivieren und Fenster deaktivieren zu verlassen.

Bei Fehler

Keine Auswirkung


Beispiele für When-Form-Navigate-Trigger

Beispiel

Dies ist ein Beispiel für eine Prozedur, die aufgerufen werden kann, wenn Form Builder den When-Form-Navigate-Trigger auslöst.

DECLARE
 win_id WINDOW := FIND_WINDOW('WINDOW12');
BEGIN
 if (GET_WINDOW_PROPERTY(win_id,WINDOW_STATE) = 'MAXIMIZE' THEN
  SET_WINDOW_PROPERTY(win_id,WINDOW_STATE,MINIMIZE);
 else
  SET_WINDOW_PROPERTY(win_id,WINDOW_STATE,MAXIMIZE);
 end if;
END;


When-Image-Activated-Trigger

 Alle Trigger

Beschreibung

Wird ausgelöst, wenn ein Operator mit der Maus:

•	einmal auf ein Bildobjekt klickt.

•	auf ein Bildobjekt doppelklickt

Beachten Sie, daß When-Image-Pressed ebenfalls bei einem Doppelklick ausgelöst wird.

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Bei Fehler

Keine Auswirkung


When-Image-Pressed-Trigger

 Alle Trigger

Beschreibung

Wird ausgelöst, wenn ein Operator mit der Maus:

•	einmal auf ein Bildobjekt klickt.

•	auf ein Bildobjekt doppelklickt

Beachten Sie, daß When-Image-Activated ebenfalls bei einem Doppelklick ausgelöst wird.

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren, eingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

Benutzen Sie einen When-Image-Pressed-Trigger, um eine Aktion auszuführen, wenn ein Operator auf ein Bildobjekt klickt oder doppelklickt.

Bei Fehler

Keine Auswirkung


When-List-Activated-Trigger

  Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn ein Operator auf ein Element in einem Listenobjekt doppelklickt, das als T-Liste angezeigt wird.

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren, eingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

Ein When-List-Activated-Trigger wird nur bei T-Listenobjekten ausgelöst und nicht bei Listenobjekten von Dropdown-Listen oder Kombinationsfeldern. Der Anzeigestil eines Listenobjekts wird mit dem Attribut Listenstil bestimmt.

Bei Fehler

Keine Auswirkung


When-List-Changed-Trigger

  Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn ein Endbenutzer ein anderes Element in einem Listenobjekt auswählt oder die Auswahl des gerade ausgewählten Objekts aufhebt. Wenn ein When-List-Changed-Trigger einem Listenobjekt eines Kombinationsfeldes zugeordnet ist, wird er immer dann ausgelöst, wenn der Endbenutzer Text eingibt bzw. eingegebenen Text ändert.

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren, eingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

Benutzern Sie einen When-List-Changed-Trigger, um eine Aktion einzuleiten, wenn der Wert der Liste direkt vom Endbenutzer geändert wird. Der When-List-Changed-Trigger wird nicht ausgelöst, wenn der Wert der Liste programmgesteuert geändert wird, z.B. durch Benutzung der vordefinierten Prozedur DUPLICATE_ITEM, oder wenn der Endbenutzer den Aufruf einer Prozedur veranlaßt, die den Wert ändert. Der When-List-Changed-Trigger wird nicht ausgelöst, wenn ein Endbenutzer das Objekt mit einer Taste dupliziert, die der vordefinierten Prozedur DUPLICATE_ITEM zugeordnet ist.

Bei Fehler

Keine Auswirkung


When-Mouse-Click-Trigger

 Alle Trigger

Beschreibung

Wird ausgelöst, nachdem der Operator mit der Maus klickt, wenn eines der folgenden Ereignisse eintritt:

•	Bei einer Zuordnung zu der Form, wenn mit der Maus innerhalb einer Leinwand oder eines Objekts in der Form geklickt wird

•	Bei einer Zuordnung zu einem Block, wenn mit der Maus innerhalb eines Objekts in dem Block geklickt wird

•	Bei einer Zuordnung zu einem Objekt, wenn mit der Maus innerhalb des Objekts geklickt wird

Drei Ereignisse müssen eintreten, bevor ein When-Mouse-Click-Trigger ausgelöst wird:

•	Maustaste drücken

•	Maustaste loslassen

•	Mausklick

Jeder Trigger, der mit diesen Ereignissen verbunden ist, wird ausgelöst, bevor der When-Mouse-Click-Trigger ausgelöst wird.

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, eingeschränkte vordefinierte Prozeduren, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

Benutzen Sie den When-Mouse-Click-Trigger, um immer dann eine Aktion auszuführen, wenn der Operator innerhalb eines Objekts und/oder der Leinwand mit der Maus klickt.

Bei Fehler

Keine Auswirkung


When-Mouse-DoubleClick-Trigger

 Beispiele	 Alle Trigger

Beschreibung

Wird ausgelöst, nachdem der Operator mit der Maus doppelklickt, wenn eines der folgenden Ereignisse eintritt:

•	Bei einer Zuordnung zu der Form, wenn mit der Maus innerhalb einer Leinwand oder eines Objekts in der Form doppelgeklickt wird

•	Bei einer Zuordnung zu einem Block, wenn mit der Maus innerhalb eines Objekts in dem Block doppelgeklickt wird

•	Bei einer Zuordnung zu einem Objekt, wenn mit der Maus innerhalb des Objekts doppelgeklickt wird

Sechs Ereignisse müssen eintreten, bevor ein When-Mouse-DoubleClick-Trigger ausgelöst wird:

•	Maustaste drücken

•	Maustaste loslassen

•	Mausklick

•	Maustaste drücken

•	Maustaste loslassen

•	Mausdoppelklick

Jeder Trigger, der mit diesen Ereignissen verbunden ist, wird ausgelöst, bevor der When-Mouse-DoubleClick-Trigger ausgelöst wird.

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, eingeschränkte vordefinierte Prozeduren, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

Benutzen Sie einen When-Mouse-DoubleClick-Trigger, um immer dann eine Aktion auszuführen, wenn der Operator innerhalb eines Objekts und/oder der Leinwand mit der Maus doppelklickt.

Bei Fehler

Keine Auswirkung


Beispiele für When-Mouse-DoubleClick-Trigger

Beispiel

Angenommen, Ihre Anwendung erfordert Verhalten A, wenn der Operator mit der Maus klickt, und Verhalten B, wenn der Operator mit der Maus doppelklickt. Wenn der Operator z.B. mit der Maus klickt, muß ein Fenster mit Produktinformationen angezeigt werden. Wenn der Operator mit der Maus doppelklickt, muß ein Fenster mit einem Online-Hilfetext angezeigt werden.

In diesem Beispiel werden drei Trigger benutzt, ein When-Mouse-Click-Trigger, ein When-Timer-Expired-Trigger und ein When-Mouse-DoubleClick-Trigger.

/*
** -Trigger:  When-Mouse-Click
**  Beispiel:  When the operator clicks the mouse, create a timer
**            that will expire within .5 seconds.
*/

DECLARE
   timer_id        TIMER;
   timer_duration  NUMBER(5) := 500;
BEGIN
   timer_id := Create_Timer('doubleclick_timer', timer_duration,
     NO_REPEAT);
END;

/*
** -Trigger:  When-Timer-Expired
**  Beispiel:  When the timer expires display the online help
**            window if the operator has double-clicked the mouse
**            within .5 seconds, otherwise display the product
**            information window.
*/
BEGIN
   IF :Global.double_click_flag = 'TRUE' THEN
     Show_Window('online_help');
     :Global.double_click := 'FALSE';
   ELSE
     Show_Window('product_information');
   END IF;
END;

/*
** -Trigger:  When-Mouse-DoubleClick
**  Beispiel:  If the operator double-clicks the mouse, set a
**            flag that indicates that a double-click event
**            occurred.
*/
BEGIN
   :Global.double_click_flag := 'TRUE';
END;


When-Mouse-Down-Trigger

 Einschränkungen	 Alle Trigger

Beschreibung

Wird ausgelöst, nachdem der Operator die Maustaste drückt, wenn eines der folgenden Ereignisse eintritt:

•	Bei einer Zuordnung zu der Form, wenn die Maustaste innerhalb einer Leinwand oder eines Objekts in der Form gedrückt wird

•	Bei einer Zuordnung zu einem Block, wenn die Maustaste innerhalb eines Objekts in dem Block gedrückt wird

•	Bei einer Zuordnung zu einem Objekt, wenn die Maustaste innerhalb des Objekts gedrückt wird

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, eingeschränkte vordefinierte Prozeduren, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

Benutzen Sie einen When-Mouse-Down-Trigger, um immer dann eine Aktion auszuführen, wenn der Operator die Maustaste innerhalb eines Objekts und/oder der Leinwand drückt.

Hinweis:  Auf das Ereignis Maustaste drücken folgt immer ein Ereignis Maustaste loslassen.

Bei Fehler

Keine Auswirkung


Einschränkungen bei When-Mouse-Down-Triggern

Je nach Fensterverwaltungsprogramm kann ein Navigationscode innerhalb eines When-Mouse-Down-Triggers möglicherweise nicht erfolgreich ausgeführt werden. Wenn der Operator z.B. bei Microsoft Windows innerhalb eines Feldes (Item_One) mit der Maustaste klickt, wird ein When-Mouse-Down-Trigger, der GO_ITEM('item_two') aufruft, nicht erfolgreich ausgeführt, da Windows den Fokus zu Item_One zurücksetzt, und nicht zu Item_Two, da das When-Mouse-Up-Ereignis innerhalb von Item_Two aufgetreten ist.


When-Mouse-Enter-Trigger

 Alle Trigger

Beschreibung

Wird ausgelöst, wenn die Maus zu einem Objekt oder einer Leinwand gesetzt wird, wenn eines der folgenden Ereignisse eintritt:

•	Bei einer Zuordnung zu der Form, wenn die Maus in die Leinwand oder das Objekt in der Form gesetzt wird

•	Bei einer Zuordnung zu einem Block, wenn die Maus in ein Objekt in dem Block gesetzt wird

•	Bei einer Zuordnung zu einem Objekt, wenn die Maus in das Objekt gesetzt wird

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, eingeschränkte vordefinierte Prozeduren, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

Benutzen Sie einen When-Mouse-Enter-Trigger, um immer dann eine Aktion auszuführen, wenn die Maus in ein Objekt oder die Leinwand gesetzt wird.

Benutzen Sie den  When-Mouse-Enter-Trigger nicht bei einer Leinwand, die größer ist als das Fenster. Schaltflächen in Symbolform und  Objekte auf der Leinwand unter dem Ausgangsfenster können nicht ausgewählt werden. Der Benutzer kann einen Bildlauf durch die Leinwand vornehmen, um die Objekte anzuzeigen. Sobald die Maus jedoch in diesen Bereich gesetzt wird, wird der Trigger ausgelöst und der Fokus wird zum vorherigen Ziel zurückgegeben, so daß der Benutzer niemals auf diese Objekte klicken kann.

Wenn Sie das Attribut eines Tooltip in einem When-Mouse-Enter-Trigger ändern, wird der Tooltip abgebrochen, bevor er überhaupt angezeigt wird.

Beim Aufruf eines modalen Fensters aus einem When-Mouse-Enter-Trigger muß mit Vorsicht vorgegangen werden. Das modale Fenster könnte in diesem Fall möglicherweise unnötig angezeigt werden.

Angenommen, der When-Mouse-Enter-Trigger verursacht die Anzeige von Alert_One, wenn die Maus zu Canvas_One gesetzt wird. Ebenfalls angenommen, daß die Anwendung zwei Leinwände enthält, Canvas_One und Canvas_Two. Canvas_One und Canvas_Two überlagern sich nicht, sondern werden auf dem Bildschirm nebeneinander angezeigt. Weiter wird davon ausgegangen, daß Alert_One innerhalb der Umrandung von Canvas_Two angezeigt wird.

Schließlich wird davon ausgegangen, daß die Maus in Canvas_One gesetzt wurde, so daß der When-Mouse-Enter-Trigger ausgelöst wird, wodurch wiederum Alert_One angezeigt wird.

Wenn der Operator das Warnfenster schließt, wird Alert_One erneut unnötig angezeigt, wenn der Operator nachher mit der Maus in Canvas_One geht. Wenn der Operator die Maus aus Canvas_Two heraus bewegt, werden außerdem mit diesem Ereignis verknüpfte When-Mouse-Leave-Trigger ausgelöst. Dies entspricht möglicherweise nicht dem gewünschten Verhalten.

Bei Fehler

Keine Auswirkung


When-Mouse-Leave-Trigger

 Alle Trigger

Beschreibung

Wird ausgelöst, nachdem die Maus ein Objekt oder eine Leinwand verläßt, wenn eines der folgenden Ereignisse eintritt:

•	Bei einer Zuordnung zu der Form, wenn die Maus eine Leinwand oder ein Objekt in der Form verläßt

•	Bei einer Zuordnung zu einem Block, wenn die Maus ein Objekt in dem Block verläßt

•	Bei einer Zuordnung zu einem Objekt, wenn die Maus das Objekt verläßt

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, eingeschränkte vordefinierte Prozeduren, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

Benutzen Sie einen When-Mouse-Leave-Trigger, um immer dann eine Aktion auszuführen, wenn die Maus ein Objekt und/oder die Leinwand verläßt.

Bei Fehler

Keine Auswirkung


When-Mouse-Move-Trigger

 Alle Trigger

Beschreibung

Wird immer dann ausgelöst, wenn die Maus bei einem der folgenden Ereignisse bewegt wird:

•	Bei einer Zuordnung zu der Form, wenn die Maus innerhalb einer Leinwand oder eines Objekts in der Form bewegt wird

•	Bei einer Zuordnung zu einem Block, wenn die Maus innerhalb eines Objekts in dem Block bewegt wird

•	Bei einer Zuordnung zu einem Objekt, wenn die Maus innerhalb des Objekts bewegt wird

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, eingeschränkte vordefinierte Prozeduren, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

Benutzen Sie den When-Mouse-Move-Trigger, um immer dann eine Aktion auszuführen, wenn der Operator die Maus bewegt.

Der When-Mouse-Move-Trigger kann sich auf die Leistung auswirken, da dieser Trigger potentiell viele Male ausgelöst werden kann.

Bei Fehler

Keine Auswirkung


When-Mouse-Up-Trigger

 Alle Trigger

Beschreibung

Wird immer dann ausgelöst, wenn der Operator die Maustaste drückt und losläßt, wenn eines der folgenden Ereignisse eintritt:

•	Bei einer Zuordnung zu der Form, wenn das Ereignis Maustaste loslassen innerhalb einer Leinwand oder eines Objekts in einer Form eintritt

•	Bei einer Zuordnung zu einem Block, wenn das Ereignis Maustaste loslassen innerhalb eines Objekts in einem Block stattfindet

•	Bei einer Zuordnung zu einem Objekt, wenn das Ereignis Maustaste loslassen in einem Objekt erfolgt

Bevor ein When-Mouse-Up-Trigger ausgelöst wird, müssen zwei Ereignisse eintreten:

•	Maustaste drücken

•	Maustaste loslassen

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, eingeschränkte vordefinierte Prozeduren, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

Benutzen Sie den When-Mouse-Up-Trigger, um immer dann eine Aktion auszuführen, wenn der Operator die Maus drückt und losläßt.

Das Ereignis Maustaste loslassen ist immer mit dem Objekt verknüpft, für das das Ereignis Maustaste drücken durchgeführt wurde. Angenommen, ein When-Mouse-Up-Trigger ist Item_One zugeordnet. Wenn der Operator die Maustaste bei Item_One drückt, die Maustaste dann jedoch bei Item_Two losläßt, wird der Trigger für Item_One und nicht für Item_Two ausgelöst.

Bei Fehler

Keine Auswirkung


When-New-Block-Instance-Trigger

  Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn der Eingabefokus zu einem Objekt in einem anderen Block bewegt wird. Dieser Trigger wird besonders nach der Navigation zu einem Objekt ausgelöst, wenn Form Builder bereit ist, die Eingabe in einen Block zu akzeptieren, bei dem es sich nicht um den Block handelt, der den Eingabefokus vorher hatte.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren, eingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Verwenden Sie einen When-New-Block-Instance-Trigger, um immer dann eine Aktion auszuführen, wenn Form Builder einen neuen Block anstößt.

Bei Fehler

Keine Auswirkung

Wird ausgelöst

Rückgabe für Eingabe

Siehe Flußdiagramme von Form Builder


When-New-Form-Instance-Trigger

 Beispiele	 Einschränkungen	  Verwandte Themen	 Alle Trigger

Beschreibung

Beim Starten der Form navigiert Form Builder zum ersten navigierbaren Objekt in dem ersten navigierbaren Block. Ein When-New-Form-Instance-Trigger wird ausgelöst, nachdem Navigationstrigger erfolgreich ausgeführt wurden, die während der ursprünglichen Navigationsfolge ausgelöst werden.

Dieser Trigger wird nicht ausgelöst, wenn die Kontrolle von einer aufgerufenen Form an die aufrufende Form zurückgegeben wird.

Bei Anwendungen mit mehreren Forms wird dieser Trigger nicht ausgelöst, wenn der Fokus von einer Form zu einer anderen geht.

Definitionsebene  Form

Zulässige Befehle

SELECT-Anweisungen, eingeschränkte vordefinierte Prozeduren, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Bei Fehler

Keine Auswirkung

Wird ausgelöst

Form ausführen

Siehe Flußdiagramme von Form Builder


Einschränkungen bei When-New-Form-Instance-Triggern

1	Wenn Sie FORMS_OLE.GET_INTERFACE_POINTER aus dem When-New-Form-Instance-Trigger aufrufen, wird eine Exception (ORA-305500) ausgelöst, es sei denn, Sie initialisieren das OLE-Objekt und das ActiveX-Steuerelement mit der vordefinierten Prozedur SYNCHRONIZE.

2	Wenn eine neue Form aufgerufen wird, wird sie in der standardmäßigen x-y-Position auf dem Bildschirm angezeigt. Wenn dies nicht gewünscht wird, können Sie die x-y-Koordinaten ändern.Die Koordinaten können jedoch nicht in diesem When-New-Form-Instance-Trigger geändert werden. (Dieser Trigger wird zu spät in der Folge ausgelöst.)  Ändern Sie die Koordinaten mit dem Pre-Form-Trigger.


Beispiele für When-New-Form-Instance-Trigger

Beispiel

Dieses Beispiel ruft Routinen zur Anzeige von dynamischen Bildern auf, startet einen Timer, um die Bildschirmuhr aufzufrischen und fragt den ersten Block ab.

BEGIN
  Populate_Dynamic_Boilerplate;
  Start_OnScreen_Clock_Timer;
  Go_Block('Primary_Ord_Info');

  /*
  ** Query the block without showing
  ** the working message.
  */
  :System.Suppress_Working := 'TRUE';
  Execute_Query;
  :System.Suppress_Working := 'FALSE';
END;


When-New-Item-Instance-Trigger

 Einschränkungen	    Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn der Eingabefokus zu einem Objekt gesetzt wird. Dieser Trigger wird besonders nach der Navigation zu einem Objekt ausgelöst, wenn Form Builder zur Annahme einer Eingabe in ein Objekt bereit ist, das sich von dem Objekt unterscheidet, das vorher den Eingabefokus hatte.

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, eingeschränkte vordefinierte Prozeduren, uneingeschränkte vordefinierte Prozeduren.

Abfragemodus  Ja

Verwendungshinweise

Benutzen Sie einen When-New-Item-Instance-Trigger, um immer dann eine Aktion auszuführen, wenn ein Objekt den Eingabefokus erhält. Der When-New-Item-Instance-Trigger ist besonders für das Aufrufen von eingeschränkten vordefinierten (Navigations-) Prozeduren gedacht.

Bei Fehler

Keine Auswirkung

Wird ausgelöst

Rückgabe für Eingabe

Siehe Flußdiagramme von Form Builder


Einschränkungen bei When-New-Item-Instance-Triggern

Die Bedingungen für das Auslösen dieses Triggers werden unter folgenden Umständen nicht erfüllt:

•	Form Builder navigiert durch ein Objekt, ohne zu stoppen, um die Eingabe zu akzeptieren.

•	Der Eingabefokus wird zu einem Feld in einem Warnfenster oder zu einem beliebigen Teil eines Form Builder-Menüs gesetzt.


When-New-Record-Instance-Trigger

  Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn der Eingabefokus zu einem Objekt in einem Datensatz gesetzt wird, bei dem es sich nicht um den Datensatz handelt, der den Eingabefokus vorher hatte. Dieser Trigger wird besonders nach der Navigation zu einem Objekt in einem Datensatz ausgelöst, wenn Form Builder zur Annahme der Eingabe in einem Datensatz bereit ist, bei dem es sich nicht um den Datensatz handelt, der den Eingabefokus vorher hatte.

Dieser Trigger wird ausgelöst, wenn Form Builder einen neuen Datensatz anstößt.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren, eingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

Benutzen Sie einen When-New-Record-Instance-Trigger, um immer dann eine Aktion auszuführen, wenn Form Builder einen neuen Datensatz anstößt. Wenn ein Operator z.B. [Nach-unten] drückt, um durch eine Reihe von Datensätzen zu blättern, löst Form Builder diesen Trigger immer dann aus, wenn der Eingabefokus zum nächsten Datensatz geht, anders ausgedrückt, immer dann, wenn Form Builder einen neuen Datensatz in dem Block anstößt.

Bei Fehler

Keine Auswirkung

Wird ausgelöst

Rückgabe für Eingabe

Siehe Flußdiagramme von Form Builder


When-Radio-Changed-Trigger

 Alle Trigger

Beschreibung

Wird ausgelöst, wenn ein Operator eine andere Optionsschaltfläche in einer Optionsgruppe auswählt oder die Auswahl der aktuellen Optionsschaltfläche aufhebt, indem er mit der Maus klickt oder die Befehle über die Tastatur auswählt.

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren, eingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

Benutzen Sie einen When-Radio-Changed-Trigger, um eine Aktion je nach Status der Optionsgruppe auszuführen. (Wenn Sie die Auswahl einer Optionsschaltfläche in einer Optionsgruppe aufheben, wird der Wert der Optionsgruppe auf NULL gesetzt; Operatoren benutzen diese Technik im Abfragemodus, um eine Optionsgruppe aus einer Abfrage auszuschließen.)

Wenn ein Operator auf ein Objekt in einer Optionsgruppe klickt, ändert sich der interne Wert dieses Objekts erst, wenn die Navigation erfolgreich abgeschlossen ist. Somit ist der When-Radio-Changed-Trigger der erste Trigger, der den geänderten Wert einer Optionsgruppe registriert. Bei allen Navigationstriggern, die vor dem When-Radio-Changed-Trigger ausgelöst werden, bleibt somit der Wert der Optionsgruppe so, wie er war, bevor der Operator zu der Optionsgruppe navigierte.

Bei Fehler

Keine Auswirkung


When-Remove-Record-Trigger

 Alle Trigger

Beschreibung

Wird ausgelöst, wenn der Operator oder die Anwendung einen Datensatz entfernt oder löscht.

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen When-Remove-Record-Trigger, um immer dann eine Aktion auszuführen, wenn Form Builder einen Datensatz entfernt oder löscht.

Bei Fehler

Form Builder navigiert zu der Blockebene mit oder ohne Validierung, je nach aktuellem Vorgang, und setzt den Cursor in den Zielblock.

Wird ausgelöst

CLEAR_RECORD

DELETE_RECORD

Siehe Flußdiagramme von Form Builder


When-Tab-Page-Changed

 Beispiele	  Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn eine explizite Objekt- oder Mausnavigation von einer Registerseite zu einer anderen in einer Register-Leinwand stattfindet.

Definitionsebene  Form

Zulässige Befehle

Uneingeschränkte vordefinierte Prozedur, eingeschränkte vordefinierte Prozedur

Abfragemodus  Nein

Verwendungshinweise

•	Benutzen Sie einen When-Tab-Page-Changed-Trigger, um immer dann Aktionen auszuführen, wenn eine Registerseite während der Objekt- oder Maus-Navigation geändert wird.

•	Ein When-Tab-Page-Changed-Trigger wird nur ausgelöst, wenn die Navigation zur Registerseite explizit ist. Dieser Trigger reagiert nicht auf eine implizite Navigation. Der Trigger wird z.B. ausgelöst, wenn mit einer Maus oder der Tastatur zwischen Registerseiten navigiert wird. Der Trigger wird nicht ausgelöst, wenn ein Endbenutzer [Nächstes Objekt] (Tabulatortaste) drückt, um von einem Feld zu einem anderen Feld in demselben Block, jedoch auf verschiedenen Registerseiten zu navigieren.

•	Der When-Tab-Page-Changed-Trigger wird nicht ausgelöst, wenn die Registerseite programmgesteuert gewechselt wird.

Bei Fehler

Keine Auswirkung


Beispiele für When-Tab-Page-Changed

Beispiel

/* Use a When-Tab-Page-Changed trigger to dynamically

** change a tab page's label from lower- to upper-case
** (to indicate to end users if they already have
** navigated to the tab page):
*/
DECLARE
  tp_nm   VARCHAR2(30);
  tp_id   TAB_PAGE;
  tp_lb   VARCHAR2(30);

BEGIN
  tp_nm := GET_CANVAS_PROPERTY('emp_cvs', topmost_tab_page);
  tp_id := FIND_TAB_PAGE(tp_nm);
  tp_lb := GET_TAB_PAGE_PROPERTY(tp_id, label);

  IF tp_lb LIKE 'Sa%' THEN
    SET_TAB_PAGE_PROPERTY(tp_id, label, 'SALARY');
  ELSIF tp_lb LIKE 'Va%' THEN
    SET_TAB_PAGE_PROPERTY(tp_id, label, 'VACATION');
  ELSE null;
  END IF;
END;


When-Timer-Expired-Trigger

 Beispiele	 Einschränkungen	  Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn ein Timer abläuft.

Definitionsebene  Form

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren, eingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

Timer werden programmgesteuert durch Aufruf der vordefinierten Prozedur CREATE_TIMER erstellt

•	Der When-Timer-Expired-Trigger kann während der Trigger-, Navigations- oder Transaktionsverarbeitung nicht ausgelöst werden.

•	Benutzen Sie einen When-Timer-Expired-Trigger, um ein Ereignis anzustoßen, Objektwerte zu aktualisieren oder Aufgaben auszuführen, die nach einem bestimmten Intervall auftreten.

•	Sie können GET_APPLICATION_PROPERTY(TIMER_NAME) in einem When-Timer-Expired-Trigger aufrufen, um den Namen des zuletzt abgelaufenen Timers zu ermitteln.

Bei Fehler

Keine Auswirkung

Wird ausgelöst

Prozeß Timer abgelaufen

Siehe Flußdiagramme von Form Builder


Einschränkungen bei When-Timer-Expired-Triggern

Ein When-Timer-Expired-Trigger wird nicht ausgelöst, wenn der Benutzer gerade in einem Menü navigiert.


Beispiele für When-Timer-Expired-Trigger

Beispiel

In dem folgenden Beispiel wird immer dann ein Warnfenster angezeigt, wenn ein sich wiederholender Trigger abläuft. Das folgende Beispiel stammt aus einer Telemarketing-Anwendung, bei der Verkaufsanrufe zeitlich gesteuert werden und Warnfenster angezeigt werden, um den Verkäufer in jedem Stadium des Anrufs zu unterrichten. Das Warnfenster wird immer dann angezeigt, wenn ein sich wiederholender Timer abläuft.

DECLARE
  timer_id  TIMER;
  alert_id  ALERT;
  call_status NUMBER;
  msg_1       VARCHAR2(80) := 'Wrap up the first phase of your
                               presentation';
  msg_2       VARCHAR2(80) := 'Move into your close.';
  msg_3       VARCHAR2(80) := 'Ask for the order or
                               repeat the close.'
  two_minutes NUMBER(6) := (120 * 1000);
  one_and_half NUMBER(5) := (90 * 1000);
BEGIN
  :GLOBAL.timer_count := 1
  BEGIN
    timer_id := FIND_TIMER('tele_timer');
    alert_id := FIND_ALERT('tele_alert');
  IF :GLOBAL.timer_count = 1 THEN
 Set_Alert_Property(alert_id, ALERT_MESSAGE_TEXT, msg_1);
  call_status := Show_Alert(alert_id);
  IF call_status = ALERT_BUTTON1 THEN
    Delete_Timer(timer_id);
    Next_Record;
  ELSIF
    call_status = ALERT_BUTTON2 THEN
    :GLOBAL.timer_count := 0;
  ELSE
    Set_Timer(timer_id, two_minutes, NO_CHANGE);
  END IF;
ELSIF :GLOBAL.timer_count = 2 THEN
    Change_Alert_Message(alert_id, msg_2);
    call_status := Show_Alert(alert_id);
    IF call_status = ALERT_BUTTON1 THEN
      Delete_Timer(timer_id);
      Next_Record;
    ELSIF
      call_status = ALERT_BUTTON2 THEN
      :GLOBAL.timer_count := 0;
    ELSE
      Set_Timer(timer_id, one_and_half, NO_CHANGE);
    END IF;
  ELSE
    Change_Alert_Message(alert_id, msg_3);
    call_status := Show_Alert(alert_id);
    IF call_status = ALERT_BUTTON1 THEN
      Delete_Timer(timer_id);
      Next_Record;
    ELSIF
     call_status = ALERT_BUTTON2 THEN
     :GLOBAL.timer_count := 0;
    ELSE
      Set_Timer(timer_id, NO_CHANGE, NO_REPEAT);
    END IF;
  END IF;
  :GLOBAL.timer_count = 2;
  END;
END;


When-Tree-Node-Activated-Trigger

 Alle Trigger

Beschreibung

Wird ausgelöst, wenn ein Operator auf einen Knoten doppelklickt oder die Eingabetaste drückt, wenn ein Knoten ausgewählt ist.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren, eingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

•	SYSTEM.TRIGGER_NODE SYSTEM.TRIGGER_NODE ist der Knoten, auf den der Benutzer geklickt hat. SYSTEM.TRIGGER_NODE gibt einen Wert von Typ NODE zurück

•	Der When-Tree-Node-Activated-Trigger wird nicht durch eine programmgesteuerte Aktion ausgelöst. Nur Endbenutzer generieren ein Ereignis.

Bei Fehler

Keine Auswirkung


When-Tree-Node-Expanded-Trigger

 Alle Trigger

Beschreibung

Wird ausgelöst, wenn ein Knoten ein- oder ausgeblendet wird.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren, eingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

•	SYSTEM.TRIGGER_NODE SYSTEM.TRIGGER_NODE ist der Knoten, auf den der Benutzer geklickt hat. SYSTEM.TRIGGER_NODE gibt einen Wert von Typ NODE zurück

•	Der When-Tree-Node-Espanded-Trigger wird nicht durch eine programmgesteuerte Aktion ausgelöst. Nur Endbenutzer generieren ein Ereignis.

Bei Fehler

Keine Auswirkung


When-Tree-Node-Selected-Trigger

 Alle Trigger

Beschreibung

Wird ausgelöst, wenn ein Knoten ausgewählt oder die Auswahl aufgehoben wird.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren, eingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

•	SYSTEM.TRIGGER_NODE SYSTEM.TRIGGER_NODE ist der Knoten, auf den der Benutzer geklickt hat. SYSTEM.TRIGGER_NODE gibt einen Wert von Typ NODE zurück

•	Der When-Tree-Node-Selected-Trigger wird nicht durch eine programmgesteuerte Aktion ausgelöst. Nur Endbenutzer generieren ein Ereignis.

Bei Fehler

Keine Auswirkung


When-Validate-Item-Trigger

 Beispiele	  Verwandte Themen	 Alle Trigger

Beschreibung

Wird während des Prozesses Objekt validieren ausgelöst. Dieser Timer wird besonders als letzter Teil der Objektvalidierung bei Objekten ausgelöst, die den Validierungsstatus Neu oder Geändert haben.

Definitionsebene  Form, Block oder Objekt

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

•	Benutzen Sie einen When-Validate-Item-Trigger, um die Standardverarbeitung der Objektvalidierung von Form Builder zu ergänzen.

•	Sie können einen When-Validate-Item-Trigger schreiben, der den Wert eines Objekts ändert, das Form Builder validiert. Wenn die Validierung erfolgreich verläuft, markiert Form Builder das geänderte Objekt als Gültig und validiert es nicht erneut. Dieses Verhalten ist zwar erforderlich, um Validierungsschleifen zu vermeiden, allerdings kann ihre Anwendung einen ungültigen Wert in der Datenbank speichern.

•	Die für das Attribut Defer Required-Durchsetzung gewählte Einstellung hat unter Umständen Auswirkungen auf den When-Validate-Item-Trigger. Weitere Informationen erhalten Sie in Defer_Required-Durchsetzung.

Bei Fehler

Wenn dieser Trigger im Rahmen einer Validierung ausgelöst wird, die von einer Navigation eingeleitet wird, verläuft die Navigation nicht erfolgreich und der Fokus bleibt bei dem Originalobjekt.

Wird ausgelöst

Objekt validieren

Siehe Flußdiagramme von Form Builder


Beispiele für When-Validate-Item-Trigger

Beispiel

In dem folgenden Beispiel wird der Provisionsplan in der Tabelle COMMPLAN aufgrund des aktuellen Wertes des Objekts commcode im Block EMPLOYEE in der Form gesucht, um zu prüfen, ob der Code gültig ist. Nachdem der Code in der Tabelle COMMPLAN gefunden wurde, wird die Beschreibung von COMMPLAN abgerufen und in einem Nicht-Datenbank-Objekt Beschreibung abgelegt. Sonst wird ein Fehler ausgegeben.

** Method 1: Using a SELECT...INTO statement, the-Trigger
**           looks more readable but can be less efficient
**           than Method 2 because for ANSI Standard
**           compliance, the SELECT...INTO statement must
**           return an error if more than one row is
**           retrieved that matches the criteria. This
**           implies PL/SQL may attempt to fetch data twice
**           from the table in question to insure that there
**           aren't two matching rows.
*/
BEGIN
  SELECT description
    INTO :Employee.Commplan_Desc
    FROM commplan
   WHERE commcode = :Employee.Commcode;
EXCEPTION
  WHEN No.Data_Found THEN
    Message('Invalid Commission Plan, Use <List> for help');
    RAISE Form_Trigger_Failure;
  WHEN Too_Many_Rows THEN
    Message('Error. Duplicate entries in COMMPLAN table!');
    RAISE Form_Trigger_Failure;
END;

/*
** Method 2: Using an Explicit Cursor looks a bit more
**           daunting but is actually quite simple. The
**           SELECT statement is declared as a named cursor
**           in the DECLARE section and then is OPENed,
**           FETCHed, and CLOSEd in the code explicitly
**           (hence the name). Here we guarantee that only a
**           single FETCH will be performed against the
**           database.
*/
DECLARE
  NeinneFound BOOLEAN;
  CURSOR cp IS SELECT description
                 FROM commplan
                WHERE commcode = :Employee.Commcode;
BEGIN
  OPEN cp;
  FETCH cp INTO :Employee.Commplan_Desc;
  NeinneFound := cp%NOTFOUND;
  CLOSE cp;
  IF noneFound THEN
    Message('Invalid Commission Plan, Use <List> for help');
    RAISE Form_Trigger_Failure;
  END IF;
END;


When-Validate-Record-Trigger

 Beispiele	  Verwandte Themen	 Alle Trigger

Beschreibung

Wird während des Prozesses Objekt validieren ausgelöst. Dieser Trigger wird besonders als letzter Teil der Datensatzvalidierung bei Datensätzen ausgelöst, die den Validierungsstatus Neu oder Geändert haben.

Definitionsebene  Form oder Block

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren

Abfragemodus  Nein

Verwendungshinweise

Benutzen Sie einen When-Validate-Record-Trigger, um die Standardverarbeitung der Datensatzvalidierung von Form Builder zu ergänzen.

Beachten Sie, daß Sie einen When-Validate-Record-Trigger schreiben können, der den Wert eines Objekts in dem Datensatz ändert, den Form Builder validiert. Wenn die Validierung erfolgreich verläuft, markiert Form Builder den Datensatz und alle Felder als Gültig und führt keine erneute Validierung durch. Dieses Verhalten ist zwar erforderlich, um Validierungsschleifen zu vermeiden, allerdings kann Ihre Anwendung einen ungültigen Wert in der Datenbank speichern.

Bei Fehler

Wenn dieser Trigger im Rahmen einer Validierung ausgelöst wird, die von einer Navigation eingeleitet wird, verläuft die Navigation nicht erfolgreich und der Fokus bleibt bei dem Originalobjekt.

Wird ausgelöst

Datensatz validieren

Siehe Flußdiagramme von Form Builder


Beispiele für When-Validate-Record-Trigger

Beispiel

Mit dem folgenden Beispiel wird überprüft, ob Start_Date vor End_Date liegt. Da diese beiden Textobjekte zusammengehörige Werte haben, ist es praktischer, die Kombination der Objekte einmal auf Datensatzebene zu überprüfen, anstatt jedes Objekt separat zu prüfen. Bei diesem Code wird davon ausgegangen, daß beide Datumsobjekte obligatorisch sind und daß keines den Wert NULL hat.

/* Method 1: Hardcode the item names into the-Trigger.
**           Structured this way, the chance this code will
**           be reusable in other forms we write is pretty
**           low because of dependency on block and item
**           names.
*/
BEGIN
  IF :Experiment.Start_Date > :Experiment.End_Date THEN
    Message('Your date range ends before it starts!');
    RAISE Form_Trigger_Failure;
  END IF;
END;

/* Method 2: Call a generic procedure to check the date
**           range. This way our date check can be used in
**           any validation-Trigger where we want to check
**           that a starting date in a range comes before
**           the ending date. Another bonus is that with the
**           error message in one standard place, i.e. the
**           procedure, the user will always get a
**           consistent failure message, regardless of the
**           Form they're currently in.
*/
BEGIN
  Check_Date_Range(:Experiment.Start_Date,:Experiment.End_Date);
END;

/*
** The procedure looks like this
*/
PROCEDURE Check_Date_Range( d1 DATE, d2 DATE ) IS
BEGIN
  IF d1 > d2 THEN
    Message('Your date range ends before it starts!');
    RAISE Form_Trigger_Failure;
  END IF;
END;


When-Window-Activated-Trigger

  Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn ein Fenster zum aktiven Fenster gemacht wird. Dies geschieht beim Starten der Form und wenn ein anderes Fenster den Fokus erhält. Beachten Sie, daß ein Fenster bei einigen Fensterverwaltungsprogrammen aktiviert werden kann, indem einfach auf die Titelleiste geklickt wird. Dieser Vorgang ist von der Navigation zu einem Objekt in dem Fenster unabhängig. Das Navigieren zu einem Objekt in einem anderen Fenster aktiviert somit dieses Fenster immer, eine Fensteraktivierung kann jedoch auch unabhängig von der Navigation erfolgen.

Definitionsebene  Form

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren, eingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

Benutzen Sie diesen Trigger, um die folgenden Tasks auszuführen:

•	Erfassen der ursprünglichen Einstellungen der Fensterattribute über die vordefinierte Prozedur GET_WINDOW_PROPERTY.

•	Erzwingen der Navigation zu einem bestimmten Objekt, wenn ein Fenster aktiviert wird.

•	Verfolgen des als letztes ausgelösten Fenstertriggers, indem der Wert aus SYSTEM.EVENT_WINDOW einer Variablen oder globalen Variablen zugewiesen wird.

Bei Fehler

Keine Auswirkung


When-Window-Closed-Trigger

 Beispiele	  Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn ein Operator ein Fenster mit einem für das Fensterverwaltungsprogramm spezifischen Schließen-Befehl schließt.

Definitionsebene  Form

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren, eingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

Benutzen Sie diesen Trigger, um ein Fenster programmgesteuert zu schließen, wenn der Operator den Schließen-Befehl des Fensterverwaltungsprogramms ausgibt.

Sie können ein Fenster verbergen, das das aktuelle Objekt enthält.

Bei Fehler

Keine Auswirkung


Beispiele für When-Window-Closed-Trigger

Beispiel

Das folgende Beispiel eines Aufrufs von SET_WINDOW_PROPERTY aus diesem Trigger schließt ein Fenster, wenn der Operator das Fenster über einen Vorgang im Fensterverwaltungsprogramm schließt:

Set_Window_Property('window_name', VISIBLE, PROPERTY_OFF);


When-Window-Deactivated-Trigger

  Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn ein Operator ein Fenster deaktiviert, indem der Eingabefokus zu einem anderen Fenster innerhalb derselben Form gesetzt wird.

Definitionsebene  Form

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren, eingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

Benutzen Sie diesen Trigger, um den Status eines Fensters zu überprüfen, wenn der Operator das Fenster deaktiviert, indem er den Eingabefokus in ein anderes Fenster setzt.

Wenn diese Form eine andere Form öffnet, wird dieser Deaktivieren-Trigger nicht unmittelbar ausgelöst. Er wird später ausgelöst, wenn die Kontrolle an diese Form zurückgegeben wird.  (Wenn dieses Fenster auch über einen Aktivieren-Trigger verfügt, wird bei Rückgabe der Kontrolle an diese Form zuerst der Deaktivieren-Trigger ausgelöst inmittelbar gefolgt vom Aktivieren-Trigger.)

Bei Fehler

Keine Auswirkung


When-Window-Resized-Trigger

  Verwandte Themen	 Alle Trigger

Beschreibung

Wird ausgelöst, wenn die Größe eines Fensters entweder vom Operator oder programmgesteuert über einen Aufruf von RESIZE_WINDOW oder SET_WINDOW_PROPERTY geändert wird. (Selbst wenn das Fenster im Augenblick nicht angezeigt wird, wird der When-Window-Resized-Trigger ausgelöst, wenn die Fenstergröße programmgesteuert geändert wird.) Dieser Trigger wird auch beim Starten der Form ausgelöst, wenn das Hauptfenster das erste Mal erstellt wird. Er wird nicht ausgelöst, wenn ein Fenster als Symbol angezeigt wird.

Definitionsebene  Form

Zulässige Befehle

SELECT-Anweisungen, uneingeschränkte vordefinierte Prozeduren, eingeschränkte vordefinierte Prozeduren

Abfragemodus  Ja

Verwendungshinweise

Benutzen Sie diesen Trigger, um eine der folgenden Tasks auszuführen:

•	Erfassen der geänderten Fensterattribute, wie z.B. Breite, Höhe, x- oder y-Koordinaten

•	Überprüfen der Aktionen eines Operators

•	Eingabefokus in ein Objekt im Zielfenster setzen

•	Aufrechterhalten bestimmter visueller Standards durch Zurücksetzen der Fenstergröße, wenn die Größe des Fensters nicht richtig geändert wurde

Bei Fehler

Keine Auswirkung


Über Fehlermeldungen

•	Meldungspräfix- und -nummer

•	Beschreibung des Fehlers

•	Mögliche Ursachen des Fehlers

•	Maßnahmen, die Sie zur Fehlerbehebung ergreifen können

Wenn Sie auf eine Fehlermeldung stoßen, prüfen Sie zuerst das Meldungspräfix, um festzustellen, welche Komponente die Meldung ausgegeben hat. Danach prüfen Sie die Meldungsnummer und die Beschreibung. Wenn Sie weitere Informationen benötigen, finden Sie in der Online-Hilfe für die Komponenten eine vollständige Beschreibung der Fehlermeldung (einschließlich Ursache und Maßnahme).

Fehlermeldungspräfixe

Jede Komponente verfügt über ein eindeutiges Präfix für die zu ihr gehörigen Fehlermeldungen. In der folgenden Liste werden die Fehlermeldungspräfixe für Forms Developer aufgeführt:

Präfix	Komponente

FRM	Form Builder

OG	Graphics Builder

PDE	Procedure Builder

Neben den Forms Developer-Fehlermeldungen können Sie auch noch auf Fehlermeldungen von anderen Produkten stoßen. In der folgenden Liste werden weitere Fehlermeldungspräfixe aufgeführt, die Sie antreffen können, sowie Informationsquellen zu dem Fehler:

Präfix	Quelle	Hilfe

REP	Reports Developer	Online-Hilfe zu Reports Developer

ORA	Oracle Server	Oracle Server Messages and Codes Manual

PLS	PL/SQL	Oracle Server Messages and Codes Manual

NET	SQL*Net	Oracle Network Products Messages Manual

Das Oracle Server Messages and Codes Manual enthält Fehlermeldungspräfixe und Beschreibungen für alle Datenbankdienstprogramme, wie z.B. SQL*DBA, SQL*Loader, SQL*Module, Export, Import und die Oracle Precompiler.

Systemspezifische Fehlermeldungen werden in Ihrer Betriebssystemdokumentation behandelt.


Über eingebettete Variablen in Meldungen

Damit Sie Fehler finden und beheben können, bettet Forms Developer Objektnamen, Zahlen und Zeichenfolgen in einige Fehlermeldungen ein. In der Online-Hilfe werden diese eingebetteten Variablen durch Begriffe in spitzen Klammern (< >) dargestellt.

So würde z.B. die Fehlermeldung:

PDE-CCM002: LIB1 ist keine geöffnete Bibliothek.

in der Online-Hilfe wie folgt dargestellt:

PDE-CCM002: <Bibliotheksname> ist keine geöffnete Bibliothek.


Mit Forms Runtime-Meldungen arbeiten

  Verwandte Themen

Um die Meldungen zu steuern, die Endbenutzer bei der Benutzung einer Form Builder-Anwendung sehen, können Sie:

•	die Systemvariable SYSTEM.MESSAGE_LEVEL benutzen, um bestimmte "Schweregrade" von Meldungen zu unterdrücken.

•	On-Error- und On-Message-Trigger benutzen, um die Standardverarbeitung von Meldungen zu ersetzen.

•	die Systemvariable SYSTEM.SUPPRESS_WORKING benutzen, um die Aktualisierung eines Endbenutzer-Bildschirms zu verhindern (durch Unterdrücken der Meldung "In Arbeit...").

Schweregrade von Meldungen

Forms Runtime-Meldungen sind nach Schweregrad unterteilt. Mit der Systemvariablen SYSTEM.MESSAGE_LEVEL können Sie den minimalen Schweregrad festlegen, der für Endbenutzer angezeigt wird.

Es gibt sechs Schweregrade für Meldungen, die Sie beeinflussen können, die hier in aufsteigender Reihenfolge aufgeführt werden.

Grad	Meldungsbeschreibung
0	Alle Arten von Meldungen von den anderen Schweregraden.
5	Bestätigt eine eindeutige Bedingung.
10	Gibt an, daß der Endbenutzer einen prozeduralen Fehler begangen hat.
15	Gibt an, daß der Endbenutzer versucht, eine Funktion auszuführen, für die die Form nicht ausgelegt ist.
20	Gibt eine Bedingung an, bei der der Endbenutzer eine erwartete Aktion aufgrund eines Problems mit einem Trigger oder einer anderen ausstehenden Bedingung nicht fortsetzen kann.
25	Gibt eine Bedingung an, die dazu führen könnte, daß die Form nicht richtig ausgeführt wird.
>25	Gibt einen Schweregrad der Meldung an, den Sie über die Systemvariable SYSTEM.MESSAGE_LEVEL nicht unterdrücken können.

Die Schweregrade der einzelnen Forms Runtime-Meldungen werden in dem Online-Hilfesystem unter "Schweregrad" aufgeführt.

Meldungstypen

Um On-Error- und On-Message-Trigger zu benutzen, um Forms Runtime-Meldungen zu ersetzen, müssen Sie die drei Arten von Forms Runtime-Meldungen kennen:

Information	Informiert Endbenutzer über den aktuellen Status der Verarbeitung (z.B. Letzter abgerufener Wert.) oder zeigt kontextbezogene Hilfetexte für den Endbenutzer an (z.B. Drücken Sie [Akzeptieren], um die Antwort einzugeben.). Benutzen Sie On-Message-Trigger, um die Anzeige dieser Meldungen zu unterdrücken.

Fehler	Informiert Endbenutzer über Fehlerbedingungen, die Aktionen des Endbenutzers verhindern (z.B. Funktionstaste nicht zulässig, drücken Sie [Funktionstasten anzeigen] für eine Liste mit gültigen Tasten.). Benutzen Sie On-Error-Trigger, um die Anzeige dieser Meldungen zu unterdrücken. Sie können jedoch Fehlermeldungen, die auf der Befehlszeile angezeigt werden, nicht unterdrücken (z.B. Zu viele Argumente auf der Befehlszeile.).

In Arbeit	Informiert Endbenutzer, daß Form Builder gerade eine Verarbeitung durchführt (z.B. In Arbeit...). Sie können keine On-Error- oder On-Message-Trigger oder die Systemvariable SYSTEM.MESSAGE_LEVEL benutzen, um diese Meldungen zu unterdrücken.

Die Meldungstypen einzelner Forms Runtime-Meldungen werden unter "Typ" im Online-Hilfesystem von Form Builder aufgeführt.


Verbindung mit Oracle Support aufnehmen

Bei einigen Fehlern (z.B. internen Fehlern) müssen Sie Verbindung mit Oracle Support aufnehmen, um den Fehler zu melden. Halten Sie bei diesem Anruf bitte die folgenden Informationen bereit:

1	Ihren Namen, Firmennamen und die ID-Nummer von Oracle Support.

2	Hardware, Betriebssystem und Release-Nummer des Betriebssystems, unter dem das Produkt läuft.

3	Vollständige Versionsnummer der Komponente, die Sie beim Auftreten des Fehlers benutzt haben, einschließlich Revisionsnummer und gegebenenfalls Port-Releasenummer. (Wenn Sie nicht sicher sind, welche Versionsnummer die Komponente hat, wählen Sie ?Info ... aus dem Menü aus.)

4	Alle anderen Produkte (und deren Versionsnummern), die Sie beim Auftreten des Fehlers benutzt haben (z.B. Oracle 7.1.4).

5	Wenn Sie eine oder mehrere Fehlermeldungen erhalten haben, die genauen Fehlermeldungsnummern und Beschreibungen in der Reihenfolge, in der die Fehlermeldungen angezeigt wurden.

6	Eine Beschreibung des Problems, einschließlich ungewöhnlicher Bedingungen.

7	Den Schweregrad des Problems, entsprechend folgenden Codes:

•	1: Programm kann nicht benutzt werden. Kritische Auswirkung auf Vorgänge.

•	2:  Programm kann benutzt werden. Vorgänge stark eingeschränkt.

•	3:  Programm kann mit eingeschränkten Funktionen benutzt werden. Nicht kritisch für die Gesamtfunktion.

•	4:  Problem umgangen. Wenn überhaupt, minimale Auswirkungen auf Vorgänge.


Mit Project Builder auf PL/SQL V2.3 umstellen

  Verwandte Themen

Alle Trigger, Programmblöcke und PL/SQL-Blöcke in Ihren Forms, Berichten, grafischen Anwendungen und PL/SQL-Bibliotheken von Release 1 sind in PL/SQL Version 1 geschreiben.  Da spätere Releases von Forms und Reports Developer auf PL/SQL Version 2.3 basieren, muß Ihr PL/SQL-Code von Release 1 auf die neue Ebene umgestellt werden.

Um die Umstellung der Release 1- und Pre-Release 1-Anwendungen auf Forms und Reports Developer zu automatisieren, wird ein PL/SQL-Konvertierungsdienstprogramm bereitgestellt. Im Hinblick auf optimale Effizienz wird empfohlen, daß Sie dieses Dienstprogramm über Project Builder ausführen, da Sie in diesem Fall mehrere Module innerhalb eines Projekts gleichzeitig konvertieren können. (Wenn Sie Ihre Module momentan nicht über Project Builder verwalten, können Sie den Projekt-Assistenten verwenden, um schnell ein Projekt für die PL/SQL-Konvertierung zu erstellen.)

Um Ihre Module mit Project Builder zu konvertieren, erstellen Sie eine spezielle Upgrade-Aktion für jeden Dokumenttyp (Form, Bericht, Grafik, PL/SQL-Bibliothek).


Forms, Berichte, Grafische Anwendungen oder PL/SQL-Bibliotheken.


Vorbereitung auf die Umstellung

  Verwandte Themen

So bereiten Sie Ihre Projekte für die Umstellung auf PL/SQL V2 vor:

1	Erstellen Sie eine Sicherungskopie von allen Dateien, die Sie umstellen möchten. Module können nur einmal umgestellt werden.

2	Wenn Sie Ihre Projekte noch nicht in Project Builder verwalten, erstellen Sie ein Projekt mit dem Projekt-Assistenten  und fügen die umzustellenden Module zu dem Projekt hinzu. Sie könnten alle Forms in einem Unterprojekt, alle Berichte in einem anderen Unterprojekt gruppieren usw. Auf diese Weise können die Upgrade- und Deliver-Aktionen für alle Module desselben Typs angewendet werden.

3	Überprüfen Sie die Liste mit Forms, Berichten und grafischen Anwendungen, die Sie umstellen möchten, und stellen Sie fest, ob den Forms, Berichten oder grafischen Anwendungen PL/SQL-Bibliotheken zugeordnet sind. Wenn ja, konvertieren Sie die Bibliotheken, bevor Sie die Module selbst konvertieren. Siehe Verwandte Themen.

4	Prüfen Sie, ob Module mit identischen Namen vorhanden sind. Wenn ja, stellen Sie sicher, daß diese Dateien in verschiedenen Unterverzeichnissen gespeichert sind.

Wenn z.B. eine Form mit der Bezeichnung MAIN.FMB und ein Bericht  mit der Bezeichnung MAIN.RDF vorhanden sind, werden die Änderungen des Konvertierungsdienstprogramms für beide in eine Log-Datei mit der Bezeichnung MAIN.PLG geschrieben. Somit wird eines der Logs überschrieben.


Upgrade-Aktion erstellen

  Verwandte Themen

So erstellen Sie eine Upgrade-Aktion:

1	Bereiten Sie die Umstellung vor .

2	Kopieren Sie die umzustellenden Typen aus der Globalen Registrierung in die Benutzerregistrierung. Auf diese Weise können Sie die Original-Typdefinitionen bei einem Fehler problemlos wiederherstellen.

3	Wählen Sie in der Benutzerregistrierung einen der umzustellenden Typen, und wählen Sie dann Neue Aktion aus dem Popup-Menü.

4	Mit dem Dialogfeld Aktion hinzufügen erstellen Sie dann eine Upgrade-Aktion für diesen Typ.

Eine Upgrade-Aktion für Forms sieht z.B. folgendermaßen aus:

<Form Compiler> MODULE=form BATCH=yes UPGRADE_PLSQL=yes UPGRADE=yes

wobei:

<Form Compiler>	der Name der ausführbaren Form Compiler-Datei auf Ihrer Plattform ist.
form	der Name der zu konvertierenden Form ist.
5	Wiederholen Sie die Schritte 3 und 4 für jeden umzustellenden Typ. Unter Verwandte Themen finden Sie weitere Informationen über die Syntax von Reports-Compiler von Reports Developer und Graphics Builder.

6	Wählen Sie die umzustellenden Dateien im Projektnavigator. Alle ausgewählten Dateien müssen denselben Typ aufweisen.

7	Wählen Sie den Befehl Umstellen aus dem Popup-Menü.

8	Überprüfen Sie die Log -Dateien, und nehmen Sie die erforderlichen manuellen Korrekturen vor.

Eine Log-Datei mit der Bezeichnung module.plg wird für jedes Modul in demProjekt erstellt.


Eine Zusammenfassung des Konvertierungsprozesses, in dem angegeben wird, was konvertiert wurde und was nicht.


Datenblöcke erstellen

  Nächster Schritt	     Verwandte Themen

So erstellen Sie einen Datenblock aus einer Tabelle:

Wählen Sie Werkzeuge-->Datenblock-Assistent, um einen Assistenten aufzurufen, der Sie Schritt für Schritt durch das Erstellen eines Datenblocks führt.

Oder

1	Klicken Sie im Objektnavigator auf den Knoten Datenblöcke.

2	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

3	Doppelklicken Sie auf das Symbol für das Blockobjekt [image], um die Attributpalette anzuzeigen.

4	Unter dem Knoten Datenbank:

•	Stellen Sie das Attribut Abfrage-Datenquelltyp auf Tabelle ein.

•	Geben Sie den Namen der Datenbanktabelle in das Feld Abfrage-Datenquellname ein.

5	Unter dem Knoten Komplexe Datenbank:

•	Stellen Sie das Attribut DML-Datenzieltyp auf Tabelle ein.

•	Geben Sie den Namen der Datenquelle in das Feld DML-Datenquellname ein.

6	Unter dem Knoten Allgemein klicken Sie auf das Attribut Name, und geben Sie einen Namen ein, oder akzeptieren Sie den Standardnamen.

Sie können einen beliebigen Namen verwenden, der den ORACLE-Benennungsregeln entspricht und unter den Blöcken in der Form eindeutig ist. Der Blockname ist ein interner Deskriptor, der zur Laufzeit nicht angezeigt wird.


Oberfächenobjekte erstellen

  Nächster Schritt

So erstellen Sie ein Oberflächenobjekt:

1	Klicken Sie im Objektnavigator auf das Plussymbol neben dem gewünschten Knoten Datenblöcke.

Form Builder blendet den Knoten Datenblöcke ein und zeigt die zugehörigen Unterknoten an.

2	Klicken Sie auf das Plussymbol neben dem Knoten Objekte.

3	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

Unter dem Knoten Objekte wird ein neues Objekt mit einem Standardnamen eingefügt.

4	Doppelklicken Sie auf das Objektsymbol neben dem neu erstellten Objekt, um die Attributpalette anzuzeigen.

5	Unter dem Knoten Datenbank stellen Sie das Attribut Datenbankobjekt auf Nein ein.

Hinweis:  Wenn Sie ein Objekt in einem Datenblock erstellen, geht Forms davon aus, daß es sich bei dem Objekt um ein Datenobjekt handelt, und stellt das Attribut Datenbankobjekt auf Ja ein. Datenobjekte sind automatisch in SELECT-, UPDATE- und INSERT-Anweisungen enthalten, die an die Datenbank ausgegeben werden. Wenn das erstellte Objekt ein Steuerelement in einem Datenblock ist, müssen Sie das Attribut Datenbankobjekt explizit auf Nein einstellen.

6	Unter dem Knoten Allgemein stellen Sie das Attribut Typ auf den gewünschten Objekttyp ein.

Der Standard-Objekttyp ist Textobjekt. Sie können den Standardwert ändern, indem Sie das Attribut Typ auf den gewünschten Objekttyp einstellen. (Kontrollkästchen, Optionsgruppe, Listenobjekt usw.).

7	Unter dem Knoten Physikalisch geben Sie bei dem Attribut Leinwand den Namen der gewünschten Leinwand an.

Hinweis:  Um ein Objekt zur Laufzeit anzuzeigen, müssen Sie jedes Schnittstellenobjekt in einer Form einer Leinwand zuweisen.


Definition eines Datenblocks ändern

  Verwandte Themen

So ändern Sie die Definition eines Datenblocks:

Klicken Sie im Objektnavigator auf den gewünschten Block, und wählen Sie Werkzeuge [image] Datenblock-Assistent, um einen Assistenten aufzurufen, der Sie Schritt für Schritt beim Ändern der Definition eines Datenblocks unterstützt.


Über Forms Runtime Diagnostics

  Verwandte Themen

Forms Runtime Diagnostics (FRD) ist ein ereignis-basiertes Laufzeit-Protokollierungssystem, mit dem Sie Ihre Anwendungen debuggen können.

Wenn eine Form ausgeführt wird, während FRD aktiviert ist, wird eine Kombination von externen Benutzeranwendungs-Interaktionen und internen Forms-Verarbeitungsereignissen in chronologischer Reihenfolge in ein Protokoll im Dateisystem geschrieben. Diese Ereignisse können dann auf Richtigkeit analysiert werden.

Sie können folgende Informationen erfassen:

•	Auslösen von Triggern

•	Ausführung von vordefinierten Prozeduren

•	Meldungen

•	Geöffnete Dateien

•	Nicht bearbeitete Exceptions

•	Externe Benutzerereignisse


Forms Runtime Diagnostics benutzen

  Verwandte Themen

So lösen Sie die Datenerfassung aus:

Stellen Sie die Zeichenfolge collect wie folgt für das Laufzeitargument record bereit:

f60runm module=foo userid=scott/tiger@hockey record=collect

Dadurch wird im aktuellen Arbeitsverzeichnis eine Datei mit dem Namen: collect_<process ID> erstellt. Wenn Sie den Namen der Datei selbst wählen möchten, geben Sie die Zeichenfolge als Wert des Arguments  log= an:

f60runm module=foo userid=scott/tiger@hockey record=collect log=myfile


Erwartete Ausgabe von Forms Runtime Diagnostics

  Verwandte Themen

Bei der Benutzung von Forms Runtime Diagnostics kann die folgende Ausgabe für jedes der instrumentierten Ereignisse erwartet werden.

Trigger

Setzen Sie einen beliebigen Triggertyp auf eine beliebige Ebene in der Objekthierarchie. Beim Auslösen des Triggers sollte folgendes protokolliert werden:

<trigger_name> Trigger Fired:

Form: <form_name>

Block: <block_name>

Item: <item_name>

Die Ebene des Triggers entspricht dem letzten Objekt in der Liste. Für einen Trigger auf Formebene würde deshalb nur der Formname unter dem Triggernamen angezeigt.

Ein Status-Delta sollte nach dem Auslösen eines Triggers in das Protokoll geschrieben werden. Mit Status-Delta wird ein Auszug aller internen Statusinformationen bezeichnet, die seit dem letzten Status-Delta geändert wurden. Das erste Status-Delta zeichnet den gesamten Formstatus in dem Protokoll auf

Vordefinierte Prozeduren

Wenn eine vordefinierte PL/SQL-Forms-Prozedur ausgeführt wird, sollte die Diagnoseausgabe folgendermaßen aussehen:

Executing <built-in name> Built-In:

In Argument 0 -Type: <type> Value: <value>

In Argument 1 -Type: <type> Value: <value>

…

Out Argument 0 -Type: <type> Value: <value>

…

Zu testende Parametertypen umfassen: Zeichenfolge, Zahl, Ganzzahl, Gleitkommazahl, Oracle-Zahl, Datum. Out-Argument 0 stellt im allgemeinen den Rückgabewert der Funktion dar.

Meldungen

Von Forms erzeugte Meldungen sollten in dem Protokoll wie folgt angezeigt werden:

Error Message: <message>

Geöffnete Dateien

Geöffnete Dateien werden in folgendem Format in das Protokoll geschrieben:

Opened file: <file_name>

Wenn eine Datei nicht geöffnet werden kann, wird sie in dem Protokoll wie folgt angegeben:

Failed to open file: <file_name>

Nicht bearbeitete Exceptions

Wenn eine Exception ausgelöst wird, die nicht abgefangen wird, wird sie in folgendem Format in der Datei protokolliert:

Unhandled Exception: <exception_name>

Wenn der Name nicht verfügbar ist, zeichnet FRD die Exception-Nummer zur Referenz auf:

Unhandled Exception ORA- <exception_number>

Nicht bearbeitete Exceptions sollten in dem Protokoll von einem Status-Delta verfolgt werden.

Externe Benutzerereignisse zur Laufzeit

FRD benutzt einen bestehenden Laufzeit-Mechanismus, um Benutzerereignisse zu protokollieren. Vor den Laufzeitinformationen, die in das Protokoll geschrieben werden, steht ein #-Zeichen, auf das eine Nummer folgt, die die chronologische Reihenfolge des Ereignisses angibt. Für jedes Ereignis werden im allgemeinen zwei Informationsblöcke geschrieben, wobei im ersten das Ereignis selbst detailliert angegeben wird, während der zweite Block ein Status-Delta darstellt.


Über die User Exit-Schnittstelle

  Verwandte Themen

Fremdfunktionen sind Unterprogramme, die in einer 3GL-Programmiersprache geschrieben sind, um Form Builder-Anwendungen individuell zu gestalten. Fremdfunktionen können häufig benutzt werden, um die Leistung zu verbessern oder zusätzliche Funktionalität zu Form Builder hinzuzufügen.

In Form Builder können Sie einen User Exit aus einem Trigger oder einem benutzerdefinierten Unterprogramm mit der vordefinierten Prozedur USER_EXIT aufrufen. Der User Exit muß so geschrieben werden, daß ein ganzzahliger Wertstatuscode aus der Funktion zurückgegeben wird. Der Rückgabewert des User Exits gibt Erfolg, Mißerfolg oder Abbruchfehler an. Im Anschluß an die Ausführung der vordefinierten Prozedur USER_EXIT werden die Werte der Fehlervariablen in Form Builder - FORM_FAILURE, FORM_FATAL und FORM_SUCCESS - entsprechend eingestellt.

Eine besondere Bearbeitung ist erforderlich, damit ein User Exit aus Forms Runtime aufgerufen werden kann. Wenn User Exits unter Microsoft Windows benutzt werden, müssen Ihre User Exit-Funktionen in einer DLL verknüpft werden. Außerdem muß eine besondere Konfigurationsbibliothek mit Informationen über jeden User Exit aktualisiert werden. Die Konfigurationsdatei enthält Informationen über die User Exit-Schnittstellen und die Einsprungstellen, mit denen Form Builder Fremdfunktionen aus einer User Exit-Schnittstelle aufrufen kann. Wenn User Exits auf anderen Plattformen benutzt werden, muß eine Konfigurationsdatei mit Informationen über jeden User Exit aktualisiert werden. Außerdem muß die Compiler-Version dieser Datei, plus der kompilierten Version des User Exit-Codes, in der ausführbaren Forms Runtime-Datei verknüpft werden.

Hinweis:  Eine Fremdfunktion kann auch aus einer PL/SQL-Schnittstelle aufgerufen werden. Die vordefinierte Prozedur ORA_FFI enthält eine PL/SQL-Schnittstelle für den Aufruf von Fremdfunktionen aus Form Builder.


EXEC SQL-Anweisung

 Einschränkungen

Eine EXEC SQL-Anweisung ist ein SQL-Befehl, vor dem "EXEC SQL" steht. Mit EXEC SQL-Anweisungen können Sie jeden SQL-Befehl in einer Fremdfunktion von Oracle Precompiler ausführen. Benutzen Sie EXEC SQL-Anweisungen, um Daten in der Datenbank aus einer Fremdfunktion auszuwählen bzw. zu bearbeiten.

Syntax

EXEC SQL sql_statement;

wobei sql_statement eine beliebige gültige SQL-Anweisung von Oracle ist, mit Ausnahme der eingeschränkten Befehle, die in diesem Abschnitt aufgeführt werden.

Sie müssen einen expliziten CONNECT-Vorgang in einer Fremdfunktion von Oracle Precompiler durchführen, weil Form Builder die Verbindung außer bei UNIX nicht automatisch herstellt. Der Oracle Server unterstützt gleichzeitige Anmeldevorgänge. Weitere Informationen finden Sie in Programmer's Guide to the Oracle Precompilers.


Einschränkungen bei EXEC SQL-Anweisungen

Wenn Sie SQL-Befehle in einer Fremdfunktion von Oracle Precompiler verwenden, gelten folgende Einschränkungen:

•	Geben Sie keine SQL COMMIT- oder ROLLBACK-Anweisung aus einer Fremdfunktion aus, wenn Änderungen in einer Form vorhanden sind, die bei Aufruf der Fremdfunktion noch nicht an die Datenbank abgeschickt wurden.

•	Geben Sie keinen Befehl aus, der implizit einen Commit-Vorgang in der Datenbank verursacht, wie z.B. einen DDL-Befehl innerhalb einer Fremdfunktion, wenn Änderungen in einer Form vorhanden sind, die bei Aufruf der Fremdfunktion noch nicht an die Datenbank abgeschickt wurden.


EXEC TOOLS GET-Anweisung

 Beispiele	   Einschränkungen

Eine EXEC TOOLS GET-Anweisung ruft einen Wert aus Form Builder in eine Fremdfunktion von Oracle Precompiler ab. Der Wert eines Objekts oder einer Variablen von Form Builder wird in eine Variable der Hostsprache gesetzt. Nachdem die Fremdfunktion einen Wert von Form Builder empfangen hat, kann die Fremdfunktion diesen Wert zur Berechnung, Bearbeitung oder Aktualisierung benutzen.

Syntax

EXEC TOOLS GET form_variable_1[, form_variable_2, ...]

   INTO :host_variable_1[, :host_variable_2, ...];

wobei:

form_variable_n	den Namen des Objekts bzw. der Variablen von Form Builder angibt, aus der ein Wert eingelesen wird.
host_variable_n	den Namen der Variablen der Hostsprache angibt, in die ein Wert eingelesen wird.
Hinweise:

form_variable kann eine Referenz auf eines der folgenden Objekte sein:

•	Vollständig benanntes Objekt (block.item)

•	Formparameter

•	Systemvariable von Form Builder

•	Globale Variable von Form Builder

•	Variable der Hostsprache (mit vorangestelltem Doppelpunkt), deren Wert einer der obigen Auswahlen entspricht.

In Programmer's Guide to the Oracle Precompilers werden die Einschränkungen für Variablen der Hostsprache beschrieben.


Einschränkungen bei EXEC TOOLS GET-Anweisungen

Werte können nicht direkt aus einer Fremdfunktion in einer Datensatzgruppe eingelesen oder eingestellt werden.


Beispiele für EXEC TOOLS GET-Anweisungen

Beispiel

/*

** Example:  Read an item name from a block (empblock.empname)

*/

EXEC SQL BEGIN DECLARE SECTION;

char itm_buff[255];    /* buffer for item value */

VARCHAR itm_name[255]; /* Forms item name       */

EXEC SQL END DECLARE SECTION;

strcpy(itm_name.arr,"EMBLOCK.EMPNAME");

itm_name.len=strlen("EMBLOCK.EMPNAME");

EXEC TOOLS GET :itm_name

INTO :itm_buff;


EXEC TOOLS SET-Anweisung

 Beispiele

Eine EXEC TOOLS SET-Anweisung sendet einen Wert von einer Fremdfunktion von Oracle Precompiler an Form Builder. Der Wert einer Konstanten bzw. der Wert einer Variablen der Hostsprache wird in ein Objekt oder eine Variable von Form Builder gesetzt.

Jeder Wert, den eine EXEC TOOLS SET-Anweisung an ein Formobjekt übergibt, wird angezeigt, nachdem die Fremdfunktion die Verarbeitungskontrolle an die Form zurückgegeben hat, die die Fremdfunktion aufgerufen hat (vorausgesetzt, daß das Attribut Aktiviert für das Objekt auf Ja eingestellt wurde).

Syntax

EXEC TOOLS SET form_variable[, ...]

    VALUES ({:host_variable | constant}[, ...]);

wobei:

form_variable	den Namen des Objekts bzw. der Variablen von Form Builder angibt, in die ein Wert eingelesen wird.
host_variable	den Namen der Variablen der Hostsprache angibt, aus der ein Wert eingelesen wird.
constant	die Konstante angibt, die Sie lesen. Vor der Konstanten darf kein Doppelpunkt stehen.
Hinweise:

form_variable kann eine Referenz auf eines der folgenden Objekte sein:

•	Vollständig benanntes Objekt (block.item)

•	Formparameter

•	Systemvariable von Form Builder

•	Globale Variable von Form Builder

•	Variable der Hostsprache (mit vorangestelltem Doppelpunkt), deren Wert einer der obigen Auswahlen entspricht.

In Programmer's Guide to the Oracle Precompilers werden die Einschränkungen für Variablen der Hostsprache beschrieben.

Die Host-Variablen und -Konstanten werden in einem SQL-Standardformat dargestellt:

Wert	Ergebnis
:holder1	Fügt den Wert der Hostvariablen ein, holder1 (mit vorangestelltem Semikolon).
'Summit Sporting Goods'	Fügt den Wert der Konstantenzeichenfolge ein, Summit Sporting Goods (in einfachen Anführungszeichen).
413	Fügt den numerischen Wert der Konstanten ein, 413 (bei numerischen Werten keine Anführungszeichen).


Beispiele für EXEC TOOLS SET-Anweisungen

Beispiel

/*

** Example:  Write 'SMITH' into emp.ename

*/

EXEC SQL BEGIN DECLARE SECTION;

char itm_buff[255];    /* buffer for item value */

VARCHAR itm_name[255]; /* Forms item name       */

EXEC SQL END DECLARE SECTION;

strcpy(itm_name.arr,"EMP.ENAME");

itm_name.len = strlen("EMP.ENAME");

strcpy(itm_buff,"SMITH");

EXEC TOOLS SET :itm_name

VALUES (:itm_buff);


EXEC TOOLS MESSAGE-Anweisung

 Beispiele

Eine EXEC TOOLS MESSAGE-Anweisung zeigt eine Meldung auf der Meldungszeile von Form Builder an.

Syntax

EXEC TOOLS MESSAGE (message [severity]);

wobei:

message	die Meldung angibt, die Sie an Form Builder übergeben. Bei der Meldung kann es sich um eine Zeichenfolge in Anführungszeichen oder eine Variable der Hostsprache handeln.
severity	den Schweregrad der Meldung angibt, die an Form Builder übergeben wird.


Beispiele für EXEC TOOLS MESSAGE-Anweisungen

Beispiel

/*

** Example:  Error message for text item

*/

EXEC TOOLS MESSAGE

   'Incorrect argument: Expecting item name. Please re-enter.';


EXEC TOOLS GET CONTEXT-Anweisung

 Beispiele

Eine EXEC TOOLS GET CONTEXT-Anweisung ruft Kontextinformationen (einen Pointer-Namen) ab, die vorher mit EXEC TOOLS SET CONTEXT gespeichert wurden, und liest diese in eine Fremdfunktion ein.

Syntax

EXEC TOOLS GET CONTEXT context_name [, ...]

   INTO :host_variable_1[, :host_variable_2, ...];

wobei:

context_name	den Namen des zu speichernden Kontextes angibt.
host_variable_n	den Namen der Variablen der Hostsprache angibt, in die der Kontextwert eingelesen wird.
Hinweise:

context_name kann eine Referenz auf eines der folgenden Objekte sein:

•	Eine Variable der Hostsprache (mit vorangestelltem Doppelpunkt)

•	Eine Konstante


Beispiele für EXEC TOOLS GET CONTEXT-Anweisungen

Beispiel

/*

** Example:  Get previously saved context information

*/

EXEC SQL BEGIN DECLARE SECTION;

char *pctx;

EXEC SQL END DECLARE SECTION;

EXEC TOOLS GET CONTEXT appl_1 INTO :pctx;


EXEC TOOLS SET CONTEXT-Anweisung

 Beispiele

Eine EXEC TOOLS SET CONTEXT-Anweisung speichert Kontextinformationen von einer Fremdfunktion zur Benutzung in nachfolgenden Aufrufen von Fremdfunktionen. Benutzen Sie EXEC TOOLS SET CONTEXT, anstatt eine globale Variable zur Aufnahme von Informationen zu erstellen. Mit EXEC TOOLS SET CONTEXT können Sie einem Pointer einen aussagefähigen Textnamen zuweisen, der einen Speicherort darstellt. Sie können den Pointer mit EXEC TOOLS GET CONTEXT abrufen.

Syntax

EXEC TOOLS SET CONTEXT host_name[, ...]

    BY context_name [, ...];

wobei:

host_name	die Variable der Hostsprache angibt, die die zu speichernden Informationen enthält.
context_name	den Namen des gespeicherten Kontextes angibt.

Hinweise:

context_name kann eine Referenz auf eines der folgenden Objekte sein:

•	Eine Variable der Hostsprache (mit vorangestelltem Doppelpunkt)

•	Eine Konstante


Beispiele für EXEC TOOLS SET CONTEXT-Anweisungen

Beispiel

/*

** Example:  Save context information for later use

*/

EXEC SQL BEGIN DECLARE SECTION;

char my_context[20];

EXEC SQL END DECLARE SECTION;

strcpy(my_context, "context_1");

EXEC TOOLS SET CONTEXT :my_context BY appl_1;


EXEC ORACLE-Anweisung

Eine EXEC ORACLE-Anweisung ist eine Anweisung, bei der es sich nicht um eine standardmäßige SQL-Anweisung handelt. Sie wird zur Ausführung von Optionen von Oracle Precompiler benutzt. Weitere Informationen finden Sie im Programmer's Guide to the Oracle Precompilers.


User Exits erstellen

  Example	  Verwandte Themen

So erstellen Sie einen User Exit:

1	Schreiben Sie den User Exit mit einer der Host-Programmiersprachen.

2	Empfehlung: Erstellen Sie eine Fremdfunktion von Oracle Precompiler mit der C-Programmiersprache.

3	Erstellen Sie eine IAPXTB-Kontrollstruktur, die jeden User Exit registriert.

4	Integrieren Sie einen User Exit in Form Builder.


Über IAPXTB-Kontrollstrukturen

  Verwandte Themen

Die IAPXTB-Kontrollstruktur ist eine Datenstruktur, die Informationen für alle Fremdfunktionen enthält, die aus einem User Exit aufgerufen werden können. Die IAPXTB-Kontrollstruktur bezeichnet die Einsprungstellen, die für das Verknüpfen der Fremdfunktionen mit Form Builder erforderlich sind. In der folgenden Tabelle wird jede Spalte in der IAPXTB-Kontrollstruktur beschrieben:

Spalte	Inhalt
NAME	Diese Spalte gibt einen User Exit-Namen für eine Fremdfunktion an, die aus einem User Exit aufgerufen werden kann. (Dies ist nicht notwendigerweise der Name der Datei, die die Fremdfunktion enthält, oder der Name der Fremdfunktion, die aufgerufen wird.) Beachten Sie, daß bei einigen Hostsprachen die Schreibweise berücksichtigt werden muß.
FUNCTION	Diese Spalte gibt den Namen der Fremdfunktion an.
TYPE	Diese Spalte gibt die Sprache an, in der die Fremdfunktion geschrieben ist. Gültige Werte umfassen: XITCC für C, XITCOB für COBOL, XITFOR für FORTRAN, XITPLI für PL/I, XITPAS für PASCALXIT, Ada für Ada.

Sie müssen eine Einsprungstelle in der IAPXTB-Kontrollstruktur für jede Fremdfunktion eingeben, die aus einem User Exit aufgerufen werden kann. Dies gilt für alle Fremdfunktionen, die aus einem User Exit aufgerufen werden können, unabhängig davon, ob eine Fremdfunktion in einer Datei gespeichert ist, die vorkompiliert und selbstkompiliert ist oder vorkompiliert und mit verschiedenen anderen Fremdfunktionen kompiliert ist. Sie sollten alle Fremdfunktionen, die aus einem User Exit für ein Produktionssystem aufgerufen werden können, in einer IAPXTB-Kontrollstruktur verwalten. Sie sollten Testversionen der Fremdfunktionen in einer separaten IAPXTB-Kontrollstruktur speichern.


IAPXTB-Kontrollstruktur erstellen

 Beispiele	    Verwandte Themen

So erstellen Sie die IAPXTB-Kontrollstruktur:

1	Definieren Sie die IAPXTB-Datenstruktur.

Stellen Sie sicher, daß die Datenstruktur mit drei Feldern definiert wird, die den Namen des User Exits den Namen der Fremdfunktion und die Sprache darstellen, mit der die Fremdfunktion entwickelt wird.

2	Geben Sie die Daten für jede Fremdfunktion ein.

3	Kompilieren Sie die IAPXTB-Quelldatei, um eine Objektcodedatei zu generieren. Behalten Sie die IAPXTB-Objektcodedatei zur Integration des User Exits in Form Builder.


Über die Integration eines User Exits in Form Builder

  Verwandte Themen

Die Integration eines User Exits in Form Builder hängt von dem Betriebssystem ab, mit dem Sie arbeiten, und von der Sprache, in der die Fremdfunktion geschrieben wird.

Bei Microsoft Windows erstellen Sie eine DLL mit Objektcodedateien von Fremdfunktionen und Objektcodedateien der IAPXTB-Kontrollstruktur. Wenn eine Fremdfunktion aus einem User Exit aufgerufen wird, wird eine DLL in den Speicher geladen.

Bei anderen Umgebungen müssen Sie die ausführbare Forms Runtime-Datei neu generieren, indem Sie die Objektcodedateien aus der Fremdfunktion und die IAPXTB-Kontrollstruktur mit Objektcodedateien von Form Builder verknüpfen.


User Exits in Form Builder integrieren

 Beispiele	    Verwandte Themen

So integrieren Sie einen User Exit in Form Builder:

1	Kennzeichnen Sie die Objektcodedatei der Fremdfunktion.

2	Kennzeichnen Sie die Objektcodedatei der IAPXTB-Kontrollstruktur.

3	Verknüpfen Sie die Objektcodedatei der Fremdfunktion und die Objektcodedatei der IAPXTB-Kontrollstruktur mit einer DLL oder mit Forms Runtime.


Fremdfunktionen aus einem User Exit aufrufen

 Einschränkungen	    Verwandte Themen

Nachdem ein User Exit für eine Fremdfunktion erstellt wurde, können Sie die Fremdfunktion mit einer User Exit-Schnittstelle aus Form Builder aufrufen. Um eine Fremdfunktion aus einem User Exit aufzurufen, rufen Sie die vordefinierte Prozedur USER_EXIT aus einem Trigger oder einem benutzerdefinierten Unterprogramm auf.

Wenn Sie eine Fremdfunktion aus einem User Exit aufrufen, übergibt Form Builder die Verarbeitungskontrolle vorübergehend an die Fremdfunktion. Nachdem die Ausführung der Fremdfunktion abgeschlossen ist, übernimmt Form Builder wieder die Kontrolle über die Verarbeitung.

Syntax

USER_EXIT(user_exit_string);

USER_EXIT(user_exit_string, error_string);

Die vordefinierte Prozedur USER_EXIT ruft die Fremdfunktion auf, die in user_exit_string benannt wird.

Parameter

user_exit_string	Gibt einen User Exit-Namen für eine Fremdfunktion an, die Sie aus einem User Exit aufrufen möchten, einschließlich Parametern. Die maximale Länge von user_exit_string beläuft sich auf 255 Zeichen.
error_string	Gibt eine benutzerdefinierte Fehlermeldung an, die Form Builder anzeigt, wenn der Aufruf der Fremdfunktion nicht erfolgreich verläuft. Die maximale Länge von error_string ist 255 Zeichen.


Einschränkungen beim Aufruf einer Fremdfunktion aus einem User Exit

Wenn Sie den Namen des User Exits angeben, der eine Fremdfunktion darstellt (in user_exit_string der vordefinierten Prozedur USER_EXIT), muß dieser Name den Regeln des Betriebssystems und der Hostsprache entsprechen. Beachten Sie, daß diese Regeln möglicherweise Groß-/Kleinschreibung umfassen. Außerdem sollten Sie beachten, daß pro Aufruf der vordefinierten Prozedur USER_EXIT nur eine Fremdfunktion verwendet werden kann.


Parameterwerte mit USER_EXIT an eine Fremdfunktion übergeben

  Verwandte Themen

Sie können Parameter an eine Fremdfunktion übergeben, die aus einem User Exit aufgerufen wird., indem Sie user_exit_string und error_string in der vordefinierten Prozedur USER_EXIT definieren.

Wenn Sie user_exit_string und error_string in Form Builder definieren, erkennt die Fremdfunktion die Werte als einem Befehlszeilenwert und einem Fehlermeldungswert entsprechend. So behandelt Form Builder z.B. den Wert von user_exit_string als Zeichenfolgenvariable. Der Wert von user_exit_string ist die Befehlszeile für eine Fremdfunktion.

Als nächstes werden die Parameter von Fremdfunktionen und die entsprechenden Definitionen in Form Builder für jede Fremdfunktion aufgeführt, die aus einem User Exit aufgerufen wird.

Parameter der Fremdfunktion	Definition in Form Builder
Befehlszeile	user_exit_string.
Befehlszeilenlänge	Länge (in Zeichen) von user_exit_string.
Fehlermeldung	error_string.
Fehlermeldungslänge	Länge (in Zeichen) von error_string.
In-Query	Ein Boolescher Wert, mit dem angegeben wird, ob die Fremdfunktion aus einem User Exit aufgerufen wurde, während sich die Form im Abfragemodus befand.

Auch wenn Form Builder die Fremdfunktion automatisch aus der user_exit_string aufruft, analysiert Form Builder die user_exit_string nicht automatisch. Die user_exit_string muß von der Fremdfunktion analysiert werden.

Sie können eine Reihe von Parametern an eine Fremdfunktion aus der user_exit_string der vordefinierten Prozedur USER_EXIT übergeben. Benutzen Sie diese Funktion, um Informationen zu übergeben, wie Objektnamen. Um z.B. zwei Parameter, PARAM1 und PARAM2 an die Fremdfunktion CALCULATE_VALUES zu übergeben, geben Sie folgende Anweisung an:

User_Exit('CALCULATE_VALUES PARAM1 PARAM2');


Werte aus einer Fremdfunktion mit USER_EXIT zurückgeben

  Verwandte Themen

Wenn die Ausführung der vordefinierten Prozedur USER_EXIT von Form Builder abgeschlossen ist, wird ein ganzzahliger Wert an Form Builder übergeben. Dieser ganzzahlige Wert gibt an, ob die vordefinierte Prozedur USER_EXIT erfolgreich, nicht erfolgreich oder mit einem Abbruchfehler ausgeführt wurde. (Wenn Sie z.B. eine Fremdfunktion in C erstellen, liefert Form Builder die Konstanten in einer ".h"-Datei.)

Fehlervariablen in Form Builder - FORM_FAILURE, FORM_FATAL und FORM_SUCCESS - werden entsprechend dem Wert eingestellt, der aus der vordefinierten Prozedur USER_EXIT zurückgegeben wird. Sie können die Fehlervariablen abfragen, um festzustellen, ob die vordefinierte Prozedur USER_EXIT erfolgreich oder nicht erfolgreich ausgeführt wurde, genau wie bei jeder anderen vordefinierten Prozedur. Der Trigger, der die vordefinierte Prozedur USER_EXIT aufruft, bestimmt, wie die Rückgabebedingung gehandhabt werden soll.

So könnten Sie z.B. den Wert von FORM_SUCCESS überprüfen, nachdem eine Fremdfunktion aus einem User Exit ausgeführt wurde:

User_Exit('my_exit');

IF NOT Form_Success THEN

/* handle the error */

END IF;


Über das Schreiben von User Exits unter Microsoft Windows

  Verwandte Themen

Bei Microsoft Windows ist eine Fremdfunktion, die aus einem User Exit aufgerufen werden kann, in einer DLL enthalten. Eine DLL ist eine Bibliothek, die in den Speicher geladen wird, wenn der enthaltene Code aufgerufen wird. Eine DLL kann von mehreren Anwendungen gleichzeitig benutzt werden. Bevor Sie fortfahren, sollten Sie sich mit dem Generieren von DLLs vertraut machen, wie in Ihrem Compiler-Handbuch beschrieben.

Hinweis:  Einige C-Laufzeitfunktionen sind in .DLL-Dateien nicht verfügbar. Weitere Informationen finden Sie in der Compiler-Dokumentation.

Als nächstes sehen Sie ein Beispiel für das Erstellen und Aufrufen einer Fremdfunktion aus einem User Exit. Dieses Beispiel benutzt die Projektdatei UE_SAMP.MAK.


User Exits unter Microsoft Windows schreiben

  Verwandte Themen

So erstellen Sie eine Fremdfunktion, die aus einem User Exit bei Microsoft Windows aufgerufen werden kann:

1.	Schreiben Sie eine Fremdfunktion mit den Anweisungen von Pro*C und Oracle Precompiler, um auf die Datenbank zuzugreifen.

Erstellen Sie z.B. eine Textdatei mit der Bezeichnung UEXIT.PC, und fügen Sie dann den folgenden Text hinzu:

/* UEXIT.PC file */

/* This foreign function adds an ID column to the EMP table. */

#ifndef UE

#include "ue.h"

#endif

#ifndef _WINDLL

#define SQLCA_STORAGE_CLASS extern

#endif

EXEC SQL INCLUDE sqlca.h

void AddColumn() {

EXEC SQL alter table EMP add ID varchar(9);

}

2	Kompilieren Sie die Fremdfunktion mit einem Oracle Precompiler (Pro*C Precompiler) neu.

Benutzen Sie z.B. Pro*C, um die Datei UEXIT.PC im voraus zu kompilieren. Wenn Sie UEXIT.PC kompilieren, erstellt Pro*C eine C-Datei mit der Bezeichnung UEXIT.C.

3.	Erstellen Sie die Header-Dateien.

Die Header-Datei muß die Fremdfunktion definieren. Ändern Sie z.B. die Beispiel-Header-Datei, UE.H, indem Sie folgenden Text hinzufügen:

extern   void   AddColumn();

4.	Kompilieren Sie UEXIT.C, um eine Objektcodedatei der Fremdfunktion zu generieren. Sie müssen das große Speichermodell bei Ihrem Compiler angeben.

5.	Erstellen Sie die IAPXTB-Kontrollstruktur.

Ändern Sie die Datei UE_XTB.C, indem Sie die Datei UEXIT.H aufnehmen und den Namen des User Exits, den Namen der Fremdfunktion und den Sprachtyp hinzufügen. Befolgen Sie das Beispiel in der Datei UE_XTB.C. In diesem Fall wird folgender Eintrag zu der Datei hinzugefügt:

Add_ID_Column, AddColumn, XITCC

6.	Ändern Sie eventuell erforderliche Dateien zur Integration der Fremdfunktion.

Ändern Sie die Datei UE_SAMP.DEF, indem Sie Export-Anweisungen hinzufügen, um die Fremdfunktion AddColumn aufzunehmen. Befolgen Sie die Beispiele in der Datei UE_SAMP.DEF.

7.	Generieren Sie eine DLL zur Benutzung mit Forms Runtime.

Mit Ausnahme von UEXIT.C sollten die folgenden Dateien schon in der Projektdatei UE_SAMP.MAK enthalten sein:

\orawin95\forms\userexit\uez.obj

\orawin95\forms\userexit\osswep.obj

\orawin95\forms\userexit\ ue_samp.def

\orawin95\forms\userexit\ue_xtb.c

\orawin95\forms\userexit\uexit.c

Die Projektdatei UE_SAMP.MAK ist zur Verknüpfung der folgenden Dateien eingerichtet:

LIBC.LIB

OLDNAMES

\orawin95\forms60\userexit\f60r.LIB

\orawin95\pro20\userexit\sqllib18.lib

\orawin95\pro20\userexit\sqxlib18.lib

Nachdem Sie die Projektdatei UE_SAMP.MAK generiert haben, wird eine DLL mit der Bezeichnung UE_SAMP.DLL erzeugt. Fügen Sie den Eintrag UE_SAMP.DLL zu der Liste mit DLLs hinzu, die von dem Parameter FORMS60_USEREXITS in der Registrierung definiert wird.

Alternativ können Sie UE_SAMP.DLL in F50XTB32.DLL umbenennen, die Datei F60XTB32.DLL im Ornder c:\orawin95\bin sichern und die neue Datei F60XTB32.DLL in den Ordner c:\orawin95\bin kopieren.

8.	Stellen Sie sicher, daß Sie den Namen der DLL in der Variablen FORMS60_USEREXITS in der Registrierung aufnehmen oder die DLL in F60XTB32.DLL umbenennen. Wenn Sie die DLL in F60XTB32.DLL umbenennen, ersetzen Sie die bestehende F60XTB32.DLL im Ordner \ORAWIN95\BIN durch die neue F60XTB32.DLL.

9.	Rufen Sie die Fremdfunktion aus einem User Exit in Form Builder auf.

In diesem Fall ruft ein When-Button-Pressed-Trigger die Fremdfunktion aus einem User Exit auf. Mit der folgenden Anweisung wird dargestellt, wie die Fremdfunktion AddColumn aufgerufen wird, indem der User Exit-Name Add_ID_Column in der vordefinierten Prozedur USER_EXIT angegeben wird:

/* Trigger: When-Button-Pressed */

USER_EXIT('Add_ID_Column');


User Exit-Schnittstellendateien von Microsoft Windows

  Verwandte Themen

Während der Installation von Form Builder für Windows wird eine Gruppe von Dateien für User Exit-Schnittstellen (mit Ausnahme von F60XTB32.DLL) in den Ordner \ORAWIN95\FORMS60\USEREXIT kopiert. Sie benötigen möglicherweise nicht alle Dateien in diesem Ordner. Alle Fremdfunktionen, die aus einer User Exit-Schnittstelle aus Form Builder für Windows aufgerufen werden können, müssen in einer DLL gespeichert sein.

F60XTB32.DLL	Die Standarddatei, die Fremdfunktionen enthält, die aus einer User Exit-Schnittstelle aufgerufen werden können. Diese Datei ist eine DLL, die mit Form Builder geliefert wird, und enthält anfänglich keine benutzerdefinierten Fremdfunktionen. Diese Datei wird während der Installation im Ordner \ORAWIN95\BIN gespeichert. Wenn Sie neue Fremdfunktionen erstellen, ersetzen Sie die bestehende Datei F60XTB32.DLL durch eine neue Datei F60XTB32.DLL

Um Sie beim Erstellen der IAPXTB-Kontrollstruktur zu unterstützen, liefert Form Builder zwei Quelldateien für die IAPXTB-Kontrollstruktur, UE_XTB.C und UE_XTBN.C. Jede Datei kann als Vorlage für das Erstellen einer IAPXTB-Kontrollstruktur benutzt werden. Ändern Sie die Quelldatei der IAPXTB-Kontrollstruktur, damit sie die definierten Fremdfunktionen enthält. Nehmen Sie die entsprechende Datei in Ihrer Projektdatei auf. Sie benötigen nur eine der beiden Quelldateien, um die IAPXTB-Kontrollstruktur zu erstellen.

UE_XTB.C	Eine Datei, die ein Beispiel für einen Eintrag in der IAPXTB-Kontrollstruktur enthält. Ändern Sie diese Datei, und fügen Sie die Einträge für Ihre Fremdfunktionen hinzu. Dies ist die Datei, die in der Projektdatei UE_SAMP.MAK enthalten ist.
UE_XTBN.C	Eine Datei, die eine leere IAPXTB-Kontrollstruktur enthält. Fügen Sie die Einträge für die Fremdfunktion hinzu, um eine IAPXTB-Kontrollstruktur zu erstellen. Dies ist die Datei, die in der Projektdatei UE_XTBN.MAK enthalten ist.

Die folgenden Dateien sind Projektdateien, die alle erforderlichen Dateien für das Erstellen einer DLL enthalten, die Fremdfunktionen umfaßt, die Sie aus einer User Exit-Schnittstelle in Form Builder aufrufen können.

UE_SAMP.MAK	Eine Projektdatei, die die IAPXTB-Kontrollstruktur aus der Datei UE_XTB.C enthält. Durch das Generieren dieser Projektdatei wird UE_SAMP.DLL generiert. Sie können die DLL von UE_SAMP.DLL in F60XTB32.DLL umbenennen und die bestehende F60XTB32.DLL im Ordner \ORAWIN95\BIN ersetzen. Sie können aber auch UE_SAMP.DLL zu der Liste mit DLLs hinzufügen, die von dem Parameter FORMS60_USEREXITS in der Registrierung definiert wird.
UE_XTBN.MAK	Eine Projektdatei, die die IAPXTB Kontrollstruktur aus der Datei UE_XTBN.C enthält. Durch das Generieren dieser Projektdatei wird UE_XTBN.DLL generiert. Dies ist die Projektdatei, mit der die anfängliche F60XTB32.DLL generiert wird, die im Ordner \ORAWIN95\BIN gespeichert ist. Sie können die DLL von UE_XTBN.DLL in F60XTB32.DLL umbenennen und die bestehende F60XTB32.DLL im Ordner \ORAWIN95\BIN ersetzen. Sie können UE_XTBN.DLL aber auch zu der Liste mit DLLs hinzufügen, die von dem Parameter FORMS60_USEREXITS in der Registrierung definiert wird.

Neben den Objektcodedateien der Fremdfunktion und einer Objektcodedatei der IAPXTB-Kontrollstruktur benötigen Sie folgende Dateien in der Projektdatei, um die DLL für die User Exit-Schnittstelle zu generieren (diese Dateien sind in UE_SAMP.MAK und UE_XTBN.MAK enthalten):

UE_SAMP.DEF	Enthält Definitionen, die Sie zur Generierung Ihrer eigenen DLL benötigen.
OSSWEP.OBJ	Die .OBJ-Datei von Dynamic Link Library Windows Entry Point, die Sie benötigen, um Ihre eigene DLL zu generieren. (Sie können OSSWEP.OBJ durch eine eigene .OBJ-Datei ersetzen.)
UEZ.OBJ	Eine .OBJ-Datei, die Sie mit Ihren eigenen .OBJ-Dateien verknüpfen können.


Fremdfunktionen von Microsoft Windows kompilieren

  Verwandte Themen

Wenn Sie Fremdfunktionen kompilieren, müssen Sie das große Speichermodell angeben. In der Compiler-Dokumentation von Microsoft Windows finden Sie zusätzliche Informationen, wie z.B. Einschränkungen für das Generieren einer Microsoft Windows DLL und die Benutzung von #define-Anweisungen. (Der Fremdfunktionscode muß möglicherweise die Datei UE.H umfassen, um auf typedefs und #define-Anweisungen zuzugreifen.)


IAPXTB-Kontrollstruktur für Microsoft Windows erstellen

  Verwandte Themen

Sie können die IAPXTB-Kontrollstruktur erstellen, indem Sie die Datei UE_XTB.C oder UE_XTBN.C als Vorlage verwenden. Alternativ können Sie eine eigene IAPXTB-Kontrollstruktur in einer eigenständigen Datei erstellen.

Hinweis:  Bei Microsoft Windows ist eine IAPXTB-Kontrollstruktur erforderlich, um jede DLL zu generieren, die Fremdfunktionen enthält, die aus einem User Exit aufgerufen werden können. Sie sollten nur Einträge in der IAPXTB-Kontrollstruktur für die entsprechenden Fremdfunktionen aufnehmen, die in einer DLL enthalten sind.

Als nächstes sehen Sie einen Auszug aus einer etwas veränderten Datei UE_XTB.C:

extern exitr iapxtb[] = { /* Holds exit routine pointers */

   "UE_Name", UE_Funct, XITCC,

   "USEREXECSQL", uxsql, XITCC,

   (char *)0, 0, 0    /* zero entry marks the end */

} /* end iapxtb */

Die Datei enthält den User Exit-Namen UE_Name. In diesem Beispiel wurde die folgende Zeile zu der Originaldatei UE_XTB.C hinzugefügt:

"UE_Name", UE_Funct, XITCC,

UE_Name	User Exit-Name zur Benutzung durch die vordefinierte Prozedur USER_EXIT, um die Fremdfunktion aus Form Builder aufzurufen.
UE_Funct	Name der Fremdfunktion, die die Kontrolle über die Verarbeitung vorübergehend von Form Builder übernimmt.
XITCC	Gibt die C-Programmiersprache an, mit der die Fremdfunktion entwickelt wird.


Über das Generieren einer DLL für Microsoft Windows generieren

  Verwandte Themen

Zwei Projektdateien, UE_SAMP.MAK und UE_XTBN.MAK, sollen Sie beim Erstellen einer DLL unterstützen, die Fremdfunktionen enthalten, die aus einem User Exit aufgerufen werden.

Sie können auch eigene Projektdateien definieren. Wenn Sie eine eigene Projektdatei erstellen, denken Sie daran, daß Sie eine Objektcodedatei der IAPXTB-Kontrollstruktur, Objektcodedateien der Fremdfunktion und die erforderlichen Dateien zur Integration der Fremdfunktionen aufnehmen müssen, die aus einem User Exit in Form Builder aufgerufen werden.

Eine der erforderlichen Dateien zur Integration von Fremdfunktionen in Form Builder ist die Datei UE_SAMP.DEF. Benutzen Sie die Datei UE_SAMP.DEF, um Fremdfunktionen zu exportieren. Einige Export-Anweisungen für Form Builder sind schon vorhanden. Ändern Sie die bestehenden Export-Anweisungen nicht, weil die Funktionen von Form Builder für den Zugriff auf die User Exits benutzt werden.

Die Projektdatei UE_SAMP.MAK wird hier als Beispiel benutzt. Neben den Objektcodedateien, die die Fremdfunktionen enthalten, enthält die Datei UE_SAMP.MAK folgende Dateien:

\orawin95\forms60\userexit\uez.obj

\orawin95\forms60\userexit\osswep.obj

\orawin95\forms50\userexit\f60xtb.def

\orawin95\forms60\userexit\ue_xtb.c

Außerdem müssen Sie die folgenden Dateien verknüpfen:

LDLLCEW.LIB

LIBW.LIB

OLDNAMES

\orawin95\forms60\userexit\F60R.LIB

Wenn Sie eine Fremdfunktion von Oracle Precompiler erstellen, müssen Sie die folgenden Bibliotheken verknüpfen:

\orawin95\forms60\userexit\sql18win.lib

\orawin95\forms60\userexit\sqx18win.lib

Sie erstellen UE_SAMP.DLL, nachdem die Projektdatei UE_SAMP.MAK generiert wurde. Sie können UE_SAMP.DLL in F60XTB32.DLL umbenennen, eine Sicherungskopie von F60XTB32.DLL in \ORAWIN95\BIN anfertigen und die bestehende F60XTB32.DLL durch die neue F60XTB32.DLL ersetzen. Alternativ können Sie UE_SAMP.DLL zu der Liste mit DLLs hinzufügen, die von dem Parameter FORMS60_USEREXITS in der Registrierung definiert wird.


Fremdfunktionen in mehreren DLLs definieren

Zur Benutzung in Form Builder für Windows entwickelte Fremdfunktionen sind in DLLs enthalten. Form Builder erstellt eine einzige DLL, F60XTB32.DLL, für die Fremdfunktionen. F60XTB32.DLL ist die Standard-DLL zur Aufnahme von Fremdfunktionen. Mehrere Fremdfunktionen können in einer einzigen DLL enthalten sein.

Die Benutzung einer einzigen DLL, die alle Fremdfunktionen enthält, kann zu Konflikten führen, insbesondere, wenn zwei Programme versuchen, auf dieselbe DLL zuzugreifen. Um Konflikte bei DLLs zu umgehen, unterstützt Form Builder mehrere DLLs für User Exits. Fremdfunktionen können in mehreren DLLs enthalten sein, ohne Einschränkungen für den Namen der DLL.

Parameter FORMS60_USEREXITS  Mit dem Parameter FORMS60_USEREXITS in der Registrierung können Sie mehrere DLLs definieren, die Fremdfunktionen enthalten, die aus einem User Exit aufgerufen werden können. Der Parameter FORMS60_USEREXITS enthält eine mit Semikolon begrenzte Liste mit User Exit-DLLs.

Hier ein Beispiel für die Definition von mehreren User Exit-DLLs:

FORMS60_USEREXITS = C:\mathlib\add.dll;C:\mathlib\mult.dll;

Eine DLL wird in den Speicher geladen, wenn eine der enthaltenen Fremdfunktionen aus dem User Exit aufgerufen wird. Auch wenn der Parameter FORMS60_USEREXITS viele DLLs aufführen kann, die mehrere User Exit-Fremdfunktionen enthalten, ist immer nur eine derartige DLL gleichzeitig in den Speicher geladen.

Form Builder bestimmt die Fremdfunktion, die aus einem User Exit aufgerufen wird, anhand der folgenden Kriterien:

•	Wenn der Parameter FORMS60_USEREXITS in der Registrierung nicht vorhanden ist, müssen Fremdfunktionen in einer einzigen User Exit-DLL mit der Bezeichnung F60XTB32.DLL im Ordner \ORAWIN95\BIN enthalten sein.

•	Wenn der Parameter FORMS60_USEREXITS in der Registrierung vorhanden ist und mehrere User Exit-DLLs vorhanden sind, wird das erste Auftreten einer Fremdfunktion in der Liste mit DLLs aufgerufen.

•	Wenn mehrere User Exit-DLLs vorhanden sind, die nicht eindeutige Namen von Fremdfunktionen enthalten, entspricht der aufgerufene nicht eindeutige Funktionsname dem ersten Auftreten der Funktion, die auf den Inhalt im User Exit Cache-Speicher folgt.

HINWEIS:  Damit keine unerwartete Fremdfunktion aufgerufen wird, sollten Sie denselben Fremdfunktionsnamen nur einmal in jeder der User Exit-DLLs verwenden. Wenn zwei verschiedene Funktionen denselben Namen haben, jedoch in verschiedenen User Exit-DLLs enthalten sind, spricht man von einem nicht eindeutigen Funktionsnamen.

User Exit Cache-Speicher  Form Builder behandelt nicht eindeutige Funktionsnamen, indem ein User Exit Cache-Speicher verwaltet wird. Wenn eine Form beendet wird, wird der User Exit Cache-Speicher gelöscht. Sonst bleibt die zuletzt aufgerufene Fremdfunktion im User Exit Cache-Speicher, bis Sie eine weitere Fremdfunktion aufrufen.

Der Aufruf einer Fremdfunktion, die einen nicht eindeutigen Funktionsnamen hat, hängt vom Inhalt des User Exit Cache-Speichers ab. Das erste Auftreten einer Fremdfunktion mit einem nicht eindeutigen Funktionsnamen, die auf die Fremdfunktion in dem User Exit Cache-Speicher folgt, wird aufgerufen.

Wenn der User Exit Cache-Speicher leer ist, wird das erste Auftreten einer Funktion mit dem nicht eindeutigen Funktionsnamen in der Liste mit DLLs aufgerufen. Weil der Cache-Speicher erst gelöscht wird, wenn Sie eine Form verlassen, können nachfolgende Aufrufe eines nicht eindeutigen Funktionsnamens zu einem unerwarteten Fremdfunktionsaufruf führen. So können Sie z.B. versehentlich eine Funktion aufrufen, die auf eine Funktion mit einem eindeutigen Namen folgt, und nicht eine Funktion, die vorher in der Folge mit User Exit-DLLs aufgetreten ist. In vielen Fällen identifiziert der User Exit Cache-Speicher die Fremdfunktionen mit nicht eindeutigen Namen jedoch korrekt. Sie sollten, wenn möglich, eindeutige Fremdfunktionsnamen in der Liste mit DLLs angeben, die Bestandteil der Variablen FORMS60_USEREXITS sind.


Microsoft Windows SDK aus einem User Exit aufrufen

  Verwandte Themen

Sie können Funktionen des Microsoft Windows SDK aus einem User Exit aufrufen. Wenn Sie SDK-Funktionen von Microsoft Windows aufrufen, ist dies gleichbedeutend mit dem Aufruf von benutzerdefinierten Fremdfunktionen aus einem User Exit bei Microsoft Windows. Anstatt die Objektcodedateien der benutzerdefinierten Fremdfunktion beim Generieren einer DLL aufzunehmen, müssen Sie die Quelldateien der SDK-Funktion von Microsoft Windows aufnehmen.

Parameterwerte für die SDK-Funktionen von Microsoft Windows können von Form Builder übergeben oder empfangen werden, genau wie andere Fremdfunktionen. Bei SDK-Funktionen von Microsoft Windows, für die ein Fenster-Handle-Parameter erforderlich ist, können Sie das Fenster-Handle aus Form Builder mit der Funktion GET_ITEM_PROPERTY einlesen, um das Attribut Window_Handle zu überprüfen. Ein Fenster-Handle ist eine eindeutige interne Zeichenkonstante, die für das Referenzieren von Objekten benutzt wird.

Es gibt verschiedene Gründe für den Aufruf von Microsoft Windows SDK. Wenn Sie z.B. ein Fenster-Handle aus Form Builder aufrufen, können Sie SDK-Funktionen von Microsoft Windows aufrufen, um die Attribute von Objekten in Form Builder-Anwendungen extern zu ändern. Als nächstes sehen Sie ein Beispiel für den Aufruf der SDK-Funktion GetWindowRect von Microsoft Windows aus einem Form Builder-Trigger oder einem benutzerdefinierten Unterprogramm:

:block1.item_handle := get_item_property('block1.item1',Window_Handle);

USER_EXIT(GetWinRec || :block1.item_handle,'error_message');


Forms auf dem Web einsetzen

  HTML anzeigen (in 95)	  HTML anzeigen (in NT)

Anwendungen auf dem Web einsetzen enthält sowohl Informationen über die Grundlagen als auch Referenzen, mit denen Sie neue und bestehende Oracle Developer-Anwendungen einfacher auf dem Web einsetzen können. Hier finden Sie eine Dokumentation für den Einsatz von Forms-Anwendungen auf dem Web.

Während der Installation von Oracle Developer wird eine HTML-Version von Anwendungen auf dem Web einsetzen im /BIN-Verzeichnis des ORACLE_HOME-Verzeichnisses gespeichert. Bei Microsoft Windows NT ist das ORACLE_HOME-Verzeichnis im allgemeinen \ORANT. Bei Windows 95 (oder 98) ist das ORACLE_HOME-Verzeichnis im allgemeinen \ORAWIN95. Sie können das Inhaltsverzeichnis in Ihrem Standard-Browser aus diesem Verzeichnis aufrufen oder auf die entsprechende Schaltfläche HTML anzeigen am Anfang dieses Hilfethemas klicken.


Einführung in Fenster und Leinwände

Wenn Sie eine Form erstellen, stellen Sie die visuellen Elemente einer Form (d.h. Schnittstellenobjekte und Boilerplate-Objekte) für die Endbenutzer mit Fenstern und Leinwänden dar. Eine einzelne Form kann eine beliebige Anzahl von Fenstern und Leinwänden enthalten.

Beziehung zwischen Fenstern und Leinwänden  Für jedes Fenster, das Sie erstellen, müssen Sie mindestens eine Leinwand erstellen. Jede erstellte Leinwand muß einem Fenster zugewiesen sein. Zur Laufzeit werden Fenster und Leinwände als Reaktion auf Navigationsereignisse und programmgesteuerte Ereignisse angezeigt und geschlossen.

Um die Beziehung zwischen Schnittstellenobjekten, Leinwänden und Fenstern zu definieren, müssen Sie eine Reihe von Attributen festlegen. So hat z.B. jedes Schnittstellenobjekt (Textobjekt, Kontrollkästchen usw.) ein Attribut Leinwand, mit dem die Leinwand angegeben wird, auf der das Objekt angezeigt wird. (Wenn Sie ein Objekt im Layouteditor erstellen, beachten Sie, daß Form Builder dieses Attribut je nach aktueller Leinwand automatisch für Sie festlegt.) Jede Leinwand verfügt wiederum über ein Attribut Fenster, mit dem das Fenster angegeben wird, in dem die Leinwand angezeigt wird.


Was ist ein Fenster?

  Verwandte Themen

Ein Fenster ist ein Container für alle visuellen Objekte, aus denen eine Form Builder-Anwendung besteht, einschließlich Leinwänden. Eine einzelne Form kann eine beliebige Anzahl von Fenstern enthalten. Während jede neue Form automatisch ein Standardfenster namens FENSTER1 enthält, können Sie nach Bedarf zusätzliche Fenster erstellen, indem Sie diese unter dem Knoten Fenster im Objektnavigator einfügen.

Für sich selbst gesehen ist ein Fensterobjekt ein leerer Rahmen. Der Rahmen verfügt über eine Titelleiste und Handles für die Arbeit mit dem Fenster, so daß Endbenutzer einen Bildlauf durch das Fenster durchführen können, das Fenster verschieben und seine Größe ändern können.

Ein Fenster enthält typischerweise eine Leinwand mit navigierbaren Objekten. Es wird somit zur Laufzeit als Reaktion auf eine Navigation zu Objekten auf dieser Leinwand aufgerufen. Fenster können auch programmgesteuert angezeigt und geschlossen werden, unabhängig von der Navigation zu Objekten. Wenn ein Fenster programmgesteuert angezeigt wird oder wenn zu einem Objekt auf einer Leinwand navigiert wird, die diesem Fenster zugeordnet ist, zeigt Form Builder das Fenster mit dem entsprechenden Leinwandhintergrund an.

Um Erscheinungsbild und Funktionalität der erstellten Fenster zu definieren, können Sie zahlreiche Fenstereigenschaften angeben, einschließlich Größe, Anzeigeposition und Titel. Sie können außerdem die meisten Attribute programmgesteuert zur Laufzeit einlesen (prüfen) und einstellen. Schließlich können Sie Fenster nach Bedarf dynamisch anzeigen und verbergen.


Über Fenstertypen

  Verwandte Themen

Wenn Sie ein Fenster erstellen, geben Sie den Typ des Fensters mit dem Attribut Fensterstil an.

Es gibt zwei Fensterstile:

•	Dokument

•	Dialog

Dokumentfenster  In Dokumentfenstern werden typischerweise die Hauptleinwände und Arbeitsbereiche Ihrer Anwendung angezeigt, in denen der Großteil der Dateneingabe und des Datenabrufs erfolgt.

Dialogfenster  Dialogfenster sind variable Container, die im allgemeinen für modale Dialoge verwendet werden, bei denen eine sofortige Benutzerreaktion erforderlich ist.


Was ist eine Leinwand?

Eine Leinwand ist eine Oberfläche - in einem Fenstercontainer -, auf der Sie die Schnittstellenobjekte und Boilerplate-Objekte positionieren, mit denen die Endbenutzer bei der Ausführung der Form arbeiten. Standardmäßig wird jede zur Laufzeit erstellte Leinwand dem Fenster mit der Bezeichnung FENSTER1 zugewiesen. Um eine Leinwand explizit einem bestimmten Fenster zuzuordnen, stellen Sie das Attribut Fenster der Leinwand entsprechend ein.


Über Leinwandtypen

  Verwandte Themen

Form Builder verfügt über vier Leinwandtypen, die alle zur Laufzeit in demselben Fenster angezeigt werden können. Mit einem Leinwandtyp wird definiert, wie Form Builder die Leinwand in dem Fenster anzeigt, dem sie zugewiesen ist. Wenn Sie eine Leinwand erstellen, geben Sie den Typ mit dem Attribut Leinwandtyp an. Die vier Leinwandtypen sind:

•	Inhalt

•	Gestapelt

•	Register

•	Symbolleiste

Inhaltsleinwand  Der gebräuchlichste Leinwandtyp ist die Inhaltsleinwand (Standardtyp). Eine Inhaltsleinwand ist die "Basisansicht", die den gesamten Inhaltsbereich des Fensters belegt, in dem sie angezeigt wird. Sie müssen mindestens eine Inhaltsleinwand für jedes erstellte Fenster definieren.

Gestapelte Leinwand  Eine gestapelte Leinwand wird über der Inhaltsleinwand angezeigt - oder gestapelt -, die dem aktuellen Fenster zugewiesen ist. Gestapelte Leinwände verdecken einen Teil der zugrundeliegenden Inhaltsleinwand und werden häufig programmgesteuert angezeigt und verborgen. Sie können mehr als eine gestapelte Leinwand in einem Fenster gleichzeitig anzeigen.

Registerleinwand  Mit einer Registerleinwand - die aus einem oder mehreren Registern besteht -, können Sie eine große Anzahl von zusammengehörigen Informationen auf einem einzigen dynamischen Form Builder-Leinwandobjekt gruppieren und anzeigen. Genau wie gestapelte Leinwände werden Registerleinwände über der Inhaltsleinwand angezeigt, wobei sie diese teilweise verdecken. In Registern (aus denen die Registerleinwand kollektiv besteht) wird jeweils eine Teilmenge der Informationen angezeigt, die auf der ganzen Registerleinwand angezeigt werden.

Symbolleisten-Leinwand  Mit einer Symbolleisten-Leinwand werden häufig Symbolleisten für individuelle Fenster erzeugt. Sie können zwei Arten von Symbolleisten-Leinwänden erstellen: horizontale oder vertikale. Horizontale Symbolleisten-Leinwände werden am oberen Rand eines Fensters direkt unter der Menüleiste angezeigt, während vertikale Symbolleisten-Leinwände am äußeren linken Rand eines Fensters angezeigt werden.


Über Ausschnitte

  Verwandte Themen

Wenn Sie mit Leinwänden in Form Builder arbeiten, ist die Beziehung zwischen einer Leinwand und dem zugehörigen Ausschnitt ein fundamentales Konzept. Stellen Sie sich den Ausschnitt als ein Rechteck vor, das über die Leinwand positioniert wird. Der innerhalb des Ausschnitts sichtbare Leinwandbereich ist der Bereich, den die Benutzer sehen, wenn die Leinwand zur Laufzeit angezeigt wird.

Größe und Position des Ausschnitts ändern  Bei einer gestapelten Leinwand können Sie die Größe des Ausschnitts beim Entwurf angeben, indem Sie die Attribute Ausschnittbreite und Ausschnitthöhe entsprechend einstellen. Bei einer Inhalts-, Register- oder Symbolleisten-Leinwand werden diese Attribute ignoriert, weil die Ausschnittgröße von der Größe des Fensters selbst bestimmt wird. Durch Änderung der Größe des Fensters zur Laufzeit (z.B. durch Änderung der Größe mit der Maus) wird die Größe des Ausschnitts für die Inhaltsleinwand dieses Fensters ebenfalls geändert.

Bei jedem Leinwandtyp können Sie die Attribute einstellen, mit denen der Ursprung des Ausschnitts auf dem Bildschirm festgelegt wird, d.h. Sie können das Ausschnittrechteck auf eine bestimmte Stelle auf der Leinwand setzen. Wenn Sie den Ausschnitt verschieben, ändert sich genau wie bei der Größenänderung des Ausschnitts der Teil der Leinwand, den die Endbenutzer zur Laufzeit in dem Fenster sehen. Wenn eine Inhaltsleinwand größer ist als der Ausschnitt (d.h. größer als das zugehörige Fenster), kann ein Bildlauf durch das Fenster vorgenommen werden, um die Position des Ausschnitts auf der Leinwand zu ändern, so daß ein anderer Teil der Leinwand sichtbar wird.


Über MDI- und SDI-Fenster

  Verwandte Themen

Form Builder unterstützt sowohl die Microsoft Windows MDI- (Multiple Document Interface) als auch die SDI- (Single Document Interface) Systeme der Fensterverwaltung.

Multiple Document Interface

In MDI-Anwendungen wird ein standardmäßiges übergeordnetes Fenster angezeigt, das als Anwendungsfenster bezeichnet wird. Alle anderen Fenster in der Anwendung sind entweder Dokument- oder Dialog-Fenster.

Dokumentfenster werden immer innerhalb des Fensterrahmens der MDI-Anwendung angezeigt. Wenn der Endbenutzer die Größe des MDI-Fensters ändert, so daß es kleiner ist als ein Dokumentfenster, wird das Dokumentfenster abgeschnitten. Endbenutzer können ein Dokumentfenster maximieren, so daß es den ganzen Inhaltsbereich des Anwendungsfensters belegt. Dialogfenster sind variable Fenster, und der Endbenutzer kann sie an eine Stelle außerhalb des Anwendungsfensters verschieben, wenn die Fenster als verschieblich definiert sind. Wenn der Endbenutzer die Größe des MDI-Fensters so ändert, daß dieses kleiner ist als ein Dialogfenster, wird das Dialogfenster nicht abgeschnitten.

Das MDI-Anwendungsfenster wird vom Fensterverwaltungsprogramm zur Laufzeit erstellt und wird nicht in der Fensterliste einer Form angezeigt. Sie können jedoch die vordefinierte Prozedur SET_WINDOW_PROPERTY benutzen, um die Größe des MDI-Fensters programmgesteuert zu ändern, bzw. um dieses programmgesteuert zu minimieren oder zu maximieren.

Single Document Interface

Auch wenn es sich bei MDI um das Standardsystem der Fensterverwaltung bei Forms Runtime handelt, unterstützt Form Builder auch ein SDI-Hauptfenster bei Microsoft Windows.

Sie können das Fensterverwaltungssystem auf SDI setzen, indem Sie die Befehlszeilenoption USESDI angeben. Wenn SDI aktiviert ist, ergeben Aufrufe der Konstanten FORMS_MDI_WINDOW NULL für das MDI-Fenster-Handle. Es gibt kein Hauptfenster mit mehreren Schnittstellen. MDI-Symbolleisten sind in übergeordneten Fenstern vorhanden, und jedem Fenster sind MDI-Menüs zugeordnet.


Über das Hauptfenster

Hinweis: Das Konzept des Hauptfensters wird in Form Builder Release 5 und höher nicht mehr benutzt. Aus Gründen der Abwärtskompatibilität werden der Name ROOT_WINDOW, die zugehörigen Attribute und vordefinierten Prozeduren sowie das Verhalten des Hauptfensters weiter unterstützt

Im Hauptfenster wird die Konsole für die gerade aktive Form in Ihrer Anwendung angezeigt. Das Erstellen eines Hauptfensters in einer Form ist optional und wird am häufigsten in Anwendungen mit mehreren Forms benutzt (die zur gleichzeitigen Ausführung mehrerer Formmodule ausgelegt sind).

Ein Hauptfenster hat bestimmte Eigenschaften. Bei einer Anwendung mit mehreren Forms stellt ein Hauptfenster ein einzelnes Fenster dar, in dem immer die Konsole für die gerade aktive Form angezeigt wird. Dies ist nur bei anderen Plattformen als Microsoft Windows ein Vorteil, da die Konsole bei Microsoft Windows immer in dem MDI-Anwendungsfenster angezeigt wird.

Zur Laufzeit kann immer nur ein Hauptfenster gleichzeitig angezeigt werden. Wenn mehrere Forms mit jeweils einem Hauptfenster gleichzeitig ausgeführt werden, ist das Ergebnis ein einzelnes Hauptfenster, das die Konsole für die Form anzeigt, bei der es sich gerade um die aktive Form in der Anwendung handelt.

Das Hauptfenster in einer Anwendung mit mehreren Forms zeigt nicht nur die Konsole der aktiven Form an, sondern auch die aktuelle Inhaltsleinwand der aktuellen Form. Während der Endbenutzer zwischen geöffneten Forms navigiert, wird der Hintergrundbereich des Hauptfensters so aktualisiert, daß die Leinwand angezeigt wird, die dem Hauptfenster in der gerade aktiven Form zugewiesen ist.

In einer Anwendung mit mehreren Forms wirkt sich die Tatsache, daß immer nur ein Hauptfenster gleichzeitig angezeigt werden kann, auch auf das Verhalten der Forms aus, die andere Forms durch Ausführung der vordefinierten Prozeduren OPEN_FORM oder CALL_FORM aufrufen. Wenn sowohl die aufgerufene Form als auch die aufrufende Form ein Hauptfenster haben und das erste navigierbare Objekt in der aufgerufenen Form auf einer Leinwand steht, die dem Hauptfenster zugewiesen ist, führt die Ausführung von OPEN_FORM oder CALL_FORM dazu, daß die aufgerufene Form das Hauptfenster von der aufrufenden Form übernimmt.

Hauptfenster erstellen  Sie erstellen ein Hauptfenster, indem Sie ein Standardfenster erstellen und diesem den Namen ROOT_WINDOW geben.

Bei anderen Forms als Microsoft Windows-Forms können Sie das Fenster angeben, auf dem die Konsole angezeigt werden soll, indem Sie das Formattribut Konsolfenster festlegen. Bei einer Anwendung mit mehreren Forms können Sie in jeder Form ein Hauptfenster erstellen und diesem die Konsole zuweisen, indem Sie das Attribut Konsolfenster auf ROOT_WINDOW setzen.

Aufgrund der eindeutigen Eigenschaften des Hauptfensters gibt es für einige der Attribute feste Einstellungen. Wenn Sie diese Einstellungen in Form Builder außer Kraft setzen, hat dies keine Auswirkung auf das Laufzeitverhalten des Fensters. Die Attribute (und deren Standardeinstellungen) sind:

•	Schließbar (Ja)

•	Feste Größe (Nein)

•	Symbol möglich (Ja)

•	Menü vererben (Ja)

•	Verschieben zulässig (Ja)

•	Name

•	Beim Beenden verbergen (Nein)

•	Stil (Dokument)

•	Vertikale/Horizontale Bildlaufleiste (Nein)

•	Zoom möglich  (Ja)

Hauptfenster anzeigen  Form Builder zeigt das Hauptfenster beim Starten der Form an. Dieses wird während der ganzen Sitzung weiter angezeigt. Dies gilt selbst dann, wenn das Hauptfenster keine navigierbaren Objekte oder selbst keine Leinwände enthält. So kann eine Anwendung z.B. das Hauptfenster nur als Menüleiste benutzen, in der Status- und Meldungszeilen von Form Builder angezeigt werden, und kann dann Sekundärfenster verwenden, um die Hauptanwendungsleinwände anzuzeigen.


Über die Konsole

  Verwandte Themen

Die Konsole umfaßt die Statuszeile und die Meldungszeile und wird am unteren Rand des Fensters angezeigt, dem sie zugeordnet ist.

Bei Microsoft Windows wird die Konsole standardmäßig im MDI-Anwendungsfenster angezeigt. Sie können sie nicht in individuellen Dokument- oder Dialogfenstern in der Form anzeigen. Um die Konsole zu verbergen, setzen Sie das Attribut Konsolfenster auf Formebene auf NULL.

Bei anderen Plattformen als Windows-Plattformen können Sie die Konsole in nur einem Fenster anzeigen und können die Konsolzuweisung zur Laufzeit nicht ändern. Um die Konsole in einem Fenster anzuzeigen, setzen Sie das Attribut Konsolfenster auf Formebene auf das entsprechende Fenster. Um die Konsole zu verbergen, setzen Sie das Formattribut Konsolfenster auf NULL.


Über Fenstermodalität

  Verwandte Themen

Ein Fenster kann nicht-modal oder modal sein. Bei einem modalen Fenster (häufig ein Dialogfenster) muß der Endbenutzer reagieren, bevor die Arbeit in der aktuellen Anwendung fortgesetzt werden kann. Bei einem nicht-modalen Fenster ist eine derartige Reaktion nicht erforderlich. Beim Erstellen eines Fensters geben Sie die Modalität an, indem Sie das Attribut Modal auf Ja oder Nein einstellen. Der Standardwert ist Nein (nicht-modal).

Nicht-modale Fenster  Sie können mehrere nicht-modale Fenster gleichzeitig anzeigen, und Endbenutzer können frei zwischen diesen Fenstern navigieren (vorausgesetzt, die Anwendungslogik läßt dies zu). Bei den meisten GUI-Plattformen können Sie nicht-modale Fenster schichten, so daß diese entweder vor oder hinter anderen Fenstern angezeigt werden.

Nicht-modale Fenster werden angezeigt, bis sie vom Endbenutzer geschlossen oder programmgesteuert verborgen werden. Sie können das Attribut Beim Beenden verbergen für ein nicht-modales Fenster so einstellen, daß angegeben wird, ob das Fenster weiter angezeigt wird, wenn der Endbenutzer zu einem anderen Fenster navigiert. Sie können die Attribute eines nicht-modalen Fensters auch so einstellen, daß Umrandung und Titel angegeben werden und daß angegeben wird, ob Endbenutzer einen Bildlauf durch das Fenster vornehmen können, die Größe des Fensters ändern können, das Fenster verschieben, schließen, als Symbol anzeigen und vergrößern bzw. verkleinern können.

Modale Fenster  Modale Fenster werden im allgemeinen als Dialogfenster benutzt, haben jedoch eine eingeschränkte Funktionalität im Vergleich zu nicht-modalen Fenstern. Bei einigen Plattformen können die Endbenutzer die Größe eines modalen Fensters z.B. nicht ändern, können keinen Bildlauf durch ein modales Fenster vornehmen oder ein modales Fenster als Symbol anzeigen. Modale Fenster werden häufig mit einer plattformspezifischen Umrandung angezeigt, die für modale Fenster eindeutig ist. Bei einigen Plattformen sind modale Fenster "immer im Vordergrund", d.h. können nicht hinter nicht-modale Fenster gesetzt werden.

Neben den plattformspezifischen Einschränkungen verfügen modale Fenster über die folgenden Eigenschaften:

•	Das Attribut Beim Beenden verbergen gilt nicht für modale Fenster. Standardmäßig verhindert Form Builder, daß Endbenutzer mit der Maus aus modalen Fenstern heraus navigieren können, gestattet jedoch, daß die Endbenutzer mit Tastaturbefehlen zu einem anderen Fenster navigieren. Bei einer derartigen Navigation schließt Form Builder immer das modale Fenster, es sei denn, das Zielfenster ist selbst ein modales Fenster.

•	Modale Dialogfenster können keine Bildlaufleisten enthalten, so daß die Einstellung der Attribute Bildlaufleiste wirkungslos bleibt. (Modale Fenster, bei denen es sich nicht im Dialogfenster handelt, können  jedoch Bildlaufleisten enthalten.)

Modalität auf System- und Anwendungsebene  Bei einigen Plattformen sind modale Fenster nur in bezug auf andere Fenster in derselben Anwendung modal. Das heißt, wenn Form Builder ein modales Fenster anzeigt, kann der Endbenutzer weiter in Fenstern arbeiten, die anderen Anwendungen gehören.

Bei anderen Plattformen sind modale Fenster modal in bezug auf das ganze System und müssen geschlossen werden, bevor Endbenutzer eine Eingabe in Fenster senden können, die zu anderen Anwendungen gehören.


Über Bildlauffenster

In einem Bildlauffenster kann ein Endbenutzer Bildlaufleisten benutzen, um einen Bildlauf durch die Inhaltsleinwand vorzunehmen, die gerade in diesem Fenster angezeigt wird. Bei einem Bildlauf wird die Inhaltsleinwand sozusagen verschoben, um die x,y-Koordinaten des Ausschnitts-Ursprungs zu ändern und somit einen anderen Teil dieser Leinwand anzuzeigen. Beachten Sie, daß die Größe des Ausschnitts durch den Bildlauf nicht geändert wird, sondern nur dessen Position auf der Leinwand.

Sie können nur dann einen horizontalen Bildlauf durch ein Fenster vornehmen, wenn die Anzeigebreite des Fensters kleiner ist als die Breite der Inhaltsleinwand, die gerade in dem Fenster angezeigt wird. Ein vertikaler Bildlauf ist wiederum nur möglich, wenn die Fensterhöhe kleiner ist als die Höhe der aktuellen Inhaltsleinwand. (Beachten Sie, daß Endbenutzer die Größe eines Fensters zur Laufzeit ändern können.)

Wenn ein Fenster dieselbe Größe hat wie die aktuelle Inhaltsleinwand oder größer ist als die aktuelle Inhaltsleinwand, bleibt der Bildlauf wirkungslos, da kein Teil der Leinwand außerhalb des aktuellen Ausschnitts liegt (d.h. außerhalb des Fensters selbst).

Mit den Bildlaufleisten in einem Fenster kann nur ein Bildlauf durch die Inhaltsleinwand des Fensters vorgenommen werden. In dem Fenster angezeigte gestapelte Leinwände werden jedoch nach oben/nach unten und nach links/nach rechts verschoben, so als wären sie Bestandteil der Inhaltsleinwand. (Sie können Bildlaufleisten auch auf gestapelten Leinwänden definieren, diese sind jedoch unabhängig von den Bildlaufleisten des Fensters.)


Fenster erstellen

  Verwandte Themen

So erstellen Sie ein Fenster:

1	Klicken Sie auf den Knoten Fenster im Objektnavigator.

2	Klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

Form Builder erstellt ein Fenster und gibt diesem einen Standardnamen, wie z.B. FENSTER3.

3	Doppelklicken Sie auf das Objektsymbol für das Fenster.

4	Geben Sie die Fensterattribute wie gewünscht in der Attributpalette an.

Mit den Attributen unter den Knoten Funktional und Physikalisch werden Erscheinungsbild und Funktionalität des Fensters zur Laufzeit gesteuert. Einige Fensterverwaltungsprogramme unterstützen nicht all diese Attribute.

Hinweis:  Sie müssen jedem erstellten Fenster mindestens eine Inhaltsleinwand zuweisen. Um einem Fenster eine Leinwand zuzuweisen, legen Sie das Attribut Fenster der Leinwand auf das entsprechende Fenster fest.


Bildlauffenster erstellen

So erstellen Sie ein Bildlauffenster:

1	Erstellen Sie ein Fenster, und legen Sie die Attribute wie folgt fest:

Breite/Höhe - Die anfängliche Anzeigegröße. (Denken Sie daran, daß Endbenutzer die Größe eines Fensters zur Laufzeit ändern können, wenn Sie dies zulassen.)

Modal - Nein. (In einem modalen Fenster ist kein Bildlauf möglich.)

H/V Bildlaufleiste - Ja für eines oder beide Attribute. (Bestimmt die Richtung, in der die Endbenutzer den Bildlauf durch das Fenster vornehmen können.)

2	Erstellen Sie eine Leinwand für das Fenster, und bestimmen Sie die Attribute wie folgt:

Leinwandtyp - Inhalt.

Breite/Höhe - Geben Sie die Werte so an, daß die Leinwand größer ist als das Fenster.

Fenster - Der Name des Fensters, das Sie in Schritt 1 erstellt haben.

H/V Bildlaufleiste anzeigen - Ignorieren. (Diese Attribute gelten nur für gestapelte Leinwände.)


Symbole mit einem Fenster verknüpfen

  Verwandte Themen

Bei GUI-Plattformen können Endbenutzer ein nicht-modales Fenster als Symbol anzeigen oder minimieren, damit dieses auf dem Bildschirm nur mit einem Bitmap-Symbol dargestellt wird. Nachdem das Fenster auf Symbolgröße minimiert wurde, kann der Endbenutzer das Fenster erneut anzeigen, indem er auf das Symbol doppelklickt.

Um ein als Symbol anzeigbares Fenster zu erstellen, müssen Sie das Fenster mit einer Symbol-Resource-Datei verknüpfen, die in Ihrem Laufzeit-Betriebssystem vorhanden ist. Hierzu geben Sie die folgenden Fensterattribute an:

Minimimieren zulässig - Ja.

Symbol-Dateiname - Name der Bitmap-Symboldatei. (Form Builder sucht im Standardpfad für Resource-Dateien in Ihrem System nach dieser Datei.)

Minimierter Titel - Text, der mit dem Symbol zur Laufzeit angezeigt wird. (Wenn Sie keinen Titel angeben, benutzen einige Fensterverwaltungsprogramme einen Standardtitel für das Symbol.)

Um zu verhindern, daß Endbenutzer ein Fenster als Symbol anzeigen, setzen Sie das Attribut Minimieren zulässig auf Nein. (Die Attribute Symbol-Dateiname und Minimierter Titel werden ignoriert, wenn das Attribut Minimieren zulässig auf Nein gesetzt ist.)

Hinweis:  Bei Microsoft Windows wird der Suchpfad für Symboldateien von der Umgebungsvariablen UI60_ICON definiert, die sich in der Datei ORACLE.INI oder in der Microsoft Windows 32-Bit-Registrierung befindet. Wenn Sie den Namen einer Symboldatei in das Attribut Symbol-Dateiname eingeben, nehmen Sie den Pfad oder die Dateinamenerweiterung .ICO nicht auf.


Über modale Dialogfenster

Modale Dialogfenster werden häufig als interaktive Dialogfelder verwendet. Wenn eine Anwendung Informationen vom Endbenutzer benötigt, bevor fortgefahren werden kann, können Sie ein modales Dialogfenster anzeigen, damit der Endbenutzer die gewünschten Informationen eingeben kann. Bei den meisten Dialogfenstern muß der Endbenutzer entweder die erforderlichen Informationen eingeben oder das Dialogfeld schließen und den Vorgang abbrechen.

Die Datei- und Öffnen-Dialogfelder sind Beispiele für interaktive Fenster, die - bei den meisten GUI-Plattformen - als modale Dialogfelder implementiert sind. Warnfenster und Wertelisten sind Beispiele für spezielle modale Dialogfenster, bei denen es sich um spezielle Objekte in Form Builder handelt.


Modale Dialogfenster anzeigen

  Verwandte Themen

Wenn Sie ein modales Dialogfenster erstellen, müssen Sie entscheiden, wie das Dialogfenster angezeigt und geschlossen wird. Da ein modales Dialogfenster eine Eingabe vom Endbenutzer erfordert, muß die Inhaltsleinwand stets navigierbare Objekte enthalten. Deshalb zeigen Sie ein modales Dialogfenster am einfachsten durch Navigation von einem Objekt im aktuellen Fenster zu dem ersten navigierbaren Objekt im Dialogfenster an. Wenn eine derartige Navigation erfolgt, zeigt Form Builder das Fenster (in diesem Fall das modale Dialogfenster) automatisch an, das das Zielobjekt enthält.

Das Navigationsereignis könnte dadurch verursacht werden, daß der Endbenutzer die Tabulatortaste [Nächstes Objekt] drückt oder, wahrscheinlicher, durch einen Schaltflächentrigger oder einen Menübefehl, bei dem die Navigation programmgesteuert erfolgt. So könnten Sie z.B. die vordefinierten Prozeduren NEXT_BLOCK, GO_BLOCK oder GO_ITEM aus einem When-Button-Pressed-Trigger aufrufen, um zu einem Zielobjekt in dem Dialogfeld zu navigieren.

Außerdem können Sie die vordefinierte Prozedur SHOW_WINDOW ausführen, um das modale Fenster anzuzeigen. Wenn Sie SHOW_WINDOW verwenden, um ein modales Fenster anzuzeigen, navigiert die Prozedur implizit zum ersten navigierbaren Objekt auf der Leinwand für dieses Fenster.

Modale Fenster aus einem modalen Fenster aufrufen  Sie können ein modales Fenster aus einem anderen modalen Fenster aufrufen. So verfügt z.B. das standardmäßige modale Dialogfeld Seite einrichten von Microsoft Windows über eine Schaltfläche Optionen, mit der ein zweites modales Dialogfenster aufgerufen wird. Wenn ein modales Fenster aus einem anderen modalen Fenster aufgerufen wurde, werden sowohl das übergeordnete als auch das untergeordnete modale Fenster automatisch bei einer Navigation zu einem nicht-modalen Fenster in derselben Form geschlossen.


Modale Dialogfenster schließen

Bei den meisten Anwendungen werden modale Dialogfenster so lange angezeigt, bis der Endbenutzer sie entweder akzeptiert oder abbricht. Wenn Sie ein derartiges Fenster erstellen, müssen Sie sicherstellen, daß der Endbenutzer das Fenster nur als Folge der gewünschten Ereignisse schließen darf.

Wenn das Attribut Modal auf Ja eingestellt ist, werden Endbenutzer standardmäßig daran gehindert, mit der Maus aus dem Fenster zu navigieren. Allerdings werden sie nicht daran gehindert, zu einem anderen Fenster zu navigieren, indem sie Tasten wie [Nächstes Objekt] (Tabulatortaste) oder [Nächster Block] drücken. Wenn Endbenutzer Tasten benutzen können, um zu einem anderen Fenster zu navigieren, schließt Form Builder das modale Fenster immer, es sei denn, das Zielfenster ist selbst ein modales Fenster. (Bei modalen Fenstern wird das Attribut Beim Beenden verbergen ignoriert.)

Wenn Sie zu einem neuen modalen Fenster navigieren, wird das alte modale Fenster weiter angezeigt. Wenn Sie jedoch versuchen, von einem modalen Fenster zu einem anderen modalen Fenster zu navigieren, das schon angezeigt wurde, wird das aktuelle Fenster verborgen.

Tastaturnavigation unterbinden  Wenn Sie ein modales Dialogfenster implementieren, werden Sie im allgemeinen Endbenutzer daran hindern wollen, daß sie mit Navigationstasten aus dem Fenster herausnavigieren. Das Dialogfeld darf nur infolge bestimmter Ereignisse geschlossen werden, wie z.B. das Drücken der Schaltfläche OK oder Abbrechen durch den Endbenutzer.

Sie können die Tastaturnavigation aus einem modalen Dialogfenster auf verschiedene Weise unterbinden:

•	Stellen Sie die Attribute Vorheriger Navigationsdatenblock und Nächster Navigationsdatenblock für die Blöcke in dem Dialogfenster ein, um zu verhindern, daß Endbenutzer mit den Tasten [Nächster Block] und [Vorheriger Block] navigieren. Bei einem Block namens DIALOG könnten Sie z.B. beide Attribute auf DIALOG einstellen, um eine schleifenförmige Navigation zu verursachen und somit zu verhindern, daß Endbenutzer mit Tasten zu einem anderen Block navigieren.

•	Schreiben Sie entsprechende Trigger auf Blockebene für jeden Block in dem modalen Fenster. So könnten Sie z.B. einen Key-Others-Trigger auf Blockebene definieren, der alle Tasten mit Ausnahme der Tasten deaktiviert, für die Sie ebenfalls einen Tastentrigger definiert haben (wie z.B. Key-Nxt-Item), damit mit der Tabulatortaste zwischen Objekten in dem modalen Fenster navigiert werden kann.

Nachdem Sie Endbenutzer daran gehindert haben, ein Dialogfeld über die Tastaturnavigation zu schließen, müssen Sie die Befehle schreiben, mit denen Sie das Dialogfeld aufgrund der gewünschten Ereignisse schließen. Sie können ein modales Dialogfeld programmgesteuert schließen, indem Sie zu einem Objekt oder Block in einem nicht-modalen Fenster mit vordefinierten Prozeduren wie GO_ITEM und GO_BLOCK navigieren. Ein modales Fenster könnte z.B. eine Schaltfläche OK mit einem When-Button-Pressed-Trigger enthalten, der eine GO_BLOCK-Anweisung ausführt, um aus dem modalen Fenster herauszunavigieren.


Modale Dialogfenster erstellen

So erstellen Sie ein modales Dialogfenster:

1	Erstellen Sie ein neues Fenster, und legen Sie die Attribute wie folgt fest:

Fensterstil - Dialog. (Nur bei Microsoft Windows gültig.)

Modal - Ja.

Breite/Höhe - Optional. (Ein Dialogfenster ist typischerweise kleiner als das nicht-modale Fenster, aus dem der Endbenutzer es aufruft.)

2	Erstellen Sie eine Inhaltsleinwand, und setzen Sie dessen Attribut Fenster auf das modale Fenster, das Sie in Schritt 1 erstellt haben.

3	Erstellen Sie die Objekte, die in dem Fenster angezeigt werden.

4	Legen Sie die Ereignisse fest, die angezeigt werden, und schließen Sie das modale Dialogfenster zur Laufzeit.


Über das Arbeiten mit Leinwänden

Während Sie Leinwände im Objektnavigator erstellen und löschen können, führen Sie die meisten leinwandbezogenen Aufgaben im Layouteditor aus.

Leinwände bearbeiten  Im Layouteditor bearbeiten Sie jeweils eine Leinwand. Standardmäßig ist die Leinwand selbst ein Objekt, das ausgewählt und formatiert werden kann. Sie können das Leinwandobjekt verbergen, indem Sie die Menüoption Ansicht [image] Leinwand anzeigen umschalten. Viele Leinwandattribute können grafisch sowohl im Layouteditor als auch in der Attributpalette festgelegt werden.

Hinweis:  Sie können die Leinwand oder Ansichtobjekte im Layouteditor nicht löschen, ausschneiden, kopieren, exportieren oder duplizieren.


Leinwände erstellen

  Verwandte Themen

So erstellen Sie eine Leinwand im Objektnavigator:

1	Klicken Sie im Objektnavigator auf den Knoten Leinwände, und klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

Form Builder erstellt eine neue Leinwand und gibt ihr einen Standardnamen, wie z.B. LEINWAND4.

2	Klicken Sie auf das Objektsymbol der Leinwand, und wählen Sie Werkzeuge [image] Attributpalette.

3	In der Attributpalette setzen Sie das Attribut Leinwandtyp unter dem Knoten Allgemein auf den gewünschten Typ.

Hinweis:  Der Standard-Leinwandtyp ist Inhalt. Bei einer Inhaltsleinwand gelten die Attribute, die unter der Überschrift Gestapelte Ansicht angezeigt werden, nicht.

4	Stellen Sie das Attribut Fenster auf das Fenster ein, in dem die Leinwand angezeigt werden soll.

Standardmäßig werden neue Leinwände dem ersten Fenster zugewiesen, das unter dem Knoten Fenster im Objektnavigator aufgeführt wird.

Hinweis:  Um die neue Leinwand im Layouteditor anzuzeigen, doppelklicken Sie auf das Objektsymbol der Leinwand im Objektnavigator.


Primärleinwände definieren

  Verwandte Themen

Um eine Primärleinwand für ein Fenster zu definieren, stellen Sie das entsprechende Attribut Primäre Leinwand auf die gewünschte Leinwand ein. Form Builder zeigt ein Fenster mit der Primärleinwand an, wenn das Fenster programmgesteuert angezeigt wird und nicht als Reaktion auf ein Navigationsereignis.

Wann wird das Attribut Primäre Leinwand eingestellt  Die Einstellung des Attributs Primäre Leinwand ist optional. Die meisten Fenster werden nach einer Navigation zu einem Objekt auf einer bestimmten Leinwand angezeigt. In diesen Fällen ist die Einstellung des Attributs Primäre Leinwand nicht erforderlich, da die anzuzeigende Leinwand immer eindeutig ist.

Wenn Sie ein Fenster das erste Mal während einer Sitzung mit der vordefinierten Prozedur SHOW_WINDOW anzeigen, zeigt Form Builder ein Fenster mit der zugehörigen Primärleinwand an. Wenn für das Attribut Primäre Leinwand keine Angaben gemacht werden, wird das Fenster ohne einen Ausschnitt angezeigt und erscheint leer.

Möglicherweise sollten Sie das Attribut Primäre Leinwand einstellen, wenn ein Fenster aufgrund der Navigation zu einem Objekt auf einer gestapelten Leinwand angezeigt wird. Wenn die Inhaltsleinwand des Fensters hinter der gestapelten Leinwand angezeigt werden soll, müssen Sie das Attribut Primäre Leinwand entsprechend einstellen.

Form Builder zeigt immer das Zielobjekt und die Zielleinwand während eines Navigationsereignisses an. Wenn Sie also das Attribut Primäre Leinwand so eingestellt haben, daß eine Primärleinwand angegeben wird, zeigt Form Builder gegebenenfalls eine andere Leinwand an, damit da Zielobjekt sichtbar wird.


Leinwände löschen

  Verwandte Themen

So löschen Sie eine Leinwand:

1	Klicken Sie im Objektnavigator auf das Objektsymbol der zu löschenden Leinwand.

2	Klicken Sie auf das Symbol Löschen in der Symbolleiste.

Hinweis:  Wenn Sie eine Leinwand löschen, löscht Form Builder auch Boilerplate-Objekte, die Bestandteil der Leinwand sind. Schnittstellenobjekte, die der Leinwand zugewiesen sind, werden jedoch nicht gelöscht. Sie werden hingegen zu NULL-Leinwandobjekten (Objekten, die keiner Leinwand zugewiesen sind). Beachten Sie, daß NULL-Leinwandobjekte zur Laufzeit nicht angezeigt werden.


Mit gestapelten und Registerleinwänden im Layouteditor arbeiten

Sie können sowohl gestapelte als auch Registerleinwände direkt im Layouteditor erstellen und bearbeiten.

Erstellen  Um gestapelte oder Registerleinwände zu erstellen, können Sie die Schaltflächen Gestapelte Leinwand oder Registerleinwand in der Symbolleiste des Layouteditors benutzen. Um eine Registerleinwand zu erstellen, zeigen Sie z.B. zuerst den Layouteditor an. Danach klicken Sie auf [image] in der Symbolleiste, und ziehen Sie bei gedrückter Maustaste einen rechteckigen Bereich, in dem die Registerleinwand auf der zugrundeliegenden Inhaltsleinwand angezeigt werden soll. Nachdem Sie die Registerleinwand erstellt haben, können Sie ihre Größe auch im Layouteditor sofort ändern oder die Leinwand verschieben.

Bearbeiten  Mit dem Layouteditor können Sie Objekte auf einer gestapelten oder Registerleinwand auf zwei verschiedene Arten bearbeiten: (1) direkt oder (2) in dem gestapelten Ausschnitt einer Inhaltsleinwand. Um eine gestapelte oder Registerleinwand direkt zu bearbeiten, rufen Sie den Layouteditor auf, wählen Sie die entsprechende Leinwand aus dem Kombinationsfeld Leinwand am oberen Rand des Fensters. Danach verschieben, bearbeiten oder ändern Sie die Größe der Objekte auf der Leinwand. Um eine gestapelte oder Registerleinwand in dem gestapelten Ausschnitt einer Inhaltsleinwand zu bearbeiten, rufen Sie den Layouteditor auf, zeigen Sie die entsprechende Inhaltsleinwand an, wählen Sie Anzeigen [image] Gestapelte Ausschnitte, wählen Sie die entsprechende Leinwand aus dem Dialogfeld Gestapelte Leinwände, und verschieben, bearbeiten oder ändern Sie die Größe der Objekte auf der Leinwand.

Automatische Synchronisation  Form Builder synchronisiert Objekte in dem gestapelten Ausschnitt der Inhaltsleinwand und das entsprechende Objekt in der aktuellen gestapelten Leinwand. So wird z.B. jede Verschiebung, Skalierung oder Änderung bei den visuellen Attributen eines Objekts auf einer gestapelten Leinwand aus dem gestapelten Ausschnitt in der Inhaltsleinwand in der gestapelten Leinwand reflektiert, wenn diese aus dem Layouteditor aufgerufen wird. Wenn Änderungen an Objekten auf einer gestapelten Leinwand aus einem Layouteditor vorgenommen werden, werden die Änderungen ebenfalls in dem gestapelten Ausschnitt der Inhaltsleinwand reflektiert.


Leinwände im Layouteditor skalieren

So skalieren Sie eine Leinwand im Layouteditor:

1	Prüfen Sie im Layouteditor, ob das Leinwandobjekt angezeigt wird, indem Sie Ansicht Leinwand anzeigen auswählen (Standard).

2	Führen Sie einen Bildlauf durch das Layouteditor-Fenster durch, bis die untere rechte Ecke der Leinwand sichtbar ist. Danach klicken Sie auf den rechten oder unteren Rand der Leinwand, um sie auszuwählen.

Wenn die Leinwand ausgewählt ist, wird eine schwarze Auswahlmarkierung in der unteren rechten Ecke angezeigt.

3	Klicken und ziehen Sie die Auswahlmarkierung, um die Leinwand nach Bedarf zu skalieren.


Visuelle Attribute einer Leinwand im Layouteditor bestimmen

So bestimmen Sie die visuellen Attribute einer Leinwand im Layouteditor:

1	Prüfen Sie im Layouteditor, ob die Leinwand im Kombinationsfeld Leinwand angezeigt wird (d.h. ob sie die aktuelle Leinwand im Layouteditor ist).

2	Wählen Sie die gewünschten Farben aus den Farbpaletten.


Ansicht im Layouteditor anpassen

  Verwandte Themen

Ansicht anzeigen  Um die Ansicht für die aktuelle Leinwand in einem schwarzen Rechteck mit 1 Punkt im Layouteditor anzuzeigen, aktivieren Sie die Menüoption Ansicht [image] Ausschnitt anzeigen.

Ansicht skalieren  Bei einer Inhalts- oder Symbolleisten-Leinwand stellt das Ansichtrechteck das Fenster dar, dem die Leinwand zugewiesen ist. Wenn Sie die Ansicht im Layouteditor skalieren, werden die Attribute Breite und Höhe des Fensters geändert. Wenn Sie umgekehrt die Attribute Breite oder Höhe des Fensters ändern, wird das Ansichtrechteck im Layouteditor skaliert. Bei einer gestapelten Leinwand ist die Ansicht unabhängig von dem Fenster, in dem die Leinwand angezeigt wird, und die Größe wird von den Attributen Ausschnittbreite und Ausschnitthöhe bestimmt.

Ansicht verschieben  Um die Ansicht zu verschieben, klicken Sie auf den Umriß der Ansicht, und ziehen Sie sie an die gewünschte Stelle. Durch das Verschieben der Ansicht werden die Attribute Ausschnitt X/Y-Position auf Leinwand geändert. Um die Ansicht zu skalieren, klicken Sie auf die Ansicht, um sie auszuwählen, und ziehen Sie dann eine der Auswahlmarkierungen.


Über Inhaltsleinwände

Wenn Sie eine Anwendung erstellen, werden zuerst die Inhaltsleinwände erstellt, die in den Fenstern der Form(s) angezeigt werden. Sie können zwar mehr als eine Inhaltsleinwand demselben Fenster beim Entwurf zuweisen, zur Laufzeit wird jedoch immer nur eine Inhaltsleinwand in dem Fenster angezeigt.

Inhaltsleinwände erstellen

Es gibt drei Möglichkeiten, eine Inhaltsleinwand in Form Builder zu erstellen:

•	Layout-Assistent  Wenn Sie den Layout-Assistenten benutzen, um Datenblockobjekte auf einer Leinwand anzuordnen, können Sie mit dem Layout-Assistenten Datenblockobjekte auf einer neuen Inhaltsleinwand positionieren (die der Layout-Assistent für Sie erstellt und der er einen Standardnamen gibt, wie z.B. LEINWAND3).

•	Layouteditor  Im Layouteditor können Sie Objekte und Boilerplate-Objekte auf einer bestimmten Leinwand erstellen. (Wenn beim Aufruf des Layouteditors keine Leinwände in einer Form vorhanden sind, erstellt Form Builder automatisch eine Standard-Inhaltsleinwand, mit der Sie arbeiten können.)

•	Objektnavigator  Um eine Inhaltsleinwand im Objektnavigator zu erstellen, erstellen Sie zuerst die Leinwand und geben dann den Typ an, indem Sie das Attribut Leinwandtyp in der Attributpalette einstellen.


Einem Fenster mehrere Inhaltsleinwände zuweisen

  Verwandte Themen

Wenn Sie demselben Fenster beim Entwurf mehr als eine Inhaltsleinwand zuweisen, entwerfen Sie potentielle Inhaltsleinwände für dieses Fenster. Zur Laufzeit können Sie immer nur eine Inhaltsleinwand in einem einzelnen Fenster anzeigen. Anders ausgedrückt, wenn demselben Fenster mehr als eine Inhaltsleinwand zugewiesen ist, bestimmen die Laufzeitereignisse, welche Leinwand als aktuelle Inhaltsleinwand in diesem Fenster angezeigt wird.

Betrachten Sie eine Form mit einem Fenster und zwei Inhaltsleinwänden (die beide dem Fenster zugewiesen sind). Beim Starten der Form muß Form Builder festlegen, welche Leinwand anfänglich in dem Fenster angezeigt werden soll. Standardmäßig setzt Form Builder den Eingabefokus auf das erste navigierbare Objekt im ersten Block in der Form. In diesem Beispiel wird die Inhaltsleinwand, die das erste navigierbare Objekt in der Form enthält (wie von der Navigationssequenz definiert) zur aktuellen Inhaltsleinwand für das Fenster.

Betrachten Sie nun ein Online-Hilfefenster, dem zwei Inhaltsleinwände zugewiesen sind. In jeder Inhaltsleinwand wird ein Boilerplate-Hilfetext angezeigt, und keine der Leinwände enthält navigierbare Objekte. Endbenutzer können das Hilfefenster aufrufen, indem sie auf eine Schaltfläche klicken, die die vordefinierte Prozedur SHOW_WINDOW ausführt. Auch hier muß Form Builder bestimmen, welche Leinwand beim Aufrufen des Fensters anfänglich angezeigt wird. Da keine Navigation erfolgt, wird die Inhaltsleinwand, die als primäre Leinwand des Fensters angegeben ist, in dem Fenster angezeigt. (Um eine primäre Leinwand für ein Fenster anzugeben, setzen Sie das optionale Attribut Primäre Leinwand.)


Über gestapelte Leinwände

  Verwandte Themen

Gestapelte Leinwände werden in einem Fenster zusammen mit der bzw. den Inhaltsleinwänden des Fensters und einer beliebigen Anzahl anderer gestapelter Leinwände angezeigt. Sie können die Attribute für Umriß, Farbe und Muster einer gestapelten Leinwand so festlegen, daß diese anders aussieht als die zugrundeliegende Inhaltsleinwand. Im umgekehrten Fall können Sie festlegen, daß die gestapelte Leinwand wie die Inhaltsleinwand aussieht, und die gestapelte Leinwand dann programmgesteuert anzeigen und verbergen, damit Endbenutzer nicht bemerken, daß eine separate Leinwand angezeigt wird.

Mit dieser Technik können Objekte oder Boilerplates so dargestellt werden, daß sie sich dynamisch zu verändern scheinen. Beim Navigieren von einem Inhaltsleinwandobjekt zu einem Objekt des Typs gestapelte Leinwand wird nur die gestapelte Leinwand angezeigt, da die Inhaltsleinwand ausgeblendet wird.

Eine gestapelte Leinwand wird in etwa wie eine Inhaltsleinwand erstellt. Um eine gestapelte Leinwand zu definieren, müssen Sie bestimmte Leinwandattribute festlegen, die nur für gestapelte Leinwände gelten. Objekte und Boilerplate-Text sowie Grafiken werden wie bei einer Inhaltsleinwand erstellt.

Hinweis:  Um eine bestehende Inhaltsleinwand in eine gestapelte Leinwand umzuwandeln, ändern Sie einfach das Attribut Leinwandtyp von Inhalt in Gestapelt.

Zur Laufzeit werden gestapelte Leinwände automatisch als Reaktion auf die Navigation angezeigt, genau wie die Inhaltsleinwände. Um gestapelte Leinwände programmgesteuert anzuzeigen und zu verbergen, benutzen Sie die vordefinierten Prozeduren SHOW_VIEW, HIDE_VIEW und SET_VIEW_PROPERTY.

Verwendungszwecke für gestapelte Leinwände

Gestapelte Leinwände werden für folgende Zwecke benutzt:

•	Anzeige von Objekten und Boilerplate-Grafiken, die Endbenutzer nur in bestimmten Fällen sehen müssen. (Definieren Sie eine gestapelte Leinwand, mit der Hilfetext oder Bilder angezeigt werden, die verborgen bleiben, bis sie explizit vom Endbenutzer aufgerufen werden.)

•	Anzeige von Kopfzeilen mit konstanten Informationen, wie z.B. Firmennamen, Datumsangaben und Statusinformationen. (Definieren Sie eine Leinwand, die immer vor der aktuellen Inhaltsleinwand angezeigt wird. Wenn die aktuelle Inhaltsleinwand durch eine andere Leinwand ersetzt wird, bleibt die gestapelte Leinwand im Fenster sichtbar. Benutzen Sie diese Technik, um das Duplizieren von Schnittstellenelementen bei mehreren Inhaltsleinwänden im selben Fenster zu umgehen.)

•	Erstellen eines Blocks mit Objekten, durch die ein dynamischer Bildlauf vorgenommen wird, wenn sie angezeigt werden, genau wie bei einem Kalkulationsblatt. (Wenn ein Block mehr Objekte enthält, als in ein Fenster passen, führt Form Builder automatisch einen Bildlauf durch das Fenster durch, während der Endbenutzer mit der Tabulatortaste zu Objekten außerhalb des Fensterrahmens geht. Dadurch können wichtige Felder - wie z.B. Primärschlüsselwerte - aus dem Fenster und somit aus dem Sichtweite des Endbenutzers herausgerollt werden. Bei einem Block, mit dem Informationen über Aufträge angezeigt werden, muß z.B. die Auftrags-ID immer sichtbar sein, unabhängig von der Navigation durch den Endbenutzer. Wenn in diesem Fall das Objekt mit der Auftrags-ID auf die zugrundeliegende Inhaltsleinwand gesetzt wird und bildlauffähige Objekte außerhalb der Sichtweite auf eine gestapelte Leinwand gesetzt werden, wird die gestapelte Leinwand zum Bildlaufbereich und nicht das Fenster selbst. Beachten Sie, daß gestapelte Leinwände eigene Bildlaufleisten haben können, unabhängig von den Bildlaufleisten des Fensters.)


Gestapelte Leinwände erstellen

  Verwandte Themen

So erstellen Sie eine gestapelte Leinwand:

1	Doppelklicken Sie im Objektnavigator unter dem Knoten Leinwände auf das Objektsymbol der Inhaltsleinwand, auf der Sie eine gestapelte Leinwand erstellen möchten.

2	Klicken Sie im Layouteditor in der Symbolleiste auf die Schaltfläche Gestapelte Leinwand.

3	Klicken und ziehen Sie den Bereich, in den Sie die gestapelte Leinwand setzen möchten.

Form Builder erstellt eine gestapelte Leinwand und gibt dieser einen Standardnamen, wie z.B. LEINWAND6.

4	Klicken Sie im Objektnavigator unter dem Knoten Leinwände auf das Objektsymbol der gestapelten Leinwand, und wählen Sie Werkzeuge [image] Attributpalette.

5	Bestimmen Sie die Attribute in der Attributpalette unter den Knoten Physikalisch, Ausschnitt und Verschiedenes wie folgt:

Sichtbar - Ja (die gestapelte Leinwand ist sichtbar, wenn das Fenster aufgerufen wird) oder Nein (die gestapelte Leinwand bleibt verborgen, bis sie aufgrund einer Navigation oder programmgesteuerter Ereignisse angezeigt wird).

Breite/Höhe - Leinwandabmessungen. Gestapelte Leinwände sind typischerweise kleiner als die Inhaltsleinwände in demselben Fenster.

Umriß - Typ der Umrandung für die Leinwand. Benutzen Sie eine Umrandung, um eine gestapelte Leinwand von den anderen Leinwänden in demselben Fenster zu trennen.

Ausschnittbreite/Ausschnitthöhe - Abmessungen des Ausschnitts der gestapelten Leinwand. Wenn der Ausschnitt kleiner ist als die Leinwand, können Endbenutzer zur Laufzeit einen Bildlauf durch die Leinwand vornehmen.

Ausschnitt X/Y-Position auf Leinwand - Mit X,Y werden die Koordinaten der oberen linken Ecke des Ausschnitts (relativ zur oberen linken Ecke der Inhaltsleinwand, die gerade in dem Fenster angezeigt wird) angezeigt. Bei 0,0 (Standardwert) wird die gestapelte Leinwand in der oberen linken Ecke der Inhaltsleinwand angezeigt.

H/V Bildlaufleiste anzeigen - In diesem Fall wird festgelegt, ob die gestapelte Leinwand eine Bildlaufleiste (horizontal und/oder vertikal, keine) hat. Endbenutzer können einen Bildlauf durch die gestapelte Leinwand unabhängig von der zugrundeliegenden Inhaltsleinwand vornehmen.

6	Definieren Sie die Position der gestapelten Leinwand in der Stapelfolge.

Wenn die gestapelte Leinwand nicht programmgesteuert oder aufgrund einer Navigation angezeigt wird, prüfen Sie, ob sie aufgrund ihrer Position in der Stapelfolge vor der Inhaltsleinwand steht, die demselben Fenster zugewiesen ist. Sonst wird die gestapelte Leinwand hinter der Inhaltsleinwand angezeigt und ist zur Laufzeit nicht sichtbar. Denken Sie daran, daß die Stapelfolge von Leinwänden in einem Fenster durch die Reihenfolge definiert wird, in der die Leinwände unter dem Knoten Leinwände im Objektnavigator aufgeführt werden.


Gestapelte Leinwände im Layouteditor bearbeiten

So bearbeiten Sie eine gestapelte Leinwand im Layouteditor:

1	Im Objektnavigator öffnen Sie den Knoten Leinwände, und klicken Sie auf das Objektsymbol der gewünschten gestapelten Leinwand.

2	Doppelklicken Sie auf das Objektsymbol für die gestapelte Leinwand.

Jetzt können Sie Objekte und Boilerplate-Grafiken genau wie bei einer Inhaltsleinwand erstellen. Außerdem können Sie die Größe der Leinwand oder des Ausschnitts selbst grafisch ändern.


Gestapelte Ausschnitte einer Inhaltsleinwand im Layouteditor anzeigen

  Verwandte Themen

So zeigen Sie gestapelte Ausschnitte an, die dem Fenster mit der Inhaltsleinwand zugewiesen sind:

1	Doppelklicken Sie im Objektnavigator unter dem Knoten Leinwände auf das Objektsymbol für die Inhaltsleinwand.

2	Wählen Sie Ansicht [image] Gestapelte Ausschnitte im Layouteditor.

Form Builder zeigt das Dialogfeld Gestapelte Leinwände an, in dem alle gestapelten Leinwände dargestellt werden, die demselben Fenster wie die Inhaltsleinwand zugewiesen sind, die gerade im Layouteditor angezeigt wird.

3	Wählen Sie die gestapelten Leinwände, die im Layouteditor angezeigt werden sollen. (Heben Sie die Auswahl der Leinwände auf, die nicht angezeigt werden sollen.)

Um eine gestapelte Leinwand auszuwählen, klicken Sie im Dialogfeld Gestapelte Leinwände auf diese Leinwand. Klicken Sie bei gedrückter Strg-Taste auf die ausgewählten gestapelten Leinwände, um diese auf derselben Inhaltsleinwand anzuzeigen.

Um die Auswahl einer gestapelten Leinwand aufzuheben, die schon in der Inhaltsleinwand angezeigt wird, klicken Sie bei gedrückter Strg-Taste auf die ausgewählte gestapelte Leinwand im Dialogfeld Gestapelte Leinwände.

Wenn Sie auf diese Weise eine gestapelte Leinwand anzeigen, sehen Sie genau, was der Endbenutzer zur Laufzeit sieht, d.h. Sie sehen nur den Teil der gestapelten Leinwand, der innerhalb des Ausschnittes steht, wie mit den Attributen Ausschnittbreite und Ausschnitthöhe angegeben.

Sobald die gestapelte Leinwand angezeigt wird, können Sie ihre Attribute im Layouteditor ändern, indem Sie die Leinwand grafisch wie folgt bearbeiten:

•	Bewegen Sie die gestapelte Leinwand, um die Attribute Ausschnitt X-Position und Ausschnitt Y-Position zu ändern.

•	Skalieren Sie die gestapelte Leinwand, um die Attribute Ausschnittbreite und Ausschnitthöhe zu ändern. Wenn Sie den Ausschnitt auf diese Weise skalieren, wird die Größe der Leinwand nicht geändert, sondern nur die Größe des Ausschnitts. Um die Leinwand zu skalieren, legen Sie die Leinwandattribute Breite und Höhe in der Attributpalette fest. Nur Objekte und Boilerplate, die vollständig auf der Leinwand sichtbar sind, werden zur Laufzeit angezeigt, selbst wenn der Ausschnitt größer ist als die Leinwand.

•	Bei einer gestapelten Leinwand mit Bildlaufleisten nehmen Sie einen Bildlauf durch die Leinwand vor, um die anfänglichen Laufzeiteinstellungen für die Attribute Ausschnitt X-Position auf Leinwand und Ausschnitt Y-Position auf Leinwand zu ändern.


Über Registerleinwände

  Verwandte Themen

Mit einer Registerleinwand - die aus einem oder mehreren Registern besteht - können Sie eine große Menge zusammengehöriger Informationen in einem einzigen, dynamischen Leinwandobjekt zusammenfassen und anzeigen. Wie gestapelte Leinwände werden Registerleinwände über einer Inhaltsleinwand angezeigt, wobei diese teilweise verdeckt wird. In den Registern wird eine Teilmenge der Informationen angezeigt, die in der ganzen Registerleinwand angezeigt werden.


Über Register

  Verwandte Themen

Eine Registerleinwand kann mehrere Register enthalten, muß jedoch mindestens ein Register umfassen. Stellen Sie sich Register wie Ordner in einem Ablagesystem vor. Jedes einzelne Register (jeder Ordner) verfügt über Registertabs, auf die Entwickler und Endbenutzer klicken, um das Register zu öffnen. Beim Entwurf oder zur Laufzeit klicken Sie auf das Registertab, um das Register im Vordergrund der Registerleinwand anzuzeigen, wobei andere Register verdeckt werden.

Jedes Register belegt den gleichen Platz auf der Registerleinwand, der etwa der Größe der Leinwand selbst entspricht. Dieses Schichten von zusammengehörigen Leinwandabschnitten ermöglicht die Anzeige einer größeren Menge von Informationen auf einer einzelnen Leinwand.

Register sind Unterobjekte einer Registerleinwand. Wie die Leinwand, der sie zugeordnet ist, verfügt jedes Register über Attribute. Außerdem hat jedes Objekt, das Sie auf eine Registerleinwand setzen, ein Leinwandattribut und Registerattribute. Die Anordnung der Register im Objektnavigator bestimmt die Reihenfolge von links nach rechts (oder von oben nach unten) der Register zur Laufzeit.


Registerleinwände erstellen

  Verwandte Themen

So erstellen Sie eine Registerleinwand:

1	Doppelklicken Sie im Objektnavigator unter dem Knoten Leinwände auf das Objektsymbol der Inhaltsleinwand, auf der Sie eine Registerleinwand erstellen möchten.

2	Im Layouteditor klicken Sie in der Symbolleiste auf [image] .

3	Klicken und ziehen Sie den Bereich, in den Sie die Registerleinwand setzen möchten.

Form Builder erstellt eine Registerleinwand (mit zwei Registern) und gibt dieser einen Standardnamen, wie z.B. LEINWAND6.

4	Klicken Sie im Objektnavigator unter dem Knoten Leinwände auf das Objektsymbol der Registerleinwand. Danach wählen Sie Werkzeuge [image] Attributpalette, um die Attributpalette anzuzeigen.

5	Unter dem Knoten Ausschnitt machen Sie folgende Angaben:

•	Legen Sie die Attribute Ausschnitt X/Y-Position auf Leinwand fest. (Geben Sie die X,Y-Anzeigekoordinaten der oberen linken Ecke des Ausschnitts relativ zur oberen linken Ecke der Inhaltsleinwand ein, die gerade in dem Fenster angezeigt wird. Mit 0,0 (Standardwert) wird die Registerleinwand in der oberen linken Ecke der Inhaltsleinwand angezeigt.)

•	Bestimmen Sie die Attribute Ausschnittbreite und Ausschnitthöhe. (Geben Sie die Abmessungen für den Ausschnitt der Registerleinwand ein. Wenn der Ausschnitt kleiner ist als die Leinwand, können Endbenutzer zur Laufzeit einen Bildlauf durch die Leinwand vornehmen.)

6	Unter dem Knoten Physikalisch machen Sie folgende Angaben:

•	Stellen Sie das Attribut Sichtbar auf Ja (die Registerleinwand ist sichtbar, wenn das Fenster aufgerufen wird) oder auf Nein ein (die Registerleinwand bleibt verborgen, bis sie aufgrund einer Navigation oder programmgesteuerter Ereignisse angezeigt wird).

•	Bestimmen Sie die Attribute Breite/Höhe. (Geben Sie die Abmessungen der Leinwand ein. Registerleinwände sind im allgemeinen kleiner als die Inhaltsleinwand bzw. -leinwände im selben Fenster.)

7	Definieren Sie die Position der Registerleinwand in der Stapelfolge.

Wenn die Registerleinwand nicht programmgesteuert oder aufgrund einer Navigation angezeigt wird, muß sie aufgrund ihrer Position in der Stapelfolge vor die Inhaltsleinwand gesetzt werden, die demselben Fenster zugewiesen ist. Wenn nicht, wird die Registerleinwand hinter der Inhaltsleinwand angezeigt und ist zur Laufzeit nicht sichtbar. Denken Sie daran, daß die Stapelfolge der Leinwände in einem Fenster von der Reihenfolge bestimmt wird, in der die Leinwände unter dem Knoten Leinwände im Objektnavigator aufgeführt werden.


Register erstellen

  Verwandte Themen

So erstellen Sie ein Register:

1	Klicken Sie im Objektnavigator unter dem Knoten Leinwände auf den Knoten Registerseiten der Registerleinwand.

2	Klicken Sie in der Symbolleiste einmal für jedes zu erstellende Register auf die Schaltfläche Erstellen [image].

Form Builder erstellt die Register und gibt jedem einen Standardnamen, wie z.B. PAGE3.

3	Wählen Sie Werkzeuge [image] Attributpalette.

4	In der Attributpalette setzen Sie das Attribut Beschriftung unter dem Knoten Funktional auf den Text, der zur Laufzeit auf dem Registertab angezeigt werden soll. (Endbenutzer klicken auf den Registerbereich, um zwischen den Registern einer Registerleinwand zu navigieren.)


Objekte in ein Register setzen

So setzen Sie ein Objekt in ein Register:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol.

2	Stellen Sie in der Attributpalette unter dem Knoten Physikalisch die Attribute Leinwand und Registerseite auf die richtigen Werte, um zu gewährleisten, daß das Objekt auf der gewünschten Registerleinwand und im gewünschten Register angezeigt wird.

Hinweis:  Wenn Sie ein Objekt zu einem Register hinzufügen, muß das ganze Objekt (und zugehörige Boilerplate-Grafiken) vollständig im Registerbereich liegen.


Objekte zu einem anderen Register verschieben

So verschieben Sie ein Objekt zu einem anderen Register:

1	Klicken Sie im Objektnavigator auf das Objektsymbol, und wählen Sie Werkzeuge [image] Layouteditor.

2	Klicken Sie im Layouteditor auf das bzw. die Objekte, und klicken Sie auf die Schaltflächen Ausschneiden oder Kopieren in der Symbolleiste.

Form Builder schneidet das Objekt aus bzw. kopiert das Objekt in die Zwischenablage.

3	Klicken Sie auf das Registertab des Registers, in dem Sie das bzw. die Objekte einfügen möchten. Danach klicken Sie auf das Register selbst, sobald Form Builder dieses anzeigt.

4	Klicken Sie auf das Symbol Einfügen in der Symbolleiste.

Form Builder fügt das Objekt in dem ausgewählten Register bei derselben X,Y-Position ein, bei der das Objekt im vorherigen Register stand.

Hinweis:  Sie können ein Objekt auch zu einem anderen Register verschieben, indem Sie das Attribut Registerseite in der Attributpalette ändern.


Register neu ordnen

So ordnen Sie Register neu:

1	Klicken Sie im Objektnavigator unter dem Knoten Leinwände auf den Knoten Registerseiten der Registerleinwand.

2	Klicken und ziehen Sie das Objektsymbol eines Registers, und setzen Sie es in der Hierarchie an die gewünschte Stelle.

Hinweis:  Die Reihenfolge der Register im Objektnavigator bestimmt die Reihenfolge von links nach rechts (oder von oben nach unten) der Register zur Laufzeit. Das höchste Register im Objektnavigator wird entweder am oberen oder äußeren linken Rand des Registerstapels zur Laufzeit angezeigt, je nach Ausrichtung der Register.


Register löschen

So löschen Sie ein Register:

1	Klicken Sie im Objektnavigator unter dem Knoten Leinwände auf den Knoten Registerseiten der Registerleinwand.

2	Klicken Sie auf das Objektsymbol für das Register, und klicken Sie auf die Schaltfläche Löschen in der Symbolleiste.

Form Builder zeigt ein Warnfenster zur Bestätigung an.

3	Klicken Sie auf Ja, um das Register zu löschen.

Form Builder löscht das Register.

Hinweis:  Wenn Sie die letzte Seite einer Registerleinwand löschen, wird die Leinwand selbst nicht gelöscht.


Registerleinwände anzeigen

So zeigen Sie eine Registerleinwand im Layouteditor an:

1	Doppelklicken Sie im Objektnavigator auf das Objektsymbol für die Registerleinwand,

oder

Doppelklicken Sie auf das Objektsymbol einer Inhaltsleinwand, die demselben Fenster zugewiesen ist, wie die Registerleinwand. Danach wählen Sie Ansicht [image] Gestapelte Ausschnitte, und wählen Sie die Registerleinwand bzw. die Registerleinwände, die in der Inhaltsleinwand angezeigt werden sollen,

oder

Doppelklicken Sie auf das Objektsymbol einer Inhaltsleinwand, die demselben Fenster wie die Registerleinwand zugewiesen ist. Danach wählen Sie die Registerleinwand aus dem Kombinationsfeld Leinwand am oberen Rand des Layouteditors aus.


Register beim Entwurf wechseln

So wechseln Sie die Register beim Entwurf:

1	Klicken Sie auf das Registertab. Wenn das entsprechende Registertab nicht angezeigt wird, klicken Sie auf eines der angezeigten Registertabs, damit dieses den Fokus erhält. Wechseln Sie dann mit den Pfeiltasten Nach rechts und Nach links zwischen den Registern.


Registerleinwände skalieren

So skalieren Sie eine Registerleinwand im Layouteditor:

1	Doppelklicken Sie im Objektnavigator unter dem Knoten Leinwände auf das Objektsymbol für die Registerleinwand.

Daraufhin wird der Layouteditor angezeigt.

2	Wählen Sie Ansicht [image] Ausschnitt anzeigen.

3	Wählen Sie den Ausschnitt der Registerleinwand aus.

4	Wählen Sie einen Punkt aus, und klicken und ziehen Sie die Registerleinwand auf die gewünschte Größe.

Hinweis:  Beachten Sie beim Skalieren einer Registerleinwand, daß Form Builder jedes der zugehörigen Register automatisch skaliert. Objekte, die vorher innerhalb der Umrandung eines Registers standen, können deshalb möglicherweise aus dem Rahmen des Registers fallen, wenn Sie die Registerleinwand skalieren.


Registerleinwände verschieben

So verschieben Sie eine Registerleinwand auf der Inhaltsleinwand:

1	Doppelklicken Sie im Objektnavigator unter dem Knoten Leinwände auf das Objektsymbol für die Inhaltsleinwand.

Daraufhin wird der Layouteditor angezeigt.

2	Wählen Sie Ansicht [image] Ausschnitt anzeigen.

3	Wählen Sie den Ausschnitt der Registerleinwand aus.

4	Klicken und ziehen Sie im Layouteditor den Ausschnitt der Registerleinwand an die gewünschte Stelle auf der Inhaltsleinwand.

Hinweis:  Durch Verschieben der Registerleinwand ändern Sie die Attribute Ausschnitt X-Position und Ausschnitt Y-Position.


Leinwände anzeigen

Ausschnitte einer gestapelten Leinwand anzeigen

Reigsterleinwände anzeigen


Über Symbolleisten-Leinwände

Sie können Symbolleisten-Leinwände - horizontale und vertikale - für jedes Fenster in einer Form erstellen. Form Builder zeigt horizontale Symbolleisten-Leinwände am oberen Rand eines Fensters und vertikale Symbolleisten-Leinwände am linken Rand eines Fensters an. (Form Builder verfügt über mehrere Symbolleisten: So hat z.B. das Objektnavigator-Fenster sowohl horizontale als auch vertikale Symbolleisten, während die Attributpalette nur eine horizontale Symbolleiste hat.)

Wenn Sie eine Symbolleisten-Leinwand erstellen, weisen Sie diese einem Fenster zu, indem Sie das Leinwandattribut Fenster einstellen und diese Leinwand dann mit dem Fenster registrieren, in dem Sie die Fensterattribute Vertikale Symbolleisten-Leinwand oder Horizontale Symbolleisten-Leinwand entsprechend einstellen.

Sie können das Erscheinungsbild einer Symbolleiste zur Laufzeit ändern, indem Sie verschiedene Objekte in der Symbolleiste dynamisch anzeigen und verbergen. Außerdem können Sie mehr als eine Symbolleiste für dasselbe Fenster erstellen und diese aufgrund von Navigationsereignissen und programmgesteuerten Ereignissen anzeigen, genau wie gestapelte Leinwände, die demselben Fenster zugewiesen sind.

Symbolleisten-Leinwand des MDI-Fensters  Bei Microsoft Windows können Sie Symbolleisten für das MDI-Anwendungsfenster erstellen sowie für jedes Dokumentfenster in der Form. Das MDI-Anwendungsfenster wird vom Fensterverwaltungsprogramm erstellt und verwaltet und wird nicht in der Liste mit Fensterobjekten in einem Formmodul angezeigt.

Hinweis:  Bei Anwendungen mit mehreren Forms kann jede Form potentiell eine eigene MDI-Symbolleiste enthalten. Während der Endbenutzer zwischen den Forms navigiert, wird das MDI-Fenster aktualisiert, um die in der aktuellen Form definierte MDI-Symbolleiste anzuzeigen. Wenn in der aktuellen Form keine MDI-Symbolleiste definiert ist, wird das MDI-Fenster ohne eine Symbolleiste angezeigt, wenn diese Form den Fokus hat.


Symbolleisten-Leinwände erstellen

  Verwandte Themen

So erstellen Sie eine Symbolleisten-Leinwand:

1	Klicken Sie im Objektnavigator auf den Knoten Leinwände, und klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

2	Wählen Sie Werkzeuge [image] Attributpalette.

3	Legen Sie die Attribute in der Attributpalette unter den Knoten Allgemein und Physikalisch wie folgt fest:

Leinwandtyp - Horizontale oder vertikale Symbolleiste.

Fenster - Der Name des Fensters, in dem die Symbolleisten-Leinwand angezeigt werden soll.

Breite/Höhe - Die Abmessungen der Symbolleisten-Leinwand. Eine Symbolleisten-Leinwand ist im allgemeinen so breit (oder hoch) wie das Fenster, dem sie zugewiesen ist, und tief (oder breit) genug, um eine einzelne Zeile (oder Spalte) mit Objekten anzuzeigen. (Beachten Sie, daß Form Builder alle von Ihnen angegebenen Dimensionen akzeptiert, selbst wenn die sich ergebende Symbolleiste die Inhaltsleinwand des Fensters vollständig verdeckt.)

4	Klicken Sie im Objektnavigator unter dem Knoten Fenster auf das Fenster, dem Sie die Symbolleisten-Leinwand in Schritt 3 zugewiesen haben.

5	Doppelklicken Sie auf das Objektsymbol des Fensters, um die Attributpalette anzuzeigen.

6	Setzen Sie in der Attributpalette unter dem Knoten Funktional die Attribute Horizontale Symbolleisten-Leinwand und/oder Vertikale Symbolleisten-Leinwand auf den Namen der Symbolleiste, die Sie in Schritt 1 erstellt haben.

7	Fügen Sie Objekte und Boilerplate-Grafiken zu der Symbolleisten-Leinwand hinzu, genau wie bei jeder anderen Leinwand.

Hinweis: Die Benutzung von navigierbaren und maus-navigierbaren Objekten in einer Symbolleisten-Leinwand wird nicht unterstützt.


Symbolleisten-Leinwände für das MDI-Fenster erstellen

  Verwandte Themen

So erstellen Sie eine Symbolleisten-Leinwand für MDI:

1	Klicken Sie im Objektnavigator auf den Knoten Leinwände, und klicken Sie auf die Schaltfläche Erstellen [image] in der Symbolleiste.

2	Wählen Sie Werkzeuge [image] Attributpalette.

3	Setzen Sie in der Attributpalette unter dem Knoten Allgemein das Attribut Leinwandtyp auf Horizontale Symbolleiste oder Vertikale Symbolleiste.

4	Doppelklicken Sie im Objektnavigator unter dem Knoten Forms auf das Objektsymbol des aktuellen Formmoduls, um die Attributpalette anzuzeigen.

5	Setzen Sie in der Attributpalette unter dem Knoten Physikalisch die Attribute Form Horizontale Symbolleisten-Leinwand und/oder Form Vertikale Symbolleisten-Leinwand auf den Namen der Symbolleiste, die Sie in Schritt 1 erstellt haben.

Hinweis:  Wenn Sie eine Symbolleisten-Leinwand zur Anzeige im MDI-Fenster erstellen, ignoriert Form Builder die Fensterzuweisung für diese Leinwand (wie mit dem Attribut Fenster angegeben) zur Laufzeit und ordnet die Symbolleisten-Leinwand statt dessen automatisch dem MDI-Fenster zu.

6	Fügen Sie Objekte und Boilerplate der neuen Symbolleisten-Leinwand hinzu, wie bei einer Inhalts- oder gestapelten Leinwand.

Hinweis: Die Benutzung von navigierbaren und maus-navigierbaren Objekten in einer Symbolleisten-Leinwand für MDI wird nicht unterstützt.


Mehrere Symbolleisten-Leinwände für dasselbe Fenster erstellen

  Verwandte Themen

Sie können zwei oder mehr Symbolleisten-Leinwände desselben Typs (horizontal oder vertikal) erstellen und diese demselben Formfenster zuweisen, indem Sie das Leinwandattribut Fenster entsprechend einstellen.

Wenn demselben Formfenster zwei oder mehr Symbolleisten zugewiesen sind, versucht Form Builder, die primäre Symbolleisten-Leinwand des Fensters zur Laufzeit anzuzeigen. Sie geben die primäre Symbolleisten-Leinwand für ein Fenster an, indem Sie das Attribut Horizontale Symbolleisten-Leinwand oder Vertikale Symbolleisten-Leinwand des Fensters festlegen.

Form Builder kann jedoch eine andere Symbolleisten-Leinwand als die primäre Symbolleisten-Leinwand anzeigen, wenn zu einem Objekt in einer anderen Symbolleiste navigiert wird oder wenn die Anwendung eine andere Symbolleisten-Leinwand programmgesteuert anzeigt oder auslöst, indem SHOW_VIEW oder SET_VIEW_PROPERTY ausgeführt wird.

Die Definition von MDI-Symbolleisten kann auch zu einer Situation führen, bei der mehr als eine Symbolleisten-Leinwand demselben Formfenster zugeordnet wird. So könnten Sie z.B. eine Form mit zwei Symbolleisten-Leinwänden desselben Typs (horizontal oder vertikal) erstellen, die demselben Formfenster zugewiesen sind, wobei eine Symbolleisten-Leinwand als MDI-Symbolleiste angegeben wird (indem die Attribute Form Horizontale/Vertikale Symbolleisten-Leinwand des Formmoduls eingestellt wird). Bei Microsoft Windows wird die MDI-Symbolleiste immer dem MDI-Fenster zugeordnet und wird nicht in dem Fenster angezeigt, dem sie zugewiesen ist (wie mit dem Attribut Fenster angegeben). Bei Nicht-Windows-Plattformen, die Symbolleisten unterstützen, wie z.B. Motif, wird die MDI-Symbolleiste dem Fenster zugeordnet, dem sie zugewiesen ist und wird eine der potentiellen Symbolleisten-Leinwände dieses Fensters. In diesem Fall versucht Form Builder das Fenster mit der Symbolleiste anzuzeigen, die Sie als primäre Symbolleiste angegeben haben, zeigt jedoch möglicherweise aufgrund von Navigations- oder programmgesteuerten Ereignissen eine andere Symbolleiste an.


Über die Stapelreihenfolge

Bei der Arbeit mit Leinwänden müssen Sie die Position jeder Leinwand in der Stapelreihenfolge in bezug auf andere Leinwände definieren, die demselben Fenster zugewiesen sind. Mit der Stapelreihenfolge wird festgelegt, welche Leinwände vor (oder über) anderen Leinwänden in demselben Fenster angezeigt werden. Die Stapelreihenfolge von Leinwänden kann sich zur Laufzeit aufgrund von Navigations- und programmgesteuerten Ereignissen ändern.

Die Stapelreihenfolge ist insbesondere dann wichtig, wenn mehrere Inhalts- und gestapelte Leinwände demselben Fenster zugewiesen sind. Sie sollten eine gestapelte Leinwand immer vor Inhaltsleinwände setzen, die demselben Fenster zugewiesen sind. Sonst verdecken die Inhaltsleinwände die gestapelten Leinwände zur Laufzeit vollständig.

Anfängliche Stapelreihenfolge  Die anfängliche Stapelreihenfolge von Leinwänden wird von der Reihenfolge bestimmt, in der diese unter dem Knoten Leinwände im Objektnavigator aufgeführt werden: Die erste unter dem Knoten Leinwände aufgeführte Leinwand wird hinter allen Leinwänden angezeigt, die demselben Fenster zugewiesen sind. Die letzte Leinwand in der Liste wird vor allen anderen Leinwänden angezeigt.

Stapelreihenfolge ändern  Um die Stapelreihenfolge zu ändern, ziehen Sie Leinwände im Objektnavigator, um sie an die gewünschte Stelle zu setzen. Um die Reihenfolge der Leinwände auf diese Weise zu ändern, muß der Objektnavigator nach Formshierarchie angezeigt werden (Standardwert).


Über Inhaltsleinwände in der Stapelreihenfolge

  Verwandte Themen

Wenn Sie demselben Fenster mehrere Inhaltsleinwände und mindestens eine gestapelte Leinwand zuweisen, müssen Sie beachten, wie Form Builder Inhaltsleinwände in der Stapelreihenfolge verwaltet. Da Form Builder in einem einzigen Fenster immer nur eine Inhaltsleinwand gleichzeitig anzeigen kann, behandelt es alle Inhaltsleinwände, die demselben Fenster zugewiesen sind, so, als hätte jede dieselbe Position in der Stapelreihenfolge bezogen auf die gestapelten Leinwände, die diesem Fenster zugewiesen sind.

Betrachten Sie ein Fenster mit vier Leinwänden: CNT_A und CNT_C sind Inhaltsleinwände, STK_B ist eine gestapelte Leinwand und TAB_D ist eine Registerleinwand.

Zur Laufzeit zeigt Form Builder jeweils eine Inhaltsleinwand im Fenster an. Beim Starten der Form navigiert die Anwendung zu einem Objekt in CNT_A, die zur aktuellen Inhaltsleinwand wird, die in dem Fenster angezeigt wird. Wenn der Endbenutzer dann zu einem Objekt in CNT_C navigiert, wird CNT_A ersetzt, jedoch an derselben Stelle in der Stapelreihenfolge und nicht an der beim Entwurf angegebenen Stelle, wie im Objektnavigator angegeben.

Aufgrund dieser Funktionalität kann die aktuelle Inhaltsleinwand ersetzt werden, ohne daß gestapelte Leinwände verborgen werden, die gerade in demselben Fenster angezeigt werden. Wenn CNT_C die Leinwand CNT_A ersetzt, bleiben die gestapelten und Registerleinwände - die beim Entwurf vor CNT_A gesetzt wurden - sichtbar.

Wenn Sie diese Technik verwenden, achten Sie darauf, daß die gestapelten und Registerleinwände in der Reihenfolge vor (über) der ersten Inhaltsleinwand stehen, die in dem Fenster angezeigt wird.


Wie sich die Stapelreihenfolge zur Laufzeit ändert

Zur Laufzeit ändert sich die beim Entwurf festgelegte Stapelreihenfolge, während Leinwände aufgrund von Navigations- und programmgesteuerten Ereignissen angezeigt werden.

Wenn ein Endbenutzer oder die Anwendung zu einem Objekt auf einer Leinwand navigiert, das hinter einer anderen Leinwand verborgen ist, zeigt Form Builder automatisch die Zielleinwand im Vordergrund des Fensters an und ändert somit die aktuelle Stapelreihenfolge. (Wenn Sie Ihre Form also so entwickeln, daß gestapelte oder Registerleinwände immer aufgrund von Navigationsereignissen aufgerufen werden, spielt die beim Entwurf festgelegte Stapelreihenfolge keine Rolle.)

Wenn Sie die vordefinierten Prozeduren SHOW_VIEW oder SET_VIEW_PROPERTY ausführen, um eine Leinwand programmgesteuert anzuzeigen, zeigt Form Builder die angegebene Leinwand ebenfalls vor allen anderen Leinwänden, die in diesem selben Fenster angezeigt werden.


Fenster aufgrund von Navigationsereignissen anzeigen und schließen

  Verwandte Themen

Fenster aufgrund eines Navigationsereignisses anzeigen  Zur Laufzeit achtet Form Builder darauf, daß das Objekt, das gerade den Fokus hat, immer für den Endbenutzer sichtbar ist. Um das Zielobjekt sichtbar zu machen, wenn ein Navigationsereignis eintritt, ruft Form Builder Fenster auf bzw. zeigt Fenster an, die gerade verborgen sind oder gerade hinter anderen Fenstern stehen.

Bei einem Navigationsereignis bestimmt Form Builder zuerst, auf welcher Leinwand das Zielobjekt steht. Danach wird das Fenster angezeigt, dem diese Leinwand zugewiesen ist. Beim Starten der Form kennzeichnet Form Builder z.B. das Objekt, das das erste navigierbare Objekt im ersten navigierbaren Block in der Form ist. Danach werden die Leinwand und das Fenster angezeigt, denen dieses Objekt zugewiesen ist.

Sie können dieses Verhalten nutzen, indem Sie Navigationsereignisse verwenden, um Fenster aufzurufen, ohne einen Code schreiben zu müssen, mit denen diese explizit angezeigt werden.

Beispiele für Navigationsereignisse umfassen Nächstes Objekt, Vorheriges Objekt, Nächster Block und Vorheriger Block. Der Endbenutzer kann diese Befehle ausgeben, indem er Tasten drückt oder Befehle im Standardmenü auswählt. Sie können die Navigation auch programmgesteuert einleiten, indem Sie die entsprechenden vordefinierten Prozeduren aufrufen, einschließlich GO_ITEM und GO_BLOCK.

Fenster aufgrund von Navigationsereignissen schließen  Wenn ein Endbenutzer oder die Anwendung aus einem nicht-modalen Fenster navigiert, bestimmt das Attribut Beim Beenden verbergen des Fensters, ob das Fenster weiter angezeigt oder automatisch geschlossen wird.

Wenn für Beim Beenden verbergen Ja angegeben ist, schließt Form Builder das Fenster automatisch, wenn der Endbenutzer oder die Anwendung zu einem Objekt in einem anderen Fenster navigiert. Wenn für Beim Beenden verbergen Nein (Standardwert) angegeben wird, schließt Form Builder das Fenster nicht, wenn zu einem Objekt in einem anderen Fenster navigiert wird.

Beachten Sie, daß das Attribut Beim Beenden verbergen bei modalen Fenstern (Fenstern, bei denen das Attribut Modal auf Ja gesetzt ist) ignoriert.


Fenster programmgesteuert anzeigen und schließen

 Beispiele    [image]  Verwandte Themen

Fenster anzeigen  Um ein Fenster anzuzeigen, das keine navigierbaren Objekte enthält, müssen Sie es programmgesteuert anzeigen. Bei derartigen Fenstern müssen Sie das Attribut Primäre Leinwand so einstellen, daß die Inhaltsleinwand angegeben wird, die in dem Fenster angezeigt werden soll.

Um ein Fenster zur Laufzeit anzuzeigen, verwenden Sie die vordefinierten Prozeduren SHOW_WINDOW oder SET_WINDOW_PROPERTY. (Wenn Sie SHOW_WINDOW verwenden, haben Sie die Möglichkeit, X,Y-Anzeigekoordinaten anzugeben. Wenn nicht, benutzt Form Builder die aktuellen Anzeigekoordinaten des Fensters.)

Wenn Sie ein Fenster programmgesteuert anzeigen, zeigt Form Builder die folgenden Leinwände in dem Fenster an:

•	Die aktuelle Inhaltsleinwand des Fensters

•	Gestapelte Leinwände, die dem Fenster zugewiesen sind, bei denen das Attribut Sichtbar auf Ja gesetzt ist

Hinweis:  Wenn Sie ein Fenster programmgesteuert anzeigen, das schon angezeigt wird, jedoch hinter anderen Fenstern geschichtet ist, zeigt Form Builder das Fenster automatisch vor den anderen Fenstern an.

Fenster schließen  Um ein Fenster zu schließen, können Sie die vordefinierten Prozeduren HIDE_WINDOW oder SET_WINDOW_PROPERTY verwenden.

Aktuelles Objekt  Wenn Sie Fenster programmgesteuert anzeigen und verbergen, berücksichtigen Sie, daß Form Builder das Objekt, das gerade den Fokus hat, immer für den Endbenutzer sichtbar beläßt. Wenn Sie versuchen, das Fenster programmgesteuert zu schließen, das das aktuelle Objekt enthält, ignoriert Form Builder den Aufruf. Wenn Sie ein Fenster anzeigen, das das aktuelle Objekt verdeckt, führt Form Builder den Aufruf aus, zeigt dann jedoch sofort Fenster bzw. Leinwände an, damit das aktuelle Objekt sichtbar bleibt.


Beispiele für das programmgesteuerte Anzeigen und Schließen von Fenstern

/*

** Example 1: These 2 procedure calls display a window named
** MY_WIN, with equivalent results:

   SHOW_WINDOW('my_win');
   SET_WINDOW_PROPERTY('my_win', visible, property_true);

** Example 2: This procedure call displays the same window at
** screen coordinates 5 and 10:

   SHOW_WINDOW('my_win', 5, 10);

** Example 3: The SET_WINDOW_PROPERTY built-in sets only one
** window property at a time; you must call it twice to achieve
** the same result as the previous example:

   SET_WINDOW_PROPERTY('my_win', visible, property_true);
   SET_WINDOW_PROPERTY('my_win', window_position, 5, 10);

** Example 4: These 2 procedure calls close a window named MY_WIN,
** with equivalent results:

   HIDE_WINDOW('my_win');
   SET_WINDOW_PROPERTY('my_win', visible, property_false);

*/


Fenster programmgesteuert verschieben und skalieren

 Beispiele    [image]  Verwandte Themen

Fenster verschieben  Um ein Fenster zu verschieben, verwenden Sie die vordefinierten Prozeduren MOVE_WINDOW oder SET_WINDOW_PROPERTY.

Fenster skalieren  Um ein Fenster zu skalieren, verwenden Sie die vordefinierten Prozeduren RESIZE_WINDOW oder SET_WINDOW_PROPERTY.

Fenster minimieren/maximieren  Um ein Fenster zu minimieren (als Symbol anzuzeigen) oder zu maximieren (auf Vollbildgröße zu erweitern), benutzen Sie die vordefinierte Prozedur SET_WINDOW_PROPERTY, um das Attribut Fensterstatus auf Minimieren oder Maximieren zu setzen.

MDI-Anwendungsfenster bearbeiten  Bei Microsoft Windows können Sie das MDI-Anwendungsfenster programmgesteuert bearbeiten. Hierzu geben Sie den Fensternamen als FORMS_MDI_WINDOW an. Sie können ausgewählte MDI-Fensterattribute programmgesteuert festlegen. Weitere Einzelheiten finden Sie in dem Online-Hilfetext für die vordefinierte Prozedur SET_WINDOW_PROPERTY.

Fenster bei Anwendungsbeginn bearbeiten  Um Größe, Position und Anzeigestatus eines Fensters bei Anwendungsbeginn festzulegen (d.h. bevor der Endbenutzer die Form sieht), rufen Sie die entsprechenden vordefinierten Prozeduren aus einem When-New-Form-Instance-Trigger auf. Wenn Sie eine Anwendung zur Ausführung auf verschiedenen Betriebssystemen und Bildschirmen entwickeln, können Sie mit der vordefinierten Prozedur GET_APPLICATION_PROPERTY die folgenden Attribute überprüfen und die Größe der Fenster dann dementsprechend festlegen.

•	DISPLAY_HEIGHT

•	DISPLAY_WIDTH

•	OPERATING_SYSTEM

•	USER_INTERFACE

Hinweis:  Die vordefinierten Unterprogramme, mit denen Größe und Position von Objekten geändert werden, erfordern Argumente für die X,Y-Anzeigekoordinaten und die Breite/Höhe. Zur Laufzeit interpretiert Form Builder diese Argumente in den Einheiten, die mit dem Attribut Koordinatensystem des Formmoduls angegebeben werden: in Zeicheneinheiten, Zentimeter, Zoll, Pixel oder Punkt.


Beispiele für das programmgesteuerte Verschieben und Skalieren von Fenstern

/*

** Example 1: These 2 procedure calls move the window MY_WIN to
** X,Y coordinates 6 and 8:

   MOVE_WINDOW('my_win', 6, 8);
   SET_WINDOW_PROPERTY('my_win', position, 6, 8);

** Example 2: These 2 procedure calls resize MY_WIN to a width
** of 80 and a height of 20:

   RESIZE_WINDOW('my_win', 80, 20);
   SET_WINDOW_PROPERTY('my_win', window_size, 80, 20);

** Example 3: This procedure call minimizes the document window
** MY_WIN:

   SET_WINDOW_PROPERTY('my_win', window_state, minimize);

** Example 4: This procedure call uses the Form Builder constant
** FORMS_MDI_WINDOW to maximize the MDI window (applies only to
** Microsoft Windows):

   SET_WINDOW_PROPERTY(forms_mdi_window, window_state, maximize);

*/


Programmgesteuerten Bildlauf durch ein Fenster durchführen

 Beispiele    [image]  Verwandte Themen

Wenn Sie einen programmgesteuerten Bildlauf durch ein Fenster vornehmen, können Sie die Position des Ausschnitts auf der Leinwand des Fensters ändern (d.h. die Attribute Ausschnitt X-Position auf Leinwand und Ausschnitt Y-Position auf Leinwand ändern).

Um einen programmgesteuerten Bildlauf durch ein Fenster vorzunehmen, benutzen Sie eine von zwei vordefinierten Prozeduren:

•	Mit SCROLL_VIEW wird der Bildlauf zu den angegebenen X,Y-Koordinaten vorgenommen.

•	Mit SET_VIEW_PROPERTY können Sie die X- oder Y-Koordinaten des Ausschnitts festlegen, indem Sie die Attribute Ausschnitt X-Position auf Leinwand oder Ausschnit Y-Position auf Leinwand festlegen. (Beachten Sie, daß Sie diese vordefinierte Prozedur zweimal aufrufen müssen, um sowohl die X- als auch die Y-Koordinaten der Ansicht festzulegen.)

Dynamischer Bildlauf  Wenn Endbenutzer oder die Anwendung zwischen den Objekten navigieren, zeigt Form Builder das Zielobjekt weiter für den Endbenutzer an. Gegebenenfalls nimmt Form Builder einen automatischen Bildlauf zu einer Leinwand vor, um das Zielobjekt in den Ausschnitt zu setzen. Wenn ein Endbenutzer z.B. [Nächstes Objekt] (Tabulatortaste) drückt, um zu einem Objekt zu gehen, das auf derselben Leinwand, jedoch im Augenblick außerhalb des Fensters steht, nimmt Form Builder einen dynamischen Bildlauf durch die Leinwand vor, um das Zielobjekt sichtbar zu machen.

Die einzige Ausnahme zu dieser Regel besteht darin, wenn der Endbenutzer oder die Anwendung einen expliziten Bildlauf durch das Fenster vornimmt und nicht aufgrund einer Navigation. In diesem Fall läßt Form Builder zu, daß das Objekt, das gerade den Eingabefokus hat, aus dem Ausschnitt herausgerollt wird. Bei dem nächsten Navigationsereignis wird das Zielobjekt jedoch wieder in den Ausschnitt gerollt.


Beispiele für einen programmgesteuerten Bildlauf durch ein Fenster

/*

** Example 1: This procedure call scrolls a window's content
** canvas horizontally to X,Y coordinates 14 and 10:

   SCROLL_VIEW('my_con_view', 14, 10);

** Example 2: These 2 procedure calls also reposition the content
** canvas' view to X,Y coordinates 14 and 10:

   SET_VIEW_PROPERTY('my_con_view', x_pos_on_canvas, 14);
   SET_VIEW_PROPERTY('my_con_view', y_pos_on_canvas, 10);

*/


Mit Triggern auf Fensterereignisse zur Laufzeit reagieren

Mit den folgenden Triggern können Sie auf Fensterereignisse reagieren:

•	When-Window-Activated

•	When-Window-Closed

•	When-Window-Deactivated

•	When-Window-Resized

Wenn Sie mit diesen Triggern arbeiten, können Sie die vordefinierte Systemvariable SYSTEM.EVENT_WINDOW überprüfen, um den Namen des Fensters zu ermitteln, für das der Trigger ausgelöst wurde.


Leinwände programmgesteuert anzeigen und verbergen

 Beispiele    [image]  Verwandte Themen

Leinwände anzeigen  Um eine Leinwand in dem Fenster, dem sie zugewiesen ist, programmgesteuert anzuzeigen, verwenden Sie die vordefinierten Prozeduren SHOW_VIEW oder SET_VIEW_PROPERTY.

Hinweis:  Wenn Sie eine Leinwand programmgesteuert anzeigen, zeigt Form Builder diese mit einer Ausnahme vor allen anderen Leinwänden in demselben Fenster an, unabhängig von der Stapelreihenfolge, die Sie beim Entwurf angegeben haben, und unabhängig davon, ob die Leinwand schon angezeigt wurde (jedoch hinter einer anderen Leinwand verborgen war), als die vordefinierte Prozedur aufgerufen wurde. Die Ausnahme besteht darin: Wenn Sie versuchen, eine Leinwand programmgesteuert anzuzeigen, die die Leinwand des aktuellen Objekts verdecken würde, zeigt Form Builder die Leinwand an, jedoch hinter der Leinwand des aktuellen Objekts.

Wenn Sie die vordefinierten Prozeduren SHOW_VIEW oder SET_VIEW_PROPERTY verwenden, um eine Inhaltsleinwand anzuzeigen, ersetzt diese die aktuelle Inhaltsleinwand des Fensters.

Leinwände verbergen  Um eine Leinwand programmgesteuert zu verbergen, verwenden Sie die vordefinierten Prozeduren HIDE_VIEW oder SET_VIEW_PROPERTY.


Beispiele für das programmgesteuerte Anzeigen und Verbergen von Leinwänden

/*

** Example 1: These 2 procedure calls both display a content
** canvas named A_STACK:

   SHOW_VIEW('a_stack');
   SET_VIEW_PROPERTY('a_stack', visible, property_true);

** Example 2: These 2 procedure calls both hide a content canvas
** named A_STACK:

   HIDE_VIEW('a_stack');
   SET_VIEW_PROPERTY('a_stack', visible, property_false);

*/


Mit dem Leinwandattribut Automatisch anzeigen arbeiten

  Verwandte Themen

Mit dem Leinwandattribut Automatisch anzeigen wird bestimmt, wie die Stapelreihenfolge von der Navigation (durch den Endbenutzer oder die Anwendung) zu einem Objekt auf der Leinwand beeinflußt wird. Wenn Sie das Attribut Automatisch anzeigen auf:

•	Nein einstellen, zeigt Form Builder die Leinwand nur dann vor dem Fenster an, wenn das Zielobjekt hinter anderen Leinwänden in demselben Fenster verborgen ist (wenn der Endbenutzer oder die Anwendung zu einem Objekt auf dieser Leinwand navigiert).

•	Ja einstellen, zeigt Form Builder die Leinwand immer dann vor dem Fenster an, wenn der Endbenutzer oder die Anwendung zu einem Objekt auf dieser Leinwand navigiert. (Wenn Sie das Attribut Automatisch anzeigen für eine Inhaltsleinwand auf Ja setzen, muß mit Vorsicht vorgegangen werden. Da eine Inhaltsleinwand den ganzen Inhaltsbereich des Fensters belegt, verdeckt sie immer gestapelte Leinwände, wenn Form Builder sie vor dem Leinwandstapel anzeigt.)

Gestapelte Leinwände

Wenn Sie das Attribut Automatisch anzeigen für eine gestapelte Leinwand festlegen, kann dies unter Umständen problematisch sein. Um ein einwandfreies Funktionieren zu gewährleisten, müssen Sie möglicherweise die Zusammenarbeit der einzelnen Fenster, die Standardnavigation, die Stapelreihenfolge und die programmgesteuerte Bearbeitung von Fenstern und Leinwänden berücksichtigen.

Eine gestapelte Leinwand, bei der das Attribut Automatisch anzeigen auf Nein eingestellt ist, kann nur durch die Navigation oder programmgesteuert angezeigt werden.

Denken Sie daran, wenn ein Endbenutzer (oder die Anwendung) zu einem Objekt auf der gestapelten Leinwand navigiert, zeigt Form Builder die Leinwand in dem zugewiesenen Fenster an. Ein Fenster kann jedoch auch programmgesteuert oder aufgrund der Navigation zu einem Objekt auf der Inhaltsleinwand des Fensters angezeigt werden. In diesen Fällen müssen Sie Automatisch anzeigen auf Ja einstellen, damit Form Builder die gestapelte Leinwand anzeigt, wenn das Fenster das erste Mal angezeigt wird.

Beachten Sie, daß eine gestapelte Leinwand, bei der das Attribut Automatisch anzeigen auf Ja eingestellt ist, in folgenden Fällen dennoch verborgen sein kann:

•	Wenn die gestapelte Leinwand aufgrund ihrer Position in der Stapelreihenfolge hinter eine Inhaltsleinwand oder eine andere gestapelte Leinwand in demselben Fenster gesetzt ist.

•	Wenn das Fenster aufgrund der Navigation zu einem Objekt auf einer der anderen Leinwände angezeigt wird, verbirgt Form Builder die gestapelte Leinwand, wenn diese das Zielobjekt überlagert. (Form Builder zeigt zuerst die gestapelte Leinwand an. Danach wird sofort die Zielleinwand vor der gestapelten Leinwand angezeigt, damit das Zielobjekt sichtbar wird.)

•	Wenn das Fenster aufgrund der Navigation zu einem Objekt auf einer der anderen Leinwände angezeigt wird - und das Attribut Automatisch anzeigen der Zielleinwand auf Ja eingestellt ist - zeigt Form Builder die Zielleinwand vor der gestapelten Leinwand an, selbst wenn die gestapelte Leinwand das Zielobjekt nicht überlagert.


Ereignisse, die die aktuelle Inhaltsleinwand ändern

  Verwandte Themen

Wenn eine Inhaltsleinwand in einem Fenster - aufgrund der Navigation oder eines programmgesteuerten Ereignisses - angezeigt wird, wird diese zur aktuellen Inhaltsleinwand des Fensters. Wenn die Inhaltsleinwand nicht durch eine andere Inhaltsleinwand ersetzt wird, bleibt sie die aktuelle Inhaltsleinwand während der Dauer der Laufzeitsitzung (selbst wenn der Endbenutzer das Fenster schließt oder minimiert).

Wenn demselben Fenster mehrere Inhaltsleinwände zugewiesen sind, kann die aktuelle Inhaltsleinwand unter folgenden Umständen von einer anderen Inhaltsleinwand ersetzt werden:

•	Der Endbenutzer oder die Anwendung navigiert zu einem Objekt auf einer anderen Inhaltsleinwand, die demselben Fenster zugewiesen ist.

•	Ein Trigger oder ein benutzerdefiniertes Unterprogramm führt die vordefinierte Prozedur REPLACE_CONTENT_VIEW aus.

Der Endbenutzer könnte z.B. [Nächstes Objekt] (Tabulatortaste) drücken, um zu einem Objekt auf einer anderen Inhaltsleinwand zu navigieren. Da ein Fenster immer nur eine Inhaltsleinwand gleichzeitig anzeigen kann, ersetzt Form Builder die aktuelle Inhaltsleinwand des Fensters durch die neue Inhaltsleinwand, die das Zielobjekt enthält.


Aktuelle Inhaltsleinwand programmgesteuert ersetzen

 Beispiele    [image]  Verwandte Themen

Um die aktuelle Inhaltsleinwand eines Fensters programmgesteuert zu ersetzen, verwenden Sie die vordefinierte Prozedur REPLACE_CONTENT_VIEW.

Bei der angegebenen Leinwand muß es sich um ein Inhaltsleinwand handeln, und sie muß dem angegebenen Fenster zugewiesen sein. (Sie können die aktuelle Inhaltsleinwand eines Fensters nicht durch eine Leinwand ersetzen, die einem anderen Fenster zugewiesen ist.)

Außerdem können Sie die vordefinierten Prozeduren SHOW_VIEW und SET_VIEW_PROPERTY verwenden, um die Inhaltsleinwand eines Fensters zu ersetzen. Wenn das Fenster jedoch gestapelte Leinwände enthält, besteht eine wichtige funktionale Differenz zwischen diesen vordefinierten Prozeduren und der vordefinierten Prozedur REPLACE_CONTENT_VIEW:

•	Die vordefinierten Prozeduren SHOW_VIEW und SET_VIEW_PROPERTY zeigen die angegebene Inhaltsleinwand vor gestapelten Leinwänden in dem Fenster an und verbergen somit diese gestapelten Leinwände.

•	Dagegen zeigt die vordefinierte Prozedur REPLACE_CONTENT_VIEW die angegebene Inhaltsleinwand bei derselben Position in der Stapelreihenfolge an, wie die Inhaltsleinwand, die sie ersetzt.

Denken Sie daran, daß Form Builder das aktuelle Objekt immer für den Endbenutzer sichtbar macht. Wenn Sie die Inhaltsleinwand ersetzen, die das aktuelle Objekt enthält, zeigt Form Builder automatisch die Originalleinwand erneut an.


Beispiele für das programmgesteuerte Ersetzen der aktuellen Inhaltsleinwand

/*

** Example 1: This procedure call replaces the WIN_5 window's
** current content canvas with a content canvas named CVS_1:

   REPLACE_CONTENT_VIEW('win_5', 'cvs_1');

*/


Gestapelte Leinwände programmgesteuert bearbeiten

 Beispiele

Gestapelte Leinwände anzeigen  Um eine gestapelte Leinwand programmgesteuert in dem Fenster anzuzeigen, dem sie zugewiesen ist, können Sie die vordefinierte Prozedur SHOW_VIEW verwenden. (Beachten Sie, daß das Attribut Sichtbar einer gestapelten Leinwand standardmäßig auf Nein eingestellt ist.)

Bildlauf durch eine gestapelte Leinwand  Um einen Bildlauf durch eine gestapelte Leinwand durchzuführen, damit ein anderer Bereich der Leinwand sichtbar ist, verwenden Sie die vordefinierte Prozedur SCROLL_VIEW (mit der der Ausschnitt relativ zur Leinwand verschoben wird).

Gestapelte Leinwand verschieben  Um die gestapelte Leinwand zu einer anderen Position auf der zugrundeliegenden Inhaltsleinwand zu verschieben, benutzen Sie die vordefinierte Prozedur SET_VIEW_PROPERTY (mit der das Attribut Ausschnitt Position der Leinwand geändert wird). Beachten Sie, daß dadurch der Bereich der Leinwand nicht geändert wird, der in dem Ausschnitt sichtbar ist.

Abmessungen des Ausschnitts vergrößern  Um die Abmessungen des Ausschnitts einer gestapelten Leinwand zu vergrößern (damit ein größerer Teil der Leinwand sichtbar ist), benutzen Sie die vordefinierte Prozedur SET_VIEW_PROPERTY. Durch Vergrößern der Abmessungen des Ausschnitts werden die X,Y-Koordinaten der oberen linken Ecke auf der gestapelten Leinwand nicht geändert. Außerdem wird die Position des Ausschnitts selbst bezogen auf die zugrundeliegende Inhaltsleinwand nicht verändert.


Beispiele für das programmgesteuerte Bearbeiten von gestapelten Leinwänden

/* Example 1: These 2 procedure calls both display the stacked

** canvas STACK_IT:
*/
   SHOW_VIEW('stack_it');
   SET_VIEW_PROPERTY('stack_it', visible, property_true);

/* Example 2: This procedure call scrolls the view of the stacked
** canvas STACK_IT to X,Y coordinates 12 and 0:
*/
   SCROLL_VIEW('stack_it', 12, 0);

/* Example 3: This procedure call changes the position of the
** stacked canvas STACK_IT to X,Y coordinates 12 and 20 on the
** underlying content canvas:
*/
   SET_VIEW_PROPERTY('stack_it', display_position, 12, 20);

/* Example 4: This procedure call increases the width of the view,
** thereby making more of the canvas visible:
*/
   SET_VIEW_PROPERTY('stack_it', width, 22);


Registerleinwände programmgesteuert bearbeiten

 Beispiele    [image]  Verwandte Themen

Wie bei gestapelten Leinwänden verwenden Sie die vordefinierten Prozeduren SHOW_VIEW, HIDE_VIEW und SET_VIEW_PROPERTY, um eine Registerleinwand programmgesteuert anzuzeigen und zu verbergen.

Um ein Register anzuzeigen oder zu verbergen, verwenden Sie die vordefinierte Prozedur SET_TAB_PAGE_PROPERTY. Um ein Register zum obersten Register auf der Leinwand zu machen, verwenden Sie die vordefinierte Prozedur SET_CANVAS_PROPERTY. Um die Registerseite zu ändern, auf der ein Objekt angezeigt wird, verwenden Sie die vordefinierte Prozedur SET_ITEM_PROPERTY.

Register anzeigen/verbergen  Um ein Register anzuzeigen oder zu verbergen, verwenden Sie die vordefinierte Prozedur SET_TAB_PAGE_PROPERTY, um das Attribut Sichtbar des Registers festzulegen.

Register aktivieren/deaktivieren  Um ein Register zu aktivieren oder zu deaktivieren, verwenden Sie die vordefinierte Prozedur SET_TAB_PAGE_PROPERTY, um das Attribut Aktiviert des Registers einzustellen. (Ein deaktiviertes Register wird zur Laufzeit mit einem grauen Registertab angezeigt.)

Oberstes Register bestimmen  Um ein Register zum obersten Register auf der Registerleinwand zu machen, benutzen Sie die vordefinierte Prozedur SET_CANVAS_PROPERTY, um das Leinwandattribut TOPMOST_TAB_PAGE zu setzen.


Beispiele für das programmgesteuerte Bearbeiten von Registerleinwänden

/*

** Example 1: This procedure call shows the tab page TAB1 on the
** tab canvas CAN5:
*/
   SET_TAB_PAGE_PROPERTY('can5.tab1', visible, property_true);

/* Example 2: This procedure call disables tab page TAB1, but
** leaves it visible on its underlying tab canvas CAN5:
*/
   SET_TAB_PAGE_PROPERTY('can5.tab1', enabled, property_false);

/* Example 3: This procedure call makes tab page TAB1 the
** top-most page on its underlying tab canvas CAN5:
*/
   SET_CANVAS_PROPERTY('can5', topmost_tab_page, 'tab1');


Registerleinwände zur Laufzeit bearbeiten

  Verwandte Themen

Die Laufzeitnavigation zu und von einer Registerleinwand - und zwischen den Registern der Leinwand - unterliegt einigen Regeln und Einschränkungen.

Navigation bei der Registerleinwand  Zur Laufzeit werden Registerleinwände automatisch aufgrund der Navigation angezeigt, genau wie Inhalts- und gestapelte Leinwände.

SYSTEM.CURRENT_ITEM und SYSTEM.TRIGGER_ITEM können keinen Fokus haben und sogar unsichtbar sein, wenn eine Registerleinwand den Fokus hat. Wenn Sie auf eine Registerleinwand klicken, erhält diese den Fokus, ändert jedoch SYSTEM.CURRENT_ITEM nicht.

Registernavigation  Es gibt eine Reihe von Möglichkeiten, zur Laufzeit zwischen Registern zu wechseln. Die direkteste Methode besteht darin, auf das Registertab am oberen Rand des Registers zu klicken. Endbenutzer können auch mit den Pfeiltasten Nach rechts und Nach links zwischen Registern wechseln, jedoch nur, wenn das Registertab den Fokus hat (d.h. der Fokus darf nicht bei einem Objekt oder der Registerleinwand stehen). Wenn Registerseiten aufgrund der Navigation gewechselt werden, entspricht dies der Anzeige einer verborgenen gestapelten Leinwand aufgrund der Navigation: Wenn die Navigation zwischen einem Objekt auf Register TP1 und einem Objekt auf Register TP2 erfolgt, zeigt Form Builder automatisch TP2 an. Wenn die Navigation zu einem Objekt auf einem anderen Register nicht erfolgreich verläuft (aufgrund der Validierung), setzt Form Builder den Fokus wieder zum vorherigen Objekt - nicht zu dem Register, in dem das vorherige Objekt steht.


Dialogfeld Datentabellen auswählen

  Verwandte Themen

Beschreibung  Mit dem Dialogfeld Datentabellen auswählen können Sie Datenquellobjekte aus der angemeldeten Datenbank in Ihre Abfrage einfügen.

Dieses Dialogfeld enthält:

Anzeigen	Gibt an, ob Tabellen, Ansichten, Abfragen, Snapshots und/oder Synonyme in dem Listenfeld angezeigt werden sollen oder nicht.
Dropdown-Feld	Gibt an, aus welcher Datenquelle die Objekte angezeigt werden sollen. Sie können auch eine Tabelle aus einem separaten Account bzw. einer separaten Datenbank auswählen.
Datentabellen auswählen	Listet die verfügbaren Datenquellobjekte auf, die Sie in Ihrer Abfrage aufnehmen können. Tip
Info	Zeigt Informationen über das ausgewählte Objekt an: Art, Name, Eigentümer, Erstellungsdatum und Kommentare.
Aufnehmen	Nimmt das ausgewählte Objekt im Arbeitsbereich von Query Builder auf.
Schließen	Schließt das Dialogfeld, ohne ein Datenquellobjekt aufzunehmen.


Auf andere Accounts in der aktuellen Datenbank zugreifen

  Verwandte Themen

So greifen Sie auf Tabellen in anderen Accounts in der aktuellen Datenbank zu:

1	Klicken Sie auf den Namen der aktuellen Datenbank. Die Schaltfläche Aufnehmen wird zu einer Schaltfläche Öffnen. In dem Listenfeld wird eine Liste mit Accounts in der aktuellen Datenbank angezeigt.

2	Klicken Sie auf den Namen des zu öffnenden Accounts.

3	Klicken Sie auf Öffnen, oder doppelklicken Sie einfach auf den Account-Namen. Query Builder zeigt eine Liste mit Tabellen in diesem Account an. Die Schaltfläche Öffnen wird wieder zur Schaltfläche Aufnehmen, so daß Sie Tabellen wie üblich aufnehmen können.


Andere Accounts öffnen

  Verwandte Themen

Wenn die gewünschte Tabelle nicht in der aktuellen Datenbank aufgeführt wird, können Sie zu anderen Accounts und Datenbanken navigieren und Tabellen aus diesen Accounts auswählen.

So navigieren Sie zu anderen Accounts und Datenbanken:

1	Klicken Sie auf das Feld über der Liste mit Tabellen. Daraufhin sehen Sie zwei Auswahlen: den Namen der aktuellen Datenbank und das Wort Datenbanken.

2	Um auf Tabellen in anderen Accounts in der aktuellen Datenbank zuzugreifen, klicken Sie hier.

Wenn Sie sich bei einer aufgeführten Datenbank nicht anmelden können, ist dies möglicherweise auf einen ungültigen Link zurückzuführen, der durch ein Netzwerkproblem oder ein geändertes entferntes Kennwort zurückzuführen ist. Nehmen Sie in diesem Fall Verbindung mit dem Datenbankadministrator auf.


Tabellen mehrmals aufnehmen

  Verwandte Themen

Wenn Sie dieselbe Tabelle mehr als einmal in einer Abfrage aufnehmen, werden doppelten Tabellen automatisch vom System generierte Aliasnamen zugeordnet, die aus dem Namen der Basistabelle gefolgt von einem Unterstreichungszeichen und einer alphanumerischen Sequenz bestehen.


Dialogfeld Zus. Tabellen auswählen

Beschreibung  Mit dem Dialogfeld Zus. Tabellen auswählen können Sie Tabellen aufnehmen, die mit der ausgewählten Tabelle im Fenster Abfrage verbunden sind.

Dieses Dialogfeld enthält:

Anzeigen	Diese Option ist nicht verfügbar.
Dropdown-Feld	Gibt an, ob alle zusammengehörigen Tabellen angezeigt werden sollen oder nicht.
Ausgewählte Datentabellen	Führt die verfügbaren zusammengehörigen Tabellen auf. Tip
Info	Zeigt Informationen über die ausgewählte Tabelle an: Art, Name, Eigentümer, Erstellungsdatum und Kommentare.
Aufnehmen	Nimmt die ausgewählte Tabelle auf.
Schließen	Schließt das Dialogfeld, ohne eine zusammengehörige Tabelle aufzunehmen.


Dialogfeld Tabelle umbenennen

  Verwandte Themen

Beschreibung  Mit dem Dialogfeld Tabelle umbenennen können Sie die momentan aktive Tabelle umbenennen.

Dieses Dialogfeld enthält:

Standard-Tabellenname	Gibt den aktuellen Namen der Tabelle an.
Listenfeld	Führt die Tabellen auf, die geöffnet sind und umbenannt werden können.
Neuer Name	Gibt den neuen Tabellennamen an.
Definieren	Aktualisiert den Tabellennamen, während das Dialogfeld geöffnet bleibt.


Umbenannte Tabellen identifizieren

In einer gespeicherten Abfrage wird nicht sofort deutlich, ob eine bestimmte Tabelle einen benutzerdefinierten Namen oder den Originalnamen hat.

So stellen Sie fest, ob eine bestimmte Tabelle umbenannt wurde:

1	Klicken Sie auf [image] in der Symbolleiste.

2	Klicken Sie auf die betreffende Tabelle in der Liste Verfügbare Tabellen.

Wenn die Tabelle umbenannt wurde, wird der Aliasname in dem Feld Neuer Name: und ein anderer Name (der Original-Tabellenname) in dem Feld Standard-Tabellenname: angezeigt.

SQL-Benutzer können umbenannte Tabellen auch identifizieren, indem Sie auf [image] in der Symbolleiste klicken. Dadurch wird das Dialogfeld SQL zeigen aufgerufen, in dem Namensänderungen in der SELECT-Anweisung in der SQL-Standardsyntax für Tabellenaliase angezeigt werden.


Dialogfeld Beziehung festlegen

  Verwandte Themen

Beschreibung  Mit dem Dialogfeld Beziehung festlegen können Sie einfache, Selbst-, zusammengesetzte, nichtentsprechende und Ungleichheitsbeziehungen zwischen zwei Tabellen erstellen.

Dieses Dialogfeld enthält:

Beziehung	Gibt die Ursprungs- (in A->) und Ziel- (in B->) Spaltennamen an.
Operator	Gibt die Art der Beziehung zwischen den Spalten an.
Beziehung in Abfrage verwenden	Gibt an, ob die Beziehung in der Abfrage benutzt wird. Standardmäßig ist dieses Kontrollkästchen ausgewählt.
Optionsschaltfläche A nicht in B	Gibt an, daß die abgerufenen Daten in beiden Tabellen gemeinsam vorhanden sind, außerdem in Daten, die in Tabelle A vorhanden sind, jedoch nicht in Tabelle B.
Optionsschaltfläche B nicht in A	Gibt an, daß die abgerufenen Daten in beiden Tabellen gemeinsam vorhanden sind, außerdem in Daten, die in Tabelle B vorhanden sind, jedoch nicht in Tabelle A.
Optionsschaltfläche Nichtentspr. unterdrücken	Standardwert. Gibt an, daß die abgerufenen Daten in beiden Tabellen gemeinsam vorhanden sind.


Über Beziehungen

  Verwandte Themen

Eine relationale Datenbank besteht aus einer Reihe von zusammengehörigen Tabellen. Jede Tabelle besteht aus Spalten (die gelegentlich als Felder bezeichnet werden), die vertikal angeordnet sind. Jede Spalte hat einen Namen und enthält einen eindeutigen Datentyp.

Mit Beziehungen oder Joins wird definiert, in welchem Verhältnis eine Spalte in einer Tabelle zu einer Spalte in einer anderen Tabelle steht. In vielen Fällen sind die benötigten Beziehungen schon in der Datenbank definiert. Mit Beziehungen wird auch die Datenredundanz verringert. Wenn zwischen Spalten in verschiedenen Tabellen eine Beziehung besteht, können Sie die Spalten gemeinsam in einer Abfrage benutzen. Hinweis

Zusammengehörige Spalten benutzen nicht immer dieselben Namen. Sie können Spalten, die denselben Datentyp haben, immer in eine Beziehung zueinander stellen. In bestimmten Fällen können Sie auch eine Beziehung zwischen Spalten unterschiedlicher Datentypen erstellen, wenn die Beziehung sinnvoll ist. So können Sie z.B. eine Spalte vom Typ Zahl mit einer Zeichenspalte verbinden, da eine Zahl auch als Zeichen interpretiert werden kann. Eigentlich kann nahezu jede Spalte (mit Ausnahme von langen Textspalten) in eine Beziehung zu Zeichenspalten gesetzt werden.

Beziehungen können benutzerdefiniert (temporär) sein oder in einem zugrundeliegenden Data Dictionary erstellt werden. Beziehungen im Data Dictionary werden automatisch angezeigt, wenn Sie zusammengehörige Tabellen aufnehmen (Tabellen, die über eine Primär-/Fremdschlüsselbeziehung verfügen). Sie müssen nichts tun, um diese Beziehungen zu benutzen, da sie immer gültig sind. Sie können mit Schema Builder erstellt oder geändert werden.

Benutzerdefinierte Beziehungen sind nur für die Abfrage gültig, in der Sie sie erstellen. Durch das Erstellen einer benutzerdefinierten Beziehung wird keine entsprechende permanente Beziehung in der zugrundeliegenden Tabelle erstellt. Der Hauptunterschied zwischen den beiden Beziehungen besteht darin, daß Sie bei einer benutzerdefinierten Beziehung die Beziehungslinie selbst ziehen müssen, während sie bei einer in der Datenbank gespeicherten Beziehung von Query Builder gezogen wird.

Hinweis (nur Report Builder):  Daten-Links von Report Builder sind nicht identisch mit Query Builder-Beziehungen. Daten-Links werden zwischen zwei oder mehr Abfragen erstellt, während Query Builder-Beziehungen (oder Joins) innerhalb einer einzigen Abfrage erstellt werden. Weitere Informationen finden Sie in der Online-Hilfe zu Report Builder.


Beziehungen aktivieren und deaktivieren

  Verwandte Themen

Beziehungen, die Sie mit der Maus erstellen, werden automatisch je nach Bedarf in einer Abfrage aktiviert und deaktiviert. Aktive Beziehungen werden mit einer dicken schwarzen Linie angezeigt, während inaktive Beziehungen als graue Linien dargestellt werden.

So aktivieren Sie eine Beziehung manuell mit der Maus:

  Doppelklicken Sie auf eine inaktive Beziehungslinie.

So deaktivieren Sie eine Beziehung:

  Doppelklicken Sie auf die aktive Beziehungslinie.


Dialogfeld Spalte definieren

Beschreibung  Mit dem Dialogfeld Spalte definieren können Sie eine neue Spalte in der Abfrage basierend auf Werten in einer anderen Spalte erstellen. Definierte Spalten werden sowohl im Bereich Datenquelle als auch im Fenster Ergebnisse angezeigt.

Dieses Dialogfeld enthält:

Definierte Spalten	Gibt den Namen der zu erstellenden Spalte an.
Listenfeld	Führt bestehende definierte Spalten auf.
Definiert als	Gibt den Ausdruck der ausgewählten Spalte an.
Definieren	Wendet die Definition für die Spalte an.
Entfernen	Löscht die ausgewählte Spalte.
Spalte einfügen	Zeigt das Dialogfeld Spalte einfügen an.
Funktion einfügen	Zeigt das Dialogfeld Funktion einfügen an.
Hinweis:  Die definierte Spalte ist nur ein Teil Ihrer Abfrage und ändert die in der Datenbank gespeicherte Tabellendefinition nicht.


Dialogfeld Sortieren

Beschreibung  Mit dem Dialogfeld Sortieren können Sie die Daten in Ihrer Abfrage entsprechend den Spalten in Ihrer Tabelle sortieren.

Dieses Dialogfeld enthält:

Verfügbare Spalten	Führt die Tabellenspalten auf, die Sie im Fenster Ergebnisse sortieren können.
Sortierte Spalten	Führt die Tabellenspalten auf, die momentan im Fenster Ergebnisse sortiert sind.
Kopieren	Kopiert die ausgewählte Spalte aus der Liste Verfügbare Spalten in die Liste Sortierte Spalten.
Entfernen	Entfernt die ausgewählte Spalte aus der Liste Sortierte Spalten.
Sortierung	Sortiert die ausgewählte Spalte in Aufsteigender oder Absteigender Reihenfolge. Der Standardwert ist Aufsteigend.


Query Builder-Hilfe

  Verwandte Themen

Neue Abfragen erstellen

Bedingungen zu einer Abfrage hinzufügen

Einfache Beziehungen erstellen

Spalten definieren

Abfragedaten sortieren


Über Query Builder

  Verwandte Themen

Query Builder ist ein benutzerfreundliches Werkzeug für den Datenzugriff, das speziell für Analytiker, Manager und andere Geschäftsleute entwickelt wurde. Mit Query Builder können Sie auf logische und intuitive Weise auf Informationen in den Datenbanken Ihrer Firma zur Analyse und Berichterstellung zugreifen.

Query Builder ist für Geschäftsleute gedacht, die keine Hintergrundkenntnisse bei Computerprogrammierung oder Datenbanken haben. Aufgrund der leistungsfähigen Abfragefunktionen und der Unterstützung von SQL-Anweisungen (Structured Query Language) werden auch erfahrene Datenbankbenutzer und Programmierer feststellen, daß Query Builder auch ihren Anforderungen gerecht wird.

Im grafischen Fenster Abfrage von Query Builder können Sie Daten aus den Datenbanken Ihres Unternehmens anfordern. Die Anforderung von Daten wird als Abfrage bezeichnet.

Mit Query Builder können Sie nahezu jede Abfrage definieren, die Sie mit einer SQL SELECT-Anweisung generieren würden. Query Builder generiert die entsprechende Klausel SELECT FROM [table.column] automatisch basierend auf den Spalten, die im Arbeitsbereich von Query Builder angezeigt werden.


Dialogfeld Spaltenfolge

Beschreibung  Mit dem Dialogfeld Spaltenfolge können Sie Ihre Abfrageergebnisse im Arbeitsbereich von Query Builder anpassen.

Dieses Dialogfeld enthält:

Verfügbare Spalten	Führt die Tabellenspalten auf, die Sie im Arbeitsbereich von Query Builder anzeigen können. Tip
Angezeigte Spalten	Führt die Tabellenspalten auf, die momentan im Arbeitsbereich von Query Builder angezeigt werden.
Kopieren	Kopiert die ausgewählte Spalte aus der Liste Verfügbare Spalten in die Liste Angezeigte Spalten.
Entfernen	Entfernt die ausgewählte Spalte aus der Liste Angezeigte Spalten.
Format	Zeigt das Dialogfeld Format an.
Summen	Zeigt das Dialogfeld Summen an.
Ausführen	Führt die Abfrage aus.


Dialogfeld Spalte einfügen

  Verwandte Themen

Beschreibung  Mit dem Dialogfeld Spalte einfügen können Sie eine bestehende Spalte aus einer ausgewählten Tabelle in die Abfrage einfügen.

Dieses Dialogfeld enthält:

Listenfeld	Führt die Spalten auf, die Sie einfügen können. Tip


Dialogfeld Funktion einfügen

Beschreibung  Mit dem Dialogfeld Funktion einfügen können Sie eine Funktion in Ihre Bedingung oder Abfrage einfügen.

Dieses Dialogfeld enthält:

Kategorien zeigen	Gibt die Funktionsarten an, die in dem Listenfeld angezeigt werden: Zahl, Zeichen, Datum, Konvertierung, Gruppe oder Andere.
Listenfeld	Führt die verfügbaren Funktionen unter der ausgewählten Kategorie auf.
Argumente einfügen	Gibt an, ob das Argument aufgenommen werden soll oder nicht. (Als Argument wird der Ausdruck einer Funktion in Klammern bezeichnet, der Informationen zur Benutzung durch die Funktion enthält.)


Dialogfeld SQL anzeigen

  Verwandte Themen

In dem Dialogfeld SQL anzeigen werden die bislang für Ihre Abfrage benutzten SQL-Anweisungen angezeigt. Sie können die SQL-Anweisungen im Dialogfeld SQL anzeigen nicht bearbeiten oder kopieren.


Die Spalte bzw. Spalten, die jede Zeile einer Tabelle eindeutig identifizieren. Primärschlüssel werden fett dargestellt.


Eine Spalte, die die Primärschlüsselwerte in einer anderen Tabelle referenziert. Fremdschlüssel werden kursiv dargestellt.


Die Quellen, aus denen eine Abfrage Daten abruft, einschließlich Tabellen, Ansichten, Abfragen, Synonymen und Snapshots.


Eine Datenquelle, die aus Spalten aus einer oder mehreren Datenbanktabellen besteht, die in einer logischen Tabelle kombiniert werden.


Eine Zeichenfolge, die aus einer Funktion oder einem Vorgang besteht, und die Datenbankspalten, für die der Vorgang ausgeführt wird (z.B. SALARY+COMMISSION).


Entsprechend den Benennungsregeln muß jeder Abfragename mit einem Buchstaben beginnen und kann maximal 30 Buchstaben und Zahlen enthalten. Wenn Sie sich beim Benennen von Datenbankabfragen nicht an die Benennungsregeln halten, konvertiert Query Builder den Namen in einen "literalen" Wert (Wert in Anführungszeichen).


Über den Bereich Bedingungen

Der Bereich Bedingungen ist ein Abschnitt im Fenster Abfrage, der das Feld Bedingung enthält, in das Sie Ausdrücke und Bedingungen eingeben können. Query Builder-Bedingungen generieren automatisch WHERE- oder HAVING-Klauseln je nach Bedarf.

Mit den Tabellen- und Spaltennamen wird angegeben, welche Spalten in der Bedingung gefiltert werden. Sie können den Tabellennamen weglassen, wenn der Spaltenname eindeutig ist. Tip

Hinweis:  Wenn Sie das Feld Bedingung aktivieren, erhält der Cursor ein (+)-Zeichen, mit dem angegeben wird, daß jedes Objekt, auf das Sie klicken, zu Ihrer Bedingung hinzugefügt wird. Um dies zu deaktivieren, können Sie auf [image] in der Symbolleiste klicken.


Über das Fenster Abfrage

Wenn Sie eine Abfrage öffnen, zeigt Query Builder diese im Fenster Abfrage an, das in zwei Bereiche unterteilt ist:

•	den Bereich Bedingungen, in dem sich das Feld Bedingung befindet. In ihm wird die Abfrage optimiert.

•	den Bereich Datenquelle, in dem die Tabellen (Ansichten, Snapshots usw.) angezeigt werden, die in der Abfrage verwendet werden.

Je nach den Voreinstellungen können die Bereiche vertikal oder horizontal geteilt werden.

Jede Tabelle wird in einem Feld angezeigt, das den Namen der Tabelle und die Namen der Spalten in dieser Tabelle enthält. Es gibt eine Reihe von Symbolen, mit denen das aktuelle Datenbankobjekt gekennzeichnet werden kann. Die Symbole geben an, ob beschreibende Kommentare angehängt sind, geben den Typ der Datenquelle sowie den Datentyp der Spalte an und weisen darauf hin, ob Indizes für Tabellen in der Abfrage definiert wurden.

Linien werden gezeichnet, um die Beziehungen zwischen den Spalten anzugeben. Beziehungen werden zwischen Tabellen festgelegt, um zu identifizieren, in welcher Beziehung eine Spalte in einer Tabelle zu einer Spalte in einer anderen Tabelle steht.

Mit einem Häkchen links neben dem Spaltennamen wird angegeben, daß die Spalte in der Abfrage aufgenommen wurde. Dies bedeutet, daß Query Builder bei der Ausführung der Abfrage nach Daten sucht, die dem Spaltennamen entsprechen. Wenn kein Häkchen angezeigt wird, bedeutet dies, daß die Daten in der Spalte nicht in der Abfrage aufgenommen werden.


Über den Bereich Datenquelle

  Verwandte Themen

Der Bereich Datenquelle ist der Abschnitt im Fenster Abfrage, in dem Objekte wie z.B. Tabellen und Beziehungen angezeigt werden.


Über die Symbolleiste

  Verwandte Themen

Die Symbolleiste wird am oberen Rand des Query Builder-Fensters angezeigt. Klicken Sie auf jedes Symbol, um eine Beschreibung anzuzeigen.


Symbol Speichern

Speichert Ihre Abfrage in der angegebenen Datei.


Symbol Ausschneiden

Schneidet den ausgewählten Text aus und speichert ihn in der Zwischenablage des Betriebssystems.


Symbol Kopieren

Kopiert den ausgewählten Text in die Zwischenablage des Betriebssystems, während der Originaltext unverändert bleibt.


Symbol Einfügen

Fügt den aktuellen Inhalt der Zwischenablage bei der aktiven Position ein. Wenn die Zwischenablage leer ist, wird nichts eingefügt. Sie können jeden Text einfügen, den Sie ausgeschnitten oder kopiert haben.


Symbol Löschen

Entfernt das ausgewählte Objekt (d.h. Text, Tabelle). Im Gegensatz zu dem Befehl Ausschneiden setzt der Befehl Löschen die entfernten Objekte nicht in die Zwischenablage des Betriebssystems.


Symbol Alles markieren

Markiert jedes Objekt im aktiven Fenster. Wenn z.B. der Bereich Bedingungen aktiv ist, werden alle Bedingungen in dem Bereich markiert.


Symbol Datentabellen auswählen

Zeigt das Dialogfeld Datentabellen auswählen an.


Symbol Zus. Tabellen auswählen

Zeigt das Dialogfeld Zusammengehörige Tabellen auswählen an. Dieses Symbol ist nur verfügbar, wenn die ausgewählte Tabelle über eine zusammengehörige Tabelle in der verbundenen Datenbank verfügt.


Symbol Tabelle umbenennen

Zeigt das Dialogfeld Tabelle umbenennen an. Dieses Symbol ist nur verfügbar, wenn mindestens eine Tabelle im Arbeitsbereich von Query Builder vorhanden ist.


Symbol Info aufrufen

Zeigt das Dialogfeld Info mit Informationen über das ausgewählte Datenbankobjekt an. Dieses Symbol ist nur verfügbar, wenn ein Datenquellobjekt aktiv ist.


Symbol Tabellenbeziehung festlegen

Zeigt das Dialogfeld Beziehung festlegen an. Dieses Symbol ist nur verfügbar, wenn mehr als eine Tabelle im Bereich Datenquelle vorhanden ist, für die eine Beziehung hergestellt werden kann.


Symbol SQL anzeigen

Zeigt das Dialogfeld SQL anzeigen und die SQL-Anweisung für die aktive Abfrage an.


Symbol Spaltenfolge

Zeigt das Dialogfeld Anzeigen an.


Symbol Spalte definieren

Zeigt das Dialogfeld Spalte definieren an.


Symbol Sortieren

Zeigt das Dialogfeld Sortieren an.


Symbol Und

Fügt den Operator AND in Ihre Bedingung ein. Dieses Symbol ist nur verfügbar, wenn das Feld Bedingung aktiv ist. Sie können AND auch direkt in das Feld Bedingung eingeben.


Symbol Oder

Fügt den Operator OR in Ihre Bedingung ein. Dieses Symbol ist nur verfügbar, wenn das Feld Bedingung aktiv ist. Sie können OR auch direkt in das Feld Bedingung eingeben.


Symbol Nicht

Fügt den Operator NOT in die Bedingung ein, um die Bedingung zu negieren. Dieses Symbol ist nur verfügbar, wenn das Feld Bedingung aktiv ist. Sie können NOT auch direkt in das Feld Bedingung eingeben.


Symbol Bedingung auflösen

Löst die Gruppierung von Bedingungen auf, die mit logischen Operatoren kombiniert sind, wie z.B. AND, OR, NOT. Dieses Symbol ist nur verfügbar, wenn Sie einen logischen Operator im Bereich Bedingung ausgewählt haben.


Symbol Annehmen

Validiert und akzeptiert die aktive Bedingung. Dieses Symbol ist nur verfügbar, wenn das Feld Bedingung aktiv ist. Sie können auch die Eingabetaste drücken, wenn das Feld Bedingung aktiv ist, um die Bedingung zu akzeptieren und zu validieren.


Symbol Abbrechen

Bricht die aktuelle Bedingung ab. Dieses Symbol ist nur verfügbar, wenn das Feld Bedingung aktiv ist.


Symbol Spalte einfügen

Zeigt das Dialogfeld Spalte einfügen an. Dieses Symbol ist nur verfügbar, wenn das Feld Bedingung aktiv ist.


Symbol Funktion einfügen

Zeigt das Dialogfeld Funktion einfügen an. Dieses Symbol ist nur verfügbar, wenn das Feld Bedingung aktiv ist.


Über Datentypen

  Verwandte Themen

Die gebräuchlichsten Datentypen in Query Builder sind:

CHAR oder VARCHAR2	CHAR wird für Zeichendaten mit einer festen Länge bis zu einer maximalen Größe von 255 Byte und einer Standardgröße von einem Byte benutzt. VARCHAR2 wird für Zeichenfolgen mit variabler Länge mit einer maximalen Größe von 2000 Byte benutzt. Bei VARCHAR2 müssen Sie die Größe angeben.
NUMBER	NUMBER gibt an, daß die Datenbankspalte Zahlen enthält (Ganzzahlen, Dezimalzahlen oder andere numerische Werte). Sie können Berechnungen mit Zahlen durchführen, die im Datentyp NUMBER dargestellt werden, jedoch nicht mit Zahlen, die mit dem Datentyp CHAR dargestellt werden.
DATE	DATE gibt an, daß die Datenbankspalte Datumswerte enthält. Gültige Datumsangaben, gehen vom 1. Januar 9999 v.Chr. bis zum 31. Dezember 9999 n.Chr. Das Standardformat ist TT-MON-JJ wie in '01-JAN-92'.
NUMBER(p,s)	Der Bereich von p (Gesamtstellen) geht von 1 bis 38. Der Bereich von s (Nachkommastellen) geht von -84 bis 127. Mit den Gesamtstellen wird die Anzahl von zu speichernden Ziffern angegeben. Die Nachkommastellen entsprechen den Ziffern nach dem Dezimalzeichen. Wenn die Gesamtstellenzahl negativ ist, werden die Daten auf die angegebene Anzahl von Stellen links vom Dezimalzeichen gerundet. So bedeutet z.B. eine Angabe von (10, -2), daß auf Hunderterstellen gerundet wird.
Außerdem unterstützt Query Builder beschränkt die folgenden Oracle-Datentypen:

LONG	Eine Spalte vom Typ LONG enthält alphanumerische Daten mit einer variablen Länge von maximal 2 GB (oder 231-1). Wenn Sie eine Spalte vom Typ LONG in einer Query Builder-Abfrage aufnehmen, werden die ersten 2000 Zeichen angezeigt.
RAW	Rohe Binärdaten. Die maximale Größe beläuft sich auf 255 Byte. Werte müssen als Zeichenfolgen in Hexadezimalschreibweise eingefügt werden. Werte werden in Hexadezimalform angezeigt. Sie müssen die Größe für RAW-Datentypen angeben.
LONG RAW	Bei Daten vom Typ LONG RAW werden rohe Binärdaten mit maximal 2 GB angezeigt (sie werden in Hexadezimalform im Fenster Ergebnisse angezeigt). LONG RAW-Datentypen unterliegen denselben Beschränkungen wie RAW-Datentypen.
Hinweis:  Query Builder unterstützt die Konvertierung von Datentypen in den Fällen, in denen Bedingungen und Ausdrücke verschiedene Datentypen in den Vergleichen referenzieren. Weitere Informationen finden Sie im Oracle8 Server SQL Language Reference Manual.


Symbole für Datentypen

  Verwandte Themen

Die folgenden unterstützten Datentypen für alle Spalten in einem Datenquellobjekt werden durch Symbole in der rechten Spalte des Objekts im Arbeitsbereich von Query Builder dargestellt.

Datentyp	Symbol	Beschreibung
Character		Benutzen Sie den Datentyp Character für Zeichendaten mit fester Länge mit einer maximalen Größe von 255 Byte und einer Standardgröße von 1 Byte. Hinweis:  Sie können Zahlen mit dem Datentyp Character darstellen, können jedoch nur mit numerischen Datentypen Berechnungen durchführen.
Varchar2		Benutzen Sie den Datentyp Varchar2 für Zeichenfolgen mit variabler Länge mit einer maximalen Größe von 2000 Byte. Sie müssen eine Größe für den Datentyp Varchar2 angeben.
Number		Benutzen Sie den Datentyp Number für Ganzzahl- oder Gleitkommadaten. Sie müssen eine Gesamtstellenzahl für ganzzahlige Daten eingeben. Der Gleitkomma-Datentyp gilt für Dezimalzahlen. Wenn Sie diesen Datentyp einer Spalte zuweisen, müssen Sie sowohl Gesamtstellen als auch Nachkommastellen angeben. Die Gesamtstellen (gesamte Anzahl von Ziffern in der Zahl) können von 1 bis 38 gehen. Die Nachkommastellen (Anzahl von Ziffern nach dem Dezimalzeichen) können von -84 bis 127 gehen. Wenn die Anzahl von Nachkommastellen negativ ist, werden die Daten auf die angegebene Anzahl von Stellen links neben dem Dezimalzeichen gerundet.  Eine Angabe von (10,2) bedeutet z.B. 10 Ziffern, wobei 2 Ziffern rechts neben dem Dezimalzeichen stehen. Eine Angabe von (10,-2) bedeutet eine Ganzzahl mit 10 Ziffern, auf die nächste Hunderterstelle gerundet.
Date		Benutzen Sie den Datentyp Date für beliebige Datumsangaben. Gültige Datumsangaben gehen vom 1. Januar 4712 v.Chr. bis zum 31. Dezember 4712 n.Chr. Das Standarddatumsformat ist TT-MON-JJ, wie in '01-JAN-97'.
Long		Benutzen Sie den Datentyp Long für lange Textfelder mit alphanumerischen Daten mit variabler Länge bis zu 2 GB.
Raw		Benutzen Sie den Datentyp Raw für rohe Binärdaten. Die maximale Größe beläuft sich auf 255 Byte. Die Werte müssen als Zeichenfolgen in Hexadezimalschreibweise eingefügt werden und werden in Hexadezimalform angezeigt. Sie müssen eine Größe für Daten vom Typ Raw angeben.
Long Raw		Der Datentyp Long Raw wird benutzt, um rohe Binärdaten mit maximal 2 GB zu speichern (die in Hexadezimalform eingegeben und angezeigt werden). Bei den Datentypen Long Raw muß keine Größe angegeben werden.
MLSLABEL		Benutzen Sie den Datentyp MLSLABEL, um das Binärformat eines Labels bei einem sicheren Betriebssystem zu speichern. Labels werden von Trusted ORACLE verwendet, um den Zugriff zu Informationen zu vermitteln. Außerdem können Sie Spalten mit diesem Datentyp definieren, wenn Sie den standardmäßigen ORACLE-Server verwenden. Weitere Informationen über Trusted ORACLE, einschließlich diesem Datentyp und Labels finden Sie im Trusted ORACLE8 Server Administrator's Guide.


Schreibweise für Datenquellobjekte

  Verwandte Themen

Als nächstes sehen Sie ein Beispiel für zwei Datenquellobjekte, die durch eine Beziehung miteinander verknüpft sind.

Klicken Sie auf ein Symbol, einen Indikator oder einen Teil dieser Objekte, um eine Beschreibung anzuzeigen.


Indikator für den Objekttyp

Das Symbol in der oberen linken Ecke eines Datenquellobjekts gibt dessen Typ an:

  Tabelle

  Ansicht

  Abfrage

  Snapshot

  Synonym


Objekttitel

Dies ist der Name des Datenquellobjekts. Sie können den Namen ändern, indem Sie auf den Objekttitel klicken.


Kommentar-Indikator

Dieses Symbol gibt an, daß mit diesem Objekt (bzw. dieser Spalte) ein Kommentar verknüpft ist. Doppelklicken Sie auf dieses Symbol, um das Dialogfeld Info zu öffnen, in dem Sie die Kommentare anzeigen können.


Spaltenname

Dies ist der Name von einer der Spalten in diesem Objekt. Wenn Sie auf einen Spaltennamen doppelklicken, wird die Spalte in der Abfrage aufgenommen.


Indikatoren für den Datentyp

Diese Symbole geben die Datentypen der entsprechenden Spalten an. Wenn Sie auf eines dieser Symbole klicken und die Maustaste gedrückt halten, wird ein Popup-Menü angezeigt, und Sie können einen anderen Datentyp auswählen.


Beziehungslinie

Eine graue Linie, die zwischen zwei Spalten gezogen ist, gibt an, daß zwischen den Spalten an jedem Ende der Linie eine Beziehung erstellt wurde. Diese Linie wird vom Fremdschlüssel zum Primärschlüssel gezogen.


Indikator für Selbstbeziehungen

Dieses Symbol gibt an, daß zwischen dieser Spalte (Fremdschlüssel) und einer anderen Spalte (Primärschlüssel) in derselben Tabelle eine Selbstbeziehung erstellt wurde.


Primärschlüssel

Ein in Fettschrift angezeigter Spaltenname gibt an, daß diese Spalte als Primärschlüssel für das Objekt definiert wurde.


Fremdschlüssel

Ein in Kursivschrift angezeigter Spaltenname gibt an, daß diese Spalte ein Fremdschlüssel ist, der mit einem Primärschlüssel in einer anderen Spalte verbunden ist. Ein Fremdschlüssel kann nur definiert werden, indem eine Beziehung zwischen zwei Spalten festgelegt wird.


 Anstatt eine Tabelle auszuwählen und auf Aufnehmen zu klicken, können Sie auf jede Zieltabelle doppelklicken, um sie in den Arbeitsbereich von Query Builder zu verschieben. Um einen Tabellenbereich aufzunehmen, halten Sie die Umschalttaste gedrückt, während Sie auf die erste und letzte Tabelle in dem Bereich klicken.


Auch wenn Sie mit diesem Dialogfeld Beziehungen festlegen können, sollten Sie Beziehungen, wenn möglich, mit der Mausmethode erstellen. Bei Beziehungen, die auf diese Weise erstellt werden, aktiviert und deaktiviert Query Builder die Beziehungslinien automatisch für Sie.


Wenn neben einer Spalte ein Häkchen hervorgehoben wird, bedeutet dies, daß die Spalte in der SELECT-Anweisung angezeigt und in den Abfrageergebnissen dargestellt wird. Wenn neben der Spalte ein graues Häkchen steht, wird die Spalte als Sortier- oder Gruppenkriterium verwendet.


Im allgemeinen können Sie mit Query Builder Spalten verbinden, die mit der impliziten Konvertierungsfunktion der Oracle-Datenbank interpretiert werden können. Technische Informationen über die implizite Konvertierung finden Sie im Oracle8 Server SQL Language Reference Manual.


Der Ausdruck in dem Feld Definiert als besteht typischerweise aus einer Funktion oder einem Vorgang und der bzw. den Datenbankspalten, für die dieser Vorgang ausgeführt werden soll. Wenn der Spaltenname in mehr als einer Tabelle auftritt, müssen Sie auch den Tabellennamen referenzieren und diesen durch einen Punkt vom Spaltennamen trennen. Wenn der Spaltenname eindeutig ist, können Sie nur den Spaltennamen angeben.


Das Umbenennen einer Tabelle führt nicht zu einer entsprechenden Änderung in dem zugrundeliegenden Namen in der Datenbank. Der neue Name ist nur für die aktive Abfrage gültig. Er bleibt in der Abfrage, bis Sie diese speichern.


Um das Dialogfeld Beziehungen festlegen anzuzeigen, klicken Sie auf [image] in der Symbolleiste.


Um das Dialogfeld Tabellen auswählen anzuzeigen, klicken Sie auf [image] in der Symbolleiste.


Um das Dialogfeld Tabelle umbenennen anzuzeigen, klicken Sie auf [image] in der Symbolleiste.


Wenn Sie ein Spaltenobjekt aus einer Tabelle auswählen, benutzt Query Builder automatisch den Tabellenalias in der Abfrage. Wenn Sie ein Spaltenobjekt im Feld Bedingung aufnehmen und die Bedingung akzeptieren, fügt Query Builder die entsprechenden Tabellenaliase ebenfalls in Ihre Bedingung ein.


Sie können eine Spalte wie folgt auswählen bzw. die Auswahl aufheben:

•	Wählen Sie das Kontrollkästchen neben der Spalte (bzw. heben Sie die Auswahl auf).

ODER

•	Doppelklicken Sie auf den Spaltennamen.


Über Funktionen von Query Builder

  Beispiele 	  Verwandte Themen

Eine Funktion kann insofern mit einem Operator verglichen werden, als Datenobjekte verarbeitet werden und ein Ergebnis zurückgegeben wird. Funktionen unterscheiden sich von Operatoren in dem Format, in dem sie mit ihren Argumenten angezeigt werden. Aufgrund dieses Formats können sie mit einer beliebigen Anzahl von Argumenten oder keinen Argumenten ausgeführt werden. Jedesmal, wenn Sie eine Spalte mit einem Funktionsnamen verknüpfen, führt Query Builder den gewünschten Vorgang für die Werte in dieser Spalte aus.

Folgende Funktionen können mit Abfragen in Query Builder verwendet werden:

•	Zahlenfunktionen

•	Zeichenfunktionen

•	Zeichenfunktionen, die numerische Werte zurückgeben

•	Konvertierungsfunktionen

•	Datumsfunktionen

•	Gruppenfunktionen

•	Andere Funktionen

Zusätzliche Informationen:  Weitere Informationen über die anderen Funktionen finden Sie im Oracle8 Server SQL Language Reference Manual.


Funktionen und Argumente

  Beispiele 	  Verwandte Themen

Mit einer Funktion werden Daten in einer bestimmten Spalte bearbeitet. Für jede Funktion können ein oder mehrere Argumente angegeben werden. Ein Argument ist ein Ausdruck in Klammern einer Funktion, der Informationen für die Funktion enthält.

Ein Beispiel hierfür ist die Funktion ROUND, die eine Zahl auf den von Ihnen angegebenen Grad rundet. Wenn Sie den Ausdruck ROUND (CREDIT_LIMIT, -2) eingeben, würde Query Builder jeden Wert für CREDIT_LIMIT auf den nächsten Hunderterwert runden. Wenn Sie ROUND(CREDIT_LIMIT, 1) eingeben, würde Query Builder die Werte für CREDIT_LIMIT auf das nächste Zehntel runden.

Folgende Werte werden innerhalb von Argumenten verwendet:

Argumentwert	Beschreibung
char, set, search,	Zeichenkonstante, die in einfachen Anführungszeichen steht.
replace	Markierungen oder ein Ausdruck, der Zeichendaten zurückgibt.
d, e	Datumskonstante, die in einfachen Anführungszeichen steht, oder ein Ausdruck, der Datumsdaten zurückgibt.
m, n	Beliebige Zahlenkonstante oder Ausdruck, der numerische Daten zurückgibt.
x	Der Argumenttyp hängt vom Kontext der Funktion ab.
expr	Ausdruck beliebigen Typs.
fmt	Ein Format, mit dem die Anzeige von Daten geändert oder Daten in ein Feld von Query Builder bzw. eine Bedingung in einem anderen Format als dem Standardformat eingegeben werden.


Zahlenfunktionen

  Verwandte Themen

Zahlenfunktionen akzeptieren numerische Daten und geben numerische Daten zurück. Sie können Zahlenfunktionen bei der Definition von Spalten und Bedingungen benutzen.

Funktion (Argumente)	Beschreibung
ABS(n)	Absoluter Wert von n.
CEIL(n)	Kleinste Ganzzahl größer als oder gleich n.
COS(n)	Gibt den Kosinus von n (einen Winkel in Radiant) zurück.
COSH(n)	Gibt den hyperbolischen Kosinus von n zurück.
EXP(n)	Exponentialschreibweise. Gibt e (2.71828183...) in die n-te Potenz erhoben zurück.
FLOOR(n)	Größte Ganzzahl gleich oder kleiner als n.
LN(n)	Gibt den natürlichen Logarithmus von n zurück, wobei n größer ist als 0.
LOG(m,n)	Gibt den Logarithmus von n zur Basis m zurück. Die Basis m kann eine beliebige positive Zahl mit Ausnahme von 0 oder 1 sein, und n kann eine beliebige positive Zahl sein.
MOD(m,n)	Rest von m dividiert durch n.
POWER(m,n)	m in die n-te Potenz erhoben. Wenn n keine Ganzzahl ist, wird sie abgeschnitten.
ROUND(n[,m])	n gerundet auf m Dezimalstellen; wenn m weggelassen wird, wird auf 0 Stellen gerundet. m kann negativ sein, um Ziffern links vom Dezimalzeichen zu runden.
SIGN(n)	Wenn n<0 ist, -1; wenn n=0 ist, 0; wenn n>0 ist, 1.
SIN(n)	Gibt den Sinus von n zurück (einen Winkel in Radiant).
SINH(n)	Gibt den hyperbolischen Sinus von n zurück.
SQRT(n)	Quadratwurzel von n; wenn n<0 ist, NULL.
TAN(n)	Gibt den Tangens von n zurück (einen Winkel in Radiant).
TANH(n)	Gibt den hyperbolischen Tangens von n zurück.
TRUNC(n[,m])	n abgeschnitten auf m Dezimalstellen; wenn m weggelassen wird, wird auf 0 Stellen abgeschnitten. m kann negativ sein, um Ziffern links neben dem Dezimalzeichen abzuschneiden (auf null zu setzen).


Zeichenfunktionen

  Verwandte Themen

Sie können Zeichenfunktionen benutzen, die Zeichendaten akzeptieren und Zeichendaten zurückgeben, wenn Sie Spalten und Bedingungen definieren.

Funktion (Argumente)	Beschreibung
CHR(n)	Das Zeichen mit dem binären Äquivalent von n im Zeichensatz der Datenbank.
CONCAT(char1,char2)	Gibt char1 verkettet mit char2 zurück. Diese Funktion ist gleichbedeutend mit dem Verkettungsoperator (||).
INITCAP(char)	char, wobei der erste Buchstabe jedes Wortes groß geschrieben wird. Wörter werden durch Leerzeichen oder Zeichen begrenzt, bei denen es sich nicht um alphanumerische Zeichen handelt.
LOWER(char)	char, wobei alle Buchstaben klein geschrieben werden.
LPAD(char1,n[,char2])	char1, linksbündig auf die Länge n mit der Zeichenfolge in char2 aufgefüllt, so oft repliziert wie erforderlich; wenn char2 weggelassen wird, wird mit Leerzeichen aufgefüllt.
LTRIM(char[,set])	char, wobei die Anfangszeichen bis zum ersten Zeichen entfernt werden, das nicht in set enthalten ist. set entspricht standardmäßig ' ' (einzelne Leerstelle).
NLS_INITCAP(char [,nlsparams])	Gibt char zurück, wobei der erste Buchstabe jedes Wortes groß geschrieben wird. Wörter werden durch Leerzeichen oder Zeichen begrenzt, die nicht alphanumerisch sind. Die in nlsparams angegebenen Parameter können die Form NLS_SORT=sort haben, wobei sort eine linguistische Sortierfolge für Ihre Sitzung oder BINARY ist. Wenn Sie BINARY angeben, gibt diese Funktion char zurück. Informationen über Sortierfolgen finden Sie im Oracle8 Server Concepts Manual.
NLS_LOWER(char[,nlsparams])	Gibt char zurück, wobei alle Buchstaben klein geschrieben werden. Das Argument nlsparams wird unter NLS_INITCAP beschrieben.
NLS_UPPER(char[,nlsparams])	Gibt char zurück, wobei alle Buchstaben groß geschrieben werden. Das Argument nlsparams wird unter NLS_INITCAP beschrieben
NLS_UPPER(char[,nlsparams])	Gibt char zurück, wobei alle Buchstaben groß geschrieben werden
REPLACE(char,search[,replace])	char, wobei jedes Auftreten von search durch replace ersetzt wird. Wenn replace nicht angegeben wird, wird jedes Auftreten von search entfernt.
RPAD(char1,n[,char2])	char1, rechtsbündig auf die Länge von n mit den Zeichen in char2 aufgefüllt, so oft repliziert wie erforderlich; wenn char2 weggelassen wird, wird mit Leerzeichen aufgefüllt.
RTRIM(char[,set])	char, wobei die abschließenden Zeichen nach dem letzten Zeichen, das nicht in set enthalten ist, entfernt werden. set entspricht standardmäßig ' ' (einzelnes Leerzeichen).
SOUNDEX(char)	Ein char-Wert, der den Klang der Wörter in char darstellt.
SUBSTR(char,m[,n])	Eine Unterfolge von char, beginnend beim Zeichen m, mit der Länge von n Zeichen, wenn n weggelassen wird.
SUBSTRB(char,m[,n])	Wie SUBSTR, nur werden die Argumente m und n in Byte und nicht in Zeichen ausgedrückt. Bei Einfachbyte-Zeichensätzen ist SUBSTRB identisch mit SUBSTR.
UPPER(char)	char, wobei alle Buchstaben groß geschrieben werden.


Zeichenfunktionen, die numerische Daten zurückgeben

  Verwandte Themen

Bei der Definition von Spalten und Bedingungen können Sie Zeichenfunktionen benutzen, die numerische Daten zurückgeben.

Abkürzung	Beschreibung
ASCII (char)	ASCII-Wert des ersten Zeichens von char.
INSTR(char1,char2[,n[,m]])	Position des n-ten Auftretens von char2 in char1, wobei bei der Position n mit der Suche begonnen wird. Wenn m weggelassen wird, wird von 1 ausgegangen. Wenn n weggelassen wird, wird von 1 ausgegangen. Die Position wird relativ zum ersten Zeichen von char1 angegeben, selbst wenn n>1 ist.
INSTRB(char1,char2[,n[,m]])	Wie INSTR, nur werden n und der zurückgegebene Wert in Byte ausgedrückt und nicht in Zeichen. Bei Einfachbyte-Zeichensätzen ist INSTRB identisch mit INSTR.
LENGTH(char)	Länge von char in Zeichen.
LENGTHB(char)	Identisch mit LENGTH, nur wird char in Byte und nicht in Zeichen ausgedrückt. Wenn char NULL ist, gibt diese Funktion NULL zurück. Bei einem Einfachbyte-Zeichensatz ist LENGTHB identisch mit LENGTH.
NLSSORT(char[,nlsparams])	Gibt die Folge von Bytes zurück, die für das Sortieren von char verwendet wird. Die in nlsparams angegebenen Parameter haben die Form NLS_SORT=sort, wobei sort eine linguistische Sortierfolge für Ihre Sitzung oder BINARY ist. Wenn Sie BINARY angeben, gibt diese Funktion char zurück. Weitere Informationen über Sortierfolgen finden Sie im Oracle8 Server Concepts Manual.


Konvertierungsfunktionen

  Verwandte Themen

Bei der Definition von Spalten und Bedingungen können Sie Konvertierungsfunktionen benutzen, um Daten von einem Datentyp zu einem anderen zu konvertieren.

Abkürzung	Beschreibung
TO_CHAR (d[,fmt])	Konvertiert d in einen char-Wert in dem mit dem char-Wert fmt angegebenen Format. Wenn fmt weggelassen wird, wird d in einen char-Wert im Standard-Datumsformat von Query Builder, TT-MON-JJ konvertiert.
TO_CHAR(n[,fmt])	Konvertiert n in einen char-Wert in dem mit dem char-Wert fmt angegebenen Format. Wenn fmt weggelassen wird, wird n in einen char-Wert konvertiert, der genau so lang ist, daß die signifikanten Ziffern aufgenommen werden können.
TO_DATE(char[,fmt])	Konvertiert ein Datum aus einem char-Wert in einen Datumswert. fmt ist ein char-Wert, der das Format von char angibt. Wenn fmt weggelassen wird, muß char das Standarddatumsformat von Query Builder aufweisen, TT-MON-JJ.
TO_DATE(n,[fmt])	Konvertiert eine Zahl in ein Datum. fmt muß ein Format aufweisen, das bei der Benutzung mit TO_CHAR ein DATUM ergibt (z.B. J oder MM).
TO_LABEL(char[,fmt])	Konvertiert char, d.h. einen Wert mit dem Datentyp CHAR oder VARCHAR2, der ein Label im Format fmt enthält, in einen Wert mit dem Datentyp MLSLABEL. Wenn Sie fmt weglassen, muß char das Standard-Labelformat aufweisen.
TO_MULTI_BYTE (char)	Gibt char zurück, wobei alle Einfachbyte-Zeichen in die entsprechenden Multibyte-Zeichen konvertiert werden. Einfachbyte-Zeichen, für die es kein Multibyte-Äquivalent gibt, werden in der Ausgabefolge als Einfachbyte-Zeichen angezeigt. (Diese Funktion ist nur sinnvoll, wenn Ihr Zeichensatz beide Typen enthält.)
TO_NUMBER (char)	Konvertiert char, Zeichendaten, die eine Zahl enthalten, in numerische Daten.
TO_SINGLE_BYTE (char)	Gibt char zurück, wobei alle Multibyte-Zeichen in die entsprechenden Einfachbyte-Zeichen konvertiert werden. Multibyte-Zeichen, für die es kein Einfachbyte-Äquivalent gibt, werden in der Ausgabefolge als Multibyte-Zeichen angezeigt. (Diese Funktion ist nur sinnvoll, wenn Ihr Zeichensatz beide Typen enthält.)


Datumsfunktionen

  Verwandte Themen

Alle Datumsfunktionen geben Datumsangaben zurück, mit Ausnahme von MONTHS_BETWEEN, die numerische Daten zurückgibt. Sie können diese Funktionen bei der Definition von Spalten und Bedingungen verwenden.

Abkürzung	Beschreibung
ADD_MONTHS (d,n)	Datum d plus n Monate.
LAST_DAY(d)	Datum des letzten Tags des Monats, der d enthält.
MONTHS_BETWEEN(d,e)	Anzahl von Monaten zwischen den Datumsangaben d und e. Wenn d einen späteren Zeitpunkt als e angibt, ist das Ergebnis positiv. Wenn ein früherer Zeitpunkt angegeben wird, ist das Ergebnis negativ.
NEW_TIME(d,a,b)	Datum und Uhrzeit in Zeitzone b, wenn Datum und Uhrzeit in Zeitzone a gleich d sind. a und b sind char-Ausdrücke mit folgender Bedeutung:
AST, ADT:	Atlantic Standard oder Daylight Time
BST, BDT:	Bering Standard oder Daylight Time
CST, CDT:	Central Standard oder Daylight Time
EST, EDT:	Eastern Standard oder Daylight Time
GMT:	Greenwich Mean Time
HST, HDT:	Alaska-Hawaii Standard oder Daylight Time
MST, MDT:	Mountain Standard oder Daylight Time
NST:	Newfoundland Standard Time
PST, PDT:	Pacific Standard oder Daylight Time
YST, YDT:	Yukon Standard oder Daylight Time
NEXT_DAY(d,char)	Datum des ersten Wochentags, der mit char angegeben wird und gleich oder später als d ist.
ROUND(d[,fmt])	d wie mit der Rundungseinheit fmt angegeben gerundet; wenn fmt weggelassen wird, der nächstgelegene Tag.
SYSDATE	Laufendes Datum und laufende Uhrzeit. Erfordert keine Argumente.
TRUNC(d[,fmt])	d mit Tageszeit abgeschnitten auf die angegebene Einheit, fmt; wenn fmt weggelassen wird, wird die Tageszeit entfernt.
Zusätzliche Informationen:  In Oracle8 Server SQL Language Reference Manual finden Sie eine Tabelle mit Formatmodellen, die mit den Datumsfunktionen ROUND und TRUNC benutzt werden.


Gruppenfunktionen

  Verwandte Themen

Gruppenfunktionen rufen Daten basierend auf Zeilengruppen und nicht ein Ergebnis pro Zeile ab. Gruppenfunktionen führen Berechnungen wie Mittelwert, Anzahl, Summe und Standardabweichung durch.

Mit Gruppenfunktionen können Sie auch eine neue Spalte definieren, und das ganze Ergebnis wird als eine Gruppe behandelt, wenn Sie keine anderen Spalten anzeigen. Wenn Sie andere Spalten anzeigen, wird das Ergebnis in kleinere Gruppen aufgeteilt. Sie können Gruppenfunktionen in Bedingungen verwenden, jedoch nur mit einem Vergleichsoperator, so daß das ganze Ergebnis als eine Gruppe behandelt wird. So ist z.B. die Bedingung SALARY > AVG(SALARY) wahr, wenn der Wert von SALARY in der aktuellen Zeile größer ist als der Mittelwert von SALARY in allen Zeilen.

Gruppenfunktionen können mit den Optionen DISTINCT oder ALL benutzt werden. Bei Benutzung von DISTINCT berücksichtigt eine Gruppenfunktion nur eindeutige Funktionen eines Ausdrucks. So ist z.B. der Mittelwert von 1, 1, 1 und 3 gleich 1,5, während der DISTINCT-Mittelwert gleich 2 ist. Bei Benutzung von ALL berücksichtigt eine Gruppenfunktion alle Werte, einschließlich Duplikaten.

Die gesamten unten aufgeführten Gruppenfunktionen überspringen Nullwerte, mit Ausnahme von COUNT(*). Der Datentyp der Argumente kann character, number oder date sein, wenn expr aufgeführt wird.

Funktion (Argument)	Beschreibung
AVG([DISTINCT|ALL]n)	Mittelwert von n, wobei Nullwerte ignoriert werden.
COUNT([DISTINCT|ALL] expr)	Anzahl von Zeilen, wobei expr nicht null ist.
COUNT(*)	Anzahl von Zeilen in der Tabelle, einschließlich Duplikaten und Zeilen mit Nullwerten.
GLB([DISTINCT|ALL] label)	Gibt den höchsten unteren Grenzwert von label an.
LUB([DISTINCT|ALL] label)	Gibt den kleinsten oberen Grenzwert von label an.
Zusätzliche Informationen:  GLB und LUB geben Werte mit dem Datentyp MLSLABEL zurück. Weitere Informationen über die Funktionen GLB und LUB finden Sie im Trusted Oracle8 Server Administrator's Guide.

Funktion (Argument)	Beschreibung
MAX([DISTINCT|ALL] expr)	Höchstwert von expr.
MIN([DISTINCT|ALL] expr)	Mindestwert von expr.
STDDEV([DISTINCT|ALL]n)	Standardabweichung von n, wobei Nullwerte ignoriert werden, basierend auf einer Berechnung von n-1 (Beispiel).
SUM([DISTINCT|ALL] n)	Summe der Werte von n.
VARIANCE([DISTINCT|ALL] n)	Varianz von n, wobei Nullwerte ignoriert werden.


Andere Funktionen

  Verwandte Themen

Query Builder akzeptiert auch folgende Funktionen:

Funktion (Argument)	Beschreibung
USER	Gibt den Namen des aktuellen Oracle-Benutzers zurück. Erfordert keine Argumente.
DECODE(expr,search1, replace1[,search2, replace2,] ... [default])	Wenn expr einem beliebigen search entspricht, wird der folgende replace zurückgegeben. Wenn nicht, wird default zurückgegeben. Wenn default weggelassen und keine Übereinstimmung gefunden wird, wird NULL zurückgegeben. expr kann einen beliebigen Datentyp aufweisen; search muß denselben Datentyp aufweisen. Für den zurückgegebenen Wert wird derselbe Datentyp durchgesetzt, wie beim ersten Rückgabewert.
GREATEST(expr1,expr2,...)	Gibt den größten Wert einer Liste von Werten zurück. Alle expr im Anschluß an expr1 werden in den Typ von expr1 konvertiert, bevor der Vergleich durchgeführt wird.
GREATEST_LB(label[,label] ...)	Gibt den größten unteren Grenzwert der Liste mit Labels zurück. Jedes label muß entweder den Datentyp MLSLABEL oder RAW MLSLABEL aufweisen bzw. ein Literal in Anführungszeichen im Standard-Labelformat sein. Der Rückgabewert hat den Datentyp RAW MLSLABEL.
LEAST(expr1,expr2,...)	Gibt den kleinsten Wert einer Werteliste zurück. Alle expr im Anschluß an expr1 werden in den Typ von expr1 konvertiert, bevor der Vergleich erfolgt.
LEAST_UB(label[,label] ...)	Gibt den niedrigsten oberen Grenzwert der Liste mit Labels zurück. Jedes label muß den Datentyp MLSLABEL haben oder ein Literal in Anführungszeichen im Standard-Labelformat sein. Der Rückgabewert hat den Datentyp RAW MLSLABEL.
NVL(x,expr)	Wenn x null ist, wird expr zurückgegeben; wenn x nicht null ist, wird x zurückgegeben. x und expr können einen beliebigen Typ aufweisen. Der Typ des zurückgegebenen Wertes entspricht dem Typ von x.
Zusätzliche Informationen:  Weitere Informationen über die Funktionen GREATEST_LB und LEAST_UB finden Sie im Trusted Oracle8 Server Administrator's Guide.


Über Selbstbeziehungen
K  Über Selbstbeziehungen

  Verwandte Themen

Mit einer Selbstbeziehung wird eine Tabelle mit sich selbst verbunden. Selbstbeziehungen haben eine begrenzte, sehr spezifische Verwendung: Mit ihnen wird ein hierarchischer Link zwischen zwei Spalten erstellt, die in derselben Tabelle vorhanden sind. So könnten Sie z.B. eine Selbstbeziehung benutzen, um die Niederlassungen eines Unternehmens mit der Muttergesellschaft zu verbinden oder die Mitarbeiter mit ihren jeweiligen Vorgesetzten.

Eine Selbstbeziehung kann nur wirksam sein, wenn die Spalten in der Tabelle Gegenstücke zueinander darstellen. In der Beispieldatenbank Employee ist z.B. die Manager ID identisch mit der Employee ID für diesen Manager. Deshalb wird das Symbol für die Selbstbeziehung in der Spalte Manager ID angezeigt.


Selbstbeziehung erstellen

  Verwandte Themen

So erstellen Sie eine Selbstbeziehung:

1	Query Builder zeigt im Dialogfeld Beziehung festlegen eine Liste der Tabellen an, für die Beziehungen mit der ausgewählten Tabelle definiert sind.

2	Klicken Sie auf den Tabellennamen.

3	Klicken Sie auf Aufnehmen.

4	Klicken Sie auf OK.

5	Wiederholen Sie die obige Prozedur für denselben Tabellennamen.

6	Query Builder gibt der Kopie der zusammengehörigen Tabelle automatisch einen Aliasnamen. Benennen Sie die Tabelle so um, daß der Name mit dem Original übereinstimmt.

Hinweis:  Wenn die Selbstbeziehung schon in dem zugrundeliegenden Data Dictionary identifiziert wurde, sind die beiden zusammengehörigen Spalten in der Tabelle und der Alias durch eine Beziehungslinie miteinander verbunden. Wenn die Selbstbeziehung noch nicht im Data Dictionary identifiziert wurde, können Sie eine Selbstbeziehung erstellen, indem Sie eine temporäre Beziehungslinie ziehen, um die beiden zusammengehörigen Spalten in der Tabelle und den Alias miteinander zu verbinden.


 Einfache Beziehungen erstellen

  Verwandte Themen

So erstellen Sie eine Beziehung mit der Maus:

1	Öffnen Sie die Tabellen, für die Sie eine Beziehung erstellen möchten, im Fenster Abfrage.

2	Wählen Sie die Spalte, für die Sie eine Beziehung erstellen möchten (den Fremdschlüssel), während die Tabelle angezeigt wird.

3	Ziehen Sie den Cursor bei gedrückter Maustaste zu der verbundenen Spalte in der zweiten Tabelle (dem Primärschlüssel), um eine Beziehungslinie zu zeichnen.

4	Sobald die Zielspalte hervorgehoben wird, lassen Sie die Maustaste los, um die Beziehungslinie zu verankern. Standardmäßig ist die Beziehung inaktiv (die Linie wird grau angezeigt).

So erstellen Sie eine Beziehung mit dem Dialogfeld Beziehung festlegen:

1	Geben Sie im Dialogfeld Beziehung festlegen die Ursprungs- (A->) und Ziel- (->B) Spaltennamen ein.  Hinweis Query Builder zeichnet eine Beziehungslinie zwischen den beiden Spalten.

2	Klicken Sie auf Schließen.

So erstellen Sie eine Beziehung auf kurzem Wege:

1	Klicken Sie im Dialogfeld Beziehung festlegen auf Feld A.

2	Wählen Sie die Spalte im Fenster Abfrage. Query Builder setzt die Tabelle und den Spaltennamen automatisch in Feld A.

3	Wiederholen Sie den Vorgang für Feld B.


Zusammengesetzte Beziehungen erstellen

  Verwandte Themen

Eine zusammengesetzte Beziehung verbindet zwei oder mehr Spalten in einer Tabelle mit Spalten in einer anderen Tabelle. So könnten Sie z.B. die Spalten Order ID und Item ID in der Tabelle Items mit identisch benannten Spalten in der Tabelle Item List verbinden.

So erstellen Sie eine zusammengesetzte Beziehung:

1	Klicken Sie im Arbeitsbereich von Query Builder auf [image] in der Symbolleiste.

2	Nehmen Sie die beiden zu verbindenden Tabellen auf.

3	Wählen Sie die Spalte, die verbunden werden soll (den Fremdschlüssel).

4	Ziehen Sie bei gedrückter Maustaste den Cursor zu der zusammengehörigen Spalte in der zweiten Tabelle (den Primärschlüssel). Beachten Sie, daß der Cursor dabei eine Beziehungslinie zeichnet.

5	Sobald die Zielspalte hervorgehoben wird, lassen Sie die Maustaste los, um die Beziehungslinie zu verankern. Standardmäßig ist die Beziehung inaktiv (die Linie wird grau angezeigt).

Sie können beliebig viele zusammengesetzte Beziehungen für Ihre Abfrage verwenden. Außerdem können Sie Spalten in zusammengesetzten Beziehungen unabhängig davon aufnehmen, ob diese in anderen Beziehungen benutzt werden.


Sie müssen die vollständigen Tabellen- und Spaltennamen eingeben (trennen Sie den Tabellennamen von den Spaltennamen durch einen Punkt). A-> stellt den bzw. die Fremdschlüssel der Tabelle dar, während ->B den bzw. die Primärschlüssel der Tabelle darstellt. Trennen Sie zusätzliche Primär- und Fremdschlüssel durch Komma.


Nichtentsprechende Beziehungen erstellen

  Verwandte Themen

So erstellen Sie eine nichtentsprechende oder äußere Beziehung:

1	Klicken Sie im Fenster Abfrage auf die Beziehungslinie, die die Tabellen verbindet. Wenn keine Beziehungslinie vorhanden ist, erstellen Sie eine einfache Beziehung zwischen den beiden Tabellen.

2	Wählen Sie im Dialogfeld Beziehung festlegen eine der Anzeigeoptionen, um entweder alle Datensätze, die in einer einfachen Beziehung enthalten sind, oder nur die Zeilen abzurufen, bei denen ein entsprechender Wert in beiden Tabellen vorhanden ist.

Hinweis:  Eine Zeile, die einen Wert von 0 (null) zurückgibt, ist nicht identisch mit einer nichtentsprechenden Zeile. Die Option Nichtentspr. unterdrücken kann nur bei Zeilen benutzt werden, die Nullwerte zurückgeben und nicht 0 Werte. Benutzen Sie diese Funktion, wenn Sie Daten anzeigen möchten, bei denen für eine Tabelle keine Werte eingegeben sind, wie z.B. Aufträge ohne Zeilenobjekte, Kunden, die keine Aufträge erteilt haben, Vertreter, die keine Kunden haben usw.


Nichtentsprechende Beziehungen entfernen

  Verwandte Themen

So entfernen Sie eine nichtentsprechende Beziehung:

1	Klicken Sie im Arbeitsbereich von Query Builder auf die Beziehungslinie, die die Zieltabellen verbindet.

2	Klicken Sie im Dialogfeld Beziehung festlegen auf die Optionsschaltfläche Nichtentspr. unterdrücken.

3	Klicken Sie auf OK.


Ungleichheitsbeziehungen verwenden

  Verwandte Themen

So erstellen Sie eine Ungleichheitsbeziehung im Dialogfeld Beziehung festlegen:

  Wählen Sie den Operator.

Während Sie eine Ungleichheitbeziehung einrichten, setzt Query Builder ein Symbol (ein Ungleichheits-Zeichen) auf die Beziehungslinie.


Beziehungen löschen

  Verwandte Themen

So löschen Sie eine Beziehung:

1	Klicken Sie im Fenster Abfrage auf die Beziehungslinie, die die beiden Tabellenspalten verbindet.

2	Während die Spaltennamen und die Beziehungslinie hervorgehoben werden, drücken Sie Entf.


Über nichtentsprechende (null) Zeilen

  Verwandte Themen

Bei Query Builder können Sie wählen, ob Sie nichtentsprechende Zeilen abrufen, wenn Sie eine Beziehung in einer Abfrage verwenden. Zu einer nichtentsprechenden Zeile kommt es, wenn die Beziehung Tabellen verbindet, bei denen auf einer Seite Werte vorhanden sind, für die keine entsprechenden Werte auf der anderen Seite vorhanden sind. SQL-Benutzer sind damit in Form von Abfragebedingungen vertraut, die als Outer Join bezeichnet werden. Nichtentsprechende Zeilen geben im allgemeinen Null-Werte zurück.

Hinweis:  Eine Zeile, die einen Wert von 0 (null) zurückgibt, ist nicht identisch mit einer nichtentsprechenden Zeile. Die Option Nichtentspr. unterdrücken im Dialogfeld Beziehung festlegen wird für Zeilen benutzt, die Nullwerte zurückgeben und nicht 0 Werte. Benutzen Sie diese Funktion, wenn Sie Daten bei einer Tabelle anzeigen möchten, in die keine Werte eingegeben sind, wie z.B. Aufträge ohne Zeilenobjekte. Wenn Sie eine nichtentsprechende Beziehung verwenden, können Sie nur eine Seite wählen, auf der nichtentsprechende Datensätze angezeigt werden.


Neue Abfragen generieren

  Verwandte Themen

So generieren Sie eine neue Abfrage:

1	Klicken Sie im Arbeitsbereich von Query Builder auf [image] in der Symbolleiste.

2	Doppelklicken Sie auf die Tabelle(n), aus der bzw. denen Daten abgerufen werden sollen.

3	Klicken Sie auf Aufnehmen, um das Dialogfeld zu schließen und die Tabelle anzuzeigen.

4	Wählen Sie jede Spalte. In dem Kontrollkästchen neben jeder ausgewählten Spalte wird ein Häkchen angezeigt. Um alle Spalten aufzunehmen, kreuzen Sie das Kontrollkästchen in der Titelleiste der Tabelle an. Tip

5	Geben Sie eine oder mehrere Bedingungen ein, um die Abfrage zu optimieren.

6	Klicken Sie auf OK, um Query Builder zu schließen.


Verfügbarer Tabellen suchen
Verfügbare Tabellen suchen

  Verwandte Themen

So suchen Sie die Tabellen, die Sie in Ihrer Abfrage verwenden können:

1	Klicken Sie im Arbeitsbereich von Query Builder auf [image] in der Symbolleiste.

2	Verwenden Sie die Kontrollkästchen Zeigen, um die Tabellen nach Typ zu sortieren.


Tabellen löschen

So löschen Sie eine Tabelle aus dem Arbeitsbereich von Query Builder:

1	Klicken Sie auf die Tabelle im Fenster Abfrage.

2	Klicken Sie auf [image] in der Symbolleiste. Query Builder entfernt die Tabelle aus dem Arbeitsbereich von Query Builder. Danach können Sie auf [image] klicken, um die Tabelle wieder in der Abfrage aufzunehmen.

Wenn Sie eine Tabelle ausschneiden oder löschen, wird diese nicht aus der Datenbank gelöscht, sondern nur aus der Abfrage entfernt.


Tabellen umbenennen

  Verwandte Themen

So benennen Sie eine Tabelle um: Hinweis

1	Klicken Sie auf [image] in der Symbolleiste.

2	Wählen Sie im Dialogfeld Tabelle umbenennen in der Liste Verfügbare Tabellen die Tabelle aus, deren Name geändert werden soll.

3	Klicken Sie auf das Feld Neuer Name.

4	Löschen Sie die nicht benötigten Informationen.

5	Geben Sie den neuen Namen für die Tabelle ein. Der neue Name kann maximal 30 Zeichen umfassen.

6	Klicken Sie auf Definieren.

7	Klicken Sie auf OK.

Wenn Sie eine Tabelle im Arbeitsbereich von Query Builder umbenennen, wird der entsprechende Name in der zugrundeliegenden Tabelle nicht geändert. Der neue Name gilt nur für die aktive Abfrage.


Informationen und Kommentare zu Tabellen und Spalten anzeigen

So zeigen Sie die Informationen und Kommentare an, die in der Datenbank gespeichert wurden:

  Doppelklicken Sie im Arbeitsbereich von Query Builder auf das äußerste rechte Symbol in der Tabellenüberschrift, um Informationen über die Tabelle anzuzeigen. Doppelklicken Sie auf das erste Symbol in jeder Spalte, um Informationen über die Spalte anzuzeigen.


Spalten aus einer Abfrage entfernen

  Verwandte Themen

So entfernen Sie eine Spalte aus einer Abfrage:

  Wählen Sie die Spalte im Arbeitsbereich von Query Builder aus. Das Häkchen in der Tabelle wird gelöscht.


Zeilen in einer Abfrage zählen

So zählen Sie die Zeilen in Ihrer Abfrage, bevor Sie diese ausführen:

  Klicken Sie im Arbeitsbereich von Query Builder auf [image] in der Symbolleiste. Daraufhin wird in einem Warnfenster die Anzahl von Zeilen angezeigt, die abgerufen werden.


Bedingungen zu einer Abfrage hinzufügen

  Beispiele	  Verwandte Themen

So fügen Sie Bedingungen zu einer Abfrage hinzu:

1	Klicken Sie in das leere Bedingungsfeld im Bereich Bedingungen, um dieses zu aktivieren. Neben dem Cursorpfeil wird ein Pluszeichen angezeigt. Der Mauszeiger kann jetzt benutzt werden, um Felder automatisch mit Zeigen und Klicken auszuwählen.

2	Wählen Sie die Spalte, für die Sie eine Bedingung anwenden möchten, im Arbeitsbereich von Query Builder aus. Um eine Liste aller verfügbaren Spalten anzuzeigen, klicken Sie auf [image] in der Symbolleiste. Tip

3	Klicken Sie auf den entsprechenden Operator in der Symbolleiste. Um Funktionen zu Ihrer Bedingung hinzuzufügen, klicken Sie auf [image] in der Symbolleiste.

4	Geben Sie den entsprechenden Wert für die rechte Seite des Bedingungsausdrucks im Anschluß an den Operator ein. Um eine weitere Bedingung hinzuzufügen, drücken Sie die Umschalttaste und Eingabetaste, um den Cursor in eine neue Zeile zu setzen.

5	Wenn der Ausdruck Ihren Vorstellungen entspricht, klicken Sie an einer Stelle außerhalb des Bedingungsfeldes, jedoch innerhalb des Bereichs Bedingungen, um dieses zu deaktivieren. Sie können auch auf [image] in der Symbolleiste klicken. Um den Inhalt des Bereichs Bedingungen zu löschen und von vorne zu beginnen, klicken Sie auf [image] in der Symbolleiste.


Über Bedingungen

  Beispiele 	  Verwandte Themen

Eine Bedingung ist ein Begriff, den Sie in eine Abfrage einfügen, um die gewünschten Informationen abzurufen und die nicht erwünschten Informationen auszufiltern. Mit Bedingungen können Sie Zeit sparen und Abfragen effizienter gestalten, da Sie mit Bedingungen Spalten der Tabelle abrufen können. Tip

Angenommen, Sie haben die Tabelle Employee in Ihrer Abfrage aufgenommen und haben die Spalten Name, Salary und Job title ausgewählt. Ohne Bedingungen haben Sie die Datenbank angewiesen: "Alle Mitarbeiterdaten aus den Spalten Name, Salary und Job in der Tabelle Employee auswählen". Nun können Sie zu der Originalanforderung Bedingungen hinzufügen, z.B. "bei denen...

•	das Monatsgehalt größer ist als 1000 DM und kleiner als 2000 DM."

•	der Nachname Schmidt ist."

•	der Job nicht Manager ist."

Anstatt nun die in den obigen Beispielen aufgeführten Begriffe in die Bedingung einzugeben, verwenden Sie Operatoren, so daß die Bedingung beinahe wie eine Formel aussieht. Um z.B. Mitarbeiter anzugeben, deren Gehälter höher sind als 3000 DM könnten Sie folgendes eingeben:

SALARY > 3000

Sie können auch Funktionen verwenden, um komplexe Bedingungen zu erstellen.


Beispiel für Bedingungen

  Verwandte Themen 	  Alle Beispiele

Angenommen, Sie möchten eine Abfrage erstellen, bei der Sie nur Daten für den Staat Kalifornien anzeigen.

1	Klicken Sie auf das Bedingungsfeld, um es zu aktivieren.

2	Wählen Sie die Spalte State in der entsprechenden Tabelle im Arbeitsbereich von Query Builder aus. Daraufhin wird im Bedingungsfeld das Wort STATE angezeigt.

3	Geben Sie das Gleichheitssymbol (=) ein.

4	Geben Sie 'CA' rechts neben dem Gleichheitszeichen in das Bedingungsfeld ein.

Die Bedingung sollte jetzt folgendermaßen aussehen: STATE= 'CA'


Über Operatoren

  Verwandte Themen

Ein Operator ist ein Zeichen oder ein reserviertes Wort, mit dem ein bestimmter Vorgang ausgeführt wird. Die drei Hauptarten von Operatoren, die in Query Builder benutzt werden, sind:

•	Vergleich

•	Arithmetisch

•	Logisch

Hinweis:  Basierend auf diesen Operatoren können Sie auch negierende Bedingungen erstellen.


Vergleichsoperatoren

  Verwandte Themen

Mit Vergleichsoperatoren werden zwei Werte verglichen. Wenn Sie den Operator zwischen einem Spaltennamen und einem Wert im Bereich Bedingungen einfügen, vergleicht Query Builder alle Objekte in dieser Spalte mit dem Wert und gibt nur die Zeilen zurück, bei denen die Bedingungsanweisung wahr ist.

Um z.B. nur die Zeilen zurückzugeben, bei denen der Wert in der Spalte CREDIT_LIMIT kleiner ist als 6000 DM, verwenden Sie den Operator < (kleiner als):

CREDIT_LIMIT < 6000

Die Vergleichsoperatoren von Query Builder sind:

Operator	Verwendung
=	Gleich
<>	Ungleich
<	Kleiner als
<=	Kleiner als oder gleich
>	Größer als
>=	Größer als oder gleich
BETWEEN...AND...	Zwischen zwei Werten
IN (LIST)	Gleich einem beliebigen Bestandteil der folgenden Liste
IS NULL	Ist ein NULL-Wert. Eine Zeile ohne einen Wert in einer Spalte enthält einen NULL-Wert.


Arithmetische Operatoren

  Verwandte Themen

Arithmetische Operatoren werden für die Durchführung von Berechnungen mit numerischen und Datumsspalten verwendet. Bei der Bearbeitung von Berechnungen wertet Query Builder zuerst Multiplikation oder Division und danach Addition oder Subtraktion aus.

•	In dem Ausdruck  1+2x3 wird zuerst 2 mit 3 multipliziert, danach wird das Ergebnis zu 1 addiert, so daß sich ein Endwert von 7 ergibt.

Um diese Prioritätsregeln außer Kraft zu setzen, setzen Sie einen Teil des Ausdrucks in Klammern. Query Builder wertet Ausdrücke in Klammern zuerst aus.

•	In der Berechnung (1+2)x3 wird (1+2) z.B. zuerst ausgewertet. Danach wird das Ergebnis mit 3 multipliziert, so daß sich ein Endergebnis von 9 ergibt.

Die arithmetischen Operatoren von Query Builder sind:

Operator	Verwendung
+	Addition
-	Subtraktion
*	Multiplikation
/	Division


Logische Operatoren

  Verwandte Themen

Die logischen Operatoren (die auch als Boolesche Operatoren bezeichnet werden) sind AND, OR und NOT:

•	Benutzen Sie AND, um nur die Daten abzurufen, die allen Bedingungen gerecht werden.

•	Benutzen Sie OR, um alle Daten abzurufen, die mindestens einer der angegebenen Bedingungen entsprechen.

•	Benutzen Sie NOT, um die Operatoren oder Bedingungen zu negieren.

Die Symbolleiste umfaßt Symbole für die logischen Operatoren. Die Operator-Symbole sind verfügbar, wenn der Bereich Bedingungen aktiv ist oder wenn das Dialogfeld Spalte definieren geöffnet ist. Sie können einen Operator in den Text der Bedingung oder definierten Spalte einfügen, indem Sie auf den Operator in der Symbolleiste klicken.


Über definierte (und berechnete) Spalten

  Beispiele 	  Verwandte Themen

Sie können Berechnungen mit den Daten durchführen, die Query Builder aus der Datenbank abruft. Danach können Sie die berechneten Daten im Fenster Ergebnisse in Form einer neuen Spalte (die auch als definiertes Feld bezeichnet wird) anzeigen. Sie können diese Spalten genau wie jede andere Spalte in Ihrer Abfrage benennen, definieren und anzeigen.

Sie können definierte Spalten in einer Query Builder-Abfrage verwenden, um "Was-wäre-wenn"-Szenarios, Prognosen, Projizierungen und andere Analysen zu erzeugen, wie z.B. Varianzen und Prozent-zu-Gesamt.

Hinweis:  Wenn Sie eine definierte Spalte (ein Feld) anzeigen, das eine Summenfunktion enthält, generiert Query Builder automatisch die entsprechende GROUP BY-Klausel für andere angezeigte Spalten, die keine Summenfunktionen verwenden. Erfahrene Benutzer können GROUP BY-Spalten auch manuell eingeben, um nach nicht angezeigten Spalten zu gruppieren.

Während Spalten im allgemeinen synonym mit den in Ihrer Tabelle gespeicherten Datenspalten sind, können sie auch neue Datenspalten in einer Abfrage referenzieren, die von den Werten in einer anderen Spalte abgeleitet oder berechnet werden. Diese berechneten Spalten werden gelegentlich als abgeleitete oder definierte Felder bezeichnet. So kann z.B. die Tabelle Employee zwei Spalten enthalten, die die Vergütung beschreiben: Salary und Commission. Sie können eine definierte Spalte erstellen, die die Werte in diesen Spalten in einer neuen Spalte mit der Bezeichnung Net Pay kombiniert, die die Summe von Gehalt (Salary) plus Provision (Commission) darstellt.

Sie können die definierten Spalten auf einer Kombination von einzelnen oder mehreren Datenbankspalten je nach Bedarf basieren.

Definierte Spalten sind in der Abfrage und nicht in der Datenbank vorhanden. Sie können festlegen, daß diese im Fenster Ergebnisse in Form von Spalten angezeigt oder verborgen werden (z.B. wenn Sie diese benutzen, um andere definierte Spalten zu erstellen).

Hinweis:  Die definierte Spalte ist nur ein Teil Ihrer Abfrage und ändert die in der Datenbank gespeicherte Tabellendefinition nicht.


Definierte Spalten löschen

  Verwandte Themen

So löschen Sie eine definierte Spalte aus einer Abfrage:

1	Klicken Sie im Arbeitsbereich von Query Builder auf [image] in der Symbolleiste.

2	Klicken Sie auf den Namen der zu löschenden Spalte.

3	Klicken Sie auf Entfernen.


Beispiel für definierte (und berechnete) Spalten

  Verwandte Themen 	  Alle Beispiele

Angenommen, Sie möchten ein Budget für die Nettogehälter des nächsten Jahres (NET_PAY_NEXT) projizieren, wobei von einer Gehaltserhöhung von 10% ausgegangen wird. Sie können folgenden Ausdruck in das Feld Ausdruck eingeben:

(SALARY*1.1) + COMMISSION

Wenn Sie eine 10%ige Steigerung bei Gehalt und Provision überprüfen möchten, könnten Sie folgendes eingeben:

(SALARY+COMMISSION) * 1.1

Da NET_PAY gleich SALARY+COMMISSION ist, ist dies gleichbedeutend mit:

NET_PAY * 1.1

Sie können auch eine definierte Spalte erstellen, in der die Differenz zwischen den aktuellen Nettobezahlungen und den Schätzungen des nächsten Jahres angezeigt werden. Geben Sie dieser Spalte den Namen VARIANCE, und definieren Sie sie wie folgt:

NET_PAY_NEXT - NET_PAY

Wenn Sie neue Spalten definieren, müssen die in Ihrem Ausdruck beschriebenen Basisspalten nicht in der zugrundeliegenden Datenbank vorhanden sein, auch wenn sie letztendlich aus den Spalten in der zugrundeliegenden Tabelle abgeleitet werden. VARIANCE ist z.B. gleichbedeutend mit:

((SALARY+COMMISSION) * 1.1) - (SALARY+COMMISSION)


Sortierte Spalten löschen

  Verwandte Themen

So löschen Sie eine sortierte Spalte:

1	Klicken Sie im Arbeitsbereich von Query Builder auf das Symbol Sortieren.

2	Doppelklicken Sie auf den Namen der zu löschenden Spalte in der Liste Sortierte Spalten.


Abfragedaten sortieren

  Verwandte Themen

So sortieren Sie die Daten, die mit der Abfrage abgerufen werden:

1	Klicken Sie im Arbeitsbereich von Query Builder auf [image] in der Symbolleiste.

2	Doppelklicken Sie auf die Spalten, nach denen sortiert werden soll, in der Liste Verfügbare Spalten. Eine sortierte Spalte muß nicht in der Abfrage aufgenommen werden.

So ändern Sie die Sortierfolge einer Spalte vom Standardwert (Aufsteigend):

1	Klicken Sie, um die Spalte in der Liste Sortierte Spalten hervorzuheben.

2	Klicken Sie auf die Optionsschaltfläche Absteigend.

3	Klicken Sie auf OK.


Spalten definieren

  Verwandte Themen

So definieren Sie eine neue Spalte in einer Tabelle:

1	Öffnen Sie die Tabelle, in der Sie eine Spalte definieren möchten.

2	Klicken Sie auf [image] in der Symbolleiste.

3	Klicken Sie in dem Feld Definierte Spalten.

4	Geben Sie den Namen für die neue Spalte ein.

5	Klicken Sie in dem Feld Definiert als.

6	Geben Sie den Ausdruck ein, mit dem Ihre Spalte definiert wird.

7	Klicken Sie auf OK.


Funktionen einfügen

  Beispiele 	  Verwandte Themen

So fügen Sie eine Funktion in eine Bedingung ein:

1	Aktivieren Sie das Bedingungsfeld, und setzen Sie den Cursor an die Stelle, an der die Funktion eingefügt werden soll.

2	Klicken Sie auf [image] in der Symbolleiste.

3	Filtern Sie die angezeigten Funktionstypen mit dem Kontrollkästchen Kategorien zeigen.

4	Wählen Sie eine Funktion aus dem Listenfeld.

5	Klicken Sie auf das Kontrollkästchen Argumente einfügen, wenn Sie Standardargumente aufnehmen möchten.

6	Klicken Sie auf OK.

7	Überschreiben Sie im Bedingungsfeld die Standardargumente durch die gewünschten Argumente.


Beispiel für Funktionen (Namen mit mehr als 30 Zeichen abrufen)

  Verwandte Themen 	  Alle Beispiele

Angenommen, Sie möchten die Namen aller Kunden aufführen, die länger sind als 30 Zeichen, da diese Namen zu lang für die Adreßetiketten sind. Um diese Namen aufzuführen, erstellen Sie eine Bedingung mit der Funktion LENGTH. Die Funktion LENGTH zählt die Anzahl von Zeichen in einer Zeichenfolge.

In diesem Beispiel ist das Argument in der Funktion LENGTH die Spalte NAME in der Kundentabelle. Die Funktion sieht also in der Bedingung folgendermaßen aus:

LENGTH (NAME) > 30

Mit dieser Bedingung wertet Query Builder alle Namen in der Spalte NAME aus und gibt die Namen zurück, bei denen die Feldlänge größer ist als 30 Zeichen.


Verschachtelte Bedingungen erstellen

  Verwandte Themen

So erstellen Sie eine verschachtelte Bedingung:

1	Geben Sie in dem Feld Bedingung den ersten Ausdruck mit einem Vergleichsoperator ein, wie z.B.: TOTAL<1000. Tip

2	Geben Sie den nächsten Ausdruck mit einem weiteren Vergleichsoperator ein, wie z.B.: EMP.LAST_NAME=SMITH

3	Geben Sie einen dritten Ausdruck mit dem Gleichheitsoperator (=) ein, wie z.B.: EMP.LAST_NAME=JONES.

4	Wählen Sie den zweiten und dritten Ausdruck.

5	Klicken Sie auf [image] in der Symbolleiste.

6	Klicken Sie auf [image] in der Symbolleiste.


Bereich Bedingungen skalieren

So skalieren Sie den Bereich Bedingungen:

1	Klicken Sie auf das schwarze Rechteck unten links in der Bildlaufleiste im Arbeitsbereich von Query Builder, und verschieben Sie den Cursor in den Arbeitsbereich von Query Builder nach oben.

2	Ziehen Sie die dicke schwarze Linie nach links oder rechts, um den Bereich Bedingungen zu verbreitern oder zu verschmälern. Wenn der Bereich vollständig verborgen ist, wird ganz außen links in der Bildlaufleiste der Bildschirmteiler angezeigt.


Bedingungssyntax

  Verwandte Themen

Eine Bedingung hat das folgende allgemeine Format:

[Ausdruck] [Operator] [Ausdruck]

wobei

Ausdruck	die Werte angibt, mit denen die Bedingung definiert wird. Ausdrücke können Datumsangaben, Zeichen, literale Werte, Zahlen, Spalten, Funktionen und Datenbankspalten angeben.
Operator	einen Vergleichsoperator angibt, wie z.B. größer als  (>), kleiner als (<) und gleich (=). Die gebräuchlichsten Operatoren werden im Menü Daten und in der Symbolleiste aufgeführt. Außerdem gibt es eine Reihe von speziellen Vergleichsoperatoren, wie z.B. BETWEEN, LIKE und IN.
Datumswerte

Bei der Arbeit mit Datumswerten referenzieren Vergleichsoperatoren eine relative Zeit. So bedeutet "kleiner als" (<) "vor".

Datumswerte müssen in einfachen Anführungszeichen stehen und im Format TT-MON-JJ angegeben werden, wobei TT den Kalendertag, MON den Monat und JJ das Jahr darstellt.

Zeichenwerte

Bei Zeichenspalten referenzieren Operatoren die alphanumerische Reihenfolge (A kommt vor B, so daß Namen, die mit A beginnen, "kleiner als" Namen sind, die mit B beginnen usw.).

Literale Werte

Literale Werte müssen in einfachen Anführungszeichen stehen, um sie von Spaltennamen zu unterscheiden. Bei Vergleichen zwischen Datenbankwerten und von Ihnen angegebenen Werten muß die Schreibweise berücksichtigt werden.

Zahlenwerte

Wenn der eingegebene Wert den Datentyp NUMBER hat, geben Sie nur die Zahl ein. Verwenden Sie also keine Formatierung, wie z.B. Punkte oder das Währungssymbol ($). Numerische Werte in Zahlenspalten müssen nicht in Anführungszeichen stehen.

Hinweis:  Es gibt außerdem drei logische (Boolesche) Operatoren (AND, OR, NOT), mit denen Sie mehrere oder negative Bedingungen erstellen können.

Zusätzliche Informationen:  Weitere Informationen über die Oracle-Syntax für verschiedene Datentypen finden Sie im Oracle8 Server SQL Language Reference Manual.


Negierungsbedingungen erstellen

  Verwandte Themen

So erstellen Sie eine Negierungsbedingung:

1	Generieren Sie eine Bedingung.

2	Klicken Sie in das Feld Bedingung, um dieses zu aktivieren.

3	Wählen Sie einen logischen Operator für die Bedingung.

4	Klicken Sie auf [image] in der Symbolleiste.

5	Drücken Sie die Eingabetaste, um die Bedingung zu akzeptieren.

Hinweis:  Bei Angabe von NOT AND werden alle Zeilen zurückgegeben, mit Ausnahme der Zeilen, in denen alle Bedingungen erfüllt werden. Bei Angabe von NOT OR werden alle Zeilen mit Ausnahme der Zeilen zurückgegeben, in denen eine der Bedingungen erfüllt wird.


SQL-Anweisungen einer Abfrage speichern

  Verwandte Themen

So speichern Sie die SQL-Anweisungen einer Abfrage:

  Wählen Sie Datei [image] SQL speichern im Fenster Abfrage, um das Dialogfeld SQL speichern anzuzeigen, in dem Sie ein Verzeichnis und einen Dateinamen angeben können.


Spaltenfolge ändern

  Verwandte Themen

So ändern Sie die Reihenfolge, in der Spalten in den Abfrageergebnissen angezeigt werden:

1	Klicken Sie im Arbeitsbereich von Query Builder auf [image] in der Symbolleiste.

2	Klicken Sie im Dialogfeld Spaltenfolge auf eine Spalte in der Liste Angezeigte Spalten, und ziehen Sie diese an die gewünschte Stelle nach oben oder unten. Die oberste Spalte wird ganz außen links angezeigt, während die unterste Spalte ganz außen rechts angezeigt wird.


SQL-Anweisungen einer Abfrage anzeigen

  Verwandte Themen

So zeigen Sie die SQL-Anweisungen einer Abfrage an:

  Klicken Sie im Arbeitsbereich von Query Builder auf [image] in der Symbolleiste.

Das Dialogfeld SQL anzeigen ist schreibgeschützt. Sie können die SQL-Anweisungen nicht bearbeiten oder kopieren.


Spalten zu einer Abfrage hinzufügen

  Verwandte Themen

So fügen Sie eine Spalte zu einer Abfrage hinzu:

 Wählen Sie die Spalte in einer Tabelle im Fenster Abfrage. Tip

Mit einer angekreuzten Spalte wird angegeben, daß die Spalte sowohl in der SQL-Anweisung als auch in den Abfrageergebnissen angezeigt wird. Sie können keine Spalte in der SQL-Anweisung aufnehmen, und sie in den angezeigten Ergebnissen verbergen.


Query Builder-Meldungen

  Verwandte Themen

Klicken Sie auf einen Meldungsbereich, und suchen Sie dann nach der gewünschten Meldung.

BRW-15000 bis BRW-15092

BRW-15093 bis BRW-15146

BRW-15147 bis BRW-15196

BRW-15197 bis BRW-15390

BRW-15391 bis BRW-15424

BRW-15430 bis BRW-15520

BRW-15521 bis BRW-15569

BRW-15570 bis BRW-15912

BRW-15913 bis BRW-16551

BRW-16552 bis BRW-16660


BRW-15000: Interner Fehler in der Unterbrechungsroutine für Fehler von Oracle Query Builder

Ursache:	Die Unterbrechungsroutine für Fehler konnte nicht gestartet werden.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


BRW-15001: <Meldungsnummer>

Ursache:	Die Meldungsdatei wurde nicht gefunden oder ist mit dieser Version von Query Builder nicht kompatibel.

Maßnahme:	Prüfen Sie, ob der Query Builder-Ordner in Oracle Home die richtige Meldungsdatei enthält.


BRW-15002: Kein Speicherplatz mehr vorhanden!

Ursache:	Kein Speicherplatz mehr.

Maßnahme:	Speichern Sie die Dokumente, und starten Sie Oracle Query Builder neu.


BRW-15003: Ungültiger Dateiname: <Name>

Ursache:	Der Benutzer hat einen ungültigen Dateinamen eingegeben (z.B. zu viele Zeichen).

Maßnahme:	Geben Sie einen neuen, gültigen Dateinamen ein.


BRW-15004: Interner Fehler (<Wert1>:<Wert2>)

Ursache:	Ein interner Fehler ist aufgetreten - Oracle Query Builder befindet sich in einem unzuverlässigen Status.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


BRW-15005: Dateiname fehlt

Ursache:	Der Benutzer hat keinen Dateinamen in das Dialogfeld Daten exportieren eingegeben.

Maßnahme:	Geben Sie einen Dateinamen ein.


BRW-15006: Beschreibung der Datenbanktabelle nicht möglich

Ursache:	Interne Meldung.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


BRW-15007: Die SQL-Anweisung ist zu komplex, um angezeigt zu werden

Ursache:	Die Größe des Bearbeitungspuffers wurde bei MSWINDOWS überschritten.

Maßnahme:	Schließen Sie einige Spalten aus der Abfrage aus, um die SQL-Anweisung zu kürzen.


BRW-15009: Berechtigung für Anmeldung über Query Builder nicht ausreichend

Ursache:	Die Berechtigungen für die Anmeldung bei Query Builder wurden in der Tabelle SYSTEM.BROWSER_PROFILE deaktiviert.

Maßnahme:	Nehmen Sie Verbindung mit dem DBA auf.


BRW-15065: Syntaxfehler

Ursache:	Sie haben eine Formel falsch eingegeben.

Maßnahme:	Geben Sie den Ausdruck erneut ein.


BRW-15066: Der Ausdruck ist zu komplex

Ursache:	Der Ausdruck ist zu komplex.

Maßnahme:	Vereinfachen Sie den Ausdruck.


BRW-15068: Ungültige Funktion: <Name>

Ursache:	Der Benutzer hat einen ungültigen Funktionsnamen eingegeben.

Maßnahme:	Geben Sie eine gültige Funktion ein.


BRW-15069: Ungültige Spalte: <Name>

Ursache:	Der Benutzer hat einen ungültigen Spaltennamen eingegeben.

Maßnahme:	Geben Sie einen gültigen Spaltennamen ein.


BRW-15070: Ungültige Tabelle: <Name>

Ursache:	Der Benutzer hat einen ungültigen Tabellennamen eingegeben.

Maßnahme:	Geben Sie einen gültigen Tabellennamen ein.


BRW-15071: Ungültiger Eigentümer: <Name>

Ursache:	Der Benutzer hat einen ungültigen Benutzer- oder Unternehmensbereichsnamen eingegeben.

Maßnahme:	Geben Sie einen gültigen Benutzer- oder Unternehmensbereichsnamen an.


BRW-15072: Ungültige Bedingung

Ursache:	Der Benutzer hat eine ungültige Bedingung eingegeben.

Maßnahme:	Löschen Sie die Bedingung, und geben Sie eine gültige Bedingung ein.


BRW-15073: Ungültiger Ausdruck

Ursache:	Der Benutzer hat einen ungültigen Ausdruck eingegeben (im allgemeinen ein Leerzeichen).

Maßnahme:	Geben Sie einen gültigen Ausdruck ein.


BRW-15074: Ungültige Verwendung des reservierten Wortes <Name>

Ursache:	Der Benutzer hat ein reserviertes Wort als Bezeichner verwendet.

Maßnahme:	Bezeichner dürfen keine reservierten Wörter sein. Weitere Einzelheiten finden Sie im Hilfesystem oder der Dokumentation.


BRW-15075: Zu viele oder zu wenige Argumente für Funktion <Name>

Ursache:	Der Benutzer hat zu wenige oder zu viele Argumente für die angegebene Funktion eingegeben.

Maßnahme:	Geben Sie die entsprechenden Argumente ein. Weitere Einzelheiten finden Sie im Hilfesystem oder der Dokumentation.


BRW-15077: <Name> ist kein eindeutiger Name

Ursache:	Der Benutzer hat keinen eindeutigen Spaltennamen eingegeben.

Maßnahme:	Geben Sie einen bestimmten Spaltennamen ein. Möglicherweise müssen Sie Bezeichner aufnehmen.


BRW-15078: Neudefinition des Namens: <Name>

Ursache:	Der Benutzer hat eine Spalte oder Datentabelle mit einem schon vorhandenen Namen neu definiert.

Maßnahme:	Definieren Sie die Spalte oder Tabelle mit einem neuen Namen.


BRW-15079: In der Abfrage wurden keine Spalten ausgewählt

Ursache:	Die Abfrage wurde generiert oder eingegeben, ohne daß Spalten angezeigt wurden.

Maßnahme:	Wählen Sie Spalten aus, bevor Sie die Abfrage erneut ausführen.


BRW-15080: In der Abfrage sind keine Tabellen angegeben

Ursache:	Der Benutzer hat eine Abfrage eingegeben, ohne Tabellen anzugeben.

Maßnahme:	Wählen Sie Tabellen aus, bevor Sie die Abfrage erneut ausführen.


BRW-15081: START WITH erfordert CONNECT BY

Ursache:	Die SQL-Anweisung enthielt eine Klausel START WITH ohne die entsprechende Klausel CONNECT.

Maßnahme:	Geben Sie eine Klausel CONNECT BY an, wenn Sie START WITH benutzen möchten.


BRW-15082: PRIOR erfordert  CONNECT BY

Ursache:	Die SQL-Anweisung enthielt eine Klausel PRIOR ohne eine Klausel CONNECT BY.

Maßnahme:	Geben Sie eine Klausel  CONNECT BY an, wenn Sie PRIOR benutzen möchten.


BRW-15083: Ungültiger Argumenttyp für Funktion <Name>

Ursache:	Der Benutzer hat den falschen Argumenttyp für die Funktion eingegeben.

Maßnahme:	Geben Sie den richtigen Argumenttyp ein.


BRW-15084: Beim Kommentar fehlt das Endzeichen

Ursache:	Der gerade eingelesene Puffer enthält einen Kommentar vom Typ C ohne das entsprechende Endzeichen.

Maßnahme:	Bearbeiten Sie die Datei (stellen Sie sicher, daß sie korrekt beendet wird), und öffnen Sie sie erneut aus Query Builder.


BRW-15085: Endlosschleife in definierter Spalte festgestellt

Ursache:	Die Änderung einer definierten Spalte hat zu einer Endlosschleife geführt.

Maßnahme:	Definieren Sie die Spalte neu, so daß sie sich in ihrer eigenen Definition nicht selbst referenziert.


BRW-15086: Die Argumente in der korrelierten Unterabfrage müssen Spalten sein

Ursache:	Ein komplexes Argument wurde angegeben, wie z.B. avg (sal, deptno*2).

Maßnahme:	Geben Sie nur gültige Spalten und keine Ausdrücke in die Unterabfrage ein.


BRW-15087: Ungültiger Speicherort: <Name>

Ursache:	Der Benutzer hat einen ungültigen Datenbank-Speicherort für eine Tabelle eingegeben.

Maßnahme:	Geben Sie einen gültigen Datenbank-Speicherort an.


BRW-15088: Tabelle <Name> ist nicht eindeutig

Ursache:	Der Benutzer hat einen nicht eindeutigen Namen für eine Datentabelle eingegeben (mehr als eine Tabelle benutzt diesen Namen).

Maßnahme:	Der Benutzer muß die Datentabelle weiter qualifizieren. Weitere Einzelheiten finden Sie im Hilfesystem oder der Dokumentation.


BRW-15089: In einem Ausdruck ist nur ein PRIOR-Operator erlaubt

Ursache:	Der Benutzer hat zwei oder mehr PRIOR-Klauseln in einem Ausdruck eingegeben.

Maßnahme:	Entfernen Sie eine der PRIOR-Klauseln.


BRW-15090: Der Name <Name> ist schon vergeben

Ursache:	Der Benutzer hat einen Namen eingegeben, der schon benutzt wird.

Maßnahme:	Geben Sie einen neuen Namen ein.


BRW-15091: Ungültiger Name: <Name>

Ursache:	Der Benutzer hat einen ungültigen Namen (mit Leerzeichen oder nicht druckbaren Zeichen) eingegeben.

Maßnahme:	Geben Sie einen neuen Namen ein.


BRW-15092: Ungültige Verwendung einer äußeren Verknüpfung

Ursache:	Der Benutzer gibt eine äußere Verknüpfung für ein Nicht-Spalten-Element an.

Maßnahme:	Äußere Verknüpfungen sind nur bei Spalten gültig.


BRW-15093: Ungültige Anzahl von Elementen in zwei sich entsprechenden Datensätzen

Ursache:	Der Benutzer hat zwei Datensätze mit einer unterschiedlichen Anzahl von Elementen eingegeben.

Maßnahme:	Geben Sie die Bedingung erneut ein.


BRW-15094: Die Gruppenfunktion ist zu tief verschachtelt

Ursache:	Der Benutzer hat eine doppelte (dreifache) Gruppenbedingung (Ausdruck) eingegeben.

Maßnahme:	Vereinfachen Sie die Gruppenbedingung/den Gruppenausdruck.


BRW-15096: Tabellennamen identisch mit <Name1>, Neuer Name <Name2>

Ursache:	Beim Öffnen einer Abfrage ist der Aliasname einer Tabelle identisch mit dem Namen einer neuen Spalte.

Maßnahme:	Der Benutzer kann den Alias umbenennen.


BRW-15097: Gleicher Name wie <Name1>, Neuer Name <Name2>

Ursache:	Beim Laden einer gespeicherten Abfrage ist ein Aliasname identisch mit einer neuen Spalte.

Maßnahme:	Benennen Sie den Alias um.


BRW-15098: Tabelle <Name> doppelt in FROM-Klausel

Ursache:	Die Datentabelle ist mehr als einmal in der FROM-Klausel vorhanden (ohne Alias).

Maßnahme:	Entfernen Sie die doppelten Datentabellen in der FROM-Klausel.


BRW-15099: Unterabfrage gibt eine ungültige Anzahl von Werten zurück

Ursache:	Die Unterabfrage gibt entweder zu viele oder zu wenige Werte zurück.

Maßnahme:	Geben Sie die Bedingung erneut ein.


BRW-15100: Korrelierte Ausdrücke sind hier nicht erlaubt

Ursache:	Der Benutzer hat einen korrelierten Ausdruck außerhalb einer Bedingung eingegeben.

Maßnahme:	Geben Sie die Bedingung/den Ausdruck erneut ein.


BRW-15101: Tabellen-Alias kann nicht in derselben FROM-Klausel wiederverwendet werden: <Name>

Ursache:	Der Benutzer hat versucht, einen Alias in derselben FROM-Klausel zu verwenden, in der er definiert wurde.

Maßnahme:	Entfernen Sie die Referenz auf den Alias.


BRW-15102: Zu viele Elemente im Datensatz

Ursache:	Der Benutzer hat einen Datensatz mit mehr als 254 Elementen eingegeben.

Maßnahme:	Reduzieren Sie die Anzahl von Elementen - teilen Sie die Bedingung in eine OR-Bedingung auf.


BRW-15103: Unbenannte SELECT-Anweisung in FROM-Klausel

Ursache:	Die SQL-Anweisung enthielt eine Abfrage ohne Namen in der FROM-Klausel.

Maßnahme:	Fügen Sie den Abfragenamen hinzu, und führen Sie die Analyse erneut aus.


BRW-15110: Ungültige Zahl oder max. Gesamtstellenzahl überschritten: <Spaltenname>

Ursache:	Nichtnumerische Eingabe oder die Zahl hat die Gesamtstellenzahl dieser Spalte überschritten.

Maßnahme:	Geben Sie eine neue Zahl und Gesamtstellenzahl ein.


BRW-15111: Ungültiges Datum: <Wert>

Ursache:	Eine Formatierung mit der Spalten-Formatmaske oder einer der Standardmasken war nicht möglich.

Maßnahme:	Geben Sie erneut eine gültige Formatmaske ein.


BRW-15112: Eintrag überschreitet die maximale Größe für diese Spalte: <##>

Ursache:	Der Benutzer hat eine Zeichenfolge eingegeben, die länger ist als der Grenzwert für diese Spalte.

Maßnahme:	Geben Sie eine kürzere Zeichenfolge ein.


BRW-15113: Es wurden nicht alle Parameter angegeben

Ursache:	Der Benutzer hat versucht, eine Abfrage auszuführen, ohne alle Parameter zu definieren.

Maßnahme:	Geben Sie Parameter an, oder schließen Sie parametrisierte Ausdrücke aus, und wiederholen Sie den Versuch.


BRW-15114: Parameter können nur konstante Ausdrücke sein

Ursache:	Der Benutzer hat versucht, einen Parameterwert einzugeben, der von einem Spaltenwert abhängig war.

Maßnahme:	Geben Sie einen gültigen Parameter an, d.h. einen Parameter, der nicht von dem Wert in einer Spalte abhängig ist.


BRW-15115: Falsche Verwendung von Parameter <Name>

Ursache:	Der Benutzer hat einen Parameternamen für eine Spalte oder Tabelle eingegeben.

Maßnahme:	Geben Sie einen gültigen Parameter an.


BRW-15116: Ungültiger Parametername <Name>

Ursache:	Der Benutzer hat einen ungültigen Parameternamen eingegeben.

Maßnahme:	Geben Sie einen gültigen Parameternamen an.


BRW-15117: Ungültiger Parameter <Name>

Ursache:	Der Benutzer hat einen ungültigen Parameter eingegeben.

Maßnahme:	Geben Sie einen gültigen Parameter an.


BRW-15128: Interner Analysefehler: <Wert>

Ursache:	Interner Fehler im Analyseprogramm/Scanner.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


BRW-15129: Definierte Spalte <Name> darf nicht in einer korrelierten Unterabfrage verwendet werden

Ursache:	In einer korrelierten Unterabfrage wurden abgeleitete Spalten (DQ4) benutzt.

Maßnahme:	Entfernen Sie dieses Argument aus der korrelierten Unterabfrage.


BRW-15130: Die Abfrage wurde nicht erfolgreich ausgeführt

Ursache:	Fehler beim Zugriff auf die Datenbank.

Maßnahme:	Prüfen Sie den Datenbankfehler, und führen Sie die Abfrage erneut aus.


BRW-15131: Ungültiger relationaler Operator

Ursache:	Der Benutzer hat einen ungültigen Operator für eine Bedingung angewendet.

Maßnahme:	Geben Sie einen gültigen Operator ein.


BRW-15132: FROM-Klausel an falscher Stelle

Ursache:	Es wurde entweder keine FROM-Klausel oder eine GROUP/HAVING-Klausel vor einer FROM-Klausel angetroffen.

Maßnahme:	Bearbeiten Sie die SQL-Anweisung.


BRW-15133: FROM-Klausel ohne entsprechende SELECT-Klausel

Ursache:	Es wurde eine FROM-Klausel vor einer SELECT-Klausel angetroffen.

Maßnahme:	Bearbeiten Sie die SQL-Anweisung.


BRW-15135: Bedingung kann nicht verändert werden

Ursache:	Der Benutzer hat versucht, die oberste Bedingung im Schema-Editor zu ändern.

Maßnahme:	Führen Sie den Vorgang bei untergeordneten Bedingungen durch.


BRW-15136: SQL enthält Set-Operatoren

Ursache:	Set-Vorgänge werden nicht unterstützt.

Maßnahme:	Führen Sie die Abfrage in SQL*Plus aus.


BRW-15137: Für komplexe Ausdrücke konnten keine Namen generiert werden

Ursache:	Beim Öffnen einer SQL-Datei wurden Ausdrücke ohne Namen angetroffen.

Maßnahme:	Definieren Sie Namen für Spalten in der SQL-Datei.


BRW-15138: CONNECT BY-Klausel war vorhanden, wurde aber ignoriert

Ursache:	Connect By wird auf dieser (oberen) Ebene nicht unterstützt.

Maßnahme:	Führen Sie die Abfrage in SQL*Plus aus, wenn Ergebnisse von CONNECT BY benötigt werden.


BRW-15139: Auflösen der Bedingung ist nicht möglich

Ursache:	Sie haben versucht, eine Bedingung auf oberster Ebene aufzulösen.

Maßnahme:	Dieser Vorgang wird nicht unterstützt.


BRW-15141: Die Abfragetabelle darf keine Parameter enthalten

Ursache:	Beim Erstellen einer Ansicht wurden ein oder mehrere Parameter angetroffen.

Maßnahme:	Schließen Sie Parameter aus der Abfrage aus, oder ignorieren Sie sie.


BRW-15142: Zwei oder mehr Spalten haben denselben Namen: <Name>

Ursache:	Beim Erstellen einer Ansicht wurden doppelte Spaltennamen angetroffen.

Maßnahme:	Benutzen Sie den Befehl Definieren, um doppelte Spalten umzubenennen.


BRW-15143: <Name> ist bereits eine anzuzeigende Spalte

Ursache:	Der Benutzer hat versucht, eine anzuzeigende Spalte doppelt anzugeben.

Maßnahme:	Wenn doppelte Spalten gewünscht werden, definieren Sie einen neuen Namen für die Spalte, und zeigen Sie sie erneut an.


BRW-15144: <Name> ist bereits eine Sortierspalte

Ursache:	Der Benutzer hat versucht, eine Sortierspalte anzugeben, die schon vorhanden ist.

Maßnahme:	Wenn doppelte Spalten gewünscht werden, definieren Sie einen neuen Namen für die Spalte, und führen Sie den Sortiervorgang erneut aus.


BRW-15145: Für Spalte <Name> findet bereits eine Gruppierung statt

Ursache:	Der Benutzer hat versucht, eine schon vorhandene Gruppenspalte anzugeben.

Maßnahme:	Wenn doppelte Spalten gewünscht werden, definieren Sie einen neuen Namen für die Spalte, und nehmen Sie die Gruppierung erneut vor.


BRW-15146: Interner Fehler beim Öffnen der Abfrage

Ursache:	Interner Fehler beim Öffnen der Abfrage.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


BRW-15147: Interner Fehler beim Speichern der Abfrage

Ursache:	Interner Fehler beim Speichern der Abfrage.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


BRW-15148: Datentypen/-größen müssen in Beziehungen kompatibel sein

Ursache:	Der Benutzer hat versucht, zwei Spalten mit nicht kompatiblen Datentypen zu verbinden.

Maßnahme:	Verbinden Sie nur kompatible Datentypen. Weitere Einzelheiten finden Sie im Hilfesystem oder der Dokumentation.


BRW-15150: Das Definieren von Selbstbeziehungen wird nicht unterstützt

Ursache:	Der Benutzer hat versucht, eine Beziehung innerhalb einer Datentabelle zu definieren.

Maßnahme:	Geben Sie der Datentabelle einen Aliasnamen, und definieren Sie die Beziehung dann.


BRW-15151: Die benutzerdefinierte Beziehung ist bereits vorhanden

Ursache:	Der Benutzer hat versucht, eine schon vorhandene Beziehung zu definieren.

Maßnahme:	Keine Maßnahme erforderlich.


BRW-15152: Ungültige Spalte in definierter Beziehung

Ursache:	Der Benutzer hat einen ungültigen Ausdruck bei der Definition einer Beziehung angegeben.

Maßnahme:	Geben Sie eine neue Spalte ein.


BRW-15153: Tabellenalias darf nicht mit _A<Zahl> enden

Ursache:	Unzulässiger Aliasname.

Maßnahme:	Geben Sie einen neuen Namen ein, der nicht mit _A<Zahl> endet.


BRW-15154: Die Datenbankbeziehung kann nicht gelöscht werden

Ursache:	Der Benutzer hat versucht, eine Data Dictionary-Beziehung zu löschen.

Maßnahme:	Nur benutzerdefinierte Beziehungen können gelöscht werden.


BRW-15155: Hiervon sind folgende Dokumente betroffen: <Name>

Ursache:	Eine gespeicherte Abfrage wurde als Datentabelle in anderen Abfragedokumenten verwendet.

Maßnahme:	Wenn Sie diese Abfrage ändern oder löschen, wirkt sich dies auf die anderen Abfragen aus.


BRW-15156: Tabelle und Abfrage dürfen nicht denselben Namen haben

Ursache:	Der Benutzer hat versucht, die Datntabelle D in Abfragedokument D aufzunehmen.

Maßnahme:	Benennen Sie die Abfrage um, bevor Sie diese Tabelle aufnehmen.


BRW-15157: Sortieren, Gruppieren oder Gruppenwechsel nicht möglich bei LONG-Spalten

Ursache:	Der Benutzer hat versucht, einen Sortieren-, Gruppieren- oder Gruppenwechselvorgang bei einer Spalte vom Typ LONG durchzuführen.

Maßnahme:	Brechen Sie den Vorgang ab. Oracle unterstützt dies nicht.


BRW-15158: Sortieren, Gruppieren oder Gruppenwechsel nicht möglich bei RAW-Spalten

Ursache:	Der Benutzer hat versucht, einen Sortieren-, Gruppieren- oder Gruppenwechselvorgang bei einer Spalte vom Typ RAW durchzuführen.

Maßnahme:	Brechen Sie den Vorgang ab. Oracle unterstützt dies nicht.


BRW-15159: LONG-Spalte von entfernter Datenbank kann nicht angezeigt werden

Ursache:	Der Benutzer hat versucht, eine Spalte vom Typ LONG aus einer entfernten Datenbank-Datentabelle aufzunehmen.

Maßnahme:	Brechen Sie den Vorgang ab. Oracle unterstützt dies nicht.


BRW-15160: Zu viele Spalten. Max. Anzahl <##>

Ursache:	Der Benutzer hat die Höchstzahl von unterstützten Anzeige-/Gruppen-/Sortieren-Spalten überschritten.

Maßnahme:	Löschen Sie einige nicht benötigte Spalten, und nehmen Sie dann die Spalten auf, die benötigt werden.


BRW-15161: Fehler beim Öffnen von <Spaltenname> Anzeigespalte(n)

Ursache:	Die Anzeigespalte kann nicht geöffnet werden, weil die Datenbank seit dem letzten Speichernvorgang geändert wurde.

Maßnahme:	Diese Spalte wurde möglicherweise geändert oder ist in der Datenbank nicht mehr vorhanden.


BRW-15162: Fehler beim Öffnen von <Spaltenname> Sortierspalte(n)

Ursache:	Die Sortierspalte kann nicht geöffnet werden, weil die Datenbank seit dem letzten Speichernvorgang geändert wurde.

Maßnahme:	Diese Spalte wurde möglicherweise geändert oder ist in der Datenbank nicht mehr vorhanden.


BRW-15163: Fehler beim Öffnen von <Spaltenname> Gruppenspalte(n)

Ursache:	Die Gruppenspalte konnte nicht geöffnet werden, weil die Datenbank seit dem letzten Speichernvorgang geändert wurde.

Maßnahme:	Diese Spalte wurde möglicherweise geändert oder ist in der Datenbank nicht mehr vorhanden.


BRW-15164: Fehler beim Öffnen von <Spaltenname> Kontrollspalte(n)

Ursache:	Die Kontrollspalte konnte nicht geöffnet werden, weil die Datenbank seit dem letzten Speichernvorgang geändert wurde.

Maßnahme:	Diese Spalte wurde möglicherweise geändert oder ist in der Datenbank nicht mehr vorhanden.


BRW-15165: Zu viele Kontrollspalten. Max. Anzahl <##>

Ursache:	Der Benutzer hat die Höchstzahl von unterstützten Kontrollspalten überschritten.

Maßnahme:	Löschen Sie einige nicht benötigte Kontrollspalten, und nehmen Sie dann die benötigten Spalten auf.


BRW-15166: Fehler beim Öffnen von <Wert> Bedingung(en)

Ursache:	Die Bedingungen konnten nicht geöffnet werden, weil die Datenbank seit dem letzten Speichernvorgang geändert wurde.

Maßnahme:	In dieser Bedingung benutzte Tabellen oder Spalten sind möglicherweise nicht mehr in der Datenbank vorhanden.


BRW-15167: Alias darf maximal <##> Byte lang sein: <Name>

Ursache:	Der Aliasname ist zu lang.

Maßnahme:	Versuchen Sie, einen Aliasnamen mit maximal 30 Byte einzugeben.


BRW-15168: Gruppieren in Verbundausdruck nicht möglich

Ursache:	Der Benutzer hat versucht, einen Verbundausdruck zu gruppieren.

Maßnahme:	Gruppieren Sie einen anderen Ausdruck.


BRW-15169: <Name> ist bereits als Kontrollspalte definiert

Ursache:	Der Benutzer hat versucht, eine schon vorhandene Kontrollspalte anzugeben.

Maßnahme:	Wenn doppelte Spalten gewünscht werden, definieren Sie einen neuen Namen für die Spalte, und nehmen Sie den Gruppenwechsel erneut vor.


BRW-15170: Ungültige Integritätsregel für Tabelle <Name>

Ursache:	Der Benutzer hat eine ungültige Integritätsregel für die ausgewählte Tabelle eingegeben.

Maßnahme:	Geben Sie die Integritätsregel erneut ein.


BRW-15171: Ungültige Integritätsregel für Spalte <Name> in Tabelle

Ursache:	Der Benutzer hat eine ungültige Integritätsregel für die ausgewählte Spalte eingegeben.

Maßnahme:	Geben Sie die Integritätsregel erneut ein.


BRW-15172: Unterabfragen sind in Integritätsregeln nicht erlaubt

Ursache:	Der Benutzer hat eine ungültige Integritätsregel eingegeben.

Maßnahme:	Geben Sie die Integritätsregel erneut ein.


BRW-15173: Verbund-Bedingungen sind in Integritätsrgeln nicht erlaubt
BRW-15173: Verbund-Bedingungen sind in Integritätsregeln nicht erlaubt

Ursache:	Der Benutzer hat eine ungültige Integritätsregel eingegeben.

Maßnahme:	Geben Sie die Integritätsregel erneut ein.


BRW-15174: Integritätsregeln können nur für eine Tabelle gelten

Ursache:	Der Benutzer hat eine ungültige Integritätsregel eingegeben.

Maßnahme:	Geben Sie die Integritätsregel erneut ein.


BRW-15175: Tabelle wurde nicht geladen, da alle Spalten verborgen sind

Ursache:	Alle Spalten sind verborgen. Mindestens eine Spalte muß angezeigt werden.

Maßnahme:	Benutzen Sie das Query Builder Administrator Utility, um verborgene Spalten anzuzeigen.


BRW-15188: Die Abfrage gibt 1 Zeile zurück

Ursache:	Statusmeldung für eine Abfrage mit einer Zeile.

Maßnahme:	Keine Maßnahme erforderlich.


BRW-15189: Die Abfrage <##> Zeilen zurück
BRW-15189: Die Abfrage gibt <##> Zeilen zurück

Ursache:	Statusmeldung für eine Abfrage mit n-Zeilen.

Maßnahme:	Keine Maßnahme erforderlich.


BRW-15190: Anzahl der Zeilen ist nur bei Ausführung feststellbar; Abfrage gibt <= <##> Zeile(n) zurück

Ursache:	Statusmeldung für Abfrage mit n-Zeilen.

Maßnahme:	Keine Maßnahme erforderlich.


BRW-15192: Format <Name1> ist für Spalte '<Name2>' nicht zulässig

Ursache:	Der Benutzer hat ein Format für eine Anzeigespalte eingegeben, das nicht erkannt wird.

Maßnahme:	Benutzen Sie ein anderes Format.


BRW-15193: Ungültiges Format

Ursache:	Der Benutzer hat ein Format für eine Anzeigespalte eingegeben, das nicht erkannt wird.

Maßnahme:	Benutzen Sie ein anderes Format.


BRW-15195: Inkompatible Spaltentypen in Beziehung: <Name>

Ursache:	Der Benutzer hat versucht, eine unzulässige Beziehung zu erstellen.

Maßnahme:	Spaltentypen sind nicht kompatibel. Weitere Einzelheiten finden Sie im Hilfesystem oder der Dokumentation.


BRW-15196: Fehler beim Öffnen von Tabelle(n) <Name>

Ursache:	Die Datentabellen konnten nicht geöffnet werden, weil die Datenbank geändert wurde oder das Objekt nicht vorhanden ist.

Maßnahme:	Prüfen Sie Ihre DB-Adresse (oder nehmen Sie Verbindung mit dem DBA auf).


BRW-15197: Fehler beim Wiederherstellen von Spalte(n) <Name>

Ursache:	Die Spalte kann nicht neu positioniert werden, weil die Datenbank geändert wurde oder das Objekt nicht vorhanden ist.

Maßnahme:	Prüfen Sie die DB-Adresse (oder nehmen Sie Verbindung mit dem DBA auf).


BRW-15198: Fehler beim Wiederherstellen von Join: <Wert>

Ursache:	Der Link kann beim Öffnen nicht wiederhergestellt werden, weil die Datenbank geändert wurde oder das Objekt nicht vorhanden ist.

Maßnahme:	Prüfen Sie die DB-Adresse (oder nehmen Sie Verbindung mit dem DBA auf).


BRW-15199: Fehler beim Wiederherstellen von Join: <Name>

Ursache:	Der Aufnahmestatus kann beim Öffnen nicht wiederhergestellt werden, weil die Datenbank geändert wurde oder das Objekt nicht vorhanden ist.

Maßnahme:	Prüfen Sie die DB-Adresse (oder nehmen Sie Verbindung mit dem DBA auf).


BRW-15200: Fehler beim Wiederherstellen der äußeren Verknüpfung: <Wert>

Ursache:	Die äußere Verknüpfung kann beim Öffnen nicht eingestellt werden, weil die Datenbank geändert wurde oder das Objekt nicht vorhanden ist.

Maßnahme:	Prüfen Sie die DB-Adresse (oder nehmen Sie Verbindung mit dem DBA auf).


BRW-15258: Ungültiger Dokumentname: <Name>

Ursache:	Der Benutzer hat einen ungültigen Dokumentnamen eingegeben.

Maßnahme:	Geben Sie einen gültigen Dokumentnamen ein.


BRW-15259: Dokument überschreitet max. Größe von 64 K

Ursache:	Der Benutzer hat versucht, ein Dokument größer als 64 K zu speichern/zu öffnen.

Maßnahme:	Reduzieren Sie die Größe des Dokuments.


BRW-15260: Dokument <Name> ist nicht vorhanden

Ursache:	Der Benutzer hat ein nicht vorhandenes Dokument angegeben.

Maßnahme:	Geben Sie ein anderes Dokument an.


BRW-15261: Dokument <Name> bereits vorhanden

Ursache:	Der Benutzer hat versucht, ein Dokument unter dem Namen eines schon vorhandenen Dokuments zu speichern.

Maßnahme:	Geben Sie einen anderen Dokumentnamen an, oder löschen Sie das bestehende Dokument.


BRW-15262: Mehrere Dokumente haben den Namen <Name>

Ursache:	Es sind mehrere Dokumente mit diesem Namen vorhanden.

Maßnahme:	Löschen Sie alle Dokumente, mit Ausnahme von einem.


BRW-15263: Datenbankobjekt <Name> bereits vorhanden

Ursache:	Der Benutzer hat versucht, ein Datenbankobjekt unter dem Namen eines schon vorhandenen Objekts zu speichern.

Maßnahme:	Geben Sie einen anderen Dokumentnamen an.


BRW-15264: Tabelle <Name> nicht vorhanden

Ursache:	Eine Ansicht, die einem gespeicherten Dokument entspricht, wurde entfernt.

Maßnahme:	Speichern Sie das Dokument erneut (es ist nicht mehr als Abfrage-Ansicht vorhanden).


BRW-15265: Tabelle <Name> wurde gelöscht oder geändert

Ursache:	Die Ansicht Datentabelle, die einem gespeicherten Dokument entspricht, wurde entfernt.

Maßnahme:	Speichern Sie das Dokument neu.


BRW-15266: Datei <Name> nicht vorhanden

Ursache:	Der Benutzer hat eine nicht vorhandene Datei angegeben.

Maßnahme:	Geben Sie eine andere Datei an.


BRW-15267: Datei <Name> bereits vorhanden

Ursache:	Der Benutzer hat versucht, eine Datei unter dem Namen einer schon vorhandenen Datei zu speichern.

Maßnahme:	Geben Sie einen anderen Dateinamen an.


BRW-15268: Datei <Name> kann nicht geöffnet werden

Ursache:	Der E/A-Core konnte eine Datei nicht öffnen.

Maßnahme:	Geben Sie eine andere Datei an.


BRW-15269: Datei <Name> kann nicht gesperrt werden

Ursache:	Der E/A-Core konnte eine Datei nicht sperren.

Maßnahme:	Geben Sie eine andere Datei an.


BRW-15270: Fehler beim Lesen der Datei <Name>

Ursache:	Betriebssystemfehler, oder die Datei hatte nicht das richtige Format.

Maßnahme:	Geben Sie eine andere Datei an.


BRW-15271: Fehler beim Schreiben in Datei <Name>

Ursache:	Betriebssystemfehler oder Fehler im E/A-Core.

Maßnahme:	Wiederholen Sie den Vorgang.


BRW-15272: Query Builder-Dokument <Name> ist nicht aktuell

Ursache:	Der Benutzer hat versucht, ein altes, nicht unterstütztes Dokument zu öffnen.

Maßnahme:	Geben Sie ein anderes Dokument an.


BRW-15273: Datei <Name> ist keine Query Builder-Datei

Ursache:	Der Benutzer hat versucht, eine andere Datei als eine Query Builder-Datei zu öffnen.

Maßnahme:	Geben Sie eine andere zu öffnende Datei an.


BRW-15274: Datei <Name> ist keine gültige SQL-Datei

Ursache:	Der Benutzer hat versucht, eine ungültige SQL-Datei zu importieren.

Maßnahme:	Geben Sie eine andere zu importierende Datei an.


BRW-15275: Keine Daten zum Exportieren oder Drucken

Ursache:	Der Benutzer hat versucht, eine Abfrage (oder einen Bereich) ohne Daten zu exportieren oder auszudrucken.

Maßnahme:	Geben Sie einen anderen Bereich an, führen Sie die Abfrage aus, ändern Sie die Abfrage.


BRW-15277: Aktuelle Tabelle kann nicht überschrieben werden <Name>

Ursache:	Fehler bei dem Versuch, eine alte Datentabelle beim Speichern zu löschen/umzubenennen.

Maßnahme:	Beheben Sie das Problem bei der Datentabelle, und speichern Sie sie neu.


BRW-15278: Dokument gespeichert, aber Ansicht <Name> konnte nicht angelegt werden

Ursache:	Die Abfrage stellt keine gültige Ansicht dar. Sie wurde gespeichert, jedoch nicht als Datenbank-Ansicht.

Maßnahme:	Definieren Sie die Abfrage als gültige Ansicht neu, oder ignorieren Sie die Meldung (die Abfrage wird gespeichert, jedoch nicht als Ansicht).


BRW-15279: '<Name>' ist kein gültiges SQL-Literal

Ursache:	Der Benutzer hat versucht, eine andere Datei als eine SQLPlus-Datei zu importieren.

Maßnahme:	Geben Sie eine andere zu importierende Datei an.


BRW-15320: Interner E/A-Fehler im Core (<Wert>, Zeile <##>)

Ursache:	Interner Status ist ungültig.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


BRW-15321: Resource-Datei nicht gefunden (<Name>)

Ursache:	Die Namen von Resource-Dateien stimmen nicht mit dem Query Builder-Code überein (oder die Datei ist beschädigt).

Maßnahme:	Lesen Sie eine korrekte Version der Resource-Datei von Query Builder ein.


BRW-15322: Resource-Datei nicht gefunden

Ursache:	Falsche Verzeichnisstruktur, oder die Datei fehlt aus irgendeinem Grund.

Maßnahme:	Suchen Sie nach der Resource-Datei (prüfen Sie den Dateinamen NLS_LANG).


BRW-15323: Diese Abfrage wurde in der aktuellen Anwendung (<Name>) bereits geöffnet

Ursache:	Der Benutzer hat versucht, mehrere Abfragen mit demselben Namen zu öffnen.

Maßnahme:	Geben Sie eine andere Datei an.


BRW-15324: Das Fenstersystem kann nicht gestartet werden

Ursache:	Falsche (fehlende) Umgebungsvariablen (z.B. DISPLAY, APIPATH).

Maßnahme:	Alle erforderlichen Umgebungsvariablen müssen richtig eingestellt sein.


BRW-15342: Snapshot-Informationen wurden nicht gefunden

Ursache:	Diese Datenbank unterstützt keine Snapshots (oder Datenbankfehler).

Maßnahme:	Prüfen Sie, ob eine Snapshot-Dictionary-Tabelle vorhanden ist.


BRW-15387: Anmeldung war nicht erfolgreich

Ursache:	Ein Datenbank- oder SQLNet-Fehler ist aufgetreten.

Maßnahme:	Prüfen Sie die Anmeldeinformationen, und wiederholen Sie den Versuch.


BRW-15388: Datenbankbeziehungen können nicht geladen werden

Ursache:	Interner Schema-Fehler beim Laden von Datenbankbeziehungen.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf, wenn dieser Fehler nicht erwartet wurde.


BRW-15389: Die Liste der vorhandenen Eigentümer kann nicht geladen werden

Ursache:	Interner Schema-Fehler beim Laden der Liste mit Eigentümern.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf, wenn dieser Fehler nicht erwartet wurde.


BRW-15390: Die Liste der vorhandenen Tabellen kann nicht geladen werden

Ursache:	Interner Schema-Fehler beim Laden der Liste mit Datentabellen.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf, wenn dieser Fehler nicht erwartet wurde.


BRW-15391: Tabelle kann nicht geladen werden

Ursache:	Interner Schema-Fehler beim Laden der Datentabelle.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf, wenn dieser Fehler nicht erwartet wurde.


BRW-15392: Tabelle kann nicht geladen werden

Ursache:	Interner Schema-Fehler beim Laden der Tabelle.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf, wenn dieser Fehler nicht erwartet wurde.


BRW-15393: Synonym kann nicht geladen werden

Ursache:	Interner Schema-Fehler beim Laden des Synonyms.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf, wenn dieser Fehler nicht erwartet wurde.


BRW-15394: Abfrage kann nicht geladen werden

Ursache:	Interner Schema-Fehler beim Laden der Abfrage.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf, wenn dieser Fehler nicht erwartet wurde.


BRW-15395: Informationen zu den Tabellenspalten können nicht geladen werden

Ursache:	Interner Schema-Fehler beim Laden der Spalteninformationen.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf, wenn dieser Fehler nicht erwartet wurde.


BRW-15396: Information zu den Synonymspalten kann nicht geladen werden

Ursache:	Interner Schema-Fehler beim Laden von Synonymspalteninformationen.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf, wenn dieser Fehler nicht erwartet wurde.


BRW-15397: Integritätsregeln können nicht geladen werden

Ursache:	Interner Schema-Fehler beim Laden von Integritätsregeln.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf, wenn dieser Fehler nicht erwartet wurde.


BRW-15398: Informationen zu den Primärschlüsseln wurden nicht gefunden

Ursache:	Interner Schema-Fehler beim Suchen nach Primärschlüsseln.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf, wenn dieser Fehler nicht erwartet wurde.


BRW-15399: Information zu den Fremdschlüsseln wurde nicht gefunden

Ursache:	Interner Schema-Fehler bei der Suche nach Fremdschlüsseln.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf, wenn dieser Fehler nicht erwartet wurde.


BRW-15400: Tabellen- und Spaltenkommentare konnten nicht geladen werden

Ursache:	Interner Schema-Fehler beim Einlesen von Kommentaren.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf, wenn dieser Fehler nicht erwartet wurde.


BRW-15401: Fehler beim Laden von Datenbank-Link <Name>

Ursache:	Interner Schema-Fehler beim Laden des Datenbank-Links.

Maßnahme:	Weitere Informationen erhalten Sie in den begleitenden Fehlermeldungen.


BRW-15402: Fehler beim Laden von Eigentümer <Name>

Ursache:	Interner Schema-Fehler beim Laden von Datenbank-Link.

Maßnahme:	Weitere Informationen erhalten Sie in den begleitenden Fehlermeldungen.


BRW-15403: Fehler beim Laden von Tabelle <Name>

Ursache:	Interner Schema-Fehler beim Laden der Datentabelle.

Maßnahme:	Weitere Informationen erhalten Sie in den begleitenden Fehlermeldungen.


BRW-15404: Fehler beim Laden von Primärschlüssel-Integritätsregel für <Name> (<Wert>)

Ursache:	Interner Schema-Fehler beim Laden von Primärschlüssel-Integritätsregel.

Maßnahme:	Weitere Informationen erhalten Sie in den begleitenden Fehlermeldungen.


BRW-15405: Fehler beim Laden von Fremdschlüssel-Integritätsregel <Name>

Ursache:	Interner Schema-Fehler beim Laden der Fremdschlüssel-Integritätsregel.

Maßnahme:	Weitere Informationen erhalten Sie in den begleitenden Fehlermeldungen.


BRW-15406: Fehler beim Laden von Synonym <Name>

Ursache:	Interner Schema-Fehler beim Laden des Synonyms.

Maßnahme:	Weitere Informationen erhalten Sie in den begleitenden Fehlermeldungen.


BRW-15407: Die von Synonym <Name> referenzierte Tabelle ist nicht mehr vorhanden

Ursache:	Der Benutzer hat versucht, ein Synonym für eine nicht vorhandene Datentabelle zu erstellen.

Maßnahme:	Erstellen Sie das Synonym neu.


BRW-15408: Fehler beim Laden der Spalten-Information für <Tabelle>

Ursache:	Oracle-Fehler, oder die Datentabelle wurde entfernt.

Maßnahme:	Erstellen Sie die Datentabelle neu.


BRW-15409: Fehler beim Laden der Information zu den Integritätsregeln für <Name> (<Wert>)

Ursache:	Oracle-Fehler.

Maßnahme:	Wiederholen Sie den Versuch.


BRW-15410: Kein Zugriff auf die von Fremdschlüssel <Name> (<Wert>) referenzierte Tabelle

Ursache:	Die Tabelle, die der Fremdschlüssel referenziert, kann nicht aufgerufen werden.

Maßnahme:	Erteilen Sie dem aktuellen Benutzer eine Zugriffsberechtigung zu der Tabelle.


BRW-15411: Abmeldung war nicht erfolgreich

Ursache:	Interner Fehler bei der Abmeldung.

Maßnahme:	Beenden oder schließen Sie das Dokument.


BRW-15412: Tabelle der Abfrage <Name> wurde geändert. Abfrage wurde als Ansicht geladen

Ursache:	Die Ansicht, von der die Abfrage abhängig ist, wurde seit dem letzten Speichernvorgang geändert.

Maßnahme:	Öffnen Sie die Abfrage, und speichern Sie sie erneut, um sie als Datentabelle zu benutzen.


BRW-15413: Tabelle von Abfrage <Name> wurde gelöscht. Abfrage wird nicht geladen

Ursache:	Die Ansicht, von der die Abfrage abhängig ist, wurde entfernt.

Maßnahme:	Öffnen Sie die Abfrage, und speichern Sie sie erneut zur Benutzung als Datentabelle.


BRW-15414: Tabelle <Name> ist nicht mehr vorhanden

Ursache:	Diese Datentabelle ist in der Datenbank nicht mehr vorhanden.

Maßnahme:	Nehmen Sie Verbindung mit dem Systemadministrator auf, wenn Sie diese Tabelle benötigen.


BRW-15415: Zu viele Tabellenspalten. Max. Anzahl 254

Ursache:	Der Benutzer hat versucht, eine Datentabelle mit mehr als 254 Spalten zu laden.

Maßnahme:	Nehmen Sie Verbindung mit dem Systemadministrator auf.


BRW-15416: Zu viele Tabellen für einen Benutzer. Max. Anzahl (8192)

Ursache:	Dem Benutzer gehören zu viele Datentabellen.

Maßnahme:	Nehmen Sie Verbindung mit dem Systemadministrator auf.


BRW-15417: Zu viele Eigentümer oder Datenbanken. Max. Anzahl (1024)

Ursache:	Der Benutzer hat versucht, zu viele Benutzer-, Eigentümer- und Datenbank-Links zu laden.

Maßnahme:	Nehmen Sie Verbindung mit dem Systemadministrator auf.


BRW-15418: Die Information zum Datenbank-Link wurde nicht gefunden

Ursache:	Diese Datenbank unterstützt keinen Datenbank-Link, oder es ist ein Datenbankfehler aufgetreten.

Maßnahme:	Wiederholen Sie den Versuch zu einem späteren Zeitpunkt, wenn dieser Fehler nicht erwartet wurde.


BRW-15419: Die Synonym-Information wurde nicht gefunden

Ursache:	Diese Datenbank unterstützt keine Synonyme, oder es ist ein Datenbankfehler aufgetreten.

Maßnahme:	Wiederholen Sie den Versuch zu einem späteren Zeitpunkt, wenn dieser Fehler nicht erwartet wurde.


BRW-15420: Die Information zu den Integritätsregeln wurde nicht gefunden

Ursache:	Diese Datenbank unterstützt keine Integritätsregeln, oder es ist ein Datenbankfehler aufgetreten.

Maßnahme:	Wiederholen Sie den Versuch zu einem späteren Zeitpunkt, wenn dieser Fehler nicht erwartet wurde.


BRW-15421: Die Tabelle mit den Tabellenkommentaren wurde nicht gefunden

Ursache:	Diese Datenbank unterstützt keine Tabellenkommentare, oder es ist ein Datenbankfehler aufgetreten.

Maßnahme:	Wiederholen Sie den Versuch zu einem späteren Zeitpunkt, wenn dieser Fehler nicht erwartet wurde.


BRW-15422: Tabelle mit Kommentaren zu Tabellenspalten wurde nicht gefunden

Ursache:	Diese Datenbank unterstützt keine Kommentare zu Spalten, oder es ist ein Datenbankfehler aufgetreten.

Maßnahme:	Wiederholen Sie den Versuch zu einem späteren Zeitpunkt, wenn dieser Fehler nicht erwartet wurde.


BRW-15423: Synonym für SEQUENCE wird zur Zeit nicht unterstützt

Ursache:	Der Benutzer hat versucht, ein Synonym zu laden, das eine Sequenz referenziert.

Maßnahme:	Diese Maßnahme wird nicht unterstützt.


BRW-15424: Mehr als 3 Anmeldeversuche sind nicht gestattet

Ursache:	Der Benutzer hat versucht, sich zu häufig anzumelden.

Maßnahme:	Fragen Sie den Systemadministrator nach dem richtigen Benutzernamen, dem richtigen Kennwort und/oder der richtigen DB-Adresse.


BRW-15430: Indexinformationen nicht geladen

Ursache:	Die Indextabelle kann nicht gefunden werden.

Maßnahme:	Dies ist eine fremde Datenbank; benutzen Sie einen ODBC-Treiber.


BRW-15434: Max. Anzahl von Spalten in Tabelle <##>

Ursache:	Der Benutzer hat versucht, mehr als die maximal zulässige Anzahl von Spalten in einer Tabelle zu erstellen.

Maßnahme:	Erstellen Sie weniger Spalten.


BRW-15435: DBA-Berechtigung ist für diesen Vorgang erforderlich

Ursache:	Sie benötigen DBA-Berechtigungen.

Maßnahme:	Bitten Sie den Systemadministrator, Ihnen DBA-Berechtigungen zu erteilen.


BRW-15447: Entfernen der Abfrage nicht möglich. Bitte Datei Löschen im Abfragefenster verwenden

Ursache:	Der Benutzer hat versucht, eine Abfrage zu entfernen.

Maßnahme:	Dies ist im Schema-Editor nicht zulässig. Benutzen Sie statt dessen das Abfragefenster.


BRW-15448: Kopieren der Abfrage nicht möglich. Bitte Datei speichern unter... im Abfragefenster verwenden

Ursache:	Der Benutzer hat versucht, eine Abfrage zu kopieren.

Maßnahme:	Dies ist im Schema Editor nicht zulässig. Benutzen Sie statt dessen das Abfragefenster.


BRW-15449: Kopieren von Tabellendaten nicht möglich. Tabelle enthält nur LONG-Spalten

Ursache:	Der Benutzer hat versucht, eine Tabelle mit einer LONG-Spalte zu kopieren.

Maßnahme:	Die Datenbank unterstützt diesen Vorgang nicht.


BRW-15450: Vorgang ist bei entfernter Tabelle nicht möglich

Ursache:	Der Benutzer hat versucht, einen Vorgang mit einer entfernten Tabelle auszuführen.

Maßnahme:	Machen Sie zuerst den Entfernen-Vorgang rückgängig.


BRW-15451: Vorgang ist bei entfernter Spalte nicht möglich

Ursache:	Der Benutzer hat versucht, einen Vorgang mit einer entfernten Spalte durchzuführen.

Maßnahme:	Machen Sie zuerst den Entfernen-Vorgang rückgängig.


BRW-15452: Tabelle gehört einem anderen Benutzer. Umbenennen nicht möglich

Ursache:	Der Benutzer hat versucht, den Namen einer Datentabelle festzulegen, die einem anderen Benutzer gehört.

Maßnahme:	Dies ist nicht zulässig. Bitten Sie den Eigentümer, die Tabelle für Sie umzubenennen.


BRW-15466: Der Name der Tabelle ist zu lang (max. <##> Byte)

Ursache:	Der Name der Datentabelle ist zu lang.

Maßnahme:	Kürzen Sie den Namen, und wiederholen Sie den Versuch.


BRW-15467: Name ist bereits vorhanden. Bitte einen anderen Namen wählen

Ursache:	Der Name wird schon benutzt.

Maßnahme:	Wählen Sie einen anderen Namen.


BRW-15468: Spaltenname ist zu lang (max. <##> Byte)

Ursache:	Der Spaltenname ist zu lang.

Maßnahme:	Kürzen Sie den Namen, und wiederholen Sie den Versuch.


BRW-15493: Dieser Vorgang wird zur Zeit nicht unterstützt

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


BRW-15494: Fehler beim Laden von SQL-Text der Ansichten

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


BRW-15495: Fehler beim Laden von SQL-Text für Ansicht <Name>

Ursache:	Interner Fehler.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf.


BRW-15496: Größe muß zwischen <##> und <##> liegen

Ursache:	Es wurde ein ungültiger Wert für die Größe angegeben.

Maßnahme:	Geben Sie einen gültigen Wert ein.


BRW-15498: Abfrage kann nicht geändert werden

Ursache:	Eine Abfrage darf nicht geändert werden.

Maßnahme:	Öffnen Sie die Abfrage, und ändern Sie sie als Query Builder-Dokument.


BRW-15499: Spaltenattribute einer Tabelle, die mit duplizierten Daten erstellt wurde, können nicht geändert werden

Ursache:	Der Benutzer hat versucht, den Spaltentyp einer Tabelle mit duplizierten Daten einzustellen.

Maßnahme:	Speichen Sie zuerst die Tabelle, und wiederholen Sie dann den Versuch.


BRW-15501: Virtueller Speicher für Anwendungen fehlt

Ursache:	Es ist kein Platz mehr auf der Festplatte oder im Systemspeicher für den Virtual Memory Manager vorhanden.

Maßnahme:	Schließen Sie ein Dokument, oder schaffen Sie Platz auf der Festplatte.


BRW-15502: Max. <##> Zeilen sind in einem Dokument erlaubt
BRW-15502: Maximal <##> Zeilen sind in einem Dokument erlaubt

Ursache:	Der selbst festgelegte Höchstwert für Zeilen zur Kompilierung wurde überschritten.

Maßnahme:	Fügen Sie möglicherweise Bedingungen zu der Abfrage hinzu.


BRW-15504: Datenbank-Zeichensatz konnte nicht festgestellt werden

Ursache:	Es ist ein Problem mit SELECT USERENV('LANGUAGE') FROM DUAL aufgetreten.

Maßnahme:	Fremde Datenbank - nicht unterstützt.


BRW-15505: Die virtuelle Speicherdatei konnte nicht geöffnet werden

Ursache:	Keine Schreibberechtigung oder Dateisystem voll.

Maßnahme:	Ändern Sie die Zugriffsberechtigung zu dem Verzeichnis, oder löschen Sie einige Dateien.


BRW-15506: Die virtuelle Speicherdatei kann nicht geschlossen werden

Ursache:	Betriebssystemfehler.

Maßnahme:	Bitten Sie den Systemadministrator um Unterstützung.


BRW-15507: Die virtuelle Speicherdatei kann nicht gelesen werden

Ursache:	Die virtuelle Speicherdatei ist nicht vorhanden.

Maßnahme:	Stellen Sie sicher, daß die virtuelle Speicherdatei geöffnet ist.


BRW-15508: In die virtuelle Speicherdatei kann nicht geschrieben werden

Ursache:	Das Dateisystem ist voll, oder die virtuelle Speicherdatei wurde nicht geöffnet.

Maßnahme:	Löschen Sie einige Dateien. Stellen Sie sicher, daß die virtuelle Speicherdatei geöffnet ist.


BRW-15509: Verwaltung des virtuellen Speichers kann nicht erstellt werden

Ursache:	Interner Fehler oder kein Speicherplatz mehr.

Maßnahme:	Bitten Sie den Systemadministrator um Unterstützung.


BRW-15511: Max. virtuelle Speichergröße überschritten

Ursache:	Die Benutzereingabe ist zu groß für den virtuellen Speicher.

Maßnahme:	Wiederholen Sie den Versuch.


BRW-15513: Wertangabe fehlt in Befehl '<Name>'

Ursache:	Der Benutzer hat <Befehl>= auf der Befehlszeile ohne entsprechende Option eingegeben.

Maßnahme:	Geben Sie einen Wert für <Befehl> ein.


BRW-15514: Fehlender Befehl in Befehlszeile

Ursache:	Der Benutzer hat =<Wert> auf der Befehlszeile eingegeben, hat jedoch keinen Befehl angegeben.

Maßnahme:	Fügen Sie den Befehl hinzu.


BRW-15515: Ungültiger Befehl '<Name>' in Befehlszeile

Ursache:	Der Benutzer hat einen ungültigen Befehl in der Befehlszeile eingegeben.

Maßnahme:	Ändern Sie den Befehl.


BRW-15516: Befehl '<Name>' in Befehlszeile zweimal angegeben

Ursache:	Der Benutzer hat einen Befehl zweimal in der Befehlszeile angegeben.

Maßnahme:	Entfernen Sie einen Befehl.


BRW-15517: Befehle '<Name1>' und '<Name2>' sind inkompatibel

Ursache:	Der Benutzer hat zwei nicht kompatible Befehle in der Befehlszeile eingegeben.

Maßnahme:	Entfernen Sie einen der Befehle.


BRW-15518: Ungültige Option '<Name1>' in Befehl '<Name2>'

Ursache:	Der Benutzer hat eine ungültige Option für einen Befehl in der Befehlszeile eingegeben.

Maßnahme:	Ändern Sie die Option.


BRW-15519: Mehrere Anmeldeangaben in der Befehlszeile

Ursache:	Der Benutzer hat zwei Anmeldeangaben in der Befehlszeile gemacht.

Maßnahme:	Entfernen Sie eine Angabe.


BRW-15520: Ungültiger Dokumentname '<Name>' in Befehlszeile

Ursache:	Der Benutzer hat einen ungültigen Dokumentnamen in der Befehlszeile eingegeben

Maßnahme:	Ändern Sie den Dokumentnamen.


BRW-15521: Befehl '<Name>' ohne Dokument angegeben

Ursache:	Der Benutzer hat einen Befehl eingegeben, ohne in der Befehlszeile ein Dokument anzugeben.

Maßnahme:	Fügen Sie das fehlende Dokument hinzu.


BRW-15522: Befehl '<Name1>' ohne '<Name2>' angegeben

Ursache:	Der Benutzer hat einen Befehl ohne einen anderen obligatorischen Befehl eingegeben.

Maßnahme:	Fügen Sie den fehlenden Befehl hinzu.


BRW-15523: Klammern in Befehl '<Name>' sind nicht korrekt

Ursache:	Der Benutzer hat nicht korrekte Klammern in der Befehlszeile eingegeben.

Maßnahme:	Korrigieren Sie das Klammernpaar.


BRW-15530: Gelöschte Zeile kann nicht bearbeitet werden

Ursache:	Der Benutzer hat versucht, eine Zeile zu bearbeiten, die für das Löschen markiert ist.

Maßnahme:	Machen Sie zuerst den Löschenvorgang für die Zeile rückgängig.


BRW-15531: Die Zeile wurde aus der Datenbank gelöscht

Ursache:	Ein anderer Benutzer hat diese Zeile gelöscht, seit Sie die Abfrage das letzte Mal ausgeführt haben.

Maßnahme:	Nehmen Sie Verbindung mit der Zentralen Kundenunterstützung von Oracle auf. Dieser Fehler sollte niemals auftreten.


BRW-15532: Die Zeile wurde von einem anderen Benutzer geändert. Bitte neu abfragen

Ursache:	Ein anderer Benutzer hat diese Zeile aktualisiert, seit Sie die Abfrage das letzte Mal ausgeführt haben.

Maßnahme:	Wiederholen Sie den Versuch.


BRW-15533: Die Zeile wird von einem anderen Benutzer gesperrt

Ursache:	Ein anderer Benutzer bearbeitet diese Zeile gerade.

Maßnahme:	Wiederholen Sie den Versuch zu einem späteren Zeitpunkt.


BRW-15539: Fehler beim Einfügen von <##> Zeile(n)

Ursache:	Beim Einfügen von einer oder mehreren Zeilen in die Eingabedatei ist ein Fehler aufgetreten.

Maßnahme:	Ändern Sie die Eingabedatei, oder ignorieren Sie den Fehler.


BRW-15540: Vorgang ist bei diesem Datentyp nicht erlaubt

Ursache:	Der Benutzer hat versucht, eine Zelle mit Daten mit einem nicht editierbaren Typ zu bearbeiten.

Maßnahme:	Unbekannt.


BRW-15541: Zu viele geänderte Zeilen. Bitte speichern

Ursache:	Es sind zu viele INSERT-, UPDATE- oder DELETE-Vorgänge in einem Dokument vorhanden.

Maßnahme:	Wählen Sie Speichern oder Wiederherstellen.


BRW-15545: Fehler beim Lesen der QXF-Datei. Analyse wurde gestoppt

Ursache:	Syntaxfehler beim Lesen der QXF-Datei.

Maßnahme:	Korrigieren Sie die QXF-Datei.


BRW-15546: Analysefehler: Zeile <##>

Ursache:	Falsche Syntax auf dieser bestimmten Zeile.

Maßnahme:	Debuggen Sie diese Zeile.


BRW-15547: Operator wurde im Beziehungsblock nicht angegeben

Ursache:	Im Beziehungsblock in der QXF-Datei wurde kein Operator angegeben.

Maßnahme:	Geben Sie ein Operatorfeld innerhalb des Blocks an.


BRW-15548: Fehler: In <Name> des Beziehungsblocks fehlt ein Argument

Ursache:	In einem Spaltenfeld in einem Beziehungsblock fehlt ein Argument.

Maßnahme:	Geben Sie den Spaltennamen in dieses Feld ein.


BRW-15549: CONDITION_TEXT fehlt im Bedingungsblock

Ursache:	Im CONDITION_TEXT-Feld innerhalb des Bedingungsblocks fehlt ein Argument.

Maßnahme:	Geben Sie das CONDITION_TEXT-Feld an.


BRW-15550: Unzulässiger INCLUSION_ORDER-Wert (<Name1>) in Ausdruck '<Name2>'

Ursache:	Unzulässiger INCLUSION_ORDER-Wert in dem Ausdruck.

Maßnahme:	Korrigieren Sie den Wert von INCLUSION_ORDER.


BRW-15551: Ausdruck '<Name>' ist enthalten, jedoch INCLUSION_ORDER wurde nicht angegeben

Ursache:	INCLUSION_ORDER wurde für einen enthaltenen Ausdrucksblock nicht angegeben.

Maßnahme:	Geben Sie das Feld INCLUSION_ORDER an.


BRW-15552: Ausdruck '<Name>' ist nicht enthalten, doch INCLUSION_ORDER ist nicht null

Ursache:	Der Ausdruck ist nicht enthalten (INCLUDED = FALSE), INCLUSION_ORDER ist jedoch nicht null.

Maßnahme:	Korrigieren Sie die Werte in diesen Feldern.


BRW-15553: Fehler: Leere TEXT-Zeichenfolge in Ausdruck '<Name>'

Ursache:	Die TEXT-Zeichenfolge wurde nicht innerhalb eines QXF-Ausdrucksblocks angegeben.

Maßnahme:	Geben Sie die TEXT-Zeichenfolge an.


BRW-15554: Fehler: SORT_PRIORITY wurde für sortierten Ausdruck '<Name>' nicht angegeben

Ursache:	SORT_PRIORITY wurde für den sortierten Ausdruck nicht angegeben.

Maßnahme:	Geben Sie die SORT_PRIORITY an.


BRW-15555: Unzulässiger INCLUSION_ORDER-Wert in Feld '<Name1>' in Tabelle '<Name2>'
BRW-15555: Unzulässiger INCLUSION_ORDER-Wert für Feld '<Name1>' in Tabelle '<Name2>'

Ursache:	Unzulässiger INCLUSION_ORDER-Wert für das Feld.

Maßnahme:	Korrigieren Sie den INCLUSION_ORDER-Wert.


BRW-15556: Feld '<Name1>' in Tabelle '<Name2>' enthalten, doch INCLUSION_ORDER ist null

Ursache:	Das Feld ist enthalten (INCLUDED = FALSE), INCLUSION_ORDER ist jedoch nicht angegeben.

Maßnahme:	Korrigieren Sie die Werte in diesen Feldern.


BRW-15557: Feld '<Name1>' (Tabelle '<Name2>') nicht enthalten, doch INCLUSION_ORDER ist vorhanden

Ursache:	Das Feld in der angegebenen Datentabelle ist nicht enthalten, INCLUSION_ORDER ist jedoch nicht null.

Maßnahme:	Korrigieren Sie die Werte in diesen Feldern.


BRW-15558: SORT_PRIORITY für sortiertes Feld '<Name1>' in Tabelle '<Name2>' nicht angegeben

Ursache:	SORT_PRIORITY wurde für ein sortiertes Feld nicht angegeben.

Maßnahme:	Geben Sie die SORT_PRIORITY für dieses Feld an.


BRW-15559: Fehler: Unzulässiger Wert '<Name1>' für INCLUSION_ORDER in Tabelle '<Name2>'

Ursache:	In INCLUSION_ORDER ist ein negativer Wert enthalten.

Maßnahme:	Korrigieren Sie diesen Wert.


BRW-15560: Tabelle '<Name>' enthalten, doch INCLUSION_ORDER ist nicht angegeben

Ursache:	Die Datentabelle ist enthalten (INCLUDED = TRUE), INCLUSION_ORDER wurde jedoch nicht angegeben.

Maßnahme:	Korrigieren Sie Werte in diesen Feldern.


BRW-15561: Tabelle '<Name>' ausgeschlossen, doch INCLUSION_ORDER ist nicht null

Ursache:	Die Datentabelle ist nicht enthalten (INCLUDED = FALSE), INCLUSION_ORDER ist jedoch nicht null.

Maßnahme:	Korrigieren Sie die Werte in diesen Feldern.


BRW-15562: Fehler: Es sollte nur ein Hauptbedingungsblock vorhanden sein

Ursache:	Es ist mehr als ein Hauptbedingungsblock vorhanden.

Maßnahme:	Löschen Sie einige Bedingungsblöcke, oder verwenden Sie eine Verknüpfung.


BRW-15563: Fehler: Eine QXF-Datei der Version 1.0 wird erwartet

Ursache:	Unzulässige Versionsnummer im Feld VERSION.

Maßnahme:	Ändern Sie die Version.


BRW-15564: Analysefehler: Zeile <##>: Ungültiger Schriftstil '<Name>'

Ursache:	Ungültiger Schriftstil.

Maßnahme:	Prüfen Sie den Schriftstil, und korrigieren Sie ihn.


BRW-15565: Analysefehler: Zeile <##>: Ungültiges Schriftstilargument

Ursache:	Ungültiges Schriftstilargument.

Maßnahme:	Prüfen Sie die Schriftstil-Zeichenfolgen, und korrigieren Sie diese.


BRW-15566: Analysefehler: Zeile <##>: Ungültige Verbundfunktion '<Name>'

Ursache:	Ungültiger Name einer Verbundfunktion.

Maßnahme:	Korrigieren Sie den Funktionsnamen.


BRW-15567: Analysefehler: Zeile <##>: Ungültiges Summenargument

Ursache:	Ungültiges Summenfeld-Argument.

Maßnahme:	Korrigieren Sie das Feldargument.


BRW-15568: Analysefehler: Zeile <##>: Ungültiges Feldargument

Ursache:	Ungültiges Feldargument.

Maßnahme:	Korrigieren Sie das Feldargument.


BRW-15569: Warnung: QXF-Datei wurde wegen eines Fehlers nur teilweise geladen

Ursache:	Fehler beim Laden der QXF-Datei.

Maßnahme:	Korrigieren Sie diese Fehler.


BRW-15570: Analysefehler: Zeile <##>: Ungültiger Operator '<Name>' in Beziehungsblock

Ursache:	Ungültiger Operator innerhalb des Beziehungsblocks.

Maßnahme:	Prüfen Sie den Operator, und korrigieren Sie ihn.


BRW-15571: Analysefehler: Zeile <##>: Ungültiges Operator-Feldargument

Ursache:	Ungültige Objekt-ID innerhalb des abgeleiteten Objektausdrucks.

Maßnahme:	Korrigieren Sie die Objekt-ID im Dictionary.


BRW-15572: Inkonsistente Objekt-IDs in abgeleitetem Objektausdruck

Ursache:	Ungültiges Operator-Feldargument innerhalb des Beziehungsblocks.

Maßnahme:	Prüfen Sie die Operatorfolgen, und korrigieren Sie diese.


BRW-15580: Liste vorhandener Unternehmensbereiche kann nicht geladen werden

Ursache:	Die Endbenutzerebene hat keine Unternehmensbereichtabellen.

Maßnahme:	Installieren Sie die Endbenutzerebene neu. Bitten Sie den Systemadministrator um Unterstützung.


BRW-15581: Hinzufügen von Spalten nicht möglich, da Tabelle mit duplizierten Daten angelegt wurde

Ursache:	Der Benutzer hat versucht, Spalten zu einer Tabelle hinzuzufügen, die mit doppelten Tabellendaten erstellt wurde.

Maßnahme:	Speichern Sie die Tabelle mit den duplizierten Daten, und wiederholen Sie den Versuch.


BRW-15582: Neue oder duplizierte Tabelle ist nur bei bestehender Tabelle zulässig

Ursache:	Erstellen Sie eine neue Tabelle aufgrund einer neuen/duplizierten/geänderten Tabelle.

Maßnahme:	Speichern Sie die neue/duplizierte/geänderte Tabelle zuerst.


BRW-15583: Index erfordert mindestens eine Spalte

Ursache:	Der Benutzer hat versucht, die letzte Spalte eines Index zu entfernen.

Maßnahme:	Fügen Sie weitere Spalten hinzu, und entfernen Sie die gewünschte Spalte dann.


BRW-15584: Spalte <Name> hat den Spaltentyp LONG und wird somit nicht kopiert

Ursache:	Eine LONG-Spalte kann beim Erstellen eines Snapshots nicht kopiert werden.

Maßnahme:	Die Spalte kann nicht kopiert werden.


BRW-15600: Syntax nicht unterstützt
BRW-15600: Syntax nicht unterstützt.

Ursache:	Der Benutzer hat versucht, eine nicht unterstützte Syntax zu analysieren.

Maßnahme:	Benutzen Sie eine alternative Oracle8-Syntax.


 BRW-15601: Ungültige Oracle 8 SQL-Syntax

Ursache:	Die Oracle8-Sprachsyntax kann nicht benutzt werden.

Maßnahme:	Benutzen Sie Oracle 7 SQL.


BRW-15602: Type Constructor in Oracle 8 SQL nicht unterstützt

Ursache:	Type Constructor's von Oracle 8 SQL werden nicht unterstützt.

Maßnahme:	Verwenden Sie Oracle 7.


BRW-15603: REF in Oracle 8 SQL nicht unterstützt

Ursache:	REF von Oracle 8 SQL wird nicht unterstützt.

Maßnahme:	Verwenden Sie statt dessen Oracle 7.


BRW-15604: CAST in Oracle 8 SQL nicht unterstützt

Ursache:	CAST in Oracle 8 SQL wird nicht unterstützt.

Maßnahme:	Verwenden Sie statt dessen Oracle 7.


BRW-15605: MULTISET in Oracle 8 SQL nicht unterstützt

Ursache:	MULTISET in Oracle 8 SQL nicht unterstützt.

Maßnahme:	Verwenden Sie statt dessen Oracle 7.


BRW-15606: METHODS in Oracle 8 SQL nicht unterstützt

Ursache:	METHODS in Oracle 8 SQL wird nicht unterstützt.

Maßnahme:	Verwenden Sie statt dessen Oracle 7.


BRW-15607: THE-Unterabfrage in Oracle 8 SQL nicht unterstützt

Ursache:	Die THE-Unterabfrage in Oracle 8 SQL wird nicht unterstützt.

Maßnahme:	Verwenden Sie statt dessen  Oracle 7.


BRW-15608: PARTITION von Tabellen in Oracle 8 SQL nicht unterstützt

Ursache:	PARTITION von Tabellen in Oracle 8 SQL wird nicht unterstützt.

Maßnahme:	Benutzen Sie statt dessen Oracle 7.


BRW-15609: Das Schlüsselwort TABLE wird in einer Unterabfrage in Oracle 8 SQL nicht unterstützt

Ursache:	Das Schlüsselwort TABLE wird in einer Unterabfrage nicht unterstützt.

Maßnahme:	Verwenden Sie statt dessen Oracle 7.


BRW-15610: Tabelle als Tabellenalias umbenennen

Ursache:	Der Benutzer hat versucht, eine Tabelle anstelle eines Tabellenalias zu verwenden.

Maßnahme:	Benennen Sie die Tabelle mit einem Tabellenalias um.


BRW-15641: Initialisierung des Hilfesystems war nicht erfolgreich. Keine Hilfe vorhanden

Ursache:	Das Hilfedokument bzw. die Resource-Datei für das Hilfesystem konnte nicht gefunden werden.

Maßnahme:	Der Benutzer kann mit der Arbeit fortfahren, es ist jedoch kein Hilfemenü verfügbar. Benutzen Sie die Online-Dokumentation oder die gedruckten Handbücher.


BRW-15643: Resource-Datei nicht gefunden (<Name>), standardmäßige Resource-Datei verwenden

Ursache:	NLS_LANG ist eingestellt, die Datei wurde jedoch nicht gefunden.

Maßnahme:	Versuchen Sie, die Resource-Datei mit der Standardsprache zu öffnen.


BRW-15644: Hilfedokument (<Name>) nicht gefunden, Standarddokument verwenden

Ursache:	NLS_LANG ist eingestellt, die Datei wurde jedoch nicht gefunden.

Maßnahme:	Versuchen Sie, das Hilfedokument mit der Standardsprache zu öffnen.


BRW-15647: Hilfedokument nicht gefunden

Ursache:	Die Hilfedatei konnte nicht im richtigen Verzeichnis mit der richtigen Sprache gefunden werden.

Maßnahme:	Prüfen Sie die Verzeichnisstruktur von Query Builder. Stellen Sie sicher, daß NLS_LANG richtig eingestellt ist.


BRW-15648: Fehler beim Anlegen des Hilfesystems

Ursache:	Das Hilfesystem konnte nicht hochgefahren werden.

Maßnahme:	Query Builder konnte die Resource-Datei für das Hilfesystem nicht finden, NLS_LANG ist nicht eingestellt, oder es ist nicht genügend Speicherplatz vorhanden.


BRW-15649: Eingabe für <Name> war zu niedrig. Gültiger Mindestwert ist <##>

Ursache:	Der Eingabewert war zu klein.

Maßnahme:	Wiederholen Sie den Versuch mit einem größeren Wert.


BRW-15650: Eingabe für <Name> war zu hoch. Gültiger Maximalwert ist <##>

Ursache:	Der Eingabewert war zu hoch.

Maßnahme:	Wiederholen Sie den Versuch mit einem kleineren Wert.


BRW-15651: Eingabe für <Name> war ungültig. Die Eingabe muß zwischen <##> und <##> liegen

Ursache:	Der Eingabewert lag außerhalb des gültigen Bereichs.

Maßnahme:	Wiederholen Sie den Versuch mit einer gültigen Zahl.


BRW-15652: Der Wert wurde auf <Wert> zurückgesetzt

Ursache:	Der eingegebene Wert wurde geändert, weil er außerhalb des gültigen Bereichs lag.

Maßnahme:	Wiederholen Sie den Versuch mit einer gültigen Zahl, oder Query Builder benutzt den angegebenen Wert.


BRW-15653: Fehler in Voreinstellungsdatei: Wert <Wert> war zu niedrig. Gültiger Mindestwert ist <##>

Ursache:	Der eingegebene Wert war zu niedrig.

Maßnahme:	Wiederholen Sie den Versuch mit einem höheren Wert.


BRW-15654: Fehler in Voreinstellungsdatei: Wert <Wert> war zu hoch. Gültiger Maximalwert ist <##>

Ursache:	Der eingegebene Wert war zu hoch.

Maßnahme:	Wiederholen Sie den Versuch mit einem niedrigeren Wert.


BRW-15655: Fehler in Voreinstellungsdatei: Wert <Wert> war ungültig, muß zwischen <##> und <##> liegen

Ursache:	Der eingegebene Wert lag außerhalb des gültigen Bereichs.

Maßnahme:	Wiederholen Sie den Versuch mit einer gültigen Zahl.


BRW-15656: Fehler in Voreinstellungsdatei: Wert für <Wert> wurde nicht erkannt

Ursache:	Der in der Voreinstellungsdatei festgelegte Wert war ungültig.

Maßnahme:	Wiederholen Sie den Versuch mit einer gültigen Zahl.


BRW-15657: Wert für OWNERLIST=NAME muß mindestens einen Namen enthalten

Ursache:	Der Wert für OWNERLIST=NAME war NULL.

Maßnahme:	Wiederholen Sie den Versuch mit einem gültigen Namen.


BRW-15900: Keine Zeitrauminformationen gefunden

Ursache:	Diese Datenbank unterstützt keine Zeiträume, oder ein Datenbankfehler ist aufgetreten.

Maßnahme:	Wiederholen Sie den Versuch zu einem späteren Zeitpunkt, wenn dieser Fehler unerwartet ist.


BRW-15901: Tabelle <Name1>, die Objekt <Name2> referenziert, ist nicht mehr vorhanden

Ursache:	Die Basisdatenquelle des Objekts wurde entfernt.

Maßnahme:	Frischen Sie das Objekt auf bzw. löschen Sie es.


BRW-15902: Tabelle, die Objekt <Name> referenziert, ist nicht mehr vorhanden

Ursache:	Die Basisdatenquelle des Objekts wurde entfernt.

Maßnahme:	Frischen Sie das Objekt auf bzw. löschen Sie es.


BRW-15903: Tabelle <Name> ist in keinem Unternehmensbereich. Verknüpfungs-Infos stehen nicht zur Verfügung

Ursache:	Beziehung: Gegenüberliegende Datentabelle/gegenüberliegendes Objekt steht in keiner Gruppe.

Maßnahme:	Teilen Sie dieses Objekt einer Gruppe zu.


BRW-15904: Name der Beziehung darf nicht länger als <##> Byte sein

Ursache:	Der Beziehungsname ist länger als der zulässige Grenzwert.

Maßnahme:	Benutzen Sie einen kürzeren Namen.


BRW-15905: Spaltenüberschriften dürfen nicht länger als <##> Byte sein

Ursache:	Die Objektüberschrift ist länger als der zulässige Grenzwert.

Maßnahme:	Benutzen Sie eine kürzere Überschrift.


BRW-15906: Spaltenformate dürfen nicht länger als <##> Byte sein

Ursache:	Das Objektformat ist länger als der Grenzwert.

Maßnahme:	Benutzen Sie ein kürzeres Format.


BRW-15907: Anzeigebreite der Spalten darf nicht länger als <##> Ziffern sein

Ursache:	Die Anzeigebreite des Objekts ist größer als der Grenzwert.

Maßnahme:	Benutzen Sie eine kürzere Anzeigebreite.


BRW-15908: Zeitraumname darf nicht länger als <##> Byte sein

Ursache:	Der Name des Zeitraums ist zu lang.

Maßnahme:	Benutzen Sie einen kürzeren Namen für den Zeitraum.


BRW-15909: Zeitraum- und Sequenzspalte des Zeitraums sind gleich

Ursache:	Die Zeitraum- und Sequenzspalten des Zeitraums sind auf denselben Wert eingestellt.

Maßnahme:	Stellen Sie sicher, daß die Zeitraum- und Sequenzspalten unterschiedlich sind.


BRW-15910: Zeitraum <Name> kann nicht geladen werden

Ursache:	Interner Schema-Fehler beim Laden des Zeitraums.

Maßnahme:	Weitere Informationen finden Sie in den begleitenden Fehlermeldungen.


BRW-15911: Zeitraum <Name> schon vorhanden

Ursache:	Der Name des Zeitraums muß eindeutig sein.

Maßnahme:	Erstellen Sie einen Zeitraum unter einem anderen Namen.


BRW-15912: Ungültiger Wert für Anzeigebreite

Ursache:	Ungültiger Wert für Anzeigebreite.

Maßnahme:	Geben Sie erneut einen zulässigen Wert ein.


BRW-15913: <Name> Schlüsseltext darf nicht leer sein

Ursache:	Der Fremd- oder Primärschlüsseltext ist leer.

Maßnahme:	Geben Sie Text für den Primär- oder Fremdschlüssel ein.


BRW-15914: Beziehungsname darf nicht leer sein

Ursache:	Der Beziehungsname ist null.

Maßnahme:	Geben Sie einen Beziehungsnamen ein.


BRW-15924: Name für Unternehmensbereich muß angegeben werden

Ursache:	Der Name des Unternehmensbereichs ist leer oder enthält nur Leerzeichen.

Maßnahme:	Geben Sie einen neuen Namen ein.


BRW-15925: Die Tabelle <Name1> wurde bereits als <Name2> importiert

Ursache:	Die Tabelle kann nur einmal mit einem bestimmten Namen importiert werden.

Maßnahme:	Importieren Sie die Tabelle unter einem anderen Namen.


BRW-15926: Unternehmensbereich <Name> besteht bereits

Ursache:	Der Name des Unternehmensbereichs muß eindeutig sein.

Maßnahme:	Erstellen Sie einen Unternehmensbereich unter einem anderen Namen.


BRW-15927: Unternehmensbereich <Name1> enthält bereits eine Tabelle namens <Name2>

Ursache:	Der Tabellenname muß innerhalb eines Unternehmensbereichs eindeutig sein.

Maßnahme:	Benennen Sie die Tabelle um bzw. importieren Sie die Tabelle neu, und fügen Sie sie zu dem Unternehmensbereich hinzu.


BRW-15928: Name des Unternehmensbereichs ist zu lang (max. <##> Byte)

Ursache:	Der Name des Unternehmensbereichs ist zu lang.

Maßnahme:	Kürzen Sie den Namen, und wiederholen Sie den Versuch.


BRW-15929: Beschreibung des Unternehmensbereichs ist zu lang (max. <##> Byte)

Ursache:	Die Beschreibung des Unternehmensbereichs ist zu lang.

Maßnahme:	Kürzen Sie die Beschreibung, und wiederholen Sie den Versuch.


BRW-15930: Fehler beim Speichern der Tabelle <Name>

Ursache:	Beim Speichern der Tabelle ist ein Fehler aufgetreten.

Maßnahme:	Wiederholen Sie den Versuch.


BRW-15931: Fehler beim Speichern des Unternehmensbereichs <Name>

Ursache:	Beim Speichern des Unternehmensbereichs ist ein Fehler aufgetreten.

Maßnahme:	Wiederholen Sie den Versuch.


BRW-15932: Fehler beim Speichern des Zeitraums <Name>

Ursache:	Beim Speichern des Zeitraums ist ein Fehler aufgetreten.

Maßnahme:	Wiederholen Sie den Versuch.


BRW-15933: Fehler beim Speichern der Beziehung <Name>

Ursache:	Beim Speichern der Beziehung ist ein Fehler aufgetreten.

Maßnahme:	Wiederholen Sie den Versuch.


BRW-15937: Fehler beim Generieren von SQL für Tabelle <Name>

Ursache:	Beim Generieren von SQL für eine Tabelle ist ein Fehler aufgetreten.

Maßnahme:	Wiederholen Sie den Versuch.


BRW-15938: Fehler beim Generieren von SQL für Unternehmensbereich <Name>

Ursache:	Beim Generieren von SQL für einen Unternehmensbereich ist ein Fehler aufgetreten.

Maßnahme:	Wiederholen Sie den Versuch.


BRW-15939: Fehler beim Generieren von SQL für den Zeitraum <Name>

Ursache:	Beim Generieren von SQL für einen Zeitraum ist ein Fehler aufgetreten.

Maßnahme:	Wiederholen Sie den Versuch.


BRW-15940: Fehler beim Generieren von SQL für Beziehung <Name>

Ursache:	Beim Generieren von SQL für die Beziehung ist ein Fehler aufgetreten.

Maßnahme:	Wiederholen Sie den Versuch.


BRW-15950: Keine Query Builder-Tabellen - Befehl zum Öffnen/Speichern der Datenbank ist deaktiviert

Ursache:	In der Datenbank ist keine Systemabfragetabelle von Query Builder vorhanden.

Maßnahme:	Erstellen Sie eine Systemabfragetabelle (führen Sie das Installationsskript von Query Builder aus).


BRW-15951: Benutzerprofil-Informationen des Produkts sind nicht geladen

Ursache:	Die Benutzerprofiltabelle kann nicht geladen werden.

Maßnahme:	Bitten Sie den Systemadministrator, eine Benutzerprofiltabelle zu erstellen.


BRW-15952: Benutzerberechtigungstabelle ist nicht geladen

Ursache:	Die Tabelle USER_USERS fehlt (fremde Datenbank oder Oracle V7-Datenbank).

Maßnahme:	Keine Maßnahme verfügbar.


BRW-15953: Tabellenberechtigungstabelle ist nicht geladen

Ursache:	Die Berechtigungstabelle kann nicht gefunden werden.

Maßnahme:	Fremde Datenbank oder Oracle V7-Datenbank.


BRW-15954: Oracle Query Builder 2.5-Tabellen fehlen oder sind nicht korrekt installiert

Ursache:	Keine QUERY BUILDER_DOCS_SQL-Tabelle vorhanden.

Maßnahme:	Installieren Sie die Query Builder 2.5-Tabellen neu.


BRW-15955: Abfrage gab keine Zeilen zurück

Ursache:	Die Abfrage hat keine Zeilen zurückgegeben.

Maßnahme:	Ändern Sie die Abfrage, so daß Daten angefordert werden, die in der Datenbank vorhanden sind.


BRW-16000: Dokument mit Endbenutzerebene und nicht mit anfänglichem Dictionary gespeichert. Fortfahren?

Ursache:	Der Benutzer hat versucht, ein Dokument im anfänglichen Modus zu öffnen, das mit der Endbenutzerebene gespeichert wurd.

Maßnahme:	Führen Sie Query Builder mit DICTIONARY=ENDUSER aus, oder fahren Sie fort (auf die Objekte der Endbenutzerebene kann nicht zugegriffen werden).


BRW-16001: Dokument gespeichert im anfänglichen Dictionary, nicht auf Endbenutzerebene. Fortfahren?

Ursache:	Der Benutzer hat versucht, ein im anfänglichen Dictionary gespeichertes Dokument im Modus ENDUSER zu öffnen.

Maßnahme:	Führen Sie Query Builder mit DICTIONARY=NATIVE aus, oder fahren Sie fort (auf einige Datenbankobjekte kann möglicherweise nicht zugegriffen werden).


BRW-16250: Das Dokument ist bereits vorhanden. Möchten Sie es überschreiben?

Ursache:	Der Benutzer hat versucht, den Befehl Speichern unter für ein bestehendes Dokument zu benutzen.

Maßnahme:	Der Benutzer kann das Dokument überschreiben oder den Vorgang abbrechen.


BRW-16251: Tabelle wurde geändert. Möchten Sie fortfahren?

Ursache:	Die Ansicht wurde entfernt und neu erstellt; sie ist möglicherweise nicht mit dem Dokument konsistent.

Maßnahme:	Fahren Sie fort, oder brechen Sie den Speichernvorgang ab.


BRW-16500: Kein Speicher für lokalen Sortiervorgang verfügbar. Erneut ausführen?

Ursache:	Es sind noch nicht alle Zeilen für einen lokalen Sortiervorgang abgerufen.

Maßnahme:	Führen Sie die Abfrage jetzt oder zu einem späteren Zeitpunkt erneut aus.


BRW-16503: Daten für lokalen Sortiervorgang nich verfügbar. Erneut ausführen?
BRW-16503: Daten für lokalen Sortiervorgang nicht verfügbar. Erneut ausführen?

Ursache:	Es sind noch nicht alle Zeilen für einen lokalen Sortiervorgang abgerufen.

Maßnahme:	Führen Sie die Abfrage jetzt oder zu einem späteren Zeitpunkt erneut aus.


BRW-16504: Daten für lokale Kontrolle nicht verfügbar. Erneut ausführen?

Ursache:	Es sind noch nicht alle Zeilen für eine lokale Kontrolle abgerufen.

Maßnahme:	Führen Sie die Abfrage jetzt oder zu einem späteren Zeitpunkt erneut aus.


BRW-16525: Abfrage erfordert eventuell ein kartesisches Produkt. Fortfahren?

Ursache:	Die Abfrage kombiniert die Ergebnisse von nicht zusammengehörigen Tabellen.

Maßnahme:	Ignorieren Sie die Meldung, oder verbinden Sie die Tabellen, bevor Sie fortfahren. Weitere Einzelheiten finden Sie im Hilfesystem oder der Dokumentation.


BRW-16531: Soll Parameter <Name> neu definiert werden?

Ursache:	Der Benutzer hat einen vorher gelöschten Parameter in einen Ausdruck oder eine Bedingung eingegeben.

Maßnahme:	Drücken Sie OK, wenn Sie dies wünschen.


BRW-16532: Parameter <Name> ist nicht vorhanden. Soll er definiert werden?

Ursache:	Der Benutzer hat einen neuen Parameter in einen Ausdruck oder eine Bedingung eingegeben.

Maßnahme:	Drücken Sie OK, wenn Sie dies wünschen.


BRW-16549: Beim Wiederherstellen des alten Zustandes gehen alle Änderungen verloren

Ursache:	Bevor Sie mit dem Wiederherstellen der Datentabellen fortfahren, wird eine Bestätigung angefordert.

Maßnahme:	Klicken Sie auf OK, um alle ausgewählten Datentabellen im alten Zustand wiederherzustellen, oder auf Abbrechen, um den Vorgang abzubrechen.


BRW-16550: Tabelle <Name> enthält referenzierte Primär-/eindeutige Schlüssel. Dennoch entfernen?

Ursache:	Die Tabelle enthält Integritätsregeln.

Maßnahme:	Klicken Sie auf OK, um die Datentabelle zu entfernen, oder auf Abbrechen, um den Vorgang abzubrechen.


BRW-16551: Spalte enthält Primär-/eindeutige Schlüssel oder Indizes. Dennoch entfernen?

Ursache:	Die Spalte wird von Integritätsregeln oder Indizes benutzt.

Maßnahme:	Klicken Sie auf OK, um die Spalte zu entfernen, oder auf Abbrechen, um den Vorgang abzubrechen.


BRW-16552: Alle Integritätsregeln deaktivieren?

Ursache:	Mit dieser Meldung werden Sie aufgefordert zu bestätigen, daß alle Integritätsregeln deaktiviert werden sollen.

Maßnahme:	Sie können dies bestätigen oder den Vorgang abbrechen.


BRW-16553: Alle Integritätsregeln aktivieren?

Ursache:	Mit dieser Meldung werden Sie aufgefordert zu bestätigen, daß alle Integritätsregeln aktiviert werden sollen.

Maßnahme:	Sie können dies bestätigen oder den Vorgang abbrechen.


BRW-16575: Es sind nicht festgeschriebene Änderungen vorhanden, die verloren gehen. Speichern?

Ursache:	Der Benutzer hat versucht, den Daten-Editor zu beenden, ohne die Änderungen zu speichern.

Maßnahme:	Klicken Sie auf Speichern, oder verwerfen Sie die Änderungen.


BRW-16576: Definierte Spalten-, Summen- und Kontrollwerte sind eventuell nicht aktuell. Erneut ausführen?

Ursache:	Während der Anzeige von Kontroll-, Summen- oder definierten Spalten wurden Werte geändert.

Maßnahme:	Führen Sie die Abfrage aus, um die Werte zu aktualisieren.


BRW-16623: Für diesen Vorgang stehen keine Daten zur Verfügung

Ursache:	Diese Warnmeldung wird ausgegeben, wenn die Anzahl von Zeilen oder Spalten für den Druckvorgang gleich null ist.

Maßnahme:	Der Benutzer muß die Abfrage erneut ausführen oder einige Spalten aufnehmen.


BRW-16624: Abfragedefinition hat sich geändert. Daten eventuell nicht aktuell. Fortfahren?

Ursache:	Das Abfragedokument wurde seit der letzten Ausführung geändert.

Maßnahme:	Entweder führen Sie die Abfrage erneut aus, fahren mit dem Exportierenvorgang fort oder brechen den Vorgang ab.


BRW-16625: Der Drucker unterstützt nicht alle erforderlichen Schriftarten. Schriften ersetzen?

Ursache:	Die Schriftart bzw. ein Stil oder eine Schriftbreite ist für den ausgewählten Drucker nicht vorhanden.

Maßnahme:	Sie können mit einer Ersatzschriftart fortfahren oder den Vorgang abbrechen.


BRW-16626: Nicht genügend Speicher für Seitenansicht

Ursache:	Das Bitmap für die Seitenansicht kann nicht erstellt werden.

Maßnahme:	Keine Maßnahme erforderlich.


BRW-16627: Für diesen Vorgang stehen keine Daten zur Verfügung. Abfrage ausführen?

Ursache:	Diese Warnmeldung wird angezeigt, wenn versucht wird, Daten mit einem leeren Arbeitsblatt zu exportieren.

Maßnahme:	Sie können die Abfrage ausführen oder den Vorgang abbrechen.


BRW-16628: Drucker reagiert nicht. Es kann nicht gedruckt werden. Fortfahren?

Ursache:	Fehler beim Erstellen der Druckeroberfläche des Toolkits mit uiprc().

Maßnahme:	Sie können fortfahren, ohne zu drucken, oder den Vorgang abbrechen.


BRW-16629: Wollen Sie den Container vor dem Beenden aktualisieren?

Ursache:	Mit dieser Meldung wird der Benutzer aufgefordert, Änderungen zu speichern, wenn das OLE-Dokument geschlossen/beendet wird.

Maßnahme:	Sie können die Änderungen speichern oder verwerfen bzw. den Vorgang abbrechen.


BRW-16650: Der Drucker unterstützt nicht alle erforderlichen Schriftarten. Schriften ersetzen?

Ursache:	Die Schriftart bzw. ein Stil oder eine Schriftbreite sind für den ausgewählten Drucker nicht verfügbar.

Maßnahme:	Sie können eine Ersatzschriftart verwenden oder den Vorgang abbrechen.


BRW-16651: Es wurde kein Drucker ausgewählt. Standarddrucker verwenden?

Ursache:	Der Benutzer hat nicht ausdrücklich einen Drucker benannt.

Maßnahme:	Der Benutzer kann mit dem Standarddrucker des Systems fortfahren oder den Vorgang abbrechen.


BRW-16652: Die Ränder dieses Dokuments sind zu breit. Sie müssen neu eingestellt werden

Ursache:	Der Benutzer hat die Ränder auf einen zu großen Wert eingestellt.

Maßnahme:	Die Ränder müssen neu eingestellt werden.


BRW-16653: Es wurde kein Drucker ausgewählt. Standarddrucker verwenden?

Ursache:	Der Benutzer hat nicht ausdrücklich einen zu verwendenden Drucker angegeben.

Maßnahme:	Der Benutzer kann mit dem Standarddrucker des Systems fortfahren oder den Vorgang abbrechen.


BRW-16654: Es wurden keine Seiten gedruckt

Ursache:	Der Benutzer hat die Anzahl von Kopien mit 0 angegeben oder hat eine Anfangs-/Endseite außerhalb des zulässigen Bereichs angegeben.

Maßnahme:	Setzen Sie den Seitenbereich zurück.


BRW-16660: Abfragedefinition hat sich geändert. Daten eventuell nicht aktuell. Neu ausführen?

Ursache:	Das Abfragedokument wurde seit der letzten DDE-Aktualisierung geändert.

Maßnahme:	Führen Sie die Abfrage vor dem DDE-Update erneut aus, oder aktualisieren Sie, ohne die Abfrage erneut auszuführen.


Dies sind die neuen Funktionen von R6.0, abgesehen von den Oracle8-Elementen (die in einem eigenen Ordner im allgemeinen Bereich erläutert werden).


Erweiterungen bei der PL/SQL-Bearbeitung

Die Programmblock- und Gespeicherter Programmblock-Editoren unterstützen jetzt eine Reihe von Bearbeitungsfunktionen in Microsoft Windows wie z.B.:

•	Automatische Einzüge - Während Sie Code in die Editoren eingeben, werden die Zeilen automatisch eingerückt.

•	Farbige Markierung der Syntax - Schlüsselwörter, Kommentare und Zeichenfolgen werden in verschiedenen Farben dargestellt.

•	Spalten- und Zeilenauswahl - Sie können sowohl Spalten mit Text als auch Zeilen mit Quellcode auswählen.

•	Textverarbeitung mit Drag-and-Drop - Markierter Text kann im Drag-and-Drop-Verfahren kopiert oder verschoben werden.

•	Mehrere geteilte Ansichten - Sie können bis zu vier separate Ansichten des aktuellen Programmblocks im Editor erstellen.

•	Drucken - Sie können den gesamten aktuellen Programmblock drucken.

•	Uneingeschränkte Rückgängig-/Wiederholen-Vorgänge - Sie können alle Bearbeitenvorgänge bis zum letzten Speichervorgang rückgängig machen bzw. wiederholen.


Wertelisten-Assistent

  Verwandte Themen

Mit dem Wertelisten-Assistenten können Sie eine Werteliste erstellen und ändern, ein Popup-Fenster mit einer Bildlaufleiste, das dem Benutzer eine ein- oder mehrspaltige Auswahlliste zur Verfügung stellt. Der Assistent führt Sie durch die einzelnen Schritte bei der Auswahl einer bestehenden Datensatzgruppe oder beim Erstellen einer neuen Abfrage-Datensatzgruppe, wobei Spalten aus der Datensatzgruppe zur Anzeige ausgewählt werden und die Werteliste formatiert wird. Sie können den Wertelisten-Assistenten auch im reentranten Modus benutzen, um bestehende Wertelisten zu ändern.


Kontrolle der hierarchischen Baumstruktur

  Verwandte Themen

In der hierarchischen Baumstruktur werden Daten in Form eines Standardnavigators angezeigt, entsprechend den Navigatoren in Forms Developer.

Sie können einen hierarchischen Baum mit Werten auffüllen, die in einer Datensatzgruppe oder Abfragetext enthalten sind. Zur Laufzeit können Sie Elemente in einem hierarchischen Baum programmgesteuert hinzufügen, entfernen, ändern oder auswerten.

Die gleichzeitig angezeigte Datenmenge hängt davon ab, ob die individuellen Datenknoten eingeblendet sind, sei es über vordefinierte Prozeduren oder einen Benutzer, der auf einen Knoten klickt. Die Datenmenge wird anfänglich in Form Builder angegeben und kann zur Laufzeit geändert oder vollständig ersetzt werden.


Forms Runtime Diagnostics

  Verwandte Themen

Forms Runtime Diagnostics (FRD) ist ein laufzeitereignis-basiertes Protokollierungssystem, das Ihnen beim Debuggen Ihrer Anwendung helfen soll.

Wenn eine Form ausgeführt wird, während FRD aktiviert ist, wird eine Kombination von externen Benutzeranwendungs-Interaktionen und internen Forms-Verarbeitungsereignissen in chronologischer Reihenfolge in ein Protokoll im Dateisystem geschrieben. Diese Ereignisse können dann auf Richtigkeit analysiert werden.


Anwendung mit Java-Plugin-Komponenten erweitern

  Verwandte Themen

Sie können die Funktionalität der von Ihnen entwickelten WebForms-Anwendungen erweitern und anpassen.

Hierfür können zwei Verfahren eingesetzt werden:

•	Hinzufügen von JavaBeans zu Ihrer Anwendung.

•	Ersetzen standardmäßiger Benutzeroberflächenkomponenten in der Form durch Ihre angepaßten Versionen oder Hinzufügen von selbstentwickelten speziellen Benutzeroberflächenkomponenten.

Die von WebForms unterstützten JavaBeans und angepaßten Komponenten werden als Java-Plugin-Komponenten bezeichnet.

Was sind JavaBeans?

JavaBeans sind in Java geschriebene Programmeinheiten. Sie sind portierbar, wiederverwendbar und plattformunabhängig. Ein JavaBean kann jede Funktionalität bieten, die in der Sprache Java implementierbar ist.

JavaBeans können einzeln oder zusammen mit anderen JavaBeans oder Nicht-Java-Programmen verwendet werden, um mit geringem Zeitaufwand leistungsfähige Großanwendungen zu entwickeln.

JavaBeans können mit Java-Applets verglichen werden. Ein wichtiger Unterschied besteht allerdings darin, daß alle JavaBeans der öffentlichen JavaBeans-Spezifikation entsprechen. Außerdem können sie aufgrund bestimmter Eigenschaften besonders gut als Anwendungskomponenten verwendet werden. Sie zeichnen sich durch Beständigkeit aus, gestatten Introspektion und verwenden Attribute, Ereignisse und Methoden für die Kommunikation mit anderen Komponenten einer Anwendung.

Weshalb sind JavaBeans nützlich?

Durch das Hinzufügen eines JavaBean zu Ihrer Form-Anwendung können Sie die Fähigkeiten der Anwendung einfach erweitern. Sie können JavaBeans selbst schreiben, die meisten Entwickler setzen allerdings bevorzugt fertige JavaBeans ein, um die Entwicklung zu beschleunigen. Diese fertigen JavaBeans können schnell in Ihre Anwendung integriert werden.

Fertige JavaBeans werden von immer mehr Softwareanbietern auf den Markt gebracht. Mit diesen JavaBeans können Sie die Funktionalität Ihrer Anwendung schnell erweitern.

Wie funktionieren Java-Plugin-Komponenten?

Das Produkt WebForms bietet Schnittstellenmechanismen zum einfachen Hinzufügen von JavaBeans und benutzerdefinierten Schnittstellenkomponenten zu Ihrer Anwendung.

Für Ihre JavaBeans und benutzerdefinierten Komponenten wird eine spezielle Forms-definierte Schnittstelle eingesetzt, die sogenannte IView-Schnittstelle.

Außerdem verwenden Ihre JavaBeans eine Forms-spezifische Java-Klasse, die sogenannte VBean-Klasse. Durch Integrieren Ihres JavaBean in einen Container, der diese Klasse erweitert, kann Ihr JavaBean problemlos zur Laufzeit mit Ihrer Form kommunizieren. Das JavaBean kann aus der Form gestartet werden, und Werte können in beide Richtungen übergeben werden.

Außer der IView-Schnittstelle und der VBean-Klasse bietet WebForms Ihnen auch bestimmte Formattribute, vordefinierte Prozeduren, Trigger und Systemvariablen für die Kommunikation mit Ihren Plugin-Komponenten.

Anzeige für den Benutzer

Das JavaBean wird für den Endbenutzer zur Laufzeit als Oberflächenelement auf dem Bildschirm angezeigt. Durch Klicken auf das Element wird die Ausführung des JavaBean initiiert. Sie haben die Möglichkeit, andere Steuerelemente und Datenelemente mit dem JavaBean zu verbinden, um Interaktion zur Laufzeit zu ermöglichen oder geänderte Werte oder Ergebnisse anzuzeigen.

Kommunikation zur Laufzeit

Während des Initiierungsvorgangs zu Beginn der Laufzeit richtet WebForms Mechanismen für die Kommunikation mit dem JavaBean ein. WebForms greift auf Ihre Containerklasse zu und instantiiert den Container und das dazugehörige JavaBean. Durch diesen Initiierungsvorgang wird eine Listener-Beziehung registriert, so daß Attribute gemeinsam genutzt werden können. Außerdem ermöglicht die Initiierung zur Laufzeit die Kommunikation über Ereignisse.

Betroffene Forms-Elemente

Folgende Elemente des Produkts WebForms sind von der neuen Funktionalität Java-Plugin-Komponenten betroffen:

•	Das Attribut Objekttyp. Diesem Attribut wurde der neue Objekttyp Bean-Bereich hinzugefügt.

•	Das neue Attribut Implementierungsklasse. Dieses Attribut verbindet das Element anhand seines vollständigen Klassennamens mit der Java-Komponente.

•	Neue vordefinierte Prozeduren mit der Bezeichnung Get_Custom_Property and Set_Custom_Property. Diese Prozeduren werden für die Kommunikation mit der Java-Komponente eingesetzt.

•	Der When-Custom-Item-Event-Trigger. Mit diesem Trigger werden Informationen über Ereignisse von der Java-Komponente empfangen. (Gilt nur für den Bean-Bereich.)

•	Die Speicherbereiche System.Custom_Item_Event und System.Custom_Item_Event_Parameters. Diese Speicherbereiche werden eingesetzt, um Ereignisbezeichner und Werte von der Java-Komponente einzusetzen.

Weitere Informationen über Java-Plugin-Komponenten erhalten Sie, wenn Sie oben auf die Schaltfläche Verwandte Themen klicken.


WebForms aus dem Designer starten

  Verwandte Themen

Jetzt können Sie Ihre Forms zur Ausführung aus dem Web einfacher anzeigen. Klicken Sie auf das Symbol für die Ausführung der Form aus dem Web [image] im Objektnavigator oder dem Layouteditor, um die Web-Vorschau zu starten, während Ihre Form lokal in einem Java-UI-Shell ausgeführt wird.


Java-UI-Shell

Im Rahmen der Network Computing-Initiative definiert Oracle eine neue Desktop-Umgebung für Java-Komponenten. Als erster Schritt in Richtung auf diese Desktop-Umgebung entwickelt Oracle ein schlankes Fenster- und Menüsystem, das Bestandteil der Desktop-Umgebung von Oracle sein wird. Dieses Java-UI-Shell unterstützt konfigurierbare intuitive Java-UI-Komponenten.

Weitere Informationen über den Client-UI-Shell finden Sie unter Forms Developer konfigurieren.


Erweiterung des Attributs Defer Required-Durchsetzung

Dem Attribut Defer Required Enforcement wurde eine dritte Option hinzugefügt. Mit dieser neuen Option werden im Release-5.0-Kompatibilitätsmodus bestimmte Verhaltensmerkmale von Release 4.5 beibehalten.

Wenn Sie diese Option wählen, wird während der Validierung auf Objektebene in einem Objekt mit dem Attribut Obligatorisch ein Null-Wert akzeptiert (obwohl die Objektinstanz nicht als gültig markiert ist), und der When-Validate-Trigger wird ausgelöst.

Weitere Informationen finden Sie unter Attribut Defer Required-Durchsetzung.


Neues Attribut zum Steuern des Abschneidens und der Validierung

Sie können das neue Anwendungsattribut Flag Benutzerwert zu lang einsetzen.

Mit diesem Attribut können Sie festlegen, wie Form Builder reagiert, wenn der Endbenutzer einen Wert eingegeben hat, der länger ist, als das Attribut Maximale Länge des Objekts zuläßt.

Dieses Attribut gilt nur in einer dreischichtigen Umgebung, in der die mittlere Schicht (der Forms-Server) einen anderen Mehr-Byte-Zeichensatz als UTF8 festlegt.

Weitere Informationen finden Sie unter Attribut Flag Benutzerwert zu lang.


Neue Möglichkeit, alle Registerseiten aufzulisten

Eine neue Taste mit der Bezeichnung Registerseiten auflisten (entspricht der Taste F2) wurde zu der Funktionalität der Registerleinwand hinzugefügt.

Wenn Endbenutzer dieser Taste drücken, wird eine Popup-Liste mit allen Registerseitennamen für diese Leinwand angezeigt. Aus dieser Liste kann dann die zu aktivierende Registerseite ausgewählt werden.

Diese Funktion eignet sich besonders in den Fällen, in denen so viele Register für die Leinwand vorhanden sind, daß diese nicht gleichzeitig angezeigt werden können.


Über Fehlermeldungen

Für jede Komponente gibt es ein eindeutiges Fehlermeldungs-Präfix.

Präfix	Komponente
FRM	Form Builder
OG	Graphics Builder
PDE	Procedure Builder
REP	Report Builder
BRW	Query Builder
BRS	Schema Builder
NX, XBD	Translation Builder
Hinweis: Bei UNIX setzt Report Builder den Wert der Variablen $status, der in einigen Meldungen angezeigt wird, auf  0 (erfolgreicher Abschluß) oder 1 (nicht erfolgreicher Abschluß).

Neben den Fehlermeldungen von Forms Developer oder Reports Developer können möglicherweise auch Fehlermeldungen von anderen Quellen angezeigt werden.

Präfix	Quelle	Hilfe
ORA	Oracle Server	Oracle8 Error Messages-Handbuch
PLS	PL/SQL	Oracle8 Error Messages-Handbuch
NET	SQL*Net	Oracle Network Products Messages-Handbuch
Das Handbuch Oracle8 Error Messages  enthält Fehlermeldungscodes und Beschreibungen für alle Datenbank-Dienstprogramme, wie z.B. SQL*DBA, SQL*Loader,SQL*Module, Export, Import und die Oracle Precompiler.

Systemspezifische Fehlermeldungen werden in der Betriebssystemdokumentation erläutert.


Verbindung mit Oracle Support aufnehmen

Bei einigen Fehlern (d.h. internen Fehlern) müssen Sie Oracle Support anrufen, um den Fehler zu melden. Wenn Sie Verbindung mit Oracle Support aufnehmen, sollten Sie folgende Informationen bereithalten:

1	Ihren Namen, Firmennamen und die ID-Nummer für die Zentrale Kundenunterstützung von Oracle.

2	Hardware, Betriebssystem und Versionsnummer des Betriebssystems, auf dem Oracle Developer läuft.

3	Die vollständige Versionsnummer der Komponenten, die Sie beim Auftreten des Fehlers benutzt haben, einschließlich Revisionsnummer und gegebenenfalls Port-Release-Nummer. (Wenn Sie die Versionsnummer einer Komponenten nicht genau kennen, wählen Sie Hilfe [image] Info.)

4	Alle anderen Produkte (und Versionsnummern), die benutzt wurden, als der Fehler auftrat (z.B. Oracle 8.0.4).

5	Wenn mehrere Fehler oder Meldungen ausgegeben wurden, die genauen Meldungsnummern und die Beschreibung in der Reihenfolge, in der diese angezeigt wurden.

6	Eine Beschreibung des Problems einschließlich ungewöhnlicher Bedingungen.

7	Den Schweregrad des Fehlers entsprechend den folgenden Codes:

•	1:	 Programm kann nicht benutzt werden, kritische Auswirkung auf Vorgänge.

•	2:	 Programm kann benutzt werden, Vorgänge sind ernsthaft eingeschränkt.

•	3:	 Programm kann mit begrenzten Funktionen benutzt werden. Nicht kritisch für den Gesamtbetrieb.

•	4:	 Problem wurde vom Kunden umgangen. Minimale Auswirkung, wenn überhaupt, auf Vorgänge.


Anormale Bedingungen

Gelegentlich werden Sie auf einen Fehler stoßen, der als anormale Bedingung bezeichnet wird. Anormale Bedingungen können folgende Ursachen haben:

•	Ein anderer Benutzer hat eine Funktion ausgeführt, aufgrund derer Ihre Anwendung die angeforderte Task nicht ausführen konnte. Wenn z.B. ein Benutzer die Benutzeroberfläche umgangen und Daten in einer Datenbanktabelle geändert hat, wurde möglicherweise ein ungültiger Wert eingegeben.

•	Die Aufgabe konnte wegen eines Bugs in Oracle Developer nicht erfolgreich ausgeführt werden.

 Maßnahme   Als erstes sollten Sie Verbindung mit dem Systemadministrator aufnehmen, um festzustellen, ob die Meldung von einem anderen Programm als Forms Developer oder Reports Developer verursacht wurde. Wenn Sie feststellen, daß die Meldung nicht auf einen Benutzerfehler oder ein Systemproblem zurückzuführen ist, sollten Sie Verbindung mit Oracle Support aufnehmen aufnehmen.


Dialogfeld PL/SQL V1-Konvertierungsoptionen

Mit dem Dialogfeld PL/SQL V1-Konvertierungsoptionen können Sie festlegen, wie das Dienstprogramm fortfahren soll, wenn es den jeweiligen Typ der unterstützten PL/SQL V1- oder V2-Syntax antrifft: Ihre Voreinstellungen werden über mehrere Aufrufe des Konvertierungsdienstprogramms hinweg gespeichert: entweder in der Registrierung für Microsoft Windows oder in einem UNIX-Profil.

Problemtyp	Liste der V1 oder V2 PL/SQL-Situationen, die von dem Konvertierungsdienstprogramm unterstützt werden:  CHAR ersetzt durch VARCHAR2  Zeichenfolgenlänge für VARCHAR2 erforderlich  Standardausdrücke für OUT und IN OUT nicht zulässig  RETURN erfordert einen Ausdruck  Veraltete vordefinierte Prozeduren ersetzt  Funktion LENGTH gibt NULL für Zeichenfolgen mit der Länge null zurück  Übergabe von NULL an überladenes Unterprogramm wird nicht richtig aufgelöst  Fehlende RETURN-Anweisung in Funktion
Konvertieren	Alle Instanzen des ausgewählten Problemtyps werden automatisch ohne Bestätigung konvertiert.
Alle konvertieren	Mit dieser Option können alle Problemtypen schnell auf Konvertieren eingestellt werden. Das Dienstprogramm konvertiert automatisch den gesamten PL/SQL V1-oder V2-Code ohne Bestätigung.
Ignorieren	Alle Instanzen des ausgewählten Problemtyps werden ignoriert. Um Compiler-Fehler zu vermeiden, müssen Sie den V1-oder V2-Code manuell ändern.
Alle ignorieren	Mit dieser Option werden alle Problemtypen schnell auf Ignorieren eingestellt. Das Dienstprogramm ignoriert alle Problemtypen und führt keine Konvertierung durch. Um Compiler-Fehler zu vermeiden, müssen Sie den V1- oder V2-Code manuell ändern.
Bitte fragen	Wenn diese Option für einen Problemtyp ausgewählt wird, wird jede Instanz dieses Problems individuell im Dialogfeld Konvertierung angezeigt. Aus dem Dialogfeld können Sie dann Konvertieren oder Ignorieren wählen.
Alle fragen	Mit dieser Option werden alle Problemtypen schnell auf Bitte fragen eingestellt. Das Dienstprogramm fordert Sie zur Bestätigung (im Dialogfeld Konvertierung) auf, bevor eine V1 oder V2 PL/SQL-Folge konvertiert wird.
OK	Bestätigt Ihre Auswahlen und schließt das Dialogfeld.
Abbrechen	Bricht Änderungen an dem Modul ab und schließt das Dialogfeld.


Dialogfeld Konvertierung

Mit dem Dialogfeld Konvertierung können Sie den Konvertierungsvorgang von PL/SQL V1 zu V2 interaktiv steuern. Um Optionen für spätere Konvertierungsvorgänge festzulegen, klicken Sie auf Optionen.

Quellbereich	Zeigt die Programmblockquelle an, bei der die Konvertierungsbedingung erkannt wird. Die zu konvertierende Syntax wird hervorgehoben. Sie können innerhalb dieses Bereichs einen Bildlauf nach oben oder unten vornehmen, um die bislang durchgeführte Konvertierung zu überprüfen.
Bedingung:	Die PL/SQL V1- oder V2-Anweisung, die konvertiert werden muß.
Aktion:	Gibt an, was das Konvertierungsdienstprogramm tut, wenn Sie auf Konvertieren klicken.
Erläutern. . .	Zeigt weitere Details über das Problem an und gibt an, was geschieht, wenn Sie die Konvertierung ignorieren.
Konvertieren	Akzeptiert die empfohlene Standardaktion und geht zur nächsten Anweisung.
Alle konvertieren	Konvertiert alle PL/SQL V1-oder V2-Syntaxprobleme im gesamten Modul, wobei dies mehrere Programmblöcke umfassen kann. Alle Standardaktionen werden akzeptiert.
Ignorieren	Konvertiert die PL/SQL V1- oder V2-Anweisung nicht, die im Feld Problem beschrieben wird; geht zur nächsten Anweisung.
Alle ignorieren	Umgeht den Konvertierungsvorgang für das ganze Modul, in dem mehrere Programmblöcke enthalten sein können.
Optionen. . .	Zeigt das Dialogfeld PL/SQL V1-Konvertierungsoptionen an, in dem Sie Optionen zur Steuerung des Konvertierungsprozesses angeben können.


Dialogfeld Zusammenfassung Konvertierung PL/SQL V1

Das Dialogfeld Zusammenfassung Konvertierung PL/SQL V1 enthält Informationen wie:

•	Quellzeilen, die erfolgreich konvertiert wurden

•	Quellzeilen, die ignoriert wurden

• Quellzeilen, die PL/SQL-Compiler-Fehler generiert haben.

Schaltflächen in der Symbolleiste:

Symbol X	Schließt das Dialogfeld.
Symbol ?	Zeigt den Hilfetext zu dem Dialogfeld an.
Bereich Zusammenfassung:

Suchen	Bietet Standardsuchfunktionen für eingeblendete und ausgeblendete Knoten.
Knoten	Ein Knoten für jeden Programmblock in dem Modul. Wenn der Knoten ein Pluszeichen enthält, klicken Sie auf den Knoten, um eine Zusammenfassung dessen zu erhalten, was konvertiert wurde (und wie es konvertiert wurde) und was ignoriert wurde. Wenn ein Knoten leer ist (kein Plus- oder Minuszeichen), war keine Konvertierung für den Programmblock erforderlich. Um Compiler-Fehler zu beheben - oder um die konvertierte Quelle bzw. die ignorierten Elemente zu überprüfen - doppelklicken Sie auf eine Zeile in einem eingeblendeten Knoten. (Sie können auch die Zeile auswählen und Programm [image] Programmblock-Editor auswählen.) Der Editor wird geöffnet, wobei der Cursor bei der ausgewählten Zeile steht. Hinweis:  Nachdem Sie die Quelle mit dem Programmblock-Editor geändert haben, wird der Cursor möglicherweise nicht richtig positioniert, wenn Sie das nächste Mal auf eine Zeile doppelklicken oder die Schaltfläche Bearbeiten verwenden.
Menüpunkte:

Das Menü Programm enthält zwei Optionen:

Programm-block-Editor	Öffnet die Quelle im Programmblock-Editor. Der Cursor steht in der ausgewählten Zeile.
Konvertie-rungs-optionen	Zeigt das Dialogfeld Konvertierungsoptionen an, damit Sie die angegebenen Optionen anzeigen oder ändern können.
Popup-Menü:

Klicken Sie mit der rechten Maustaste, um ein Popup-Menü anzuzeigen.

Bearbeiten	Öffnet die Quelle im Programmblock-Editor. Der Cursor steht in der ausgewählten Zeile.
Erläutern	Zeigt die Online-Hilfe über die Art der Konvertierung an, die für die ausgewählte Zeile erforderlich ist.


Beispiele für die PL/SQL V1-Konvertierung

  Verwandte Themen 	   Alle Beispiele

Standardausdrücke entfernen

NULL zu RETURN hinzufügen

Veraltete vordefinierte Prozeduren ersetzen

Length-Funktion

NULL an überladenes Unterprogramm übergeben

Fehlende RETURN-Anweisung

Prozedurnamen eindeutig in einem Paket umbenennen

Paket-Präfix entfernenx

Reservierte Wörter

Längen-Integritätsregeln entfernt

Variablen-Deklarationen


Der Objektnavigator

Objekte im Objektnavigator anzeigen

Über den Objektnavigator

Objektnavigator-Ansichten ändern

Im Objektnavigator navigieren und Objekte auswählen

Objekte im Objektnavigator ein- und ausblenden

Einträge im Objektnavigator mit der Schnellsuche suchen

Lesezeichen im Objektnavigator setzen

Mit mehreren Ausschnitten arbeiten

Objekte im Objektnavigator erstellen und verschieben

Objekte im Objektnavigator erstellen und löschen

Namen von Objekten im Objektnavigator ändern

Objekte im Objektnavigator verschieben und kopieren

Objekte zwischen Modulen kopieren


Der Layouteditor

Allgemeine Informationen

Über den Layouteditor

Werkzeugpalette des Layouteditors

Zu einer anderen Leinwand im Layouteditor wechseln

Objekte im Layouteditor auswählen

Objekte im Layouteditor verschieben

Größe von Objekten im Layouteditor ändern

Objekte im Layouteditor ausrichten

Objekte im Layouteditor gruppieren

Objekte im Layouteditor anordnen

Blöcke und Objekte

Objekte erstellen

Blockkontext des Layouteditors einstellen

Blöcke mit mehreren Datensätzen

Objekte formatieren

Farb- und Musterattribute im Layouteditor festlegen

Objekte im Layouteditor formatieren


Der PL/SQL-Editor

Code im PL/SQL-Editor schreiben

Trigger erstellen

Triggercode schreiben

Vordefinierte Prozedur aufrufen

Über den PL/SQL-Editor

Kontext von PL/SQL-Editor

Befehle des PL/SQL-Editors

PL/SQL in Forms Builder verwenden


Der Menüeditor

Schritte zum Erstellen eines benutzerdefinierten Menüs

Menümodule erstellen

Menüs und Menüpunkte erstellen

Menüpunkten Befehle zuweisen

Formen Menümodule zuordnen

Menüeditor verwenden

Menüs im Menüeditor anzeigen

Über Menü-Objektnamen und Beschriftungen

Menü-Objektnamen und Beschriftungen ändern

Besondere Menüpunkte hinzufügen

Über besondere Menüpunkte

Besondere Menüpunkte erstellen

Befehle für Kontroll- und Option-Menüpunkte

Status von Kontroll- und Option-Menüpunkten festlegen

Standardfunktionalität von magischen Menüpunkten


Oberflächenobjekte definieren
Oberfächenobjekte definieren

  Nächster Schritt

Definition des Verhaltens folgender Elemente:

•	ActiveX-Steuerelemente

•	Schaltflächen

•	Diagrammobjekte

•	Kontrollkästchen

•	Bildobjekte

•	Listenobjekte

•	OLE-Containerobjekte

•	Optionsgruppen

•	Klangobjekte

•	Textobjekte


ActiveX-Steuerelemente definieren

  Verwandte Themen

Aufgaben

ActiveX-Steuerelemente in eine Form einfügen

Attribute von ActiveX-Steuerelementen einstellen und einlesen

Methoden für ActiveX-Steuerelemente aufrufen

Auf Ereignisse von ActiveX-Steuerelementen reagieren

Active X-Steuerelemente registrieren

AcitveX-Steuerelemente mit Ihrer Anwendung einsetzen


Schaltflächen definieren

  Verwandte Themen

Aufgaben

Schaltflächenbeschriftung hinzufügen

Schaltflächen in Symbolform erstellen

Standardschaltflächen erstellen

Schaltflächen zur Laufzeit bearbeiten


Diagrammobjekte definieren

Aufgaben

 Diagrammobjekte erstellen


Kontrollkästchen definieren

  Verwandte Themen

Aufgaben

Standardwert für Kontrollkästchen angeben

Kontrollkästchen zur Laufzeit bearbeiten


Bildobjekte definieren

  Verwandte Themen

Aufgaben

Bildobjekte mit Werten auffüllen

Bilder zur Laufzeit bearbeiten


Listenobjekte definieren

  Verwandte Themen

Aufgaben

Standardwert für Listenobjekt angeben

Listenobjekte zur Laufzeit bearbeiten

Listenobjekte hinzufügen

Listenobjekte in einer Datensatzgruppe abrufen und speichern

Listenobjekte löschen


OLE-Containerobjekte definieren

  Verwandte Themen

Aufgaben

OLE-Objekte einbetten

OLE-Objekte verknüpfen

OLE-Objekte anzeigen

OLE-Objekte bearbeiten

OLE-Objekte konvertieren


Optionsgruppe definieren

  Verwandte Themen

Aufgaben

Standardwert für Optionsgruppe angeben

Optionsgruppen zur Laufzeit bearbeiten


Klangobjekte definieren

  Verwandte Themen

Aufgaben

Attribute für das Steuerelement für Klangobjekte einstellen

Klangobjekte programmgesteuert bearbeiten


Textobjekte definieren

  Verwandte Themen

Aufgaben

Einzeilige und mehrzeilige Textobjekte erstellen

Werte eines Textobjekts zu obligatorischen Werten machen

Maximale Länge für ein Textobjekt angeben

Obligatorischen Wert für Textobjekt eingeben

Werte mit fester Länge für ein Textobjekt angeben

Gültige Wertebereiche angeben

Textobjektwerte verbergen

Werte mit Formatmasken formatieren

Textobjekten eine Werteliste zuweisen

Textobjekte zur Laufzeit bearbeiten


Vordefinierte Pakete

 Alphabetische Liste	  Verwandte Themen

ActiveX-(OCX-)Prozeduren

Warnungs-Prozeduren

Anwendungs-Prozeduren

Block-Prozeduren

Leinwand-Prozeduren

Diagramm-Prozeduren

Form-Prozeduren

Objekt-Prozeduren

Menü-Prozeduren

Meldungs-Prozeduren

Prozeduren für mehrere Forms

OLE-Prozeduren

Parameterlisten-Prozeduren

PECS-Prozeduren

Abfrage-Prozeduren

Datensatz-Prozeduren

Beziehungs-Prozeduren

Berichts-Prozeduren

Registerseiten-Prozeduren

Transaktions-Prozeduren

Web-Prozeduren

Fenster-Prozeduren


Form Builder-Prozeduren

 Alle vordefinierten Prozeduren

A

ABORT_QUERY

ADD_GROUP_COLUMN

ADD_GROUP_ROW

ADD_LIST_ELEMENT

ADD_OLEARGS

ADD_PARAMETER

APPLICATION_PARAMETER

B

BELL

BLOCK_MENU

BREAK

C

CALL_FORM

CALL_INPUT

CALL_OLE

CALL_OLE_<Rückgabetyp>

CANCEL_REPORT_OBJECT

CHECK_RECORD_UNIQUENESS

CHECKBOX_CHECKED

CHECKED

CLEAR_BLOCK

CLEAR_EOL

CLEAR_FORM

CLEAR_ITEM

CLEAR_LIST

CLEAR_MESSAGE

CLEAR_RECORD

CLOSE_FORM

COMMIT_FORM

CONVERT_OTHER_VALUE

COPY

COPY_REGION

COPY_REPORT_OUTPUT

COUNT_QUERY

CREATE_GROUP

CREATE_GROUP_FROM_QUERY

CREATE_OLEOBJ

CREATE_PARAMETER_LIST

CREATE_QUERIED_RECORD

CREATE_RECORD

CREATE_TIMER

CREATE_VAR

CUT_REGION

D

DBMS_ERROR_CODE

DBMS_ERROR_TEXT

DEBUG_MODE

DEFAULT_VALUE

DELETE_GROUP

DELETE_GROUP_ROW

DELETE_LIST_ELEMENT

DELETE_PARAMETER

DELETE_RECORD

DELETE_TIMER

DESTROY_PARAMETER_LIST

DESTROY_VARIANT

DISPATCH_EVENT

DISPLAY_ERROR

DISPLAY_ITEM

DOWN

DO_KEY

DUMMY_REFERENCE

DUPLICATE_ITEM

DUPLICATE_RECORD

E

EDIT_TEXTITEM

ENFORCE_COLUMN_SECURITY

ENTER

ENTER_QUERY

ERASE

ERROR_CODE

ERROR_TEXT

ERROR_TYPE

EXECUTE_QUERY

EXECUTE_TRIGGER

EXIT_FORM

F

FETCH_RECORDS

FIND_ALERT

FIND_BLOCK

FIND_CANVAS

FIND_COLUMN

FIND_EDITOR

FIND_FORM

FIND_GROUP

FIND_ITEM

FIND_LOV

FIND_MENU_ITEM

FIND_RELATION

FIND_REPORT_OBJECT

FIND_TAB_PAGE

FIND_TIMER

FIND_VIEW

FIND_WINDOW

FIRST_RECORD

FORM_FAILURE

FORM_FATAL

FORM_SUCCESS

FORMS_DDL

FORMS_OLE.ACTIVATE_SERVER

FORMS_OLE.CLOSE_SERVER

FORMS_OLE.EXEC_VERB

FORMS_OLE.FIND_OLE_VERB

FORMS_OLE.GET_INTERFACE_POINTER

FORMS_OLE.GET_VERB_COUNT

FORMS_OLE.GET_VERB_NAME

FORMS_OLE.INITIALIZE_CONTAINER

FORMS_OLE.SERVER_ACTIVE

G

GENERATE_SEQUENCE_NUMBER

GET_APPLICATION_PROPERTY

GET_BLOCK_PROPERTY

GET_CANVAS_PROPERTY

GET_FILE_NAME

GET_FORM_PROPERTY

GET_GROUP_CHAR_CELL

GET_GROUP_DATE_CELL

GET_GROUP_NUMBER_CELL

GET_GROUP_RECORD_NUMBER

GET_GROUP_ROW_COUNT

GET_GROUP_SELECTION

GET_GROUP_SELECTION_COUNT

GET_INTERFACE_POINTER

GET_ITEM_INSTANCE_PROPERTY

GET_ITEM_PROPERTY

GET_LIST_ELEMENT_COUNT

GET_LIST_ELEMENT_LABEL

GET_LIST_ELEMENT_VALUE

GET_LOV_PROPERTY

GET_MENU_ITEM_PROPERTY

GET_MESSAGE

GET_OLEARG_<Typ>

GET_OLE_MEMBERID

GET_OLE_<proptype>

GET_PARAMETER_ATTR

GET_PARAMETER_LIST

GET_RADIO_BUTTON_PROPERTY

GET_RECORD_PROPERTY

GET_RELATION_PROPERTY

GET_REPORT_OBJECT_PROPERTY

GET_TAB_PAGE_PROPERTY

GET_VAR_BOUNDS

GET_VAR_DIMS

GET_VAR_TYPE

GET_VIEW_PROPERTY

GET_WINDOW_PROPERTY

GO_BLOCK

GO_FORM

GO_ITEM

GO_RECORD

H

HELP

HIDE_MENU

HIDE_VIEW

HIDE_WINDOW

HOST

I

ID_NULL

IMAGE_SCROLL

IMAGE_ZOOM

INIT_OLEARGS

INITIALIZE_CONTAINER

INSERT_RECORD

ISSUE_ROLLBACK

ISSUE_SAVEPOINT

ITEM_ENABLED

J

K

L

LAST_OLE_ERROR

LAST_OLE_EXCEPTION

LAST_RECORD

LIST_VALUES

LOCK_RECORD

LOGON

LOGON_SCREEN

LOGOUT

M

MENU_CLEAR_FIELD

MENU_NEXT_FIELD

MENU_PARAMETER

MENU_PREVIOUS_FIELD

MENU_REDISPLAY

MENU_SHOW_KEYS

MESSAGE

MESSAGE_CODE

MESSAGE_TEXT

MESSAGE_TYPE

MOVE_WINDOW

N

NAME_IN

NEW_FORM

NEXT_BLOCK

NEXT_ITEM

NEXT_FORM

NEXT_KEY

NEXT_MENU_ITEM

NEXT_RECORD

NEXT_SET

O

OLEVAR_EMPTY

OPEN_FORM

P

PASTE_REGION

PAUSE

PECS.ADD_CLASS

PECS.ADD_EVENT

PECS.COLLECTOR

PECS.DISABLE_CLASS

PECS.ENABLE_CLASS

PECS.END_EVENT

PECS.POINT_EVENT

PECS.START_EVENT

PLAY_SOUND

POPULATE_GROUP

POPULATE_GROUP_WITH_QUERY

POPULATE_LIST

POST

PREVIOUS_BLOCK

PREVIOUS_FORM

PREVIOUS_ITEM

PREVIOUS_MENU

PREVIOUS_MENU_ITEM

PREVIOUS_RECORD

PRINT

PTR_TO_VAR

Q

QUERY_PARAMETER

R

READ_IMAGE_FILE

READ_SOUND_FILE

RECALCULATE

REDISPLAY

RELEASE_OBJ

REPLACE_CONTENT_VIEW

REPLACE_MENU

REPORT_OBJECT_STATUS

RESET_GROUP_SELECTION

RESIZE_WINDOW

RETRIEVE_LIST

RUN_PRODUCT

RUN_REPORT_OBJECT

S

SCROLL_DOWN

SCROLL_UP

SCROLL_VIEW

SELECT_ALL

SELECT_RECORDS

SET_ALERT_BUTTON_PROPERTY

SET_ALERT_PROPERTY

SET_APPLICATION_PROPERTY

SET_BLOCK_PROPERTY

SET_CANVAS_PROPERTY

SET_FORM_PROPERTY

SET_GROUP_CHAR_CELL

SET_GROUP_DATE_CELL

SET_GROUP_NUMBER_CELL

SET_GROUP_SELECTION

SET_INPUT_FOCUS

SET_ITEM_INSTANCE_PROPERTY

SET_ITEM_PROPERTY

SET_LOV_COLUMN_PROPERTY

SET_LOV_PROPERTY

SET_MENU_ITEM_PROPERTY

SET_OLE

SET_PARAMETER_ATTR

SET_RADIO_BUTTON_PROPERTY

SET_RECORD_PROPERTY

SET_RELATION_PROPERTY

SET_REPORT_OBJECT_PROPERTY

SET_TAB_PAGE_PROPERTY

SET_TIMER

SET_VAR

SET_VIEW_PROPERTY

SET_WINDOW_PROPERTY

SHOW_ALERT

SHOW_EDITOR

SHOW_KEYS

SHOW_LOV

SHOW_MENU

SHOW_VIEW

SHOW_WINDOW

SYNCHRONIZE

T

TERMINATE

TO_VARIANT

U

UNSET_GROUP_SELECTION

UP

UPDATE_CHART

UPDATE_RECORD

USER_EXIT

V

VALIDATE

VARPTR_TO_VAR

VAR_TO_TABLE

VAR_TO_<Typ>

PTR_TO_VAR

VBX.FIRE_EVENT

VBX.GET_PROPERTY

VBX.GET_VALUE_PROPERTY

VBX.INVOKE_METHOD

VBX.SET_PROPERTY

VBX.SET_VALUE_PROPERTY

W

WEB.SHOW_DOCUMENT

WHERE_DISPLAY

WRITE_IMAGE_FILE

WRITE_SOUND_FILE

X

Y

Z


Vordefinierte ActiveX-Prozeduren

 Alle vordefinierten Prozeduren

ADD_OLEARGS

CALL_OLE

CALL_OLE_<Rückgabetyp>

CREATE_OLEOBJ

CREATE_VAR

DESTROY_VARIANT

DISPATCH_EVENT

GET_OLEARG_<Typ>

GET_OLE_MEMBERID

GET_OLE_<proptype>

GET_VAR_BOUNDS

GET_VAR_DIMS

GET_VAR_TYPE

INIT_OLEARGS

LAST_OLE_ERROR

LAST_OLE_EXCEPTION

OLEVAR_EMPTY

PTR_TO_VAR

RELEASE_OBJ

SET_OLE

SET_VAR

TO_VARIANT

VARPTR_TO_VAR

VAR_TO_TABLE

VAR_TO_<Typ>

PTR_TO_VAR


Vordefinierte Warnungs-Prozeduren

 Alle vordefinierten Prozeduren

FIND_ALERT

ID_NULL

SET_ALERT_BUTTON_PROPERTY

SET_ALERT_PROPERTY

SHOW_ALERT


Vordefinierte Anwendungs-Prozeduren

 Alle vordefinierten Prozeduren

DO_KEY

GET_APPLICATION_PROPERTY

HOST

PAUSE

SET_APPLICATION_PROPERTY

USER_EXIT


Vordefinierte Block-Prozeduren

 Alle vordefinierten Prozeduren

BLOCK_MENU

CLEAR_BLOCK

FIND_BLOCK

GET_BLOCK_PROPERTY

GO_BLOCK

ID_NULL

NEXT_BLOCK

PREVIOUS_BLOCK

SET_BLOCK_PROPERTY


Vordefinierte Leinwand-Prozeduren

 Alle vordefinierten Prozeduren

FIND_CANVAS

FIND_VIEW

GET_CANVAS_PROPERTY

GET_VIEW_PROPERTY

HIDE_VIEW

ID_NULL

PRINT

SCROLL_VIEW

SET_CANVAS_PROPERTY

SET_VIEW_PROPERTY

SHOW_VIEW


Vordefinierte Diagramm-Prozeduren

 Alle vordefinierten Prozeduren

UPDATE_CHART


Vordefinierte Form-Prozeduren

 Alle vordefinierten Prozeduren

BELL

BREAK

CALL_FORM

CALL_INPUT

CLEAR_FORM

COMMIT_FORM

DEBUG_MODE

ENTER

ERASE

EXECUTE_TRIGGER

EXIT_FORM

FIND_FORM

FORM_FAILURE

FORM_FATAL

FORM_SUCCESS

GET_FORM_PROPERTY

HELP

ID_NULL

NEW_FORM

OPEN_FORM

POST

REDISPLAY

REPLACE_MENU

SET_FORM_PROPERTY

SHOW_KEYS

SHOW_MENU

SYNCHRONIZE


Vordefinierte Objekt-Prozeduren

 Alle vordefinierten Prozeduren

CHECKBOX_CHECKED

CLEAR_EOL

CLEAR_ITEM

CONVERT_OTHER_VALUE

COPY

COPY_REGION

CUT_REGION

DEFAULT_VALUE

DISPLAY_ITEM

DUMMY_REFERENCE

DUPLICATE_ITEM

EDIT_TEXTITEM

FIND_ITEM

GET_FILE_NAME

GET_ITEM_INSTANCE_PROPERTY

GET_ITEM_PROPERTY

GET_RADIO_BUTTON_PROPERTY

GO_ITEM

ID_NULL

IMAGE_SCROLL

IMAGE_ZOOM

NAME_IN

NEXT_ITEM

NEXT_KEY

PASTE_REGION

PLAY_SOUND

PREVIOUS_ITEM

READ_IMAGE_FILE

READ_SOUND_FILE

RECALCULATE

SELECT_ALL

SET_ITEM_INSTANCE_PROPERTY

SET_ITEM_PROPERTY

SET_RADIO_BUTTON_PROPERTY

WRITE_IMAGE_FILE

WRITE_SOUND_FILE


Vordefinierte Menü-Prozeduren

 Alle vordefinierten Prozeduren

APPLICATION_PARAMETER

FIND_MENU_ITEM

GET_MENU_ITEM_PROPERTY

HIDE_MENU

ITEM_ENABLED

MENU_CLEAR_FIELD

MENU_PARAMETER

MENU_PREVIOUS_FIELD

MENU_REDISPLAY

MENU_SHOW_KEYS

NEXT_MENU_ITEM

PREVIOUS_MENU

PREVIOUS_MENU_ITEM

QUERY_PARAMETER

REPLACE_MENU

SET_INPUT_FOCUS

SET_MENU_ITEM_PROPERTY

SHOW_MENU

TERMINATE

WHERE_DISPLAY


Vordefinierte Meldungs-Prozeduren

 Alle vordefinierten Prozeduren

CLEAR_MESSAGE

DBMS_ERROR_CODE

DBMS_ERROR_TEXT

DISPLAY_ERROR

ERROR_CODE

ERROR_TEXT

ERROR_TYPE

GET_MESSAGE

MESSAGE

MESSAGE_CODE

MESSAGE_TEXT

MESSAGE_TYPE


Vordefinierte Prozeduren für mehrere Forms

 Alle vordefinierten Prozeduren

CLOSE_FORM

GO_FORM

NEW_FORM

NEXT_FORM

OPEN_FORM

PREVIOUS_FORM


Vordefinierte OLE-Prozeduren

 Alle vordefinierten Prozeduren

FORMS_OLE.ACTIVATE_SERVER

FORMS_OLE.CLOSE_SERVER

FORMS_OLE.EXEC_VERB

FORMS_OLE.FIND_OLE_VERB

FORMS_OLE.GET_INTERFACE_POINTER

FORMS_OLE.GET_VERB_COUNT

FORMS_OLE.GET_VERB_NAME

FORMS_OLE.INITIALIZE_CONTAINER

FORMS_OLE.SERVER_ACTIVE


Vordefinierte Parameterlisten-Prozeduren

 Alle vordefinierten Prozeduren

ADD_PARAMETER

CREATE_PARAMETER_LIST

DELETE_PARAMETER

DESTROY_PARAMETER_LIST

GET_PARAMETER_ATTR

ID_NULL

RUN_PRODUCT

SET_PARAMETER_ATTR


Vordefinierte PECS-Prozeduren

 Alle vordefinierten Prozeduren

PECS.ADD_CLASS

PECS.ADD_EVENT

PECS.COLLECTOR

PECS.DISABLE_CLASS

PECS.ENABLE_CLASS

PECS.END_EVENT

PECS.POINT_EVENT

PECS.START_EVENT


Vordefinierte Abfrage-Prozeduren

 Alle vordefinierten Prozeduren

ABORT_QUERY

COUNT_QUERY

ENTER_QUERY

EXECUTE_QUERY


Vordefinierte Datensatz-Prozeduren

 Alle vordefinierten Prozeduren

CHECK_RECORD_UNIQUENESS

CLEAR_RECORD

CREATE_QUERIED_RECORD

CREATE_RECORD

DELETE_RECORD

DOWN

DUPLICATE_RECORD

FIRST_RECORD

GENERATE_SEQUENCE_NUMBER

GET_RECORD_PROPERTY

GO_RECORD

INSERT_RECORD

LAST_RECORD

LOCK_RECORD

NEXT_RECORD

NEXT_SET

PREVIOUS_RECORD

SCROLL_DOWN

SCROLL_UP

SELECT_RECORDS

SET_RECORD_PROPERTY

UP

UPDATE_RECORD


Vordefinierte Beziehungs-Prozeduren

 Alle vordefinierten Prozeduren

FIND_RELATION

GET_RELATION_PROPERTY

ID_NULL

SET_RELATION_PROPERTY


Vordefinierte Berichts-Prozeduren

 Alle vordefinierten Prozeduren

CANCEL_REPORT_OBJECT

COPY_REPORT_OUTPUT

FIND_REPORT_OBJECT

GET_REPORT_OBJECT_PROPERTY

RUN_REPORT_OBJECT

SET_REPORT_OBJECT_PROPERTY


Vordefinierte Registerseiten-Prozeduren

 Alle vordefinierten Prozeduren

FIND_TAB_PAGE

GET_TAB_PAGE_PROPERTY

SET_TAB_PAGE_PROPERTY


Vordefinierte Transaktions-Prozeduren

 Alle vordefinierten Prozeduren

CHECK_RECORD_UNIQUENESS

DELETE_RECORD

ENFORCE_COLUMN_SECURITY

FETCH_RECORDS

FORMS_DDL

GENERATE_SEQUENCE_NUMBER

INSERT_RECORD

ISSUE_ROLLBACK

ISSUE_SAVEPOINT

LOGON

LOGON_SCREEN

LOGOUT

SELECT_RECORDS

UPDATE_RECORD


Vordefinierte Web-Prozeduren

 Alle vordefinierten Prozeduren

WEB.SHOW_DOCUMENT


Vordefinierte Fenster-Prozeduren

 Alle vordefinierten Prozeduren

FIND_WINDOW

GET_WINDOW_PROPERTY

HIDE_WINDOW

ID_NULL

MOVE_WINDOW

REPLACE_CONTENT_VIEW

RESIZE_WINDOW

SET_WINDOW_PROPERTY

SHOW_WINDOW


Attribute

 Alphabetische Liste	  Verwandte Themen

Warnungs-Attribute

Anwendungs-Attribute

Block-Attribute

Leinwand-Attribute

Diagramm-Attribute

Editor-Attribute

Formparameter-Attribute

Formmodul-Attribute

Rahmen-Attribute

Grafik-Attribute

Objekt-Attribute

Wertelisten-Attribute

Menü-Attribute

Eigenschaften von benannten visuellen Attributen

Eingabeaufforderungs-Attribute

Datensatz-Attribute

Datensatzgruppen-Attribute

Beziehungs-Attribute

Berichts-Attribute

Registerseiten-Attribute

Trigger-Attribute

Fenster-Attribute


Form Builder-Attribute

 Alle Attribute

A

Über Steuerelement

Zugriffstaste

Warnstil

Alias

Erweitern zulassen

Mehrzeilige Prompts zulassen

Mit Start verknüpfte Prompts zulassen

Mit oberem Rand verknüpfte Prompts zulassen

Anwendungsinstanz

Pfeilstil

Verknüpfte Menüs

Audio-Kanäle

Automatische Spaltenbreite

Automatisch anzeigen

Automatische Position

Automatische Abfrage

Automatisches Auffrischen

Automatisch auswählen

Automatisches Überspringen (Objekt)

Automatisches Überspringen (Werteliste)

B

Background_Color

Umriß

Blockbeschreibung

Fußnote (Editor)

Vordefiniertes Datumsformat

Beschriftung Schaltfläche 1, Beschriftung Schaltfläche 2, Beschriftung Schaltfläche 3

C

Berechnungsmodus

Calling_Form

Leinwand

Leinwandtyp

Linienende

Abfrage ohne Berücksichtigung der Schreibweise

Einschränkung Schreibweise

Breite/Höhe Zeicheneinheit

Kontrollkästchenzuordnung anderer Werte

Ausgewählt

Ausschnitthöhe

Ausschnittbreite

Ausschnitt X-Position

Ausschnitt Y-Position

Schließen zulässig

Geschlossen

Attribute Spaltenzuordnung

Spaltenname

Spaltenspezifikation

Spaltentitel

Spaltenwert

Befehlstext

Befehlstyp

Kommentare

Kommunikationsmodus (Diagramm)

Kommunikationsmodus (Bericht)

Komprimieren

Komprimierungsqualität

Daten verbergen

Connect_String

Konsolfenster

Hilfetext für Steuerelement

Steuerelementattribute

Koordinatensystem

Koordination

Coordination_Status

Wert aus Objekt kopieren

Current_Form

Current_Form_Name

Current_Record

Visuelles Attribut Aktueller Datensatz

Current_Row_Background_Color

Current_Row_Fill_Pattern

Current_Row_Font_Name

Current_Row_Font_Size

Current_Row_Font_Spacing

Current_Row_Font_Style

Current_Row_Font_Weight

Current_Row_Foreground_Color

Current_Row_White_On_Black

Cursor-Modus

Cursor_Style

Benutzerdefinierter Abstand

D

Strichart

Datenblockbeschreibung

Datenquell-Datenblock (Diagramm)

Datenquell-Datenblock (Bericht)

Datenquelle X-Achse

Datenquelle Y-Achse

Datentyp

Datentyp (Datensatzgruppe)

Datenbank-Datenblock

Database_Value

Datenquelle

Standard-Warnschaltfläche

Standardschaltfläche

Skalierung Standardschriftart

Ausgesetzt

Defer_Required_Enforcement

Löschen zulässig

Prozedurargumente löschen

Prozedurname löschen

Spalten für Prozedurergebnismengen löschen

Verhalten bei Datensatz löschen

Detail-Datenblock

Detail-Referenzobjekt

Richtung

Anzeige ohne Berechtigung

Display_Height

Anzeige in Tastenbelegung

Hinweis automatisch anzeigen

Anzeigequalität

Display_Width

Anzeigebreite (Werteliste)

Abstand zwischen Datensätzen

Dithering

DML-Array-Größe

DML-Datenzielname

DML-Datenzieltyp

E

Rand-Hintergrundfarbe

Rand-Vordergrundfarbe

Randmuster

Editor

Editor X-Position, Editor Y-Position

Elemente in Liste

Aktiviert (Objekt)

Aktiviert (Menüpunkt)

Aktiviert (Register)

Endwinkel

Spaltensicherheit durchsetzen

Primärschlüssel durchsetzen

Enterable

Ausführungsmodus (Diagramm)

Ausführungsmodus (Bericht)

Ausführungsstil

F

File_Name

Füllen

Fill_Pattern

Vor Anzeige filtern

In Abfragemodus auslösen

First_Block

First_Detail_Relation

First_Item

First_Master_Relation

Erster Navigationsblock

Feste Umrandung

Feste Länge (Objekt)

Feste Länge (Menüsubstitutionsparameter)

Zeichenabstand

Font_Name

Font_Size

Font_Spacing

Font_Style

Font_Weight

Foreground_Color

Form Horizontale Symbolleisten-Leinwand

Form Vertikale Symbolleisten-Leinwand

Form_Name

Formatmaske

Formel

Rahmenausrichtung

Rahmentitel

Ausrichtung Rahmentitel

Rahmentitel Schriftartname

Rahmentitel Schriftgrad

Rahmentitel Zeichenabstand

Rahmentitel Schriftstil

Rahmentitel Schriftstärke

Rahmentitel Schriftart Vordergrund Farbe

Versatz Rahmentitel

Lesereihenfolge für Titel

Abstand Rahmentitel

Rahmentitel Visuelle Attributgruppe

G

Grafiktyp

Group_Name

H

Hilfe

Beim Beenden verbergen

Höchster zulässiger Wert

Hinweis (Objekt)

Hinweis (Menüpunkt)

Hinweis (Menüsubstitutionsparameter)

Horizontale Justierung

Horizontaler Rand

Horizontaler Objektversatz

Horizontaler Ursprung

Horizontale Symbolleisten-Leinwand

I

Symbol-Dateiname

Symbol in Menü

Als Symbol

Image_Depth

Image_Format

Implementierungsklasse

REF-Objekt aufnehmen

Menü vererben

Ursprünglicher Tastaturstatus

Ausgangsmenü

Ausgangswert

Einsetzen zulässig (Block)

Einsetzen zulässig (Objekt)

Prozedurargumente einfügen

Prozedurname einfügen

Spalten für Prozedurergebnismengen einfügen

Interaktionsmodus

Isolationsmodus

Item_Is_Valid

Objektrollen

Item_Tab_Page (Objekt)

Objekttyp

J

Join-Bedingung

Join-Stil

Justierung

K

Cursor-Position beibehalten

Schnelltasten

Tastenbelegung-Hilfetext

Tastatur-navigierbar

Tastaturstatus

Schlüsselmodus

L

Beschriftung (Objekt)

Beschriftung (Menüpunkt)

Beschriftung (Menüsubstitutionsparameter)

Beschriftung (Register)

Last_Block

Last_Item

Letzte Abfrage

Layout-Datenblock

Layoutstil

Länge

Zeilenabstand

Linienbreite

In Datenblockmenü aufgelistet/Blockbeschreibung

Wert Listenobjekt

Werteliste

Listenstil

Listentyp

X-Position Liste

Y-Position Liste

Prozedurargumente sperren

Prozedurname sperren

Spalten für Prozedurergebnismengen sperren

Datensatz sperren

Sperrmodus

Minimalwert

M

Magischer Menüpunkt

Hauptmenü

Zuordnung anderer Werte

Maximieren zulässig

Maximale Länge (Formparameter)

Maximale Länge (Objekt)

Maximale Länge (Menüsubstitutionsparameter)

Max. Objekte pro Zeile

Maximale Abfragezeit

Maximal aufgerufene Datensätze

Menübeschreibung

Menüordner

Menüdateiname

Menüpunkt-Code

Menüpunkt Optionsgruppe

Menüpunkttyp

Menümodul

Menürolle

Menüquelle

Menüstil

Meldung

Minimieren zulässig

Minimierter Titel

Modal

Module_NLS_Lang

Modulrollen

Mausnavigation

Maus-Navigationsbegrenzung

Verschieben zulässig

Mehrzeilig

N

Name

Navigationsstil

NextBlock

NextItem

Next_Detail_Relation

Next_Master_Relation

Nächster Navigationsblock

Nächstes Navigationsobjekt

Anzahl angezeigter Objekte

Anzahl gepufferter Datensätze

Anzahl angezeigter Datensätze

O

OLE-Aktivierungsstil

OLE-Klasse

OLE in Forms aktiviert

OLE-Austauschunterstützung

OLE-Popup-Menüpunkte

OLE-Skalierungsstil

OLE-Bewohnerdarstellung

OLE-Bewohnertypen

Operating_System

Optimizer_Hint

Order By

Andere Berichtparameter

P

Parameter-Datentyp

Parameter-Ausgangswert

Menüparameter-Ausgangswert

Kennwort

PL/SQL-Datumsformat

Popup-Menü (Objekt, Leinwand)

Position (X, Y)

Summen im voraus berechnen

Masterlose Vorgänge verhindern

Vorheriger Navigationsblock

PreviousBlock

PreviousItem

Vorheriges Navigationsobjekt

Primäre Leinwand

Primärschlüssel (Objekt)

Programmblocktext

Prompt

Prompt-Ausrichtung

Versatz Prompt-Ausrichtung

Rand Prompt-Zuordnung

Versatz Prompt-Zuordnung

Prompt-Hintergrundfarbe

Prompt-Anzeigestil

Prompt-Schriftartname

Prompt-Schriftgrad

Prompt-Zeichenabstand

Prompt-Schriftstil

Prompt-Schriftstärke

Prompt-Vordergrundfarbe

Prompt-Füllmuster

Prompt-Justierung

Prompt-Lesereihenfolge

Prompt Visuelle Attributgruppe

Prompt_Fill_Pattern

Prompt_Font_Name

Prompt_Font_Size

Prompt_Font_Spacing

Prompt_Font_Style

Prompt_Font_Weight

Prompt_Foreground_Color

Prompt_White_On_Black

Attributklasse

Q

Alle Datensätze abfragen

Abfrage zulässig (Block)

Abfrage zulässig (Objekt)

Abfrage-Array-Größe

Abfrage-Datenquellargumente

Abfrage-Datenquellspalten

Abfrage-Datenquellname

Abfrage-Datenquelltyp

Abfragelänge

Abfragename

Nur Abfrage

Query_Hits

Query_Options

R

Optionsschaltflächenwert

Automatisch anzeigen

Lesereihenfolge

Reelle Einheit

Datensatzgruppe

Datensatzgruppe Abrufgröße

Datensatzgruppenabfrage

Datensatzgruppentyp

Datensatzdarstellung

Records_To_Fetch

Beziehungstyp

Gerendert

Bericht-Zielformat

Bericht-Zielname

Bericht-Zieltyp

Bericht-Server

Obligatorisch (Objekt)

Obligatorisch (Menüsubstitutionsparameter)

Skalieren zulässig

Rückgabeobjekt (Werteliste)

Drehwinkel

Laufzeit-Kompatibilitätsmodus

S

Savepoint-Modus

Savepoint_Name

Bildlaufleisten-Darstellung

Bildlaufleisten-Höhe

Bildlaufleisten-Breite

Verdeckte Eingabe (Menüsubstitutionsparameter)

Bibliothek mit Form gemeinsam benutzen

Schnellvorlauf-Schaltfläche anzeigen

Horizontale Bildlaufleiste anzeigen

OLE-Popup-Menü anzeigen

OLE-Bewohnertypen anzeigen

Palette anzeigen

Wiedergabe-Schaltfläche anzeigen

Aufzeichnen-Schaltfläche anzeigen

Rückspul-Schaltfläche anzeigen

Bildlaufleiste anzeigen

Schieberegler anzeigen

Zeitindikator anzeigen

Vertikale Bildlaufleiste anzeigen

Lautstärkeregler anzeigen

Shrinkwrap

Ausrichtung einzelnes Objekt

Einzelner Datensatz

Größe

Skalierungsstil

Klangformat

Klangqualität

Anfangswinkel

Start Prompt-Ausrichtung

Start Prompt-Versatz

Startcode

Status (Block)

Status (Datensatz)

Unterklassen-Information

Untermenüname

Summierter Block

Summiertes Objekt

Summenfunktion

Mit Objekt synchronisieren

T

Register-Zuordnungskante

Registerseite

Registerseite X-Versatz

Registerseite Y-Versatz

Registerstil

Abtrennbares Menü

Timer_Name

Titel

Tooltip

Tooltip_Background_Color

Tooltip_Fill_Pattern

Tooltip_Font_Name

Tooltip_Font_Size

Tooltip_Font_Spacing

Tooltip_Font_Style

Tooltip_Font_Weight

Tooltip_Foreground_Color

Tooltip Visuelle Attributgruppe

Tooltip_White_On_Black

Topmost_Tab_Page (Leinwand)

Ausrichtung oberer Prompt

Versatz oberer Prompt

Oberer Titel

Top_Record

Transaktionstrigger

Triggerstil

Trigger-Text

Trigger-Typ

U

Aktualisieren erlaubt (Block)

Aktualisieren erlaubt (Objekt)

Nur geänderte Spalten aktualisieren

Update_Column

Update_Commit

Layout aktualisieren

Nur aktualisieren, wenn NULL

Update_Permission

Prozedurargumente aktualisieren

Prozedurname aktualisieren

Spalten für Prozedurergebnismengen aktualisieren

Update_Query

3D-Steuerelemente verwenden

Sicherheit verwenden

User_Interface

User_NLS_Date_Format

User_NLS_Lang

Username

V

Aus Liste validieren

Validierung

Validierungseinheit

Wert, wenn ausgewählt

Wert, wenn nicht ausgewählt

VBX-Steuerelementdatei

VBX-Steuerelementname

VBX-Steuerelementwert

Vertikales Füllen

Vertikale Justierung

Vertikaler Rand

Vertikaler Objektversatz

Vertikaler Ursprung

Vertikale Symbolleisten-Leinwand

Ausschnitthöhe, Ausschnittbreite

Ausschnitt X-Position, Ausschnitt Y-Position

Ausschnitt X-Position auf Leinwand, Ausschnitt Y-Position auf Leinwand

Sichtbar

Sichtbar (Leinwand)

Sichtbar (Objekt)

Sichtbar in Menü

Sichtbar (Registerseite)

Sichtbar in horizontaler/vertikaler Menüsymbolleiste

Visual_Attribute

Visuelle Attributgruppe

Visueller Attributtyp

W

WHERE-Klausel/ORDER BY-Klausel

White_On_Black

Breite/Höhe

Fenster

Window_Handle

Window_State

Window Style

Umbruchstil

Textumbruch

X

X-Winkelradius

X-Position, Y-Position

Y

X-Position, Y-Position

Z


Warnattribute

 Alle Attribute

Warnstil

Beschriftung Schaltfläche 1, Beschriftung Schaltfläche 2, Beschriftung Schaltfläche 3

Kommentare

Standard-Warnschaltfläche

Standardschaltfläche

Menüquelle

Meldung

Name

Attributklasse

Titel


Anwendungsattribute

 Alle Attribute

Calling_Form

Kommentare

Connect_String

Current_Form

Current_Form_Name

Cursor_Style

Datenquelle

Display_Height

Display_Width

Interaction_Mode

Isolation_Mode

Maximum_Query_Time

Maximum_Records_Fetched

Name

Operating_System

Kennwort

Savepoint_Name

Timer_Name

User_Interface

Username

User_NLS_Lang


 Blockattribute

 Alle Attribute

Anwendungsinstanz

Blockbeschreibung

Kommentare

Current_Record

Visuelle Attributgruppe Aktueller Datensatz

Datenblockbeschreibung

Datenbank-Datenblock

Löschen zulässig

Prozedurargumente löschen

Prozedurname löschen

Spalten für Prozedurergebnismengen löschen

DML-Array-Größe

DML-Datenzielname

DML-Datenzieltyp

Spaltensicherheit durchsetzen

Primärschlüssel durchsetzen

Enterable

First_Block

First_Detail_Relation

First_Item

First_Master_Relation

Einsetzen zulässig (Block)

Prozedurargumente einfügen

Prozedurname einfügen

Spalten für Prozedurergebnismengen einfügen

Join-Bedingung

Schlüsselmodus

Last_Item

In Datenblockmenü aufgelistet/Blockbeschreibung

Sperrmodus

Prozedurname sperren

Spalten für Prozedurergebnismengen sperren

Name

Navigationsstil

NextBlock

Nächster Navigationsblock

Anzahl gepufferter Datensätze

Anzahl angezeigter Datensätze

Optimizer_Hint

Order By

Summen im voraus berechnen

Vorheriger Navigationsblock

PreviousBlock

Attributklasse

Alle Datensätze abfragen

Abfrage zulässig (Block)

Abfrage-Array-Größe

Abfrage-Datenquellargumente

Abfrage-Datenquellspalten

Abfrage-Datenquellname

Abfrage-Datenquelltyp

Query_Hits

Query_Options

Datensatzdarstellung

Records_To_Fetch

Bildlaufleiste anzeigen

Einzelner Datensatz

Status (Block)

Top_Record

Transaktionstrigger

Aktualisieren erlaubt (Block)

Nur geänderte Spalten aktualisieren

Prozedurargumente aktualisieren

Prozedurname aktualisieren

Spalten für Prozedurergebnismengen aktualisieren

WHERE-Klausel/ORDER BY-Klausel

Window_Handle


Leinwandattribute

 Alle Attribute

Umriß

Leinwandtyp

Kommentare

Form Horizontale Symbolleisten-Leinwand

Form Vertikale Symbolleisten-Leinwand

Name

Popup-Menü

Attributklasse

Automatisch anzeigen

Größe

Register-Zuordnungskante

Registerstil

Topmost_Tab_Page

Ausschnitthöhe, Ausschnittbreite

Ausschnitt X-Position, Ausschnitt Y-Position

Ausschnitt X-Position auf Leinwand, Ausschnitt Y-Position auf Leinwand

Sichtbar (Leinwand)

Visuelle Attributgruppe

Breite/Höhe

Fenster

X-Position, Y-Position


 Diagrammattribute

 Alle Attribute

Kommunikationsmodus (Diagramm)

Datenquell-Datenblock (Diagramm)

Ausführungsmodus (Diagramm)


Editor-Attribute

 Alle Attribute

Fußnote (Editor)

Kommentare

Editor X-Position, Editor Y-Position

Name

Attributklasse

Horizontale Bildlaufleiste anzeigen

Größe

Oberer Titel

Breite/Höhe

Umbruchstil

X-Position, Y-Position


Rahmenattribute

 Alle Attribute

Erweitern zulassen

Mehrzeilige Prompts zulassen

Mit Start verknüpfte Prompts zulassen

Mit oberem Rand verknüpfte Prompts zulassen

Abstand zwischen Datensätzen

Rahmenausrichtung

Rahmentitel

Ausrichtung Rahmentitel

Rahmentitel Schriftartname

Rahmentitel Schriftgrad

Rahmentitel Zeichenabstand

Rahmentitel Schriftstil

Rahmentitel Schriftstärke

Rahmentitel Schriftart Vordergrund Farbe

Versatz Rahmentitel

Lesereihenfolge für Titel

Abstand Rahmentitel

Rahmentitel Visuelle Attributgruppe

Horizontaler Objektversatz

Layoutstil

Max. Objekte pro Zeile

Anzahl angezeigter Datensätze

Bildlaufleisten-Darstellung

Bildlaufleisten-Breite

Bildlaufleiste anzeigen

Shrinkwrap

Ausrichtung einzelnes Objekt

Start Prompt-Ausrichtung

Start Prompt-Versatz

Ausrichtung oberer Prompt

Versatz oberer Prompt

Layout aktualisieren

Vertikales Füllen

Vertikaler Rand

Vertikaler Objektversatz


Grafikattribute

 Alle Attribute

Linienende

Strichart

Rand-Hintergrundfarbe

Rand-Vordergrundfarbe

Randmuster

Grafiktyp

Join-Stil

Linienbreite

Drehwinkel


Objektattribute

 Alle Attribute

Über Steuerelement

Zugriffstaste

Anwendungsinstanz

Audio-Kanäle

Automatisches Überspringen (Objekt)

Umriß

Berechnungsmodus

Leinwand

Abfrage ohne Berücksichtigung der Schreibweise

Einschränkung Schreibweise

Kontrollkästchenzuordnung anderer Werte

Spaltenname

Kommentare

Komprimieren

Komprimierungsqualität

Daten verbergen

Hilfetext für Steuerelement

Steuerelementattribute

Wert aus Objekt kopieren

Visuelles Attribut Aktueller Datensatz

Datenquelle X-Achse

Datenquelle Y-Achse

Database_Value

Standardschaltfläche

Hinweis automatisch anzeigen

Anzeigequalität

Abstand zwischen Datensätzen

Editor

Editor X-Position, Editor Y-Position

Elemente in Liste

Aktiviert (Objekt)

Feste Länge (Objekt)

Formatmaske

Formel

Höchster zulässiger Wert

Hinweis (Objekt)

Symbol-Dateiname

Als Symbol

Image_Depth

Image_Format

Implementierungsklasse

Ausgangswert

Ursprünglicher Tastaturstatus

Einsetzen zulässig (Objekt)

Item_Is_Valid

Item_Tab_Page (Objekt)

Objekttyp

Justierung

Cursor-Position beibehalten

Tastatur-navigierbar

Tastaturstatus

Beschriftung (Objekt)

Wert Listenobjekt

Werteliste

Listenstil

X-Position Liste

Y-Position Liste

Datensatz sperren

Minimalwert

Zuordnung anderer Werte

Maximale Länge (Objekt)

Mausnavigation

Mehrzeilig

Name

NextItem

Nächstes Navigationsobjekt

Anzahl angezeigter Objekte

OLE-Aktivierungsstil

OLE-Klasse

OLE in Forms aktiviert

OLE-Austauschunterstützung

OLE-Popup-Menüpunkte

OLE-Skalierungsstil

OLE-Bewohnerdarstellung

OLE-Bewohnertypen

Parameter-Datentyp

Popup-Menü

PreviousItem

Vorheriges Navigationsobjekt

Primärschlüssel (Objekt)

Attributklasse

Abfrage zulässig (Objekt)

Abfragelänge

Nur Abfrage

Optionsschaltflächenwert

Gerendert

Obligatorisch (Objekt)

Größe

Skalierungsstil

Schnellvorlauf-Schaltfläche anzeigen

Horizontale Bildlaufleiste anzeigen

OLE-Popup-Menü anzeigen

OLE-Bewohnertypen anzeigen

Palette anzeigen

Wiedergabe-Schaltfläche anzeigen

Aufzeichnen-Schaltfläche anzeigen

Rückspul-Schaltfläche anzeigen

Schieberegler anzeigen

Zeitindikator anzeigen

Lautstärkeregler anzeigen

Klangformat

Klangqualität

Summierter Block

Summiertes Objekt

Summenfunktion

Mit Objekt synchronisieren

Registerseite

Tooltip

Tooltip Visuelle Attributgruppe

Aktualisieren erlaubt (Objekt)

Update_Column

Update_Commit

Nur aktualisieren, wenn NULL

Update_Permission

Aus Liste validieren

Wert, wenn ausgewählt

Wert, wenn nicht ausgewählt

VBX-Steuerelementdatei

VBX-Steuerelementname

VBX-Steuerelementwert

Sichtbar (Objekt)

Visuelle Attributgruppe

Breite/Höhe

Window_Handle

Umbruchstil

Textumbruch

X-Position, Y-Position


Wertlistenattribute

 Alle Attribute

Automatisch anzeigen

Automatisches Auffrischen

Automatisch auswählen

Automatisches Überspringen (Werteliste)

Attribute Spaltenzuordnung

Spaltenname

Spaltenspezifikation

Spaltentitel

Kommentare

Anzeigebreite (Werteliste)

Vor Anzeige filtern

Group_Name

Listentyp

Name

Attributklasse

Datensatzgruppe

Rückgabeobjekt (Werteliste)

Größe

Titel

X-Position, Y-Position


Menüattribute

 Alle Attribute

Verknüpfte Menüs

Fußnote

Einschränkung Schreibweise

Ausgewählt

Befehlstext

Befehlstyp

Kommentare

Anzeige ohne Berechtigung

Aktiviert (Menüpunkt)

Feste Länge (Menüsubstitutionsparameter)

Hilfe

Hinweis (Menüpunkt)

Hinweis (Menüsubstitutionsparameter)

Symbol-Dateiname

Symbol in Menü

Objektrollen

Schnelltasten

Beschriftung (Menüpunkt)

Beschriftung (Menüsubstitutionsparameter)

Magischer Menüpunkt

Maximale Länge (Menüsubstitutionsparameter)

Menübeschreibung

Menüordner

Menüdateiname

Menüpunkt Optionsgruppe

Menüpunkttyp

Menümodul

Menüquelle

Modulrollen

Parameter-Datentyp

Menüparameter-Ausgangswert

Attributklasse

Obligatorisch (Menüsubstitutionsparameter)

Verdeckte Eingabe (Menüsubstitutionsparameter)

Bibliothek mit Form gemeinsam benutzen

Startcode

Abtrennbares Menü

Titel

Sicherheit verwenden

Sichtbar in horizontaler/vertikaler Menüsymbolleiste

Sichtbar in Menü

Visuelle Attributgruppe


Modulattribute

 Alle Attribute

Anwendungsinstanz

Breite/Höhe Zeicheneinheit

Kommentare

Konsolfenster

Koordinatensystem

Visuelle Attributgruppe Aktueller Datensatz

Cursor-Modus

Defer_Required_Enforcement

File_Name

First_Block

Erster Navigationsblock

Zeichenabstand

Form Horizontale Symbolleisten-Leinwand

Form Vertikale Symbolleisten-Leinwand

Form_Name

Ausgangsmenü

Last_Block

Menümodul

Menürolle

Menüquelle

Menüstil

Module_NLS_Lang

Maus-Navigationsbegrenzung

Name

Attributklasse

Reelle Einheit

Laufzeit-Kompatibilitätsmodus

Savepoint-Modus

Titel

3D-Steuerelemente verwenden

Validierung

Validierungseinheit

Window_Handle


Parameterattribute

 Alle Attribute

Kommentare

Maximale Länge (Formparameter)

Name

Parameter-Datentyp

Parameter-Ausgangswert

Attributklasse


Promptattribute

 Alle Attribute

Prompt

Prompt-Ausrichtung

Versatz Prompt-Ausrichtung

Rand Prompt-Zuordnung

Versatz Prompt-Zuordnung

Prompt-Hintergrundfarbe

Prompt-Anzeigestil

Prompt-Füllmuster

Prompt-Schriftartname

Prompt-Schriftgrad

Prompt-Zeichenabstand

Prompt-Schriftstil

Prompt-Schriftstärke

Prompt-Vordergrundfarbe

Prompt-Justierung

Prompt-Lesereihenfolge

Prompt Visuelle Attributgruppe


Datensatzattribute

 Alle Attribute

Status (Datensatz)


Datensatzgruppenattribute

 Alle Attribute

Spaltenname

Spaltenspezifikation

Spaltenwert

Kommentare

Datentyp

Verhalten bei Datensatz löschen

Länge

Name

Attributklasse

Datensatzgruppe Abrufgröße

Datensatzgruppenabfrage

Datensatzgruppentyp


Beziehungsattribute

 Alle Attribute

Kommentare

Koordination

Coordination_Status

Ausgesetzt

Detail-Datenblock

Join-Bedingung

Name

Next_Detail_Relation

Next_Master_Relation

Masterlose Vorgänge verhindern

Attributklasse


Berichtattribute

 Alle Attribute

Kommunikationsmodus (Bericht)

Datenquell-Datenblock (Bericht)

Ausführungsmodus (Bericht)

Andere Berichtparameter

Abfragename

Bericht-Zielformat

Bericht-Zielname

Bericht-Zieltyp


Registerseitenattribute

 Alle Attribute

Leinwand

Aktiviert (Register)

Beschriftung (Register)

Registerseite X-Versatz

Registerseite Y-Versatz

Sichtbar (Registerseite)

Visuelle Attributgruppe


Triggerattribute

 Alle Attribute

Kommentare

Anzeige in Tastenbelegung

Ausführungsstil

In Abfragemodus auslösen

Tastenbelegung-Hilfetext

Name

Attributklasse

Triggerstil

Trigger-Text

Trigger-Typ


Eigenschaften von benannten visuellen Attributen

 Alle Attribute

Background_Color

Foreground_Color

Name

Attributklasse

Größe

Sichtbar

Visual_Attribute

Visueller Attributtyp

White_On_Black

Breite/Höhe


Fensterattribute

 Alle Attribute

Schließen zulässig

Kommentare

Beim Beenden verbergen

Horizontale Symbolleisten-Leinwand

Symbol-Dateiname

Menü vererben

Maximieren zulässig

Minimieren zulässig

Minimierter Titel

Modal

Verschieben zulässig

Name

Primäre Leinwand

Attributklasse

Skalieren zulässig

Horizontale Bildlaufleiste anzeigen

Vertikale Bildlaufleiste anzeigen

Größe

Titel

Vertikale Symbolleisten-Leinwand

Sichtbar

Visual_Attribute

Visuelle Attributgruppe

Window_State

Window Style

X-Position, Y-Position


Optionen

 Alphabetische Liste

Forms Runtime-Optionen

Form Compiler-Optionen

Form Builder-Optionen


Form Builder-Voreinstellungen
Form Builder-Optionen

 Alle Optionen

A

Zugriff (Form Builder)

Add_Triggers (Form Compiler)

Array-Verarbeitung

B

Batch (Form Compiler)

Block_Menu (Forms Runtime)

Datensätze in Datei puffern

Build (Forms Compiler)

Generieren vor Ausführen

C

Willkommenseite des Diagramm-Assistenten

Farbmodus

Farbpalette

Compile_All

CRT_File (Form Compiler)

D

Willkommenseite des Datenblock-Assistenten

Debug (Forms Runtime)

Debug_Messages (Forms Runtime)

Delete (Form Compiler)

E

Extract (Form Compiler)

F

G

H

Help (Form Builder)

Help (Form Compiler)

Help (Forms Runtime)

HTML-Dateiname

I

Insert (Form Compiler)

Interactive (Forms Runtime)

J

K

Keyin (Forms Runtime)

Keyout (Forms Runtime)

L

Willkommenseite des Layout-Assistenten

Logon (Form Compiler)

Logon_Screen (Forms Runtime)

Willkommenseite des Wertelisten-Assistenten

M

Module_Access (Form Builder)

Module_Access (Form Compiler)

Module_Type (Form Builder)

Module_Type (Form Compiler)

N

Nofail (Form Compiler)

O

SQL-Verarbeitung optimieren (Forms Runtime)

Transaktionsverarbeitung optimieren (Forms Runtime)

Output_File (Form Compiler)

Output_File (Forms Runtime)

P

Parse (Form Compiler)

Drucker

Q

Query_Only (Forms Runtime)

Ton aus (Forms Runtime)

R

Module asynchron ausführen

S

Speichern vor Generieren

Script (Form Compiler)

Session (Forms Runtime)

Statistics (Form Compiler)

Statistics (Forms Runtime)

Strip_Source (Forms Runtime)

Pfad für das Einordnen in Unterklassen

Hinweise unterdrücken

T

Term (Forms Runtime)

U

Upgrade (Form Compiler)

Upgrade_Roles (Form Compiler)

Systemeditor benutzen

V

Version (Form Compiler)

W

Willkommen-Dialogfeld

Register des Willkommen-Dialogfeldes

X

Y

Z


Forms Runtime-Optionen

 Alle Optionen

Array

Block_Menu

Buffer_Records

Debug

Debug_Messages

Hilfe

Interactive

Keyin

Keyout

Logon_Screen

OptimizeSQL

OptimizeTP

Options_Screen

Output_File

PECS

Query_Only

Quiet

Session

Statistics

Term

Window_State


Form Compiler-Optionen

 Alle Optionen

Add_Triggers

Batch

Build

Compile_All

CRT_File

Debug

Delete

Extract

Help

Insert

Logon

Module_Access

Module_Type

Nofail

Options_Screen

Output_File

Parse

Script

Statistics

Strip_Source

Upgrade

Upgrade_Roles

Version

Widen_Fields


Form Builder-Optionen

 Alle Optionen

Farbmodus

Farbpalette

Generieren vor Ausführen

Hilfe

Module_Access

Module_Type

Drucker

Module asynchron ausführen

Speichern vor Generieren

Hinweise unterdrücken

Systemeditor benutzen

Benutzervoreinstellungen


Trigger

 Alphabetische Liste	  Verwandte Themen

ActiveX-Trigger

Blockverarbeitende Trigger

Schnittstellenereignis-Trigger

Tastentrigger

Master-Detail-Trigger

Meldungsbehandlungs-Trigger

Mausereignis-Trigger

Navigationstrigger

On-Trigger

Post-Trigger

Pre-Trigger

Abfragezeit-Trigger

Trigger bei gespeicherten Prozeduren

Transaktionstrigger

Validierungs-Trigger

When-Trigger


Form Builder-Trigger

 Alle Trigger

A

B

C

D

Delete-Procedure

E

F

Funktionstasten-Trigger

G

H

I

Insert-Procedure

J

K

Key-Fn

Key-Others

L

Lock-Procedure

M

N

O

On-Check-Delete-Master

On-Check-Unique

On-Clear-Details

On-Close

On-Column-Security

On-Commit

On-Count

On-Delete

On-Dispatch-Event

On-Error

On-Fetch

On-Insert

On-Lock

On-Logon

On-Logout

On-Message

On-Populate-Details

On-Rollback

On-Savepoint

On-Select

On-Sequence-Number

On-Update

P

Post-Block

Post-Change

Post-Database-Commit

Post-Delete

Post-Form

Post-Forms-Commit

Post-Insert

Post-Logon

Post-Logout

Post-Query

Post-Record

Post-Select

Post-Text-Item

Post-Update

Pre-Block

Pre-Commit

Pre-Delete

Pre-Form

Pre-Insert

Pre-Logon

Pre-Logout

Pre-Popup-Menu

Pre-Query

Pre-Record

Pre-Select

Pre-Text-Item

Pre-Update

Q

Query-Procedure

R

S

T

U

Update-Procedure

Benutzerdefiniert

V

W

When-Button-Pressed

When-Checkbox-Changed

When-Clear-Block

When-Create-Record

When-Custom-Item-Event

When-Database-Record

When-Form-Navigate

When-Image-Activated

When-Image-Pressed

When-List-Activated

When-List-Changed

When-Mouse-Click

When-Mouse-DoubleClick

When-Mouse-Down

When-Mouse-Enter

When-Mouse-Leave

When-Mouse-Move

When-Mouse-Up

When-New-Block-Instance

When-New-Form-Instance

When-New-Item-Instance

When-New-Record-Instance

When-Radio-Changed

When-Remove-Record

When-Tab-Page-Changed

When-Timer-Expired

When-Validate-Item

When-Validate-Record

When-Window-Activated

When-Window-Closed

When-Window-Deactivated

When-Window-Resized

X

Y

Z


ActiveX-Trigger

 Alle Trigger

On-Dispatch-Event


Blockverarbeitende Trigger

 Alle Trigger

When-Clear-Block

When-Create-Record

When-Database-Record

When-Remove-Record


Schnittstellenereignis-Trigger

 Alle Trigger

When-Button-Pressed

When-Checkbox-Changed

When-Custom-Item-Event

When-Image-Activated

When-List-Activated

When-List-Changed

When-Mouse-Click

When-Mouse-DoubleClick

When-Mouse-Down

When-Mouse-Enter

When-Mouse-Leave

When-Mouse-Move

When-Mouse-Up

When-Radio-Changed

When-Timer-Expired

When-Window-Activated

When-Window-Closed

When-Window-Deactivated

When-Window-Resized


Tastentrigger

 Alle Trigger

Key-Fn

Key-Others


Master-Detail-Trigger

 Alle Trigger

On-Check-Delete-Master

On-Clear-Details

On-Populate-Details


Meldungsbehandlungs-Trigger

 Alle Trigger

On-Error

On-Message


Mausereignis-Trigger

 Alle Trigger

When-Custom-Item-Event

When-Mouse-Click

When-Mouse-DoubleClick

When-Mouse-Down

When-Mouse-Enter

When-Mouse-Leave

When-Mouse-Move

When-Mouse-Up


Navigationstrigger

 Alle Trigger

Post-Block

Post-Form

Post-Record

Post-Text-Item

Pre-Block

Pre-Form

Pre-Record

Pre-Text-Item

Benutzerdefiniert

When-New-Block-Instance

When-New-Form-Instance

When-New-Item-Instance

When-New-Record-Instance


On-Trigger

 Alle Trigger

On-Check-Delete-Master

On-Check-Unique

On-Clear-Details

On-Close

On-Column-Security

On-Commit

On-Count

On-Delete

On-Dispatch-Event

On-Error

On-Fetch

On-Insert

On-Lock

On-Logon

On-Logout

On-Message

On-Populate-Details

On-Rollback

On-Savepoint

On-Select

On-Sequence-Number

On-Update


Post-Trigger

 Alle Trigger

Post-Block

Post-Change

Post-Database-Commit

Post-Delete

Post-Form

Post-Forms-Commit

Post-Insert

Post-Logon

Post-Logout

Post-Query

Post-Record

Post-Select

Post-Text-Item

Post-Update


Pre-Trigger

 Alle Trigger

Pre-Block

Pre-Commit

Pre-Delete

Pre-Form

Pre-Insert

Pre-Logon

Pre-Logout

Pre-Popup-Menu

Pre-Query

Pre-Record

Pre-Select

Pre-Text-Item

Pre-Update


Abfragezeit-Trigger

 Alle Trigger

Post-Query

Pre-Query


Trigger bei gespeicherten Prozeduren

 Alle Trigger

Delete-Procedure

Insert-Procedure

Lock-Procedure

Query-Procedure

Update-Procedure


Transaktions-Trigger

 Alle Trigger

On-Check-Delete-Master

On-Check-Unique

On-Clear-Details

On-Close

On-Column-Security

On-Commit

On-Count

On-Delete

On-Dispatch-Event

On-Error

On-Fetch

On-Insert

On-Lock

On-Logon

On-Logout

On-Message

On-Populate-Details

On-Rollback

On-Savepoint

On-Select

On-Sequence-Number

On-Update

Post-Block

Post-Change

Post-Database-Commit

Post-Delete

Post-Form

Post-Forms-Commit

Post-Insert

Post-Logon

Post-Logout

Post-Query

Post-Record

Post-Select

Post-Text-Item

Post-Update

Pre-Block

Pre-Commit

Pre-Delete

Pre-Form

Pre-Insert

Pre-Logon

Pre-Query

Pre-Select

Pre-Text-Item

Pre-Update


Validierungs-Trigger

 Alle Trigger

When-Validate-Item

When-Validate-Record


When-Trigger

 Alle Trigger

When-Button-Pressed

When-Checkbox-Changed

When-Clear-Block

When-Create-Record

When-Custom-Item-Event

When-Database-Record

When-Form-Navigate

When-Image-Activated

When-Image-Pressed

When-List-Activated

When-List-Changed

When-Mouse-Click

When-Mouse-DoubleClick

When-Mouse-Down

When-Mouse-Enter

When-Mouse-Leave

When-Mouse-Move

When-Mouse-Up

When-New-Block-Instance

When-New-Form-Instance

When-New-Item-Instance

When-New-Record-Instance

When-Radio-Changed

When-Remove-Record

When-Tab-Page-Changed

When-Timer-Expired

When-Validate-Item

When-Validate-Record

When-Window-Activated

When-Window-Closed

When-Window-Deactivated

When-Window-Resized


Über den Typ-Assistenten

Der Typ-Assistent führt Sie durch die Schritte, die beim Erstellen eines neuen benutzerdefinierten Oracle8-Datentyps erforderlich sind. Bei diesem Datentyp kann es sich um einen Objekttyp oder einen Collection-Typ handeln.

Bei einem Objekttyp handelt es sich um eine Vorlage, in der die Elemente oder Attribute einer strukturierten Dateneinheit angegeben werden. Bei Attributen kann es sich um vordefinierte Datentypen oder andere strukturierte Dateneinheiten handeln. Mit einem Objekttyp werden auch die Vorgänge oder Methoden angegeben, die Sie mit der Dateneinheit ausführen können. Methoden sind Funktionen oder Prozeduren, die in PL/SQL geschrieben und in der Datenbank gespeichert sind. Sie könnten auch in C geschrieben und extern gespeichert sein.

Bei einem Collection-Typ kann es sich um einen Tabellentyp oder einen Variierenden Array-Typ handeln. Jeder Collection-Typ beschreibt eine Dateneinheit, die aus einer unbestimmten Anzahl von Elementen besteht, die alle denselben Datentyp aufweisen.

Ein Tabellentyp oder eine verschachtelte Tabelle ist eine nicht geordnete Gruppe von Datenelementen. Der Tabellentyp bzw. die verschachtelte Tabelle hat eine einzelne Spalte, bei der es sich um einen vordefinierten Datentyp oder einen Objekttyp handeln kann. Bei einem Objekttyp kann die Tabelle auch als mehrspaltige Tabelle angezeigt werden mit einer Spalte für jedes Attribut des Objekttyps.

Ein Variierender Array-Typ oder VARRAY ist eine geordnete Gruppe von Datenelementen. Die Anzahl von Elementen ist variabel und bezieht sich auf die Größe des Arrays. Sie müssen eine maximale Größe angeben, wenn Sie den Variierenden Array-Typ deklarieren.

Mit dem Typ-Assistenten können Sie einen Objekttyp (mit Attributen und Methoden), Tabellentyp oder VARRAY erstellen. Im allgemeinen verwenden Sie den Typ-Assistenten zur Ausführung der folgenden Aufgaben:

•	Angabe von Namen, Attributen und Methoden für einen Objekttyp

•	Angabe von Namen und Datentypinformationen für einen Tabellentyp oder VARRAY

•	Hinzufügen, Bearbeiten oder Löschen von Attributen eines Objekttyps

•	Hinzufügen, Bearbeiten oder Löschen von Methoden eines Objekttyps

•	Definieren von Einschränkungen für die Methoden eines Objekttyps

Im Typ-Assistenten navigieren

Mit den folgenden Schaltflächen können Sie durch die Seiten navigieren:

•	Abbrechen – bricht alle Änderungen ab, die Sie vorgenommen haben, und beendet den Assistenten

•	Hilfe – zeigt einen Online-Hilfetext für die aktuelle Seite des Assistenten an

•	Zurück – navigiert zu der vorherigen Seite in dem Assistenten

•	Weiter – navigiert zu der nächsten Seite in dem Assistenten

•	Fertig – speichert Änderungen, die Sie mit dem Assistenten vorgenommen haben, und beendet den Assistenten

Hinweis: Wenn Sie auf Weiter oder Zurück klicken, bevor Sie alle erforderlichen Informationen für eine bestimmte Seite eingegeben haben, hindert der Assistent Sie daran, zu der nächsten (oder vorherigen) Seite zu navigieren. Wenn Sie nicht alle erforderlichen Informationen in den Assistenten eingegeben haben und auf Fertig klicken, führt der Assistent Sie automatisch zu dem Register, in dem Sie die Eingabe der erforderlichen Daten abschließen können.


Typ-Assistent: Register Typ auswählen

  Nächster Schritt	  Verwandte Themen

So wählen Sie einen zu erstellenden Oracle8-Typ:

1	Klicken Sie im Register Typ auswählen auf eine Optionsschaltfläche, um einen zu erstellenden Typ anzugeben: Objekt oder Collection.

Bei Auswahl von:

•	Objekt läßt der Typ-Assistent zu, daß Sie Attribute und Methoden hinzufügen.

•	Collection läßt der Typ-Assistent zu, daß Sie die Art des Collection-Typs und dessen Datentyp angeben.

2	Geben Sie einen Namen in das Textfeld Typname ein.

3	Klicken Sie auf Weiter, um das nächste Register Objekttyp oder Collection-Typ anzuzeigen, je nach Auswahl.


Typ-Assistent: Register Objekttyp-Attribute definieren

  Nächster Schritt	  Verwandte Themen

So fügen Sie ein Attribut hinzu:

  Klicken Sie im Register Objekttyp-Attribute definieren auf Hinzufügen.

Daraufhin wird das Dialogfeld Attribut angezeigt.

So bearbeiten Sie ein Attribut:

  Wählen Sie im Register Objekttyp-Attribute definieren ein Attribut aus, und klicken Sie auf Bearbeiten.

Oder

  Doppelklicken Sie auf ein Attribut in dem Listenfeld.

Daraufhin wird das Dialogfeld Attribut angezeigt.

So entfernen Sie ein Attribut:

1	Wählen Sie im Register Objekttyp-Attribute definieren ein Attribut aus, und klicken Sie auf Entfernen.

Daraufhin werden Sie in einem Meldungsfeld aufgefordert, den Löschenvorgang zu bestätigen.

2	Klicken Sie auf Ja, um das hervorgehobene Attribut zu entfernen.

So ändern Sie die Reihenfolge der Attributdefinition:

  Klicken Sie im Listenfeld auf das zu verschiebende Attribut, und ziehen Sie es an die neue Stelle.

Auf diese Weise ändern Sie die Reihenfolge der Parameter der impliziten Konstruktormethode für den Objekttyp. (Mit der Konstruktormethode wird eine Instanz des Typs erstellt.)

Die Parameter einer Konstruktormethode sind die Attribute des Objekttyps; sie werden in derselben Reihenfolge wie die Attributdefinition für den Typ angezeigt.


Dialogfeld Attribut

Im Dialogfeld Attribut können Sie ein neues Attribut für einen Objekttyp hinzufügen oder ein bestehendes Attribut bearbeiten.

Attribut-name	Geben Sie einen Namen für das Attribut ein.
Datentyp	Geben Sie einen vordefinierten Datentyp in das Kombinationsfeld ein, oder wählen Sie einen Datentyp aus der Dropdown-Liste. Um die verfügbaren Objekttypen zu durchsuchen, klicken Sie auf die Schaltfläche ..., um das Dialogfeld Typauswahl anzuzeigen.
Länge	Geben Sie eine Zahl ein, oder wählen Sie eine Zahl mit den Pfeilen nach oben und unten.
Genauigkeit	(nur bei numerischen Datentypen) Geben Sie eine Zahl für die Gesamtanzahl von Ziffern ein.
Skalierung	(nur bei numerischen Datentypen) Geben Sie eine Zahl ein, um die Anzahl von Dezimalstellen anzugeben.


Dialogfeld Typauswahl

Im Dialogfeld Typauswahl können Sie die bestehenden benutzerdefinierten Oracle8-Datentypen durchsuchen und auswählen, auf die Sie in der momentan angemeldeten Datenbank zugreifen können.

Typ	Wählen Sie Objekt, Collection oder ALLE, um die entsprechenden Datentypen anzuzeigen, die dem Benutzernamen gehören, der in der Dropdown-Liste Eigentümer angezeigt wird. Wenn Sie einen Objekttyp definieren, können Sie einen anderen Objekttyp bzw. Collection-Typ als Datentyp für das Objekt auswählen. Wenn Sie einen Collection-Typ definieren, können Sie keinen anderen Collection-Typ als Datentyp für das Objekt auswählen.
Eigentümer	Zeigt eine Dropdown-Liste der Eigentümer der benutzerdefinierten Datentypen an, auf die Sie zugreifen können.  Wählen Sie einen Eigentümernamen, oder wählen Sie ALLE, um die Datentypen für alle Eigentümer anzuzeigen.
Listenfeld	Zeigt die Typen und Namen der Datentypen an, die in den Feldern Typ und Eigentümer ausgewählt sind. Nur die Datentypen, auf die Sie zugreifen können, werden angezeigt. Wenn in dem Feld Eigentümer ALLE ausgewählt ist, steht vor jedem Namen in der Liste der Schemaname in der Punktschreibweise. Wenn ALLE im Feld Typ ausgewählt ist, wird an jeden Namen dessen Typ in Klammern angehängt. Klicken Sie auf einen Datentypnamen in der Liste, um diesen auszuwählen.
Referenz auf Objekt	Wählen Sie dieses Kontrollkästchen, um eine Objektreferenz (REF) des ausgewählten (hervorgehobenen) Objekttyps in dem Listenfeld auszuwählen. Heben Sie die Auswahl dieses Kontrollkästchens auf, um eine Objektinstanz des ausgewählten (markierten) Objekttyps in dem Listenfeld auszuwählen. Nur für Objekttypen verfügbar.
OK	Wählt den hervorgehobenen Datentyp in der Liste aus und schließt das Dialogfeld.


Typ-Assistent: Register Objekttyp-Methoden definieren

  Nächster Schritt	  Verwandte Themen

Methoden sind Funktionen und Prozeduren, die in PL/SQL geschrieben und in der Datenbank gespeichert sind. Sie könnten auch in C geschrieben und extern gespeichert sein. Mit Methoden wird das Verhalten des Objekttyps charakterisiert.

So fügen Sie eine Methode hinzu:

  Klicken Sie im Register Objekttyp-Methoden definieren auf Hinzufügen.

Daraufhin wird das Dialogfeld Methode angezeigt.

So bearbeiten Sie eine Methode:

  Wählen Sie im Register Objekttyp-Methoden definieren eine Methode aus, und klicken Sie auf Bearbeiten.

Oder

  Doppelklicken Sie auf eine Methode in dem Listenfeld.

Daraufhin wird das Dialogfeld Methode angezeigt.

So entfernen Sie eine Methode:

1	Wählen Sie im Register Objekttyp-Methoden definieren eine Methode aus, und klicken Sie auf Entfernen.

Daraufhin werden Sie in einem Meldungsfeld aufgefordert, den Löschenvorgang zu bestätigen.

2	Klicken Sie auf Ja, um die markierte Methode zu entfernen.

So ändern Sie die Einschränkungen für die Methoden eines Objekttyps:

  Klicken Sie im Register Objekttyp-Methoden auf Ändern.

Daraufhin wird das Dialogfeld Standardeinschränkungen angezeigt.


Dialogfeld Standardeinschränkungen

Im Dialogfeld Standardeinschränkungen können Sie die standardmäßigen Pragma-Einschränkungen für die Methoden eines Objekttyps angeben. Die Pragma-Einschränkungen gelten für Elementfunktionen, die aus SQL-Anweisungen aufgerufen werden. Die Einschränkungen verweigern Elementfunktionen den Lese-/Schreibzugriff zu Datenbanktabellen und/oder vordefinierten Variablen.

So geben Sie die standardmäßigen Pragma-Einschränkungen für die Methoden eines Objekttyps an:

  Wählen Sie eines der Kontrollkästchen aus bzw. heben Sie die Auswahl auf.

Hinweis: Sie können Pragma-Einschränkungen für individuelle Elementfunktionen deklarieren. Derartige Pragmas setzen die Standardeinschränkungen außer Kraft.


Dialogfeld Methode

Das Dialogfeld Methode verfügt über zwei Register: Definition und Einschränkungen. Mit diesen Registern können Sie eine Objekttyp-Methode und deren Parameter sowie die Einschränkungen für den Typ definieren.

Im Register Definition können Sie einen Methodennamen und -typ sowie optionale Parameter angeben. Bei Funktionen können Sie einen Rückgabetyp angeben. Das Register enthält folgende Angaben:

Methodenname	Geben Sie einen Namen für eine Methode ein. Dieser Name kann nicht identisch mit dem Objekttyp-Namen oder einem der Objekttyp-Attribute sein.
Methodentyp	Wählen Sie einen Methodentyp aus der Dropdown-Liste. Die Methodentypen sind Prozedur, Funktion, Zuordnen-Funktion und Sortieren-Funktion. Zuordnen-Funktion und Sortieren-Funktion sind Vergleichsmethoden. Sie können eine Zuordnen-Funktion oder Sortieren-Funktion für einen Objekttyp angeben, jedoch nicht beide.
Rückgabetyp	Für Funktionen wählen Sie einen Rückgabetyp aus der Dropdown-Liste.
Parametername	Geben Sie einen Namen für einen Parameter ein.
Datentyp	Wählen Sie einen vordefinierten Datentyp aus der Dropdown-Liste. Um bestehende Objekttypen zu durchsuchen, klicken Sie auf die Schaltfläche ..., um das Dialogfeld Typauswahl anzuzeigen.
Richtung	Wählen Sie IN, OUT oder IN/OUT aus der Dropdown-Liste.
Standardwert	Geben Sie einen Standardwert für den Parameter ein.
	Klicken Sie, um den Parameter zu der Liste hinzuzufügen. Daraufhin wird das Feld Parametername gelöscht.
	Klicken Sie, um den markierten Parameter aus der Liste zu entfernen. Daraufhin wird ein Meldungsfeld angezeigt, in dem Sie zur Bestätigung aufgefordert werden.
Listenfeld	Zeigt die Liste mit Parametern an, die für die Methode definiert sind. Um die Reihenfolge der Parameterdefinition in dem Listenfeld zu ändern, klicken Sie auf den Parameter und ziehen ihn an die gewünschte Stelle.

Im Register Einschränkungen können Sie die standardmäßigen Pragma-Einschränkungen außer Kraft setzen, die schon für den Objekttyp definiert sind. Pragma-Einschränkungen gelten für Elementfunktionen, die aus SQL-Anweisungen aufgerufen werden. Die Einschränkungen verweigern Elementfunktionen den Lese-/Schreibzugriff zu Datenbanktabellen und/oder vordefinierten Variablen. Das Register Einschränkungen enthält folgende Angaben:

Standardeinschränkungen außer Kraft setzen	Wählen Sie dieses Kontrollkästchen, um die Methodeneinschränkungen anstelle der Standardeinschränkungen zu verwenden. Danach geben Sie die Einschränkungen an, indem Sie die folgenden Optionen auswählen bzw. deren Auswahl aufheben. Heben Sie die Auswahl dieses Kontrollkästchens auf, um die standardmäßigen Pragma-Einschränkungen zu benutzen. Die folgenden Optionen werden deaktiviert, wenn die Auswahl dieses Kontrollkästchens aufgehoben wird.
RNDS, WNDS, RNPS, WNPS	Wählen Sie das entsprechende Kontrollkästchen aus, um die Regel in Kraft zu setzen. Heben Sie die Auswahl des entsprechenden Kontrollkästchens auf, um die Regel zu entfernen.


Typ-Assistent: Register Collection-Typ definieren

  Nächster Schritt	  Verwandte Themen

So definieren Sie einen Collection-Typ:

1	Klicken Sie im Register Collection-Typ definieren auf eine Optionsschaltfläche, um einen zu erstellenden Typ anzugeben: Tabelle oder Variierendes Array (VARRAY).

2	Wenn Sie ein VARRAY erstellen, geben Sie die maximale Größe des Array in das Textfeld Grenzwert ein.

3	Klicken Sie in der Dropdown-Liste Datentyp auf den Pfeil auf der rechten Seite, um einen vordefinierten Datentyp auszuwählen. Um einen bestehenden Objekttyp auszuwählen, klicken Sie auf die Schaltfläche ..., um das Dialogfeld Typauswahl anzuzeigen.

4	(wenn aktiviert) Geben Sie in das Feld Länge eine Zahl ein.

5	(nur bei numerischen Datentypen) Geben Sie im Feld Genauigkeit eine Zahl für die Gesamtanzahl von Ziffern ein.

6	(nur bei numerischen Datentypen) Geben Sie im Feld Skalierung die Anzahl von Dezimalstellen ein.


Typ-Assistent: Register Fertig

  Verwandte Themen

Auf der letzten Seite des Typ-Assistenten wird die SQL-Anweisung angezeigt, die den gerade definierten Oracle8-Typ generiert. Dieses Register ist schreibgeschützt. Sie können die SQL-Anweisung nicht bearbeiten.

Wenn Sie auf Fertig klicken, geht der Typ-Assistent folgendermaßen vor:

•	Bei Collection-Typen – Die SQL-Anweisung CREATE TYPE AS TABLE oder CREATE TYPE AS VARYING ARRAY wird an die Datenbank ausgegeben.

•	Bei Objekttypen – Die SQL-Anweisung CREATE TYPE AS OBJECT wird an die Datenbank ausgegeben. Wenn die Typspezifikation ungültig oder unvollständig ist, wird hinter der Beschriftung Objekttyp im Objektnavigator ein Stern (*) angezeigt.

•	Bei Objekttypen mit Methoden – Ein anfänglicher Objektrumpf wird erstellt und im Editor Gespeicherte Programmblöcke angezeigt. Füllen Sie die Methoden aus, und klicken Sie auf Speichern. Die SQL-Anweisung CREATE TYPE BODY wird an die Datenbank ausgegeben. Wenn der Objektrumpf ungültig ist, werden in dem Fensterbereich Kompilierungsmeldungen Fehlermeldungen angezeigt. Im Anschluß an die Beschriftung Objektrumpf im Objektnavigator wird ein Stern (*) angezeigt.

Hinweis: Der Typ-Assistent speichert den Objekttyp oder Collection-Typ in dem momentan angemeldeten Oracle8 Datenbank-Server.


Über den Typ-Assistenten

  Verwandte Themen

Der Typ-Assistent bietet die schnellste und einfachste Möglichkeit, einen benutzerdefinierten Oracle8-Datentyp zu erstellen. Er führt Sie durch die Schritte, die beim Erstellen eines neuen Objekttyps oder Collection-Typs erforderlich sind, bei dem es sich um einen Tabellentyp oder einen Variierenden Array-Typ (VARRAY) handeln kann. Mit dem Typ-Assistenten können Sie keinen bestehenden Typ bearbeiten.

Mit dem Typ-Assistenten führen Sie insbesondere folgende Aufgaben aus:

•	Angabe von Namen, Attributen und Methoden für einen Objekttyp

•	Angabe von Namen und Datentypinformationen für einen Tabellentyp oder VARRAY

•	Hinzufügen, Bearbeiten oder Löschen von Attributen eines Objekttyps

•	Hinzufügen, Bearbeiten oder Löschen von Methoden eines Objekttyps

•	Definieren von Einschränkungen für die Methoden eines Objekttyps


Benutzerdefinierten Oracle8-Datentyp mit dem Typ-Assistenten erstellen

  Verwandte Themen

Sie müssen bei einem Oracle8 Datenbank-Server angemeldet sein, um einen neuen Oracle8-Datentyp zu erstellen.

So erstellen Sie einen neuen benutzerdefinierten Oracle8-Datentyp:

1	Blenden Sie den Knoten Datenbankobjekte im Objektnavigator ein.

2	Blenden Sie den Schemaknoten ein, auf dem ein neuer Datentyp erstellt werden soll.

3	Klicken Sie auf den Knoten Typen unter dem Schema.

4	Klicken Sie auf [image] in der Navigator-Symbolleiste, oder wählen Sie Navigator [image] Erstellen aus dem Menü, um den Typ-Assistenten anzuzeigen.

5	Führen Sie die angegebenen Schritte aus, um einen Objekttyp oder Collection-Typ zu erstellen. In der Hilfe zu dem Typ-Assistenten finden Sie weitere Unterstützung.

Der Typ-Assistent erstellt und speichert den Objekttyp oder Collection-Typ in dem Oracle8 Datenbank-Server, der momentan angemeldet ist.


Benutzerdefinierten Oracle8-Datentyp bearbeiten

  Verwandte Themen

Mit dem Editor Gespeicherte Programmblöcke ändern Sie bestehende Objekttypen und Collection-Typen.

Sie können die Typspezifikation von Objekttypen und Collection-Typen bearbeiten. Die Spezifikation deklariert die Attribute der Datenstruktur. Bei Objekttypen gibt die Spezifikation außerdem die optionalen Methoden an, mit denen die Daten verarbeitet werden.

Sie können den Rumpf von Objekttypen auch bearbeiten, wodurch die Methoden vollständig definiert und die Spezifikation implementiert wird. Sie können den Rumpf austesten oder ersetzen, ohne die Typspezifikation zu ändern.

So bearbeiten Sie die Typspezifikation eines Objekttyps oder Collection-Typs:

  Doppelklicken Sie im Objektnavigator auf ein Typsymbol, um die Typspezifikation im Editor Gespeicherte Programmblöcke anzuzeigen.

Oder

  Klicken Sie im Popup-Menü für einen Typ im Objektnavigator (wird bei Windows mit der rechten Maustaste aufgerufen) auf Typ bearbeiten, um die Typspezifikation im Editor Gespeicherte Programmblöcke anzuzeigen.

Oder

  Klicken Sie in der Dropdown-Liste Name des Editors Gespeicherte Programmblöcke auf einen Typnamen, um die Quelle anzuzeigen.

Hinweis:  Die Attribute und Standardeinschränkungen eines Objekttyps sind Bestandteil der Typspezifikation.

So bearbeiten Sie die Methoden eines Objekttyps:

  Klicken Sie im Popup-Menü für einen Objekttyp im Objektnavigator (wird bei Windows mit der rechten Maustaste aufgerufen) auf Rumpf bearbeiten, um den Objektrumpf (Methoden) im Editor Gespeicherte Programmblöcke anzuzeigen.

Oder

  Klicken Sie in der Dropdown-Liste Name des Editors Gespeicherte Programmblöcke auf den Namen eines Objekttyps, um die Quelle anzuzeigen.


Benutzerdefinierten Oracle8-Datentyp löschen

  Verwandte Themen

In einem Meldungsfeld werden Sie zur Bestätigung aufgefordert, wenn Sie einen benutzerdefinierten Datentyp löschen.

So löschen Sie einen benutzerdefinierten Datentyp:

 Klicken Sie im Objektnavigator auf einen Objekttyp, Tabellentyp oder Variierenden Array-Typ, und wählen Sie dann Navigator [image] Löschen aus dem Menü, oder klicken Sie auf [image] in der Symbolleiste.

Oder

 Wählen Sie einen Typnamen aus der Dropdown-Liste Name im Editor Gespeicherte Programmblöcke, und klicken Sie dann auf Löschen, um den Typ zu löschen.

Hinweis:  Sie können keinen Typ löschen, der in einem anderen Datentyp, verschachtelten Objekt oder REF-Objekt referenziert wird. Die Referenzen müssen gelöscht werden, bevor Sie die Typdefinition löschen können.


Über benutzerdefinierte Oracle8-Datentypen

  Verwandte Themen

Oracle8 ist ein objekt-relationales Datenbankmanagementsystem, das heißt, Sie können zusätzliche Datenarten definieren – wobei Sie sowohl die Daten als auch die Bearbeitungsmethode der Daten angeben – und diese Arten dann innerhalb des relationalen Modells verwenden können.

Es gibt zwei Kategorien von benutzerdefinierten Datentypen: Objekttypen und Collection-Typen. Benutzerdefinierte Datentypen verwenden die vordefinierten Datentypen (wie z.B. CHAR, VARCHAR2 und NUMBER) und andere benutzerdefinierte Datentypen als Bausteine für Datentypen, die die Struktur und das Verhalten von Daten in Anwendungen modellieren.

Ein Objekttyp dient als Vorlage für Objekte. Ein Objekttyp gibt die Elemente (oder Attribute) an, aus denen eine strukturierte Dateneinheit besteht, wie z.B. eine Bestellung. Einige Attribute, wie z.B. die Liste mit Zeilenelementen, können andere strukturierte Dateneinheiten darstellen. Ein Objekttyp gibt auch die Vorgänge (oder Methoden) an, die Sie mit der Dateneinheit durchführen können, wie z.B. Ermitteln des Gesamtwertes einer Bestellung.

Mit Collection-Typen werden Dateneinheiten beschrieben, die aus einer unbestimmten Anzahl von Elementen bestehen, die alle denselben Datentyp aufweisen. Die Collection-Typen sind Variierende Array-Typen und Tabellentypen.

Ein Variierender Array-Typ gibt eine Dateneinheit mit der Bezeichnung VARRAY an, bei der es sich um eine geordnete Gruppe von Datenelementen handelt, die alle denselben Datentyp aufweisen. Die Anzahl von Elementen in einem VARRAY (oder deren Größe) ist variabel. Sie müssen jedoch eine maximale Größe angeben, wenn Sie den Variierenden Array-Typ deklarieren.

Ein Tabellentyp gibt eine Dateneinheit an, die als verschachtelte Tabelle bezeichnet wird, d.h. eine nicht geordnete Gruppe von Datenelementen, die alle denselben Datentyp aufweisen. Eine verschachtelte Tabelle hat eine einzelne Spalte, und der Typ dieser Spalte entspricht einem vordefinierten Typ oder einem Objekttyp.