SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Validierungstrigger können navigieren 
Gerd Volberg 
OPITZ CONSULTING Deutschland GmbH 
Essen, 21. Oktober 2014 
© Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 1
Einleitung 
1. Validierungstrigger in Oracle Forms erlauben nur die 
Verwendung von unrestricted Built-Ins. Eine Navigation mit 
go_item oder go_block ist jedoch immer restricted und somit 
nicht erlaubt. 
2. Der Vortrag zeigt, wie man mit einfachen Mitteln die Navigation 
aus dem Validierungs-Trigger extrahiert und in einem eigenen 
Trigger startet. 
© Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 2
Problemstellung 
Filter und Datenblock sollen synchron arbeiten 
 Sobald ich in einem Filter einen Wert eingebe, sollen die Daten im 
Mitarbeiter-Block neu selektiert werden: 
© Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 3
Filter und Datenblock sollen synchron arbeiten 
Lösung 1 mit KEY-NEXT-ITEM 
 Problem: Mausnavigation funktioniert nicht 
© Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 4
Filter und Datenblock sollen synchron arbeiten 
Lösung 2 mit WHEN-NEW-ITEM-INSTANCE 
 Problem: Unübersichtlich viele Trigger, Wartbarkeit ungenügend 
© Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 5
Filter und Datenblock sollen synchron arbeiten 
Lösung 3 mit PRE- und POST-TEXTITEM 
 Problem: Sehr viele Trigger + restricted Built-Ins 
© Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 6
Filter und Datenblock sollen synchron arbeiten 
Lösung 4 mit WHEN-VALIDATE-ITEM 
 Problem: Erlaubt nur unrestricted Built-Ins 
© Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 7
WHEN-VALIDATE-ITEM 
WHEN-VALIDATE-ITEM erlaubt nur unrestricted Built-Ins ? 
 Streng genommen ist ein Validierungstrigger nicht in der Lage in einen 
anderen Block zu navigieren und dort eine Query zu starten. 
 Entkoppelt man jedoch die Ausführung der Navigation vom 
Validierungsvorgang durch einen Timer, dann sieht das ganz anders aus. 
© Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 8
Was brauchen wir für diese Lösung? 
1. Einen WHEN-TIMER-EXPIRED auf FORM-Ebene 
© Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 9 
DECLARE 
V_Item VARCHAR2 (61); 
BEGIN 
V_Item := :SYSTEM.CURSOR_ITEM; 
IF One_Time_Timer.Get_Value = Const.ott_Query_in_EMP THEN 
Go_Block ('EMP'); 
Execute_Query; 
Go_Item (V_Item); 
ELSIF One_Time_Timer.Get_Value = ... THEN 
... 
END IF; 
END;
Was brauchen wir für diese Lösung? 
2. Ein Konstanten-Package 
PACKAGE Const IS 
© Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 10 
-- Globals 
gbl_One_Time_Timer 
CONSTANT VARCHAR2 (61) := 'GLOBAL.ONE_TIME_TIMER'; 
-- One-Time-Timer 
ott_Query_in_EMP 
CONSTANT VARCHAR2 (30) := 'Starte Query im EMP-Block'; 
ott_Something_Else 
CONSTANT VARCHAR2 (30) := 'Something else'; 
END;
Was brauchen wir für diese Lösung? 
3. Das Package One_Time_Timer 
PACKAGE One_Time_Timer IS 
FUNCTION Get_Value RETURN VARCHAR2; 
PROCEDURE Initialize (P_Event IN VARCHAR2); 
© Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 11 
END; 
PACKAGE BODY One_Time_Timer IS 
FUNCTION Get_Value RETURN VARCHAR2 IS 
BEGIN 
Default_Value (NULL, 
Const.gbl_One_Time_Timer); 
RETURN (NAME_IN (Const.gbl_One_Time_Timer)); 
END;
Was brauchen wir für diese Lösung? 
3. Das Package One_Time_Timer (cont.) 
PROCEDURE Initialize (P_Event IN VARCHAR2) IS 
tm_id timer; 
tm_name VARCHAR2 (30) := 'ONE_TIME_TIMER'; 
© Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 12 
BEGIN 
tm_id := Find_Timer (tm_name); 
IF ID_Null (tm_id) THEN 
tm_id := Create_Timer (tm_name, 10, 
NO_REPEAT); 
COPY (p_Event, Const.gbl_One_Time_Timer); 
END IF; 
END; 
END One_Time_Timer;
Was brauchen wir für diese Lösung? 
4. Einen FILTER-Block und einen MITARBEITER-Block 
© Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 13
Was brauchen wir für diese Lösung? 
5. Anpassung der WHERE-Klausel im Block MITARBEITER 
© Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 14
Was brauchen wir für diese Lösung? 
6. Einen WHEN-VALIDATE-ITEM auf Block-Ebene 
© Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 15 
BEGIN 
One_Time_Timer.Initialize (Const.ott_Query_in_EMP); 
END;
(Live) - Demo 
© Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 16 
Start
(Live) - Demo 
Eingabe von „Sch“ im Filterfeld „Name“ 
© Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 17
(Live) - Demo 
Danach Mausklick ins Feld „Mitarbeiter“ 
© Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 18
Abarbeitungs-Reihenfolge 
© Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 19
© Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 20 
Fazit 
Wo kann diese Technik überall eingesetzt werden? 
1. Validierung und Navigation 
2. Java-Beans und WHEN-NEW-FORM-INSTANCE 
3. Alle Trigger, in denen nur unrestricted Built-Ins erlaubt 
sind, die man asynchron auslagern möchte
© Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 21 
Download 
Das Package inkl. Powerpoint liegen unter folgender URL: 
http://code.google.com/p/forms-framework/
Ihr Ansprechpartner 
Gerd Volberg 
Solution Architect 
OPITZ CONSULTING Deutschland GmbH 
Kirchstr. 6, 51647 Gummersbach 
Tel. +49 (2261) 60 01-0 
gerd.volberg@opitz-consulting.com 
talk2gerd.blogspot.com 
© Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 22

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (6)

API Management - Why it matters!
API Management - Why it matters!API Management - Why it matters!
API Management - Why it matters!
 
Was ist Docker ?
Was ist Docker ?Was ist Docker ?
Was ist Docker ?
 
REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?
REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?
REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?
 
Forms 12c und der Oracle SB
Forms 12c und der Oracle SBForms 12c und der Oracle SB
Forms 12c und der Oracle SB
 
Cloud-native Apps – Architektur, Implementierung, Demo
Cloud-native Apps – Architektur, Implementierung, DemoCloud-native Apps – Architektur, Implementierung, Demo
Cloud-native Apps – Architektur, Implementierung, Demo
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
 

Mehr von OPITZ CONSULTING Deutschland

Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"OPITZ CONSULTING Deutschland
 
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOPITZ CONSULTING Deutschland
 
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOPITZ CONSULTING Deutschland
 
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OPITZ CONSULTING Deutschland
 
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OPITZ CONSULTING Deutschland
 
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OPITZ CONSULTING Deutschland
 
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OPITZ CONSULTING Deutschland
 
OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OPITZ CONSULTING Deutschland
 
Effiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungEffiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungOPITZ CONSULTING Deutschland
 

Mehr von OPITZ CONSULTING Deutschland (20)

OC|Webcast: Grundlagen der Oracle Lizenzierung
OC|Webcast: Grundlagen der Oracle LizenzierungOC|Webcast: Grundlagen der Oracle Lizenzierung
OC|Webcast: Grundlagen der Oracle Lizenzierung
 
OC|Webcast "Java heute" vom 28.09.2021
OC|Webcast "Java heute" vom 28.09.2021OC|Webcast "Java heute" vom 28.09.2021
OC|Webcast "Java heute" vom 28.09.2021
 
OC|Webcast "Java heute" vom 24.08.2021
OC|Webcast "Java heute" vom 24.08.2021OC|Webcast "Java heute" vom 24.08.2021
OC|Webcast "Java heute" vom 24.08.2021
 
OC|Webcast "Daten wirklich nutzen"
OC|Webcast "Daten wirklich nutzen"OC|Webcast "Daten wirklich nutzen"
OC|Webcast "Daten wirklich nutzen"
 
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
 
OC|Webcast "Willkommen in der Cloud!"
OC|Webcast "Willkommen in der Cloud!"OC|Webcast "Willkommen in der Cloud!"
OC|Webcast "Willkommen in der Cloud!"
 
OC|Webcast "Die neue Welt der Virtualisierung"
OC|Webcast "Die neue Welt der Virtualisierung"OC|Webcast "Die neue Welt der Virtualisierung"
OC|Webcast "Die neue Welt der Virtualisierung"
 
10 Thesen zur professionellen Softwareentwicklung
10 Thesen zur professionellen Softwareentwicklung10 Thesen zur professionellen Softwareentwicklung
10 Thesen zur professionellen Softwareentwicklung
 
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
 
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
 
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
 
OC|Webcast: Grundlagen der Oracle-Lizenzierung
OC|Webcast: Grundlagen der Oracle-LizenzierungOC|Webcast: Grundlagen der Oracle-Lizenzierung
OC|Webcast: Grundlagen der Oracle-Lizenzierung
 
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
 
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
 
OC|Weekly Talk The Power of DevOps…
OC|Weekly Talk  The Power of DevOps…OC|Weekly Talk  The Power of DevOps…
OC|Weekly Talk The Power of DevOps…
 
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
 
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
 
OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring
 
OC|Weekly Talk - Beratung remote
OC|Weekly Talk - Beratung remoteOC|Weekly Talk - Beratung remote
OC|Weekly Talk - Beratung remote
 
Effiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungEffiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud Nutzung
 

Oracle Forms: Validierungstrigger können navigieren

  • 1. Validierungstrigger können navigieren Gerd Volberg OPITZ CONSULTING Deutschland GmbH Essen, 21. Oktober 2014 © Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 1
  • 2. Einleitung 1. Validierungstrigger in Oracle Forms erlauben nur die Verwendung von unrestricted Built-Ins. Eine Navigation mit go_item oder go_block ist jedoch immer restricted und somit nicht erlaubt. 2. Der Vortrag zeigt, wie man mit einfachen Mitteln die Navigation aus dem Validierungs-Trigger extrahiert und in einem eigenen Trigger startet. © Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 2
  • 3. Problemstellung Filter und Datenblock sollen synchron arbeiten  Sobald ich in einem Filter einen Wert eingebe, sollen die Daten im Mitarbeiter-Block neu selektiert werden: © Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 3
  • 4. Filter und Datenblock sollen synchron arbeiten Lösung 1 mit KEY-NEXT-ITEM  Problem: Mausnavigation funktioniert nicht © Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 4
  • 5. Filter und Datenblock sollen synchron arbeiten Lösung 2 mit WHEN-NEW-ITEM-INSTANCE  Problem: Unübersichtlich viele Trigger, Wartbarkeit ungenügend © Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 5
  • 6. Filter und Datenblock sollen synchron arbeiten Lösung 3 mit PRE- und POST-TEXTITEM  Problem: Sehr viele Trigger + restricted Built-Ins © Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 6
  • 7. Filter und Datenblock sollen synchron arbeiten Lösung 4 mit WHEN-VALIDATE-ITEM  Problem: Erlaubt nur unrestricted Built-Ins © Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 7
  • 8. WHEN-VALIDATE-ITEM WHEN-VALIDATE-ITEM erlaubt nur unrestricted Built-Ins ?  Streng genommen ist ein Validierungstrigger nicht in der Lage in einen anderen Block zu navigieren und dort eine Query zu starten.  Entkoppelt man jedoch die Ausführung der Navigation vom Validierungsvorgang durch einen Timer, dann sieht das ganz anders aus. © Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 8
  • 9. Was brauchen wir für diese Lösung? 1. Einen WHEN-TIMER-EXPIRED auf FORM-Ebene © Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 9 DECLARE V_Item VARCHAR2 (61); BEGIN V_Item := :SYSTEM.CURSOR_ITEM; IF One_Time_Timer.Get_Value = Const.ott_Query_in_EMP THEN Go_Block ('EMP'); Execute_Query; Go_Item (V_Item); ELSIF One_Time_Timer.Get_Value = ... THEN ... END IF; END;
  • 10. Was brauchen wir für diese Lösung? 2. Ein Konstanten-Package PACKAGE Const IS © Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 10 -- Globals gbl_One_Time_Timer CONSTANT VARCHAR2 (61) := 'GLOBAL.ONE_TIME_TIMER'; -- One-Time-Timer ott_Query_in_EMP CONSTANT VARCHAR2 (30) := 'Starte Query im EMP-Block'; ott_Something_Else CONSTANT VARCHAR2 (30) := 'Something else'; END;
  • 11. Was brauchen wir für diese Lösung? 3. Das Package One_Time_Timer PACKAGE One_Time_Timer IS FUNCTION Get_Value RETURN VARCHAR2; PROCEDURE Initialize (P_Event IN VARCHAR2); © Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 11 END; PACKAGE BODY One_Time_Timer IS FUNCTION Get_Value RETURN VARCHAR2 IS BEGIN Default_Value (NULL, Const.gbl_One_Time_Timer); RETURN (NAME_IN (Const.gbl_One_Time_Timer)); END;
  • 12. Was brauchen wir für diese Lösung? 3. Das Package One_Time_Timer (cont.) PROCEDURE Initialize (P_Event IN VARCHAR2) IS tm_id timer; tm_name VARCHAR2 (30) := 'ONE_TIME_TIMER'; © Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 12 BEGIN tm_id := Find_Timer (tm_name); IF ID_Null (tm_id) THEN tm_id := Create_Timer (tm_name, 10, NO_REPEAT); COPY (p_Event, Const.gbl_One_Time_Timer); END IF; END; END One_Time_Timer;
  • 13. Was brauchen wir für diese Lösung? 4. Einen FILTER-Block und einen MITARBEITER-Block © Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 13
  • 14. Was brauchen wir für diese Lösung? 5. Anpassung der WHERE-Klausel im Block MITARBEITER © Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 14
  • 15. Was brauchen wir für diese Lösung? 6. Einen WHEN-VALIDATE-ITEM auf Block-Ebene © Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 15 BEGIN One_Time_Timer.Initialize (Const.ott_Query_in_EMP); END;
  • 16. (Live) - Demo © Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 16 Start
  • 17. (Live) - Demo Eingabe von „Sch“ im Filterfeld „Name“ © Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 17
  • 18. (Live) - Demo Danach Mausklick ins Feld „Mitarbeiter“ © Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 18
  • 19. Abarbeitungs-Reihenfolge © Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 19
  • 20. © Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 20 Fazit Wo kann diese Technik überall eingesetzt werden? 1. Validierung und Navigation 2. Java-Beans und WHEN-NEW-FORM-INSTANCE 3. Alle Trigger, in denen nur unrestricted Built-Ins erlaubt sind, die man asynchron auslagern möchte
  • 21. © Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 21 Download Das Package inkl. Powerpoint liegen unter folgender URL: http://code.google.com/p/forms-framework/
  • 22. Ihr Ansprechpartner Gerd Volberg Solution Architect OPITZ CONSULTING Deutschland GmbH Kirchstr. 6, 51647 Gummersbach Tel. +49 (2261) 60 01-0 gerd.volberg@opitz-consulting.com talk2gerd.blogspot.com © Oracle Forms Tipps und Tricks OPITZ CONSULTING GmbH Seite 22