Praktische Anwendungsentwicklung mit Oracle Forms

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Praktische Anwendungsentwicklung mit Oracle Forms"

Transkript

1 Perry Pakull, Stefan Jüssen, Walter Müller Praktische Anwendungsentwicklung mit Oracle Forms ISBN-10: ISBN-13: Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter sowie im Buchhandel

2 Inhalt Vorwort...XI Danksagung... XI Die Autoren...XIII 1 Grundlagen Oracle Forms Welche Bedeutung hat Oracle Forms? Was ist Oracle Forms? Einsatzbereiche von Oracle Forms Oracle Forms Developer Forms Builder Forms Compiler Forms Migration Assistant TranslationHub Java Design-Time API XML-Konverter Forms und Java Forms Services Forms Services Übersicht Unterschiede zur Client-Server-Architektur Integration mit dem Oracle Application Server Einbindung Forms Services in Oracle Developer Suite Oracle Forms intern Basiskonzepte Formulare Objekte und Properties Ereignisse und Trigger Navigation Ein einfaches Formular Standardfunktionalität Modultypen Dateitypen V

3 Inhalt 2 Architektur Technische Architektur Forms Client Oracle Application Server Forms Services Datenbank Ergänzende Dokumente Forms in Aktion Verbindungsaufbau Weitere Kommunikation Logische Architektur Forms Client Oracle Application Server Oracle Datenbank Logische Schichten Windows, Canvas & Co Standardverhalten von Formularen Standard-Layout Eigene Standards Zusammenspiel mehrerer Formulare Window und Canvas in Oracle Forms Window-Typen Eigenschaften von Window-Objekten Dynamische Verwaltung von Windows Der Canvas als Fensterhintergrund Canvas-Typen Eigenschaften von Canvas-Objekten Tab Pages Verwalten von Canvases im Layout-Editor Dynamische Verwaltung von Canvases Dynamische Verwaltung von Viewports Dynamische Verwaltung von Tab Pages Interaktion von Windows und Canvases Canvas Stacking Order Items zur Anzeige und Verwaltung der Daten Item-Typen Eigenschaften von Item-Objekten Dynamische Verwaltung von Items Daten Grundlagen Ein Beispiel Der lesende Zugriff Record Groups List of Values (LOV) List-Items...95 VI

4 Inhalt Globals Der ändernde Zugriff Interna Cursor Verwendung der ROWID Default Values in der Datenbank beim Insert Updates Returning Values Namensauflösung Verwendung von Views Abartigkeiten Concurrency PL/SQL PL/SQL in Oracle Forms Die Basis von PL/SQL PL/SQL-Programmeinheiten in Oracle Forms Technische Aspekte von PL/SQL PL/SQL-Entwicklung mit dem PL/SQL-Editor Variablen Data Items System-Variablen Globale Variablen Forms-Parameter Datentypen Forms Datentypen SQL- und PL/SQL-Datentypen Forms Built-In Packages PL/SQL Standards Warum sind Standards wichtig? Namensgebung Formatierung Organisation Techniken Komponenten und Wiederverwendbarkeit Einschränkung PL/SQL Code Definition, Ablage und Verwendung Herstellung der Objekte PL/SQL Libraries zuweisen Anonyme Blöcke Besonderheiten bei PL/SQL Libraries Ein Beispiel Objekte und ihre Properties Mehrfachnutzung VII

5 Inhalt Visual Attributes Referenzierung (Subclassing) Mitgelieferte Object und PL/SQL Libraries Grundlagen Erweiterung des Standardverhaltens Bearbeiten, Suchen, Präsentieren Erfassen Löschen Ändern Suchen Anpassen der Suche Präsentation Erweiterte Kontrollelemente Popup Menus Tooltips Calculated Items Hierarchical Trees Integration Client-Integration mit Java Pluggable Java Components JavaBeans WebUtil und JACOB Server-Integration mit Java Einbindung von Java-Klassen mit dem Java Importer Web Services Integration mit anderen Komponenten Oracle Reports Ergänzende Dokumente Qualität und Test Grundlagen Lösungsansatz Der praktische Weg Bestandteile der Dokumentation Abweichungsanalyse Eine PL/SQL Library Eine Object Library Ein Template Warnung Analyse und Dokumentation Analyse von Abhängigkeiten Object List Report XML-Konverter VIII

6 Inhalt Forms Java API Identifizieren von Performance-Problemen Forms Trace Servlet-Protokollierung Ein eigenes Werkzeug Analyse bekannter Fehler mit dem Debugger Grundlegende Funktionen Debugger starten Debugger beenden Die Kontrolle übernehmen Navigation innerhalb des Codes Breakpoints setzen und löschen Die Debug Console Alternativen Debuggen bedeutet nicht Testen! Forms Java API Grundlagen Verwendung mit dem JDeveloper Architektur Beispiele Erweiterung der Verarbeitung Eigenschaften von Items setzen Koordinatensystem anpassen WebUtil einbinden Trigger ergänzen Ergänzende Dokumente Konfiguration und Deployment Konfigurationswerkzeuge Konfigurationsdateien eine Übersicht HTTP Server OC4J Server Forms Services Konfigurationsaufgaben Konfigurationsabschnitt anlegen Icons überall anzeigen Virtuelles Verzeichnis anlegen Java Virtual Machine aktualisieren Aufbau einer Testumgebung für WebUtil Tastaturbelegung anpassen Deployment Verzeichnisse einer Forms-Applikation Zusammenstellen und Kopieren Generieren von Modulen auf dem Application Server Änderungen der Konfiguration IX

7 Inhalt 12.5 Infrastruktur-Anforderungen Ergänzende Dokumente und Referenzen Migration Migration oder Technologiewechsel Migrationsvorgehen Bestandsaufnahme Infrastruktur Migrationskonzept Die Umsetzung der Migration Test Produktivnahme Ergänzende Dokumente Ausblick Oracle Forms External Events Scheduled Pre-Start JavaScript-Integration Java Events Proxy User Support PL/SQL Tracing Performance Tuning Oracle Diagnostic Logging Support für Forms Services Ein Wort zum Schluss Literatur Register X

8 Perry Pakull, Stefan Jüssen, Walter Müller Praktische Anwendungsentwicklung mit Oracle Forms ISBN-10: ISBN-13: Leseprobe Weitere Informationen oder Bestellungen unter sowie im Buchhandel

9 1 1 Grundlagen In diesem Kapitel geben wir einen ersten Überblick über Oracle Forms, angefangen von der Entwicklungsumgebung mit den einzelnen Funktionen zur Erstellung und Bearbeitung von Forms-Modulen bis hin zur Laufzeitumgebung Forms Services. Details und Vertiefungen dazu folgen dann in den späteren Kapiteln. Für den Entwickler sind Grundlagen sehr wichtig, egal ob Einsteiger oder Fortgeschrittene. Der erfahrene Entwickler wird hier vermutlich keine wirklich neuen Erkenntnisse gewinnen, wohl aber das eine oder andere Detail zu seinem Wissen ergänzen. Für den Neu- oder Quereinsteiger stellt dieses Kapitel eine komprimierte Einführung in die Oracle-Forms-Programmierung dar. Das Kapitel beinhaltet folgende Themen: Welche Bedeutung hat Oracle Forms? Wofür wird Oracle Forms eingesetzt? Was ist Oracle Forms? Welche Möglichkeiten bietet Oracle Forms Developer für den Entwickler? Was sind typische Formulare und wie werden sie erstellt? Welche Standardfunktionalität bietet Oracle Forms? Was gehört zu einem Forms-Modul? 1.1 Oracle Forms Welche Bedeutung hat Oracle Forms? Oracle Forms gehört zusammen mit Oracle Reports und Oracle Designer in die Kategorie der traditionellen Entwicklungswerkzeuge von Oracle. Die ersten Versionen von Oracle Forms (damals noch SQL*Forms) waren zeichenorientierte Maskensysteme für einfarbige Terminals. Mit der Version 4 wurde dann erstmals eine grafische Benutzeroberfläche für Client-Server-Architekturen vorgestellt. Die Version 6i war nicht nur als Client-Server- Variante, sondern auch als Web-Applikation mit einer Mehrschichtarchitektur verfügbar. 1

10 1 Grundlagen Im September 2005 definierte Oracle in dem offiziellen Dokument Oracle Forms Oracle Reports Oracle Designer Statement of Direction [TSOD05] die künftige Strategie für diese Produkte. Aus diesem Artikel haben wir folgende wichtige Punkte zusammengefasst: Entwicklungsstrategie Die Entwicklungswerkzeuge sind ausgelegt für die Entwicklung von Enterprise- Applikationen basierend auf einer Mehrschichtarchitektur. Die vorhandenen Produkte wurden in die Kategorien traditionelle Entwicklungswerkzeuge und Java-Entwicklungswerkzeuge eingeteilt. Zu den traditionellen Entwicklungswerkzeugen gehören, wie bereits erwähnt, Oracle Forms, Oracle Reports und Oracle Designer. Für die Java-Entwicklung steht Oracle JDeveloper zur Verfügung. Alle Entwicklungswerkzeuge einschließlich JDeveloper sind als Produktgruppe in der Oracle Developer Suite verfügbar. Oracle Application Server wurde die einzige mögliche Laufzeitumgebung für alle Applikationen, basierend auf Oracle Entwicklungswerkzeugen. Oracle Forms ist kein eigenständiges Produkt mehr, sondern der Betrieb ist nur mit einer Oracle-Application-Server-Lizenz möglich. Seit Oracle Forms 9i können Forms- Applikationen nur noch als Web-Applikationen auf dem Oracle Application Server betrieben werden. Die Oracle-Produkte Developer Suite und Application Server sind dadurch eng miteinander verbunden. Die Weiterentwicklung der Software sieht kleinere Entwicklungsschritte für Oracle Forms, Oracle Reports und Oracle Designer mit verbesserter Integration in Oracle Application Server und Oracle Datenbank vor. Im Vordergrund stehen nicht neue Funktionen der Software, sondern mehr Stabilität, Offenheit für Standardtechnologien wie Java und XML sowie eine bessere Integration mit der Oracle-Application- Server-Umgebung. Die Installation von Forms und Reports Services war für Oracle Application Server 9i nur als Enterprise Edition möglich. Die Enterprise Edition erforderte die Installation einer Infrastruktur und eines Middle Tiers. Oracle Application Server 10g enthält erstmals eine spezifische Installationsvariante für Forms und Reports Services ohne Infrastruktur. Die neue Software für Oracle Developer Suite und Oracle Application Server ist fokussiert auf die bestmögliche Unterstützung für die Migration und das Upgrade von Oracle-Applikationen. Support der Produkte Der Support für Oracle Forms und Oracle Reports wird bis 2013 garantiert unabhängig davon, welche Version von Forms, Reports, der Developer Suite oder vom Application Server gerade aktuell sein sollte. Oracle Forms 6i ist die letzte Version, die Client-Server-Anwendungen und Character-Mode-Anwendungen unterstützt. Der erweiterte Support endet am

11 1.1 Oracle Forms Technische Empfehlungen für die Kunden Im Vordergrund steht die Migration der bestehenden Oracle-Applikationen in die neue Mehrschichtarchitektur, basierend auf Oracle Application Server, sowie ein Upgrade auf die jeweils neueste Oracle-Version. Oracle Application Server ist die Integrationsplattform für alle Applikationen basierend auf Oracle-Entwicklungsprodukten. Dadurch besteht die Möglichkeit, Oracle- Forms-Applikationen und Oracle-ADF-Applikationen miteinander zu verbinden. Durch den Java Importer erweitern sich die Integrationsmöglichkeiten von Oracle Forms, so dass auch andere Java-Applikationen und andere Application Server mit einbezogen werden können. Für die Entwicklung von neuen Applikationen stehen sowohl die traditionellen als auch die Java-Entwicklungswerkzeuge zur Verfügung. Beide können je nach Anforderung entsprechend eingesetzt werden, wobei die Fokussierung eindeutig im Java/J2EE-Umfeld liegt. Das Ziel bei den Java-Entwicklungswerkzeugen JDeveloper und ADF ist es, den Rapid-Application-Development-Ansatz der traditionellen Entwicklungswerkzeuge zu übernehmen und damit dem Oracle-Entwickler eine homogene Umgebung sowohl für die Forms- als auch für die Java-Welt zu bieten. Es hat in der Vergangenheit viele Diskussionen über diesen Artikel gegeben. 1 Der Verzicht auf die weitere Unterstützung der Client-Server-Architektur und die strategische und konsequente Neuausrichtung auf Mehrschichtarchitekturen sowie die Fokussierung auf J2EE- Technologien haben nicht nur Forms-Kunden, sondern auch Forms-Entwickler verunsichert, was die Zukunft der bestehenden Forms-Applikationen betrifft [Arch07]. Doch seitens Oracle ist der Weg in die Zukunft klar vorgegeben: Migration der bestehenden Forms-Applikationen auf die neue Architektur, Upgrade auf die neuesten Versionen und Integration mit neuen Technologien. Aus unserer Sicht bietet dieser Weg die besten Möglichkeiten, vorhandene Applikationen weiterhin sinnvoll einzusetzen. Die neue Architektur stellt nicht nur eine Weiche in der weiteren Entwicklung von Oracle Forms dar, sondern zieht eine klare Trennlinie, so schmerzhaft das für Client-Server-Anwendungen auch sein mag. Die Herausforderung für bestehende Forms-Applikationen ist die Umstellung auf die neue Mehrschichtarchitektur und die Integration mit anderen Technologien wie J2EE und.net. Haben Sie keine Angst, einen großen Schritt zu machen. Man kann einen Abgrund nicht in zwei kleinen Sprüngen überqueren. David Lloyd George ( ) In diesem Buch wollen wir zeigen, dass die aktuelle Version von Oracle Forms das Potenzial hat, moderne und leistungsfähige Applikationen im Oracle-Umfeld zu entwickeln. Modern, weil die Mehrschichtarchitektur und die Öffnung für Java-Technologien den 1 Die Blogs von Wilfred van der Deijl (OraTransplant) und Grant Ronald liefern spannende und anregende Beiträge aus aller Welt zum Thema Oracle Forms. 3

12 1 Grundlagen Anforderungen der aktuellen Software-Architektur entspricht. Leistungsfähig weil der deklarative und Datenbank-getriebene Ansatz von Oracle Forms die Anforderungen an komplexe Benutzeroberflächen optimal abdeckt. Das Potenzial liegt jedoch nicht nur in der Technik. Der jahrelange Einsatz der Software in vielen kleinen und großen Applikationen in den verschiedensten Branchen und die Anzahl der verfügbaren Entwickler mit Forms- Know-how machen Oracle Forms zu einer bewährten Technologie. Die Kombination aus Technik und Erfahrung macht Oracle Forms zu einem sehr produktiven Werkzeug Was ist Oracle Forms? Oracle Forms ist eine Sprache der vierten Generation, spezialisiert auf die Erstellung von Formularen basierend auf einer Oracle Datenbank. Ein Formular wird anhand der Attribute und Regeln einer Datenbanktabelle erzeugt. Für die Anbindung der Tabelle und die Definitionen des Layouts sind deklarierbare Strukturelemente in Oracle Forms vorhanden. Die Elemente sind eingebettet in einen standardisierten Rahmen von Funktionen und Abläufen, der durch Ereignisse gesteuert wird. Die Programmiersprache für Oracle Forms ist PL/SQL. Neben unserer Definition gibt es eine Reihe von allgemeinen Aussagen zum Thema Oracle Forms und 4GL, die wir hier ergänzen möchten. Fourth Generation Language Fourth generation language oder kurz 4GL bezeichnet Programmiersprachen der vierten Generation. Diese sind darauf ausgerichtet, rasch für einen bestimmten Anwendungsbereich (das heißt mit möglichst wenigen Code-Zeilen) Funktionen oder komplette Anwendungen schreiben zu können. Der Begriff 4GL ist nicht exakt definierbar und wird vor allem für Marketing-Zwecke eingesetzt. Gemeinsames Hauptziel aller 4GL ist es jedoch, im Vergleich mit Sprachen der dritten Generation dieselbe Funktionalität mit weniger Code zu erreichen. Der Begriff wurde in den 1980er Jahren häufig verwendet. Heute wird auch der Begriff Rapid Application Development (RAD) mit ähnlicher Semantik angewandt. In Sprachen der dritten Generation stand die Einführung von standardisierten Kontrollstrukturen im Vordergrund. Bei Sprachen der vierten Generation liegen zusätzlich Bausteine vorgefertigt vor, die häufig in spezialisierten Anwendungen vorkommen. Nicht mehr wie ein Problem gelöst wird, steht im Vordergrund, sondern was der Rechner machen muss, um dieses Problem zu lösen. Die Bezeichnung 4GL wurde stark von James Martin propagiert. Er benutzte sie in seinem Buch Application Development Without Programmers [Mart81]. Trotzdem würde sich die Mehrheit der Anwender von 4GL-Sprachen selbst doch als Programmierer bezeichnen, und die meisten 4GL-Sprachen enthalten auch eine Möglichkeit, um Programmierlogik in einer meist proprietären Drittgenerationssprache zu beschreiben. Nicht alle 4GL sind bzw. waren erfolgreich. Wenn aber eine Sprache der vierten Generation für den Zweck eingesetzt wird, für den sie gebaut ist, gab und gibt es auch spektakuläre Erfolge [Wikipedia, 4GL]. 4

13 1.1 Oracle Forms Gemäß Software Productivity Research gehört Oracle Forms zu den produktivsten 4GL- Sprachen überhaupt [SPR05]. Oracle selbst spricht heute nicht mehr von 4GL, sondern verwendet in Dokumenten den Begriff Rapid Application Development, um die Produktivität gegenüber Sprachen der dritten Generation zu betonen. Rapid Application Development Was bedeutet Rapid Application Development eigentlich bei Oracle Forms? Produktivität wird heute von jedem Entwicklungssystem erwartet; was aber macht ein System produktiv? Der Forms-Entwickler kann deklarativ sehr schnell und einfach ein lauffähiges Programm erzeugen, das heißt, er beschreibt, was sein Programm tun soll. Ein einfaches Formular, basierend auf einer Tabelle in einer Oracle Datenbank, kann mit den Wizards in Sekunden erstellt werden. Der Entwickler muss im Wesentlichen nur den Namen der Tabelle in der Datenbank und die Art des Formulars angeben, und die Wizards erzeugen automatisch die dafür notwendigen Objekte im Form-Modul. Die Funktionalität für das Formular Daten suchen, anzeigen, einfügen, ändern und löschen ist bereits vorhanden. Der Entwickler konzentriert sich auf das Was und nicht auf das Wie. Prototyping Die einfache Erstellung lauffähiger Anwendungen ermöglicht die Entwicklung von Prototypen für Applikationen oder Applikationsteile. Der spätere Benutzer kann damit bereits sehr früh auf die erzeugten Formulare zugreifen und den Entwicklungsprozess beeinflussen. Fourth Generation Environment Als Fourth generation environment kann man die Kombination von Oracle Designer und Oracle Forms ansehen. Oracle Designer bietet als CASE-Werkzeug nicht nur die Möglichkeit, Datenmodelle aus Metadaten zu generieren, sondern auch die dazugehörigen Anwendungen, wie zum Beispiel Formulare für Oracle Forms Einsatzbereiche von Oracle Forms Schon die allgemeinen Aussagen zu den 4GL-Werkzeugen deuten an, dass spezialisierte Werkzeuge wie Oracle Forms nur dort erfolgreich eingesetzt werden können, wo sie entsprechend ihrer Spezialisierung genutzt werden. Die Spezialisierung auf formularbasierte und datenintensive Benutzeroberflächen prädestiniert Oracle Forms für kommerzielle Informationssysteme. Dazu gehören Standard- oder Individuallösungen zur Abbildung von Geschäftsprozessen einzelner Unternehmen, wie zum Beispiel Warenwirtschaftssysteme, Stammdatenverwaltungen, Call-Center-Anwendungen usw. [Star05]. Dabei steht der Bezug zu einer Oracle Datenbank im Vordergrund. Eine der wichtigsten Voraussetzungen für den Einsatz von Oracle Forms ist die Verwendung von Oracle Datenbanken. Die Entwicklungswerkzeuge von Oracle bieten sicherlich die besten Entwicklungs- und Integrationsmöglichkeiten mit einer Oracle Datenbank. 5

14

15 4.1 Grundlagen 4 4 Daten Dieses Kapitel befasst sich mit der Datenversorgung und der Datenentsorgung eines Formulars. Primär fragen wir, woher Oracle Forms die Daten holt und was mit den Änderungen durch den Anwender geschieht. Die Themen dieses Kapitels sind auch für den fortgeschrittenen Entwickler interessant. Unter anderem geht es um die Beziehung zwischen Block und Tabelle List-Items, LOVs und Record Groups Globals, aber welche implizit verwendete Cursor Rowid oder nicht Extras bei Insert und Update Namensauflösung, der Wegweiser für Objekte die dringende Empfehlung: Views interessante Block Properties Forms und Concurrency 4.1 Grundlagen Ein Forms-Modul besteht aus einem oder mehreren Data Blocks und jeder Data Block aus einer Menge von Datensätzen oder Zeilen. Jeder Datensatz umfasst eine Menge von Items. Einem Data Block ist eine Tabelle (oder View) der Datenbank zugeordnet. Ein Datensatz repräsentiert einen Record dieser Tabelle. Ein Item zeigt uns den Inhalt einer Column eines Records der Tabelle. Oracle Forms stellt einen Satz von Standardfunktionen für das Anzeigen, Suchen, Ändern, Erstellen und Löschen von Datensätzen bereit. Das Ändern des Inhalts eines Items entspricht einer Änderung des Inhalts der Spalte einer Tabelle. Selbstverständlich nutzt Oracle Forms darüber hinaus weitestgehend die Funktionen der Datenbank, wie Transaktionslogik, Zugriffsschutz, Aufruf von PL/SQL, usw. Bei der Herstellung (Programmierung) eines Formulars legen wir in einem ersten, deklarativen Schritt Instanzen von vordefinierten Forms-Objekten an und steuern deren Verhalten 83

16 4 Daten durch Setzen von Properties (Forms erlaubt es uns nicht, eigene Objekte zu definieren oder die Struktur der Objekte zu ändern, indem wir beispielsweise neue Properties hinzufügen. Genauso wenig können wir bis auf eine Ausnahme Objektinstanzen zur Laufzeit eines Formulars dynamisch erzeugen). In einem zweiten Schritt können wir das so definierte Standardverhalten über Trigger mit selbst geschriebenem PL/SQL Code ergänzen. Dabei steht uns eine große Menge von Built-Ins für die Behandlung der Objekte zur Verfügung. 4.2 Ein Beispiel Im Folgenden erzeugen wir ein einfaches Formular unter ausschließlicher Verwendung der Wizards. Dieses Formular soll uns einige Spalten der Tabelle EMP anzeigen und zur Änderung anbieten. Die Schritte im Einzelnen: Als Vorarbeit richten wir uns auf dem Desktop unseres Rechners einen neuen Shortcut für den Forms Builder ein und setzen dessen Properties (siehe Abbildung 4.1). Abbildung 4.1 Shortcut Properties für den Aufruf des Form Builders Mit einem Doppelklick auf diesen Shortcut starten wir den Forms Builder. Da der Parameter USERID geeignet gesetzt ist, werden wir damit auch gegen das gewünschte Schema in der richtigen Datenbank angemeldet. Im bereits automatisch angelegten leeren Formular namens MODUL1 starten wir über das Menü den Block Wizard (siehe Abbildung 4.2). 84

17 4.2 Ein Beispiel Abbildung 4.2 Auswahl des Data Block Wizard Im nächsten Schritt bestätigen wir die Voreinstellung, dass dieser neue Block auf einer "Table or View" basieren soll. Im folgenden Bild geben wir zunächst den Namen der Tabelle EMP an. Nach Betätigen des Buttons "Refresh" sehen wir im Bereich "Available Columns" alle Spalten unserer Tabelle. Die Spalten, die unser Block enthalten soll, stehen im Bereich "Database Items". Über die Buttons ">", ">>", "<<", "<" können wir die Spalten zwischen den beiden Bereichen hin- und herschieben. Das Ergebnis zeigt Abbildung 4.3. Abbildung 4.3 Die Spalten der Tabelle EMP Im nächsten Schritt übernehmen wir den Blocknamen "EMP" unverändert. Damit haben wir einen Block namens "EMP" erstellt, der auf einer Tabelle EMP basiert und die Items "EMPNO", "ENAME", "HIREDATE", "SAL" und "COMM" enthält. Die restlichen Spalten der Tabelle EMP, nämlich "JOB", "MGR" und "DEPTNO", spielen in diesem Block keine Rolle. Somit steht unsere Datenkopplung. Im folgenden Schritt (Abbildung 4.4) lassen wir uns gerne für unsere bisherige Arbeit loben und übernehmen den Defaultwert " then call the Layout Wizard". 85

18 4 Daten Abbildung 4.4 Den Datenblock hätten wir geschafft. Wir nutzen den automatisch gestarteten Layout Wizard, um ein Layout festzuzurren. Den ersten Schritt übernehmen wir ohne Änderung. Im nächsten Schritt (Abbildung 4.5) legen wir fest, dass alle Items unseres Blocks angezeigt werden sollen. Sonst nehmen wir keine Änderungen vor. Abbildung 4.5 Wir wollen alles (sehen). 86

19 4.2 Ein Beispiel Den nächsten Schritt nutzen wir, um die Beschriftungen unserer Felder auf dem Formular zu ändern (Abbildung 4.6). Abbildung 4.6 Ein bisschen Outfit Im folgenden Fenster wählen wir als Darstellungsart "Tabular", um schließlich im letzten Fenster (Abbildung 4.7) eine Überschrift, die Anzahl der Datensätze, deren Abstand und einen Scrollbar zu wählen. Abbildung 4.7 Der finale Design-Schritt Wir speichern das Formular mit "Save as", generieren es mit CTRL+T und schauen uns das Ergebnis (Abbildung 4.8) im Browser unserer Wahl an. 87

20 4 Daten Abbildung 4.8 Was für ein schönes Formular! Natürlich gäbe es hier noch einiges zu ändern. Zum Beispiel eine ordentliche Formatierung des Datums, die rechtsbündige Ausrichtung der Feldinhalte "Gehalt" und "Provision" sowie deren Formatierung. Die Feldüberschriften in gleicher Weise wie die Feldinhalte auszurichten, würde unser Wohlgefallen deutlich steigern. Falls uns statt der Fensterüberschrift "WINDOW1" spontan etwas anderes einfällt und wir den Textbereich der Menüleiste vielleicht durch eher applikationsspezifische Begriffe ersetzen wollen, ließen sich diese Änderungen mit dem Layout-Editor bewerkstelligen. Doch fürs Erste wollen wir es gut sein lassen. Mit dieser Wizard-gestützten Vorgehensweise haben wir ein voll funktionsfähiges Formular geschaffen, mit dem die Daten einer Tabelle in der Datenbank manipuliert werden können. Im Folgenden wollen wir die Möglichkeiten, die uns Forms Builder für den lesenden und schreibenden Zugriff auf die Datenbank anbietet, etwas genauer betrachten. Hier sind wir versucht, erschöpfend statt genauer zu schreiben, doch hat uns der langjährige Umgang mit diesem mächtigen Werkzeug Bescheidenheit gelehrt. 4.3 Der lesende Zugriff Betrachten wir den Standardfall: Ein Block basiert auf einer Tabelle. Als Sonderfall kann es sich hier auch um eine temporäre Tabelle handeln. Statt einer Tabelle können Sie auch eine View angeben wie wir sehen werden, eine sehr praktische und elegante Vorgehensweise. Eher exotische Zugänge: Ein Block kann seine Daten über eine PL/SQL-Prozedur beschaffen. Diese Methode ist relativ aufwendig zu programmieren und verlangt nach einem geeigneten Generator. Sie ist nicht zu empfehlen. Wenn die Daten wirklich nur per PL/SQL Code bereitgestellt und/oder gespeichert werden können, sollte man als Alternative Views, die auf Table Functions basieren, prüfen. 88

21 4.3 Der lesende Zugriff from clause (in der Online Hilfe gelegentlich als sub-query bezeichnet) Als Datenquelle wird hier eine inline-view angegeben die spätestens nach erfolgreichem Test durch eine View in der Datenbank ersetzt wird. Eigentlich handelt es sich hierbei um einen Spezialfall, da jedes gültige SQL-Code- Fragment als Datenquelle angegeben werden kann. Forms versucht, daraus einen kompletten und gültigen SQL-Befehl abzuleiten (siehe unten). On-Select und On-Fetch Über diese beiden Trigger lässt sich ein Zugriff auf jede beliebige Datenquelle von Hand ausprogrammieren. Ein Beispielskelett dafür ist in der Online-Hilfe zum On- Fetch Trigger zu finden. Weitere Zugriffsarten: Control Block, Control Item Ein Block oder ein Item ohne Zuordnung zu einer Tabelle oder einer Spalte. Wird vorwiegend zur Speicherung von Zwischenwerten benutzt. Mirror Item Eine Möglichkeit, zwei oder mehr Items derselben Tabellenspalte zuzuordnen. Forms erledigt die erforderliche Synchronisation zwischen beiden Items (sowohl bei der Anzeige als auch bei der Eingabe). Lookups Wird beispielsweise verwendet, wenn zur Bankleitzahl der Name des zugehörigen Instituts angezeigt werden soll. Ein Standardeinsatzgebiet für in Packages organisierte serverseitige APIs. Record Groups Eine Art lokale (aber altertümlich zu programmierende) Tabelle. Hauptverwendungszweck dürften LOVs und Hierarchical Trees sein. Siehe Abschnitt List of Values (LOVs) Wird eingesetzt, wenn der Anwender aus einer großen Anzahl von möglichen Werten, die in einer geeigneten Tabelle der Datenbank abgelegt sind, den richtigen auswählen soll (siehe Abschnitt 4.3.2). List-Items Hiermit soll wie bei LOVs die Eingabemenge eingeschränkt werden, wobei die Menge der zulässigen Werte im Vergleich zu LOVs sehr klein ist (siehe Abschnitt 4.3.3). Formelspalten (Formula Items) Items, die über eine PL/SQL-Funktion oder eine Forms-eigene Summary-Funktion gefüllt werden. Parameter und Parameterlisten Geeignet für die Übergabe von Daten aus der Umgebung des Forms-Moduls, zum Beispiel von einem aufrufenden Modul oder von der Applikationsumgebung, oder für die Zwischenspeicherung von Daten. 89

22 4 Daten Globals Forms Globals genauso wie Package Globals für die Kommunikation zwischen Forms- Modulen und für das Zwischenspeichern von Werten (siehe Abschnitt 4.3.4). Built-In Package TOOL_ENV Für das Lesen von Umgebungsvariablen. Built-In Package TOOL_RES Für das Lesen von Einträgen in einer RES-Datei, einer speziell formatierten Binärdatei. Solche Dateien müssen mit dem Tool RSPA aus einer speziell strukturierten Textdatei erzeugt werden und können mit dem Tool RSPR wieder in eine Textdatei zurückgewandelt werden. (Hier sei allerdings die Frage erlaubt, warum Daten im Dateisystem des Betriebssystems abgelegt werden sollen, wenn man doch besser eine Datenbank benutzt). Built-In Funktion get_item_property(, database_value) Liefert den Inhalt eines Items, der mit der letzten Query aus der Datenbank geholt wurde oder NULL bei einem neuen Satz. Lesen aus einer Datei Möglich über das Built-In Package TEXT_IO, aber siehe Bemerkung zu TOOL_RES. Die in der Praxis am häufigsten verwendeten Varianten werden in den folgenden Abschnitten näher beschrieben Record Groups Eine Record Group ist eine Forms-interne Tabelle. Strukturell ähnelt sie einer Tabelle in der Datenbank. Sie existiert nur während der Laufzeit eines Formulars und verschwindet spätestens mit Ende einer Session. Der Zugriff erfolgt über spezielle Built-In-Funktionen. Record Groups werden für die Zwischenablage von Daten, als Basis für LOVs, List-Items und Items vom Typ Hierarchical Tree verwendet. Forms unterscheidet drei Typen von Record Groups: statisch Eine statische Record Group wird vom Programmierer aufgebaut. Sie kann zur Laufzeit nicht geändert werden, d.h., Struktur und Inhalt sind während der gesamten Lebenszeit einer Record Group/Formular unveränderlich. dynamisch, programmiert Die Record Group wird ausschließlich zur Laufzeit angelegt und gefüllt, d.h., Struktur und Inhalt werden komplett zur Laufzeit des Formulars behandelt. dynamisch, Query-basiert Die Record Group wird zum Programmierzeitpunkt angelegt und zur Laufzeit gefüllt. Die Struktur wird aus der Select-Liste eines SQL Select Statements abgeleitet, d.h., die Struktur ist fix und der Inhalt wird zur Laufzeit bearbeitet. Die statische Record Group ist nur von geringem Nutzen. In der Praxis ist sie kaum zu finden. Variante 2 dynamische, programmierte Record Groups ist einer der wenigen Fälle, 90

23 4.3 Der lesende Zugriff wo in Forms ein Objekt zur Laufzeit angelegt werden kann. (Bei Blöcken oder Items zum Beispiel sucht man diese Möglichkeit vergebens.) Variante 3 ist die am häufigsten verwendete Art. Die wichtigsten Built-Ins für die beiden dynamischen Typen: DELETE_GROUP löscht eine Record Group (nur Typ 2 ) CREATE_GROUP erstellt eine leere Record Group (nur Typ 2) ADD_GROUP_COLUMN fügt Spalten hinzu (nur Typ 2) Alternativ zu den beiden obigen Befehlen (CREATE_GROUP und ADD_GROUP_ COLUMN) kann CREATE_GROUP_FROM_QUERY verwendet werden. Dieses Built-In erstellt eine leere Record Group, gibt ihr die Struktur der Select-Liste des als Parameter angegebenen SQL Statements und speichert das SQL Statement bei der Record Group. Für das Füllen und Leeren gibt es die folgenden Verfahren: ADD_GROUP_ROW fügt eine Zeile ein (Typ2 und 3). DELETE_GROUP_ROW löscht eine oder alle Zeilen (Typ 2 und 3). SET_GROUP_xxx_CELL füllt einzelne Spalten; xxx steht für CHAR, DATE oder NUMBER, je nach Typ der Spalte. Oder die etwas bequemere Form: POPULATE_GROUP löscht den aktuellen Inhalt der Record Group, führt das zugewiesene SQL Statement aus und kopiert dessen Ergebnisse in die Record Group. (Bei Typ2 funktioniert dieser Aufruf natürlich nur, wenn mit CREATE_GROUP_FROM_ QUERY eine Query bereits zugewiesen wurde) POPULATE_GROUP_WITH_QUERY ersetzt das der Record Group zugewiesene SQL Statement durch das neu angegebene, löscht den Inhalt der Record Group und füllt sie mit dem Ergebnis des neuen SQL Statements. Dieses Built-In lässt die Satzstruktur der Record Group unverändert. Was bedeutet: Das neue SQL Statement muss zur Struktur der Record Group passen, d.h., der Datentyp der Spalten muss gleich bleiben oder mindestens durch implizite Typwandlung erreichbar sein: die Länge wird notfalls gekürzt. Es müssen alle Spalten, notfalls mit null, gefüllt sein. Die Angabe zusätzlicher Spalten ist möglich, aber nutzlos sie werden einfach verworfen. Das Lesen der Daten in einer Record Group erfolgt mit einem der drei Built-Ins GET_ GROUP_xxx_CELL; xxx steht für CHAR, DATE oder NUMBER, je nach Typ der Spalte. Schließlich gibt es noch zwei Sonderfälle für das Füllen einer Record Group: RETRIEVE_LIST kopiert den Inhalt eines List-Items in eine Record Group und POPULATE_GROUP_FROM_TREE kopiert den Inhalt eines (Sub-)Baums eines Items vom Typ Hierarchical Tree in eine Record Group. In beiden Fällen muss natürlich die Zielgruppe strukturell (Reihenfolge und Typ der Spalten) zur Datenquelle passen. Bewertung Der einzige wirklich sinnvolle Verwendungszweck für Record Groups ist ihr Einsatz als Datenspeicher für LOVs. 91

24 4 Daten List of Values (LOV) Der Anwender kann als Eingabehilfe ein LOV-Window aufrufen. Dieses modale Fenster enthält Daten, die es ihm erleichtern (sollen) den richtigen gewünschten Wert auszuwählen. Ein LOV-Window kann ein oder mehrere Spalten anzeigen und an das rufende Formular zurückgeben. Eine LOV bezieht ihre Daten aus einer Record Group. Mehrere LOVs können auf derselben Record Group basieren. Die LOV ihrerseits wird einem Item zugeordnet. Ein und dieselbe LOV kann mehreren Items zugeordnet werden. Zum Anlegen einer LOV sollte in den meisten Fällen ein Wizard benutzt werden. Dabei kann die zugehörige Record Group gleich mit erstellt werden. Die Zuordnung zu einem Item geschieht aber in jedem Fall manuell Outfit Wie kann der Anwender erkennen, dass zu einem Item eine LOV hinterlegt ist? Abbildung 4.9 zeigt die beiden markierten Elemente, wie Forms die Existenz einer LOV an der Oberfläche signalisiert. Abbildung 4.9 Anzeige der Existenz einer LOV im fertigen Formular In der Statuszeile sehen wir die so genannte "LOV Lamp", nämlich den Text "List of Valu ". Diese Variante wird standardmäßig angeboten. Voraussetzung ist natürlich, dass die Statuszeile nicht abgeschaltet ist (siehe Property Console Window auf Forms-Ebene). Die andere Methode, drei Punkte im Feld anzuzeigen, wird über den Eintrag "app.ui.lovbuttons=true" in der Konfigurationsdatei registry.dat eingestellt. Diese Datei steht auf dem Applikationsserver im Verzeichnis "forms/java/oracle/forms/registry". Die Pünktchen werden nur angezeigt, wenn das Item den Fokus hat (dummerweise wurde vergessen, diese Funktionalität auch für den Query-Modus zu programmieren). Gelegentlich sieht man auch die Lösung, neben dem Feld ein Icon vergleichbar dem Dropdown Button bei List-Items anzuzeigen. Neben der Tatsache, dass der Indikator explizit ausprogrammiert werden muss, sorgt der zusätzliche Button für Unruhe auf dem Bild. Diese Form des optischen Rauschens sollten Sie vermeiden. In Abbildung 4.10 sehen wir die zur Laufzeit des Formulars geöffnete LOV. Die möglichen Werte sind bereits auf die Managernummer, beginnend mit 778, eingeschränkt (per Autoreduction). 92

25 4.3 Der lesende Zugriff Abbildung 4.10 LOV zur Laufzeit Properties im Zusammenhang mit LOVs In Abbildung 4.11 sehen wir, wie eine LOV einem Item zugeordnet wird. Abbildung 4.11 Zuordnung der LOV "LOV_MGR:BY_NO" zu einem Item Abbildung 4.12 zeigt unter der Rubrik Functional die typischen Properties der LOV, einschließlich der hinter der Property Column Mapping Properties versteckten Abbildungsvorschriften. Abbildung 4.12 Properties der LOV mit ihren Spaltenzuordnungen 93

26 4 Daten Abbildung 4.13 Properties der zugehörigen Record Group In der Abbildung 4.13 werden die Properties der zu obiger LOV gehörenden Record Group dargestellt. Wenn Filter before Display auf Yes gesetzt ist, wird beim Start der LOV die Eingabe einer Einschränkung gefordert, mit der die Anzahl der möglichen Werte reduziert werden kann. Diese Funktion sollte man nur bei wirklich großen LOVs von einigen Zeilen verwenden. Der Anwender kann diese Aufforderung jedoch durch die Eingabe eines %- Zeichens sehr einfach umgehen. Die bessere Lösung ist aber die Programmierung eines Key-Listval-Triggers, mit der ein derartiger Aufruf definitiv verhindert werden kann. Ein ganz anderer Ansatz besteht darin, auf Forms-Ebene die Property Interaction Mode auf Non-Blocking zu setzen, so dass eine versehentlich gestartete, lang laufende LOV abgebrochen werden kann. Automatic Display = Yes führt dazu, dass die LOV immer geöffnet wird, wenn das Item den Fokus erhält. Eine wenig sinnvolle Operation. Automatic Refresh = Yes bewirkt, dass bei jedem Aufruf der LOV (auch beim Einsatz für die Validierung) die zugehörige Record Group neu aufgebaut wird. Das kann bei großen LOVs unter Umständen eine zeitaufwendige Aktion darstellen. Automatic Select =Yes schließt die LOV und gibt (einen oder alle) Werte zurück, wenn die LOV auf eine Zeile reduziert wurde. Sehr zu empfehlen. Automatic Skip = Yes macht einen automatisches Next-Field bei der Rückkehr aus der LOV. Sollte gesetzt sein. Automatic Position und Automatic Column Width sollten auf ihren Defaultwerten Yes gesetzt bleiben. Width und Height müssen entsprechend der Breite und Höhe der LOV gesetzt werden, die X Position und Y Position belassen wir auf den Defaultwerten 0, da wir Forms ja ohnehin angewiesen haben, die LOV automatisch zu positionieren. Das Fenster LOV Column Mapping ist der Ort, an dem wir die Spaltenbreite und die Spaltenüberschrift bestimmen. Außerdem legen wir hier fest, welche Daten der LOV in welche Formularfelder zurückgeschrieben werden sollen (die Spalte EMPNO ist hier dem Formularfeld EMP.MGR zugeordnet und was nicht sichtbar ist die Spalte ENAME dem Formularfeld EMP.MGR_NAME). 94

27 4.3 Der lesende Zugriff Spalten, die nicht angezeigt, aber trotzdem zurück geschrieben werden sollen, bekommen eine Display Width von 0 zugewiesen. Ein bisschen Spielen ist immer angesagt, um die optimale Breite des LOV-Fensters und von deren Spalten zu ermitteln Datenkopplung Wie ist eine LOV datenmäßig mit dem rufenden Formular gekoppelt? Der Inhalt des Items, dem die LOV zugeordnet ist, kann an die LOV übergeben werden und dient dort a) der Autoreduction und b) der Validierung (siehe unten). Alle von der Record Group gelieferten und von der LOV vielleicht angezeigten Felder können im Formular an die Items zurückgegeben werden. Autoreduction Eine interessante Eigenschaft der LOV ist die so genannte Autoreduction. Dabei wird die Menge der angezeigten Zeilen aufgrund der Eingabe durch die Anwender immer stärker eingeschränkt. In diese Funktionalität wird nur die erste dargestellte Spalte einbezogen. Autoreduction funktioniert nur, solange der Fokus im Datenbereich der LOV und nicht im Find-Feld liegt. Eine Sortierung der Sätze nach dem ersten angezeigten Begriff ist hilfreich, aber nicht erforderlich. Auch wenn es bei Autoreduction so aussieht, als ob eine wiederholte Query mit der zusätzlichen Einschränkung der Where-Klausel auf " 1. Feld like bisherige Eingabe % " durchgeführt wird, findet hier keine Kommunikation mit der Datenbank statt. Validierung Eine auf Item-Ebene gesetzte Property ist Validate from List. Mit ihr können Sie festlegen, dass Forms den eingegebenen Wert gegen die möglichen Werte des 1. Feldes in der LOV prüft. Wenn der Wert existiert und eindeutig ist, werden alle zugeordneten Felder der LOV an das Formular zurückgegeben. Wenn der Wert nicht existiert oder mehrmals vorkommt, wird die LOV automatisch geöffnet. Wenn der eingegebene Wert der Anfang eines der Werte im 1. Feld der LOV ist, wird die LOV bereits auf diesen Wert eingeschränkt. Diese Validierungsoperation erfolgt ohne Zugriff auf die Datenbank ausschließlich durch eine Prüfung gegen den Inhalt der Wertemenge der Record Group List-Items List-Items haben zwei Funktionen: Erstens wird bei der Anzeige der Inhalt des Feldes (häufig ein Fremdschlüssel) in einen anderen (häufig ein erläuternder Text zu einem Schlüssel) umgesetzt, und zweitens wird die Menge der zulässigen Eingabewerte auf die Menge der übersetzbaren Werte eingeschränkt. Nicht die Abteilungsnummer, sondern der Abteilungsname, nicht der Datenbank-interne Code "le" des Familienstandes, sondern dessen allgemein verständlicher Klartext "ledig" wird dargestellt und eingegeben. 95

28 4 Daten Der Entwickler legt fest, wie List-Items dargestellt werden sollen: als T-List (alle Alternativen sind immer sichtbar), als Poplist (der zulässige Wertevorrat wird erst bei Klick auf ein Anforderungs-Icon dargestellt) oder als Combobox (verhält sich wie eine Poplist, erlaubt aber die freie Eingabe auch nicht dargestellter Werte). Für die Übersetzung der Anzeige und die Einschränkung der Eingabewerte verwendet das List-Item eine (interne) Tabelle mit Anzeige-/Wertpaaren. Es gibt zwei Möglichkeiten, dem List-Item diese Tabelle bekannt zu geben: Statisch (eher selten genutzt) Der Entwickler legt eine fixe Menge von Anzeige-/Wertepaaren an. Diese Methode scheint immer dort angezeigt, wo sich diese Menge über die Lebensdauer des Systems als konstant darstellt (der oben genannte Familienstand dürfte in diese Kategorie fallen). Dynamisch Die Menge von Anzeige-/Wertepaaren wird dem List-Item zur Laufzeit des Formulars zugewiesen. Forms Builder bietet hierfür Built-In-Funktionen an: POPULATE_LIST ersetzt den Inhalt einer Liste mit dem Inhalt einer Record Group. ADD_LIST_ITEM erweitert die Menge der Anzeige-/Wertepaare um einen weiteren Eintrag. DELETE_LIST_ITEM löscht ein vorhandenes Anzeige-/Wertepaar. CLEAR_LIST löscht den Inhalt einer Liste. Forms beantwortet (im Prinzip) den Aufruf dieser Funktionen mit einer Fehlermeldung, wenn der Inhalt der Properties Initial Value oder Mapping of other Values nicht mehr in der geänderten Zuordnung auftaucht oder wenn der Block, zu dem das betroffene List-Item gehört, bereits gefüllt ist. Der häufigste Fall wird daher der Einsatz von POPULATE_LIST im Pre-Form Trigger sein. Ein Beispiel für den dynamischen Fall: Im Block "EMP" soll das List-Item "DEPTNO" mit dem Inhalt der Tabelle "DEPT" gefüllt werden. Diese Funktionalität wird aus einem Pre-Form-Trigger heraus aufgerufen. (Daraus resultiert dann auch, dass eine Änderung der Tabelle "DEPT" bis zum nächsten Start in unserem Formular keine Auswirkung auf den Inhalt des List-Items hat). Nicht betrachtet wird in diesem Beispiel die Behandlung eines Initialwertes für unser Item "DEPTNO". Listing 4.1 Der Pre-Form Trigger fillthelist('emp.deptno, 'select dname ' ' -- angezeigter Wert,to_char(deptno)' -- Inhalt des Feldes, -- muss vom Typ character sein 'from dept' 'order by dname'); -- Sortierung 96

29 4.3 Der lesende Zugriff Listing 4.2 Die Program Unit fillthelist procedure fillthelist(pitem in varchar2 -- das List Item,pSelect in varchar2 -- das Select Statement mit dem -- Inhalt für das List Item ) is -- record group deren Daten an das List Item zugewiesen werden rgid recordgroup; -- Variable um das Eregbnis des populate_grup ntmp number; begin -- erzeuge eine record group rgid := create_group_from_query('dummy', pselect); -- fülle die record group mit dem angegebenen SQL Statemant ntmp := populate_group(rgid); -- behandle einen Fehler if ntmp>0 then Fehlerbehandlung end if; -- ersetze den Inhalt des List Items mit dem Inhalt der record group Populate_list(pItem, rgid); -- lösche die record group delete_group(rgid); end; Ein zweites Beispiel für einen dynamischen Fall: Das List-Item "WOCHENTAG" soll die Namen der Wochentage anzeigen. Die entsprechende Spalte in der Datenbank enthält den klein geschriebenen Wochentagsnamen. Diese Liste soll beginnend mit dem morgigen Tag sieben Namen enthalten. Sie soll kalendergerecht sortiert sein: am Dienstag soll die Liste die Werte Mittwoch, Donnerstag,, Dienstag in dieser Reihenfolge anzeigen. Das List-Item soll ein obligatorisches Feld sein. Das folgende Codestück im Pre-Form Trigger macht's: declare wochentag varchar2(16); begin -- Leere die Liste clear_list('wochentag'); for i in 1..7 loop -- ermittle den nächsten Wochentagsname in deutscher Sprache wochentag:=to_char(sysdate+i,'day','nls_date_language=''german''') -- füge den Wochentagsname an der richtigen Position ein add_list_element('wochentag', i, wochentag,rtrim(lower(wochentag))); end loop; -- schalte die Property "Required" ein set_item_property('wochentag',required,property_true); end; Hinweise: Existiert ein Wert aus der Datenbankspalte nicht in der Umsetztabelle, dann zeigt Forms diesen Datensatz (ohne einen Hinweis zu geben!) nicht an. Forms ergänzt die Tabelle um einen Leersatz, falls das List-Item als optional definiert wurde (Property Required sitzt auf No). Im Query-Fall bietet Forms immer den leeren Wert an, um damit das List-Item von der Where-Klausel der Query auszuschließen. Forms prüft nicht auf Eindeutigkeit der Daten in der Umsetzungstabelle. Ein bisschen ( ) Mehraufwand erfordert das Setzen eines Defaultwerts. 97

30 4 Daten Globals Globale Variablen sind (nicht nur in Forms) ein sehr altes Konzept, um Werte über die Laufzeit eines Formulars hinaus aufzubewahren und/oder Daten zwischen Formularen zu transportieren. Forms Builder kennt für diese Aufgaben mehrere Verfahren: Forms Globals Gibt es immer schon; sie werden von der Forms Runtime als Speicherplatz vom Typ Character der maximalen Länge 4000 verwaltet. Package Globals Variablen, die in der Spezifikation eines Packages definiert werden. Parameter Parameter sind Forms-Objekte. Für die Übergabe an andere Formulare oder Reports können Parameter in einen Container, die Parameterliste, verpackt werden. Parameterlisten sind Forms-Objekte, die im Gegensatz zu den meisten anderen Forms-Objekten nur zur Laufzeit per PL/SQL angelegt werden können. Tabelle 4.1 zeigt einige Eigenschaften der drei Globaltypen. Wie man sehen kann, gibt es keine Ideallösung. Tabelle 4.1 Eigenschaften der verschiedenen Parametertypen Eigenschaft Forms Globals Package Globals Parameter Lebensdauer: Beginn mit der ersten Zuweisung Ende Ende der Forms Runtime (= Exit der letzten Formular) oder mit Aufruf des Built-Iin ERASE Sichtbarkeit für alle Formulare einer Forms Runtime mit dem ersten Zugriff auf das Package Ende der Session alle Formulare derselben Session typisiert nein (nur Typ character) ja, voller PL/SQL Umfang Defaultwerte nein (progammiert ja) ja ja mit dem Start der Formulare Exit der Formulare alle Formulare im selben Aufrufspfad ja, aber nur Character, Number oder Date Zugriff lesend/schreibend lesend/schreibend lesend/schreibend; eine Änderung wird nicht an die aufrufende Formular zurückgegeben. Zugriffsmethode direkt per global.xxx oder indirekt über NAME_IN, COPY oder DE- FAULT_VALUE direkt per package.xxx oder via Getter-/Setter Routinen direkt per parameter.xxx Forms Globals werden im Adressraum einer Instanz der Forms Runtime realisiert. Sie sind deshalb für alle Formulare sichtbar, die innerhalb ein und derselben Runtime laufen. Die fehlende Typisierbarkeit alle Globals sind vom Typ Character ist bisweilen lästig. 98

31 4.3 Der lesende Zugriff Das Ablegen von Zahlen mit Nachkommastellen scheint noch beherrschbar, beim Ablegen von Inhalten vom Typ Date oder Timestamp haben wir nur dann eine Chance, wenn wir grundsätzlich mit expliziter Typwandlung (TO_CHAR(..) und TO_DATE(..)) und dem immer gleichen Formatstring arbeiten. Der Versuch, auf eine Global, die noch nicht angelegt wurde, lesend zuzugreifen, führt zu einem Laufzeitfehler. "FRM-40815: Variable does not exist". Um diese offensichtliche Demonstration der eigenen fehlerbehafteten Arbeitsweise zu vermeiden, empfiehlt sich beim Zugriff auf eine Global, das folgende Codestück einzusetzen. Hier im Beispiel die Global "autoquery" in einem When-New-Form-Instance Trigger: -- wenn die global existiert, dann tu nix -- wenn sie nicht existiert, dann lege sie an und -- weise ihr den Wert yes zu default_value('no','global.autoquery'); -- ab jetzt kann gefahrlos auf global.autoquery zuggriffen werden if :global.autoquery='yes' then execute_query; end if; PL/SQL-Programme können auf eine globale Variable XXX mit der Notation ":global.xxx" lesend und schreibend zugreifen. Es können auch die Built-Ins für indirekte Adressierung NAME_IN ('global.xxx') zum Lesen, COPY ( wert,'global.xxx') zum Schreiben oder DEFAULT_VALUE ( wert,'global.xxx') zum bedingten Schreiben eingesetzt werden. Im Gegensatz zu Forms Globals stellen die Package Globals das modernere und elegantere Konzept dar. Sie haben keinen der Nachteile der Forms Globals; dafür andere: sie sind auf eine Session begrenzt. Wenn wir in einer Applikation mehrere Formulare gleichzeitig offen halten müssen und diese Formulare zum Beispiel aus Gründen der Concurrency in separaten Sessions laufen müssen, dann helfen uns Package Globals nichts, wenn diese Formulare Daten austauschen sollen. Die Entscheidung, ob auf diese Variablen direkt zugegriffen werden darf oder ob dafür Getter- und Setter-Routinen zu verwenden sind, sollte pragmatisch gefällt werden. Häufig hat man die Chance, einen lokalen Software-Engineering-Guru zu befragen oder auf bestehende Programmierrichtlinien zurückgreifen zu können. Parameter sind das jüngste Konstrukt. Sie sind Forms-Objekte und sie sind typisiert (immerhin haben wir CHARACTER, DATE und NUMBER; war da nicht noch was anderes?). Sie können mit Initialwerten belegt werden. Sie sind nicht von der Session abhängig. Sie stehen allen im Aufruf-Stack befindlichen Formularen zur Verfügung. Sie werden angelegt mit dem Start ihrer Formulare und verschwinden wieder, wenn ihr Formular geschlossen wird. Ihr Nachteil besteht darin, dass keine Daten aus dem gerufenen Formular an das rufende zurückgegeben werden können (ein Konzept, das wir auch von Umgebungsvariablen in Betriebssystemen kennen). Ein (Nutzen stiftendes) Alleinstellungsmerkmal ist auch, dass sie in der Property Initial Value eines Items eingetragen werden können. Das funktioniert allerdings nur, wenn sie 99

Praktische Anwendungsentwicklung mit Oracle Forms

Praktische Anwendungsentwicklung mit Oracle Forms Praktische Anwendungsentwicklung mit Oracle Forms von Perry Pakull, Stefan Jüssen, Walter H. Müller 1. Auflage Hanser München 2007 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 41098 5 Zu Leseprobe

Mehr

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

Oracle Forms. Aufbau und Bestandteile von Formularen. Erstellen eines neuen Blocks. Starten von Oracle Forms Oracle Forms Oracle Forms ist eine Applikation für den Entwurf und die Erstellung Forms-basierender Anwendungen. Diese Forms umfassen Dateneingabe-Formulare Datenabfrage-Formulare Browser-Formulare Oracle

Mehr

Praktische Anwendungsentwicklung mit Oracle Forms

Praktische Anwendungsentwicklung mit Oracle Forms Perry Pakull, Stefan Jüssen, Walter Müller Praktische Anwendungsentwicklung mit Oracle Forms ISBN-10: 3-446-41098-8 ISBN-13: 978-3-446-41098-5 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41098-5

Mehr

Inhaltsverzeichnis. 1 Grundsätzliche Überlegung. 2 Hinweis zur Installation

Inhaltsverzeichnis. 1 Grundsätzliche Überlegung. 2 Hinweis zur Installation Inhaltsverzeichnis 1 Grundsätzliche Überlegung...1 2 Hinweis zur Installation...1 3 Konfiguration von AutoDocument...2 3.1 Erfassung der Listeneinträge...2 3.2 Hinterlegung von Notizen...3 3.3 Definition

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

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

Aufbau und Bestandteile von Formularen. Oracle Forms. Erstellen eines neuen Blocks (1) Starten von Oracle Forms Oracle Forms Oracle Forms ist eine Applikation für den Entwurf und die Erstellung Forms-basierender Anwendungen. Diese Forms umfassen Dateneingabe-Formulare Datenabfrage-Formulare Browser-Formulare Oracle

Mehr

Handbuch TweetMeetsMage

Handbuch TweetMeetsMage Handbuch TweetMeetsMage für Version 0.1.0 Handbuch Version 0.1 Zuletzt geändert 21.01.2012 Inhaltsverzeichnis 1 Einleitung... 3 1.1 Voraussetzungen... 3 1.2 Funktionsübersicht... 3 2 Installation... 4

Mehr

Dieses System kann wachsen und sich anpassen, wenn die Anwender entsprechende Anforderungen definieren.

Dieses System kann wachsen und sich anpassen, wenn die Anwender entsprechende Anforderungen definieren. cadsfm Raumbuch Übersicht CADSFM bedeutet Facility Management der Firma CADS Support GmbH und ist eine Applikation zur Pflege und Verwaltung von Metadaten für AutoCAD-Gebäude- und Flächenpläne. Die bietet

Mehr

Kurzanleitung zu. von Daniel Jettka 18.11.2008

Kurzanleitung zu. von Daniel Jettka 18.11.2008 Kurzanleitung zu Tigris.org Open Source Software Engineering Tools von Daniel Jettka 18.11.2008 Inhaltsverzeichnis 1.Einführung...1 2.Das Projektarchivs...3 2.1.Anlegen des Projektarchivs...3 2.2.Organisation

Mehr

Anzeige des Java Error Stack in Oracle Forms

Anzeige des Java Error Stack in Oracle Forms Anzeige des Java Error Stack in Oracle Forms (Version 2.0) Juni 2008 Autoren: Jürgen Menge / Thomas Robert Seite 1 von 7 Oracle Forms bietet seit der Version 6i die Möglichkeit, serverseitig Java-Klassen

Mehr

DocuWare unter Windows 7

DocuWare unter Windows 7 DocuWare unter Windows 7 DocuWare läuft unter dem neuesten Microsoft-Betriebssystem Windows 7 problemlos. Es gibt jedoch einige Besonderheiten bei der Installation und Verwendung von DocuWare, die Sie

Mehr

Migrationserfahrung von Forms 6i nach Forms 9i. Christoph Frank MT AG, Ratingen

Migrationserfahrung von Forms 6i nach Forms 9i. Christoph Frank MT AG, Ratingen Migrationserfahrung von Forms 6i nach Forms 9i Christoph Frank MT AG, Ratingen Agenda Ausgangssituation Probleme Migrationswege Neue und veraltete Funktionen Forms 9i Einrichten Entwicklungsumgebung Vorgehensweise

Mehr

TYPO3 Redaktoren-Handbuch

TYPO3 Redaktoren-Handbuch TYPO3 Redaktoren-Handbuch Kontakt & Support: rdv interactive ag Arbonerstrasse 6 9300 Wittenbach Tel. 071 / 577 55 55 www.rdvi.ch Seite 1 von 38 Login http://213.196.148.40/typo3 Username: siehe Liste

Mehr

Information-Design-Tool

Information-Design-Tool Zusatzkapitel Information-Design-Tool zum Buch»HR-Reporting mit SAP «von Richard Haßmann, Anja Marxsen, Sven-Olaf Möller, Victor Gabriel Saiz Castillo Galileo Press, Bonn 2013 ISBN 978-3-8362-1986-0 Bonn

Mehr

Wirtschafts-Informatik-Wietzorek Ulmweg 7 73117 Wangen 31.10.2009. Programm zur komfortablen Datenauswertung der JTL-WAWI Betaversion

Wirtschafts-Informatik-Wietzorek Ulmweg 7 73117 Wangen 31.10.2009. Programm zur komfortablen Datenauswertung der JTL-WAWI Betaversion Cubeinfo Programm zur komfortablen Datenauswertung der JTL-WAWI Betaversion Kurzbeschreibung Diese Software ist Freeware und darf weitergegeben werden. Zum Öffen der ZIP- Files benötigen Sie ein Kennwort,

Mehr

KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13. Dokumentation KREDITVERZEICHNIS. Teil 2. Konfiguration

KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13. Dokumentation KREDITVERZEICHNIS. Teil 2. Konfiguration KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13 Dokumentation KREDITVERZEICHNIS Teil 2 Konfiguration Stand 20.02.2013 KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 2/13 Inhalt 1. KONFIGURATION...

Mehr

MindPlan 4. Installations- u. Update-Hinweise. MindPlan 4. Stand: 24. März 2014 Seite: 1/12

MindPlan 4. Installations- u. Update-Hinweise. MindPlan 4. Stand: 24. März 2014 Seite: 1/12 MindPlan 4 Stand: 24. März 2014 Seite: 1/12 Inhalt 1. Informationen zu MindPlan 4... 3 1.1. Neue Funktionen neues Layout... 3 1.2. Lizenzverwaltung (!! Neue Lizenzschlüssel erforderlich!!)... 3 1.2.1.

Mehr

5.1 Bestehende Projekte bearbeiten 79 5.2 Neue Projekte erstellen 85

5.1 Bestehende Projekte bearbeiten 79 5.2 Neue Projekte erstellen 85 Projekte per DOM bearbeiten KAPITEL 5 5.1 Bestehende Projekte bearbeiten 79 5.2 Neue Projekte erstellen 85 Bisher haben wir uns angesehen, wie List & Label mit Ihren Daten bekannt gemacht werden kann und

Mehr

Access [basics] Beispieldaten-Assistent. Beispieldatenbank. Installation. Tools Der Beispieldaten-Assistent

Access [basics] Beispieldaten-Assistent. Beispieldatenbank. Installation. Tools Der Beispieldaten-Assistent Beispieldaten-Assistent Jeder Access-Entwickler steht irgendwann vor der Situation, mal eben einige Beispieldatensätze zu seiner Anwendung hinzuzufügen. Wer keine Lust auf Fantasie-Einträge wie ASDF oder

Mehr

CAS genesisworld.exchange connect Abgleich von Adressen und Terminen

CAS genesisworld.exchange connect Abgleich von Adressen und Terminen Abgleich von Adressen und Terminen Stand Juni 2004 Was ist CAS genesisworld.exchange connect? Inhalt 1 Was ist CAS genesisworld.exchange connect?... 3 2 Systemvoraussetzungen... 5 2.1 Software...5 2.2

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Einrichten eines News-Systems in Typo3

Einrichten eines News-Systems in Typo3 Einrichten eines News-Systems in Typo3 Generelles: tt_news ist eine der beliebtesten Erweiterungen für Typo3 und wir bereits auf vielen Sites Vorarlberger Schulen verwendet: Beispiele: http://www.vobs.at/hsl

Mehr

Form Designer. Leitfaden

Form Designer. Leitfaden Leitfaden Copyright Die hier enthaltenen Angaben und Daten können ohne vorherige Ankündigung geändert werden. Die in den Beispielen verwendeten Namen und Daten sind frei erfunden, soweit nichts anderes

Mehr

4D v11 SQL Release 6 (11.6) ADDENDUM

4D v11 SQL Release 6 (11.6) ADDENDUM ADDENDUM Willkommen zu Release 6 von 4D v11 SQL. Dieses Dokument beschreibt die neuen Funktionalitäten und Änderungen der Version. Erweiterte Verschlüsselungsmöglichkeiten Release 6 von 4D v11 SQL erweitert

Mehr

PeDaS Personal Data Safe. - Bedienungsanleitung -

PeDaS Personal Data Safe. - Bedienungsanleitung - PeDaS Personal Data Safe - Bedienungsanleitung - PeDaS Bedienungsanleitung v1.0 1/12 OWITA GmbH 2008 1 Initialisierung einer neuen SmartCard Starten Sie die PeDaS-Anwendung, nachdem Sie eine neue noch

Mehr

Erweiterung der CRM-Datenbank für den Umgang mit Excel-Mappen. Automatisches Ausfüllen von MS-Excel-Vorlagen mit Daten aus organice

Erweiterung der CRM-Datenbank für den Umgang mit Excel-Mappen. Automatisches Ausfüllen von MS-Excel-Vorlagen mit Daten aus organice organice-excel-add-in 1 Erweiterung der CRM-Datenbank für den Umgang mit Excel-Mappen. Automatisches Ausfüllen von MS-Excel-Vorlagen mit Daten aus organice (Ein stichwortartiger Entwurf ) Systemvoraussetzungen:

Mehr

Betroffene Produkte: Alle Versionen von Oracle Forms (3.0-10g, C/S und Web), Oracle Clinical, Oracle Developer Suite

Betroffene Produkte: Alle Versionen von Oracle Forms (3.0-10g, C/S und Web), Oracle Clinical, Oracle Developer Suite Zusammenfassung: Alle Oracle Forms Anwendungen sind per Default durch SQL Injection angreifbar. Oracle Applications >=11.5.9 ist davon nicht betroffen, da hier standardmäßig der Wert FORMSxx_RESTRICT_ENTER_QUERY

Mehr

Vorwort... 2. Installation... 3. Hinweise zur Testversion... 4. Neuen Kunden anlegen... 5. Angebot und Aufmaß erstellen... 6. Rechnung erstellen...

Vorwort... 2. Installation... 3. Hinweise zur Testversion... 4. Neuen Kunden anlegen... 5. Angebot und Aufmaß erstellen... 6. Rechnung erstellen... Inhalt Vorwort... 2 Installation... 3 Hinweise zur Testversion... 4 Neuen Kunden anlegen... 5 Angebot und Aufmaß erstellen... 6 Rechnung erstellen... 13 Weitere Informationen... 16 1 Vorwort Wir freuen

Mehr

Die Erinnerungsfunktion in DokuExpert.net

Die Erinnerungsfunktion in DokuExpert.net in DokuExpert.net buchner documentation GmbH Lise-Meitner-Straße 1-7 D-24223 Schwentinental Tel 04307/81190 Fax 04307/811999 www.buchner.de Inhaltsverzeichnis 1. SINN UND ZWECK...3 2. ERINNERUNGEN ANLEGEN...3

Mehr

TermStar Gate für Word

TermStar Gate für Word TermStar Gate für Word Installation & Benutzung 2013-02 2013 STAR AG Alle Rechte vorbehalten. Die Verwendung der Texte und Bilder, auch auszugsweise, ist ohne schriftliche Zustimmung der STAR AG urheberrechtswidrig

Mehr

VisiScan 2011 für cobra 2011 www.papyrus-gmbh.de

VisiScan 2011 für cobra 2011 www.papyrus-gmbh.de Überblick Mit VisiScan für cobra scannen Sie Adressen von Visitenkarten direkt in Ihre Adress PLUS- bzw. CRM-Datenbank. Unterstützte Programmversionen cobra Adress PLUS cobra Adress PLUS/CRM 2011 Ältere

Mehr

Kurzeinführung Excel2App. Version 1.0.0

Kurzeinführung Excel2App. Version 1.0.0 Kurzeinführung Excel2App Version 1.0.0 Inhalt Einleitung Das Ausgangs-Excel Excel-Datei hochladen Excel-Datei konvertieren und importieren Ergebnis des Imports Spalten einfügen Fehleranalyse Import rückgängig

Mehr

G-Info Lizenzmanager

G-Info Lizenzmanager G-Info Lizenzmanager Version 4.0.1001.0 Allgemein Der G-Info Lizenzmanager besteht im wesentlichen aus einem Dienst, um G-Info Modulen (G-Info Data, G-Info View etc.; im folgenden Klienten genannt) zentral

Mehr

Anwenderdokumentation AccountPlus GWUPSTAT.EXE

Anwenderdokumentation AccountPlus GWUPSTAT.EXE AccountPlus Inhaltsverzeichnis Inhaltsverzeichnis Anwenderdokumentation AccountPlus GWUPSTAT.EXE (vorläufig) ab Version 6.01 INHALTSVERZEICHNIS...1 1 ALLGEMEINES...2 2 INSTALLATION UND PROGRAMMAUFRUF...2

Mehr

Dokumentation zur Anlage eines JDBC Senders

Dokumentation zur Anlage eines JDBC Senders Dokumentation zur Anlage eines JDBC Senders Mithilfe des JDBC Senders ist es möglich auf eine Datenbank zuzugreifen und mit reiner Query Datensätze auszulesen. Diese können anschließend beispielsweise

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Newssystem für den eigenen Lehrstuhl einrichten

Newssystem für den eigenen Lehrstuhl einrichten Newssystem für den eigenen Lehrstuhl einrichten Zunächst muss unterhalb des Lehrstuhlordners (im Beispiel Schulpädagogik) ein Neuer Ordner config angelegt werden: Der Dateiname des neuen Ordners sollte

Mehr

Debugging in APEX. Christina Funke Apps Associates GmbH Dortmund

Debugging in APEX. Christina Funke Apps Associates GmbH Dortmund Debugging in APEX Christina Funke Apps Associates GmbH Dortmund Schlüsselworte Oracle Application Express, APEX, Debugging, Debugging Collection, Remote Debugging mit SQL- Developer, Error Handling, benutzerfreundliche

Mehr

Regionaltreffen Rhein Main 26. März 2007

Regionaltreffen Rhein Main 26. März 2007 Regionaltreffen Rhein Main 26. März 2007 SWE Jens Fudickar / OraTool pro Softwareentwicklung Jens Fudickar ist ein kleines Softwarehaus, dessen Hauptprodukt das OraTool ist. Darüber hinaus sind wir in

Mehr

ESB - Elektronischer Service Bericht

ESB - Elektronischer Service Bericht Desk Software & Consulting GmbH ESB - Elektronischer Service Bericht Dokumentation des elektronischen Serviceberichts Matthias Hoffmann 25.04.2012 DESK Software und Consulting GmbH Im Heerfeld 2-4 35713

Mehr

SQL (Structured Query Language) Schemata Datentypen

SQL (Structured Query Language) Schemata Datentypen 2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente

Mehr

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt. Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,

Mehr

keimeno CMS Handbuch Stand 06/2012

keimeno CMS Handbuch Stand 06/2012 keimeno CMS Handbuch Stand 06/2012 INHALT Willkommen... 2 keimeno... 3 Der Aufbau... 3 Einrichten... 3 Themen anlegen und bearbeiten... 3 Kategorien... 7 Kategorien anlegen... 7 Kategorien Bearbeiten...

Mehr

If knowledge matters DOKUMENTENERSTELLUNG MIT SHAREPOINT LIBRARIES

If knowledge matters DOKUMENTENERSTELLUNG MIT SHAREPOINT LIBRARIES If knowledge matters DOKUMENTENERSTELLUNG MIT SHAREPOINT LIBRARIES Das Erstellen von Dokumenten mit Sharepoint Libraries bietet eine Reihe von Vorteilen gegenüber der traditionellen Arbeitsweise und dem

Mehr

Datenbanken für Online Untersuchungen

Datenbanken für Online Untersuchungen Datenbanken für Online Untersuchungen Im vorliegenden Text wird die Verwendung einer MySQL Datenbank für Online Untersuchungen beschrieben. Es wird davon ausgegangen, dass die Untersuchung aus mehreren

Mehr

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

Access 2013. Grundlagen für Anwender. Susanne Weber. 1. Ausgabe, 1. Aktualisierung, Juni 2013 Access 2013 Susanne Weber 1. Ausgabe, 1. Aktualisierung, Juni 2013 Grundlagen für Anwender ACC2013 2 Access 2013 - Grundlagen für Anwender 2 Mit Datenbanken arbeiten In diesem Kapitel erfahren Sie was

Mehr

Im Falle der Neueingabe müssen Sie in dem nachfolgendem Formular die Datenquelle auswählen und die Art der Prüfung festlegen.

Im Falle der Neueingabe müssen Sie in dem nachfolgendem Formular die Datenquelle auswählen und die Art der Prüfung festlegen. Ereignismanager Ereignismanager Ereignismanager - Grundsätzliches Allgemeines Mit Hilfe des Ereignismanagers können Sie Feldeingaben (bei Neueingaben oder Änderungen) überprüfen lassen. Sie können für

Mehr

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen

Mehr

TimeSafe Leistungserfassung

TimeSafe Leistungserfassung Keep your time safe. TimeSafe Leistungserfassung Adressimport 1/8 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 Allgemeines... 3 1.1 Adressen in der TimeSafe Leistungserfassung... 3 1.2 Organisationen und/oder

Mehr

Leitfaden Datensicherung und Datenrücksicherung

Leitfaden Datensicherung und Datenrücksicherung Leitfaden Datensicherung und Datenrücksicherung Inhaltsverzeichnis 1. Einführung - Das Datenbankverzeichnis von Advolux... 2 2. Die Datensicherung... 2 2.1 Advolux im lokalen Modus... 2 2.1.1 Manuelles

Mehr

PHP Kurs Online Kurs Analysten Programmierer Web PHP

PHP Kurs Online Kurs Analysten Programmierer Web PHP PHP Kurs Online Kurs Analysten Programmierer Web PHP Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses PHP Modul 1 - Einführung und Installation PHP-Umgebung Erste Lerneinheit Introduzione

Mehr

Literaturverwaltung mit Stud.IP

Literaturverwaltung mit Stud.IP Literaturverwaltung mit Stud.IP Voraussetzungen Account für Stud.IP an der Justus-Liebig-Universität Gießen (https://studip.uni-giessen.de) Kenntnisse im allgemeinen Umgang mit Stud.IP Beachten Sie, dass

Mehr

Programmbeschreibung PM_Admin1 Version 1.00 Build 0037 Juni 2015

Programmbeschreibung PM_Admin1 Version 1.00 Build 0037 Juni 2015 Programmbeschreibung PM_Admin1 Version 1.00 Build 0037 Juni 2015 PROMAN Software GmbH Zöchbauerstraße 9/18 1160 Wien Österreich Hotline: email: service@proman.at Tel: +43 1 478 05 67 S e i t e 1 16 Inhaltsverzeichnis

Mehr

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 Kapitel 33 Der xml-datentyp In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 995 996 Kapitel 33: Der xml-datentyp Eine der wichtigsten

Mehr

4 Vererbung, Polymorphie

4 Vererbung, Polymorphie 4 Vererbung, Polymorphie Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work

Mehr

Datenspooler Installationsanleitung Gültig ab Datenspooler-Version 2.2.20.X

Datenspooler Installationsanleitung Gültig ab Datenspooler-Version 2.2.20.X Datenspooler Installationsanleitung Gültig ab Datenspooler-Version 2.2.20.X Inhalt 1. Vorbedingungen... 4 2. Installation... 5 2.1. Umstellung von Datenspooler Version A.03.09 auf Datenspooler-Version

Mehr

EBW Systems HANDBUCH Offline Programm

EBW Systems HANDBUCH Offline Programm EBW Systems HANDBUCH Offline Programm Seite 1 von 7 Inhaltsverzeichnis 1. Programmsteuerung 2. Veranstaltungen verwalten 3. Daten absenden 4. Sonstige Hinweise Seite 2 von 7 1. Programmsteuerung Programm

Mehr

Die eigene, persönliche Webseite der Fakultät mittels Imperia (CMS) pflegen

Die eigene, persönliche Webseite der Fakultät mittels Imperia (CMS) pflegen Die eigene, persönliche Webseite der Fakultät mittels Imperia (CMS) pflegen 27.10.2004 Dipl.Ing. Dirk Osterkamp/@com 1 Die eigene, persönliche Webseite der Fakultät mittels Imperia (CMS) pflegen Zusammenhang

Mehr

Preisaktualisierungen via BC Pro-Catalogue

Preisaktualisierungen via BC Pro-Catalogue Preisaktualisierungen via BC Pro-Catalogue 1. Allgemein Seite 1 2. Anwendungsfall : Lieferant mit im System bereits vorhandenen Katalog Seite 2-3 3. Anwendungsfall : Neuer Lieferant Seite 4-8 1. Allgemein

Mehr

... Fenster und Content Canvases erstellen

... Fenster und Content Canvases erstellen 10... Fenster und Content Canvases erstellen Kapitel 10: Fenster und Content Canvases erstellen Ziele Am Ende dieser Unterrichtseinheit verfügen Sie über folgende Kenntnisse: Fenster und Content Canvases

Mehr

Ordner und Laufwerke aus dem Netzwerk einbinden

Ordner und Laufwerke aus dem Netzwerk einbinden Inhaltsverzeichnis 1. Einführung...2 2. Quellcomputer vorbereiten...3 2.1 Netzwerkeinstellungen...3 2.2 Ordner und Laufwerke freigeben...4 2.2.1 Einfache Freigabe...5 2.2.2 Erweiterte Freigabe...6 3. Zugriff

Mehr

VIVIT TQA Treffen in Köln am 18. 04. 2013. API- Programmierung und Nutzung bei HP Quality Center / ALM. Michael Oestereich IT Consultant QA

VIVIT TQA Treffen in Köln am 18. 04. 2013. API- Programmierung und Nutzung bei HP Quality Center / ALM. Michael Oestereich IT Consultant QA VIVIT TQA Treffen in Köln am 18. 04. 2013 API- Programmierung und Nutzung bei HP Quality Center / ALM Michael Oestereich IT Consultant QA Agenda Vorstellung der API- Versionen OTA- API SA- API REST- API

Mehr

Innovator 11 excellence. DDL importieren. Data-Definition-Language-Dateien in Datenbankschema importieren. HowTo. www.mid.de

Innovator 11 excellence. DDL importieren. Data-Definition-Language-Dateien in Datenbankschema importieren. HowTo. www.mid.de Innovator 11 excellence DDL importieren Data-Definition-Language-Dateien in Datenbankschema importieren HowTo www.mid.de Zweck In Innovator Data excellence können Sie mit dem DDL-Import Ihr physisches

Mehr

APEX 5.0 DOAG Mai 2014

APEX 5.0 DOAG Mai 2014 APEX 5.0 DOAG Mai 2014 APEX 5.0 16 Jahre MuniQSoft GmbH Tätigkeitsbereiche: Oracle Support Hotline: Mo-Fr 8.00 18.00 Uhr Erweiterung um Rufbereitschaft auch am Wochenende möglich Oracle IT-Consulting &

Mehr

Dokumentation Authentische Strukturdaten

Dokumentation Authentische Strukturdaten Dokumentation Version 1.1 Version 1.0 Seite 1/18 31.10.2008 Inhaltsverzeichnis 1. Allgemeines...3 1.1 Phasenmodell...3 1.1.1 Phase I...3 1.1.2 Phase II...3 1.1.3 Phase III...3 1.2 Datenaktualität...3 2.

Mehr

Einbinden von iframes in eine Facebook Fan Page

Einbinden von iframes in eine Facebook Fan Page Eine kostenlose Ergänzung zum Buch: Facebook Fan Pages von Boris Pfeiffer 2011, Smiling Cat Publishing GmbH Einbinden von iframes in eine Facebook Fan Page Facebook hat mit der Einführung der neuen Fan

Mehr

Access Grundlagen. David Singh

Access Grundlagen. David Singh Access Grundlagen David Singh Inhalt Access... 2 Access Datenbank erstellen... 2 Tabellenelemente... 2 Tabellen verbinden... 2 Bericht gestalten... 3 Abfragen... 3 Tabellen aktualisieren... 4 Allgemein...

Mehr

Mobile Analytics mit Oracle BI - was steckt in den Apps?

Mobile Analytics mit Oracle BI - was steckt in den Apps? Mobile Analytics mit Oracle BI - was steckt in den Apps? Schlüsselworte Oracle BI, OBIEE, Mobile, Analytics Einleitung Gerd Aiglstorfer G.A. itbs GmbH Eching Oracle erweiterte im Laufe dieses Jahres das

Mehr

Tipps & Tricks für den WSA Websiteadministrator

Tipps & Tricks für den WSA Websiteadministrator Seite 1 Tipps & Tricks für den WSA Websiteadministrator Inhaltsverzeichnis 1. Einleitung... 1 2. Kurzüberblick zum Aufbau des WSA Tools... 2 2.1 Benutzeroberfläche... 2 3. WSA-Tool als HTML Editor... 4

Mehr

Erweiterung für Premium Auszeichnung

Erweiterung für Premium Auszeichnung Anforderungen Beliebige Inhalte sollen im System als Premium Inhalt gekennzeichnet werden können Premium Inhalte sollen weiterhin für unberechtigte Benutzer sichtbar sein, allerdings nur ein bestimmter

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

PC Software PZE-TRM21-WIN Zeiterfassung und Anwesenheits-Check mit Terminals, RFID und SQL Client

PC Software PZE-TRM21-WIN Zeiterfassung und Anwesenheits-Check mit Terminals, RFID und SQL Client PC Software PZE-TRM21-WIN Zeiterfassung und Anwesenheits-Check mit Terminals, RFID und SQL Client DOC PZESQL2010 - AE SYSTEME www.terminal-systems.de Seite 1 Inhaltsverzeichnis PZETRM21-WIN. PC Programm...3

Mehr

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. 1 In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. Zunächst stellt sich die Frage: Warum soll ich mich mit der Architektur eines DBMS beschäftigen?

Mehr

Access 2000 und MS SQL Server im Teamwork

Access 2000 und MS SQL Server im Teamwork Access 2000 und MS SQL Server im Teamwork von Irene Bauder, Jürgen Bär 1. Auflage Hanser München 2000 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 21473 6 Zu Inhaltsverzeichnis schnell und

Mehr

SOFiSTiK Online. Anwendungsbeschreibung. Stand 14. April 2010

SOFiSTiK Online. Anwendungsbeschreibung. Stand 14. April 2010 Anwendungsbeschreibung Stand 14. April 2010 SOFiSTiK AG 2008 Inhaltsverzeichnis 1 Möglichkeiten und Ziele... 1 2 User-Administrator... 2 3 Anmeldung... 2 4 Meine Daten... 3 5 Ticket Tracker... 4 6 Support/Sales

Mehr

Programmfehler / Verbesserungen

Programmfehler / Verbesserungen Hinweise zur Installation von NdAuxio Lesen Sie sich die Datei NdAuxio.pdf im Doc-Verzeichnis durch. Sie enthält weitere Angaben zum Programmstart mit Parametern usw. Inhaltsverzeichnis Programmfehler

Mehr

Filterregeln... 1. Einführung... 1. Migration der bestehenden Filterregeln...1. Alle eingehenden Nachrichten weiterleiten...2

Filterregeln... 1. Einführung... 1. Migration der bestehenden Filterregeln...1. Alle eingehenden Nachrichten weiterleiten...2 Jörg Kapelle 15:19:08 Filterregeln Inhaltsverzeichnis Filterregeln... 1 Einführung... 1 Migration der bestehenden Filterregeln...1 Alle eingehenden Nachrichten weiterleiten...2 Abwesenheitsbenachrichtigung...2

Mehr

Microsoft SharePoint 2013 Designer

Microsoft SharePoint 2013 Designer Microsoft SharePoint 2013 Designer Was ist SharePoint? SharePoint Designer 2013 Vorteile SharePoint Designer Funktionen.Net 4.0 Workflow Infrastruktur Integration von Stages Visuelle Designer Copy & Paste

Mehr

Access 2010. für Windows. Ricardo Hernández García 1. Ausgabe, 1. Aktualisierung, Dezember 2011. Automatisierung, Programmierung ACC2010P

Access 2010. für Windows. Ricardo Hernández García 1. Ausgabe, 1. Aktualisierung, Dezember 2011. Automatisierung, Programmierung ACC2010P Ricardo Hernández García 1. Ausgabe, 1. Aktualisierung, Dezember 2011 Access 2010 für Windows Automatisierung, Programmierung ACC2010P 4 Access 2010 für Windows - Automatisierung, Programmierung 4 Mit

Mehr

FAHRZEUGNET AG Telefon 071 620 30 00 Rathausstrasse 37 Fax 071 620 30 01 8570 Weinfelden info@fahrzeugnet.ch Garage-Homepage

FAHRZEUGNET AG Telefon 071 620 30 00 Rathausstrasse 37 Fax 071 620 30 01 8570 Weinfelden info@fahrzeugnet.ch Garage-Homepage FAHRZEUGNET AG Telefon 071 620 30 00 Rathausstrasse 37 Fax 071 620 30 01 8570 Weinfelden info@fahrzeugnet.ch Garage-Homepage Bedienungsanleitung Redaxo CMS Inhaltsverzeichnis Inhaltsverzeichnis... 2 Kapitel

Mehr

ODBC-Treiber 1. 1.1 Programmübersicht

ODBC-Treiber 1. 1.1 Programmübersicht 1 O D B C - Treiber ODBC-Treiber 1 1.1 Programmübersicht Nach einer ausgiebigen Testphase wurde kürzlich der neue ODBC-Treiber freigegeben. Dieser ist somit ab der 2000-er-Version lizenzpflichtig und kann

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

Jetzt wird auf die Zahl 2 geklickt und die Höhe der Zeile 2 eingestellt. Die Vorgehensweise ist wie

Jetzt wird auf die Zahl 2 geklickt und die Höhe der Zeile 2 eingestellt. Die Vorgehensweise ist wie Hergestellt nur für den privaten Gebrauch von Harry Wenzel. w Kopieren Vervielfältigen nur mit Genehmigung des Verfassers! apple Mit Excel einen Kalender für das Jahr 2013 erstellen. Vorab erst noch ein

Mehr

Dirk Nachbar (dirk.nachbar@trivadis.com)

Dirk Nachbar (dirk.nachbar@trivadis.com) Betrifft: Autor: Art der Info: Quelle: XSQL Servlet und FOP Dirk Nachbar (dirk.nachbar@trivadis.com) Technische Background Info Aus unserer Projekt- und Schulungserfahrung http://xml.apache.org/fop, http://www.xml.com,

Mehr

Menüs und Sprache in M-Plot konfigurieren

Menüs und Sprache in M-Plot konfigurieren Einsteiger Fortgeschrittene Profis markus.meinl@m-quest.ch Version.0 Voraussetzungen für diesen Workshop Die M-Quest Suite 005 oder höher ist auf einem Rechner installiert Das Produkt M-Plot Suite ist

Mehr

Scripting Framework PowerShell Toolkit Quick-Install a Workplace for Packaging and Test

Scripting Framework PowerShell Toolkit Quick-Install a Workplace for Packaging and Test Scripting Framework PowerShell Toolkit Quick-Install a Workplace for Packaging and Test Windows Client Management AG Alte Haslenstrasse 5 CH-9053 Teufen wincm.ch 1 Quick Install - Scripting Framework Workplace...3

Mehr

PRAXISBUTLER ANPASSUNG DER VORLAGEN

PRAXISBUTLER ANPASSUNG DER VORLAGEN Praxisbutler Anpassung der Vorlagen 1 PRAXISBUTLER ANPASSUNG DER VORLAGEN Die Vorlagen werden hauptsächlich in den Bereichen Klienten und Fakturierung benutzt. Die Anpassung dieser Vorlagen ist wichtig,

Mehr

CARL HANSER VERLAG. Christopher Allen. Oracle PL/SQL für Einsteiger Der Einsatz von SQL und PL/SQL in der Oracle-Datenbank 3-446-21801-7

CARL HANSER VERLAG. Christopher Allen. Oracle PL/SQL für Einsteiger Der Einsatz von SQL und PL/SQL in der Oracle-Datenbank 3-446-21801-7 CARL HANSER VERLAG Christopher Allen Oracle PL/SQL für Einsteiger Der Einsatz von SQL und PL/SQL in der Oracle-Datenbank 3-446-21801-7 www.hanser.de Inhaltsverzeichnis Danksagung...XI Einleitung...XIII

Mehr

Datenbanken. Ein DBS besteht aus zwei Teilen:

Datenbanken. Ein DBS besteht aus zwei Teilen: Datenbanken Wikipedia gibt unter http://de.wikipedia.org/wiki/datenbank einen kompakten Einblick in die Welt der Datenbanken, Datenbanksysteme, Datenbankmanagementsysteme & Co: Ein Datenbanksystem (DBS)

Mehr

Bedienungsanleitung. Version 2.0. Aufruf des Online-Update-Managers. Bedienungsanleitung Online-Update Stand Juni 2010

Bedienungsanleitung. Version 2.0. Aufruf des Online-Update-Managers. Bedienungsanleitung Online-Update Stand Juni 2010 Bedienungsanleitung Online-Update Version 2.0 Aufruf des Online-Update-Managers Von Haus aus ist der Online-Update-Manager so eingestellt, dass die Updates automatisch heruntergeladen werden. An jedem

Mehr

Informatik Kurs 12 André Hoffmann. Delphi. Einführung in die Windows- Programmierung

Informatik Kurs 12 André Hoffmann. Delphi. Einführung in die Windows- Programmierung Informatik Kurs 12 André Hoffmann Delphi Einführung in die Windows- Programmierung Grundlagen Entwicklung von Windows-Programmen Relativ unkompliziert durch typische, vorgefertigte Elemente Programmiertechnische

Mehr

Installationsbeschreibung. Version 4.2. Installationsbeschreibung 4.2 - Seite 1 von 6

Installationsbeschreibung. Version 4.2. Installationsbeschreibung 4.2 - Seite 1 von 6 Installationsbeschreibung Version 4.2 Installationsbeschreibung 4.2 - Seite 1 von 6 Installation auf einem Einzelplatz-System Dieser Abschnitt beschreibt, wie Sie die Installation durchführen, wenn die

Mehr

Installationsanleitung CLX.PayMaker Office

Installationsanleitung CLX.PayMaker Office Installationsanleitung CLX.PayMaker Office Inhaltsverzeichnis 1. Installation und Datenübernahme... 2 2. Erste Schritte Verbindung zur Bank einrichten und Kontoinformationen beziehen... 4 3. Einrichtung

Mehr

hyscore Sollwerte-Import Version 3.1.6, September 2007

hyscore Sollwerte-Import Version 3.1.6, September 2007 Kurzanleitung In hyscore 3.1.6 haben wir den Import von Sollwerten für Kennzahlen wesentlich vereinfacht. Zuvor mußten alle Sollwerte, Schwellwerte und Prozentwerte für jede Kennzahl und jedes Datum in

Mehr

Anmerkungen zur Erstellung, dem automatisierten Versand und der automatisierten Auswertung von pdf-formularen

Anmerkungen zur Erstellung, dem automatisierten Versand und der automatisierten Auswertung von pdf-formularen Anmerkungen zur Erstellung, dem automatisierten Versand und der automatisierten Auswertung von pdf-formularen Vorbemerkung Häufig besteht die Notwendigkeit pdf-formulare Kunden, Mitarbeitern etc. zur Verfügung

Mehr

Grundlagen der Informatik 2

Grundlagen der Informatik 2 Grundlagen der Informatik 2 Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Gliederung 1. Einführung

Mehr

Berechtigungsgruppen und Zeitzonen

Berechtigungsgruppen und Zeitzonen Berechtigungsgruppen und Zeitzonen Übersicht Berechtigungsgruppen sind ein Kernelement von Net2. Jede Gruppe definiert die Beziehung zwischen den Türen des Systems und den Zeiten, zu denen Benutzer durch

Mehr

Übung 1: Ein Haupt-/Unterformular mit dem Formular-Assistenten erstellen

Übung 1: Ein Haupt-/Unterformular mit dem Formular-Assistenten erstellen Übung 1: Ein Haupt-/Unterformular mit dem Formular-Assistenten erstellen Problem: In relationalen Datenbanken verteilen sich die Informationen i.d.r. auf mehrere Tabellen. Die Eingabe neuer Daten und die

Mehr