0% found this document useful (0 votes)
89 views

Oracle Forms 10g

This document provides summaries and explanations of sample Oracle Forms 10g dialogs that demonstrate advanced features. The samples include dialogs that show different types of canvases, blocks based on views, stored procedures, and multiple data sources. Blocks are used to display and manipulate data from tables, views, and stored procedures. Triggers are used to handle data manipulation for blocks based on stored procedures and tables containing collections.

Uploaded by

nagarajuvcc123
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
89 views

Oracle Forms 10g

This document provides summaries and explanations of sample Oracle Forms 10g dialogs that demonstrate advanced features. The samples include dialogs that show different types of canvases, blocks based on views, stored procedures, and multiple data sources. Blocks are used to display and manipulate data from tables, views, and stored procedures. Triggers are used to handle data manipulation for blocks based on stored procedures and tables containing collections.

Uploaded by

nagarajuvcc123
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 32

Oracle Forms 10g release 2 : Demos, Tips and Techniques

Home page



1. Introduction

Here is a collection of Oracle Forms 10g sample dialogs extracted from a complete Oracle
Forms tutorial.
This tutorial has been written in French and it would be too time consuming to translate it all in
English.
This is the reason why I hae only extracted and translated these sample dialogs.

The purpose of this article is not to teach how to build a new form from scratch. It intends to
show some of the main adanced features of the product.

To clearly understand in details how these dialogs wor!" you will hae to open them in the
Forms #uilder and examine them thoroughly.
Howeer" in this article" I am going to explain the best I can the most important mechanisms
of each sample.

These sample hae been tested with an Oracle Forms 10g release 10.1.$.0.$ on an Oracle
%atabase 10g Express Edition &elease 10.$.0.1.0.


2. Description of the sample dialogs


2.1 Main screen

T'TO(FO&)*.F)#

This dialog is the entry point of the samples. +lic! on a button to start the corresponding
dialog.


2.2 an!ases

TE*T(+,-.,*.F)#

This sample shows three types of canas /

The content canas 0light green1
The stac!ed canas 0white1
The tab canas 0dar! green1


*tac!ed canas
A stacked canvas is displayed atopor stacked onthe content canvas assigned to the
current window. Stacked canvases obscure some part of the underlying content canvas, and
often are shown and hidden programmatically. You can display more than one stacked
canvas in a window at the same time
, stac!ed canas allows to scroll a big canas in a delimited window.
In this sample" the stac!ed canas 0+.(E)2(11 is twice bigger than its iewport.

The "Do#n$ button allows to moe the stac!ed canas programatically/

Set_View_Property('CV_EMP_1', VIEWPORT_Y_POS_ON_CANVAS, 140)


Here are the properties of this stac!ed canas/

%ie#port
.iewport 3 position 44
.iewport 5 position 11
.iewport 6idth $1$
.iewport Height 178

&h'sical
.iewport 3 position on canas 0
.iewport 5 position on canas 0
6idth $1$
Height (2)


The second *tac!ed canas 0+.(E)2(71 demonstrates how to integrate in a Tab canas/




2.( *loc+s

2.(.1 *loc+ ,ased on a comple- !ie#

TE*T(#9O+(.'E.F)#

This sample show how you can base a bloc! on a iew that aggregate the columns of seeral
tables 0in this case" %E2T and E)21 and when you can insert" update and delete from the
target tables from this iew.

The code that handles the target table is located in a program unit" called from the three
bloc!:leel triggers/

O-:I-*E&T
O-:'2%,TE
O-:9O+;

This is the code of the ins_upd_emp_dept procedure/

PROCE!"RE i#$_%p&_e'p_&ept IS
(N)!%''y P(S_INTE*ER +, 0
-E*IN
.. T/01e !EPT ..
-e2i#
Se1e3t 1
I#to (N)!%''y
4ro' !"A(
W5ere e6i$t$( $e1e3t &ept#o 7ro' &ept w5ere &ept#o , +EMP_!EPT8!EPTNO )
.. 4o%#& .9 %p&/te ..
Me$$/2e('"p&/te !EPT t/01e')
"P!ATE !EPT
SET !NAME , +EMP_!EPT8!NAME
W:ERE !EPTNO , +EMP_!EPT8!EPTNO
E63eptio#
W5e# #o_&/t/_7o%#& T5e#
.. Not 7o%#& .9 i#$ert ..
Me$$/2e('I#$ert i#to !EPT t/01e')
INSERT INTO !EPT ( !EPTNO, !NAME )
VA("ES ( +EMP_!EPT8!EPTNO, +EMP_!EPT8!NAME )
E#&

.. T/01e EMP ..
-e2i#
Se1e3t 1
I#to (N)!%''y
4ro' !"A(
W5ere e6i$t$( $e1e3t e'p#o 7ro' e'p w5ere e'p#o , +EMP_!EPT8EMPNO )
.. 4o%#& .9 %p&/te ..
Me$$/2e('"p&/te EMP t/01e')
"P!ATE EMP
SET ENAME , +EMP_!EPT8ENAME
W:ERE EMPNO , +EMP_!EPT8EMPNO
E63eptio#
W5e# #o_&/t/_7o%#& T5e#
.. Not 7o%#& .9 i#$ert ..
Me$$/2e('I#$ert i#to EMP t/01e')
INSERT INTO EMP ( EMPNO, ENAME )
VA("ES ( +EMP_!EPT8EMPNO, +EMP_!EPT8ENAME )
E#&

EN!

2.(.2 *loc+ ,ased on stored procedures

TE*T(#9O+(2&O+.F)#

This sample demonstrates how a bloc! can be based on stored procedures.
This feature can be implemented in two ways/

, &EF +'&*O&
, 29<*=9 table

In addition to that" there are also two different locations where to implement this functionality/

The O-:xxx triggers
The transactionnal triggers

In this sample" the top bloc! uses a &EF +'&*O& with the O-:xxx triggers
The bottom bloc! uses a collection with the standard transactionnal triggers.

The stored procedures are located in the PKG_EMP pac!age shipped with the scripts.

#loc!1 0E)21" &EF +'&*O& and O-:xxx triggers



The .uer' Data /ource T'pe is set to &rocedure and the .uer' Data /ource
0ame indicates the name of the >uery procedure.

The insert" update" delete and loc! orders are managed in the corresponding On:xxx triggers/

Example of O-:I-*E&T trigger/

!EC(ARE
(R)E'p e'p_p;28e'p_re3
-E*IN

(R)E'p8e'p#o +, +e'p8e'p#o
(R)E'p8e#/'e +, +e'p8e#/'e
(R)E'p8<o0 +, +e'p8<o0
(R)E'p8$/1 +, +e'p8$/1
(R)E'p83o'' +, +e'p83o''

emp_pkg.emp_insert( LR$Emp );
EN!

The ariable used as parameter is of type of e'p_p;28e'p_re3

TYPE e'p_re3 IS RECOR!(
e'p#o e'p8e'p#o=TYPE,
e#/'e e'p8e#/'e=TYPE,
<o0 e'p8<o0=TYPE,
$/1 e'p8$/1=TYPE,
3o'' e'p83o''=TYPE)

Then the emp_pkg.emp_insert( stored procedure/

............
.. I#$ert ..
............
PROCE!"RE e'p_i#$ert(r IN e'p_re3) IS
-E*IN
INSERT INTO e'p (e'p#o, e#/'e, <o0, $/1, 3o'')
VA("ES(r8e'p#o, r8e#/'e, r8<o0, r8$/1, r83o'')
EN! e'p_i#$ert



#loc!$ 0E)2(T&?1" +ollection and transactionnal triggers


This bloc! uses a collection of records with the emp.pkg.emp_!uery procedure.

TYPE e'pt/0 IS TA-(E O4 e'p_re3 IN!E> -Y -INARY_INTE*ER

PROCE!"RE e'p_?%ery(e'p_&/t/ IN O"T e'pt/0) IS
ii N"M-ER
C"RSOR e'p$e1e3t IS
SE(ECT e'p#o, e#/'e, <o0, $/1, 3o'' 4ROM e'p
OR!ER -Y e#/'e
-E*IN
OPEN e'p$e1e3t
ii +, 1
(OOP
4ETC: e'p$e1e3t INTO
e'p_&/t/( ii )8e'p#o,
e'p_&/t/( ii )8e#/'e,
e'p_&/t/( ii )8<o0,
e'p_&/t/( ii )8$/1,
e'p_&/t/( ii )83o''
E>IT W:EN e'p$e1e3t=NOT4O"N!
ii +, ii @ 1
EN! (OOP
EN! e'p_?%ery

The collection of records is an I- O'T parameter" read from the database and returned to
Forms.

The insert" update"delete and loc! orders are also managed by stored procedures.
0see them in detail in the E)2(2;? pac!age1


Hae also a loo! at the .uer' Data /ource olumn property that manages the relation
between the columns of the collection and the items of the bloc!.



2.(.( *loc+ ,ased on a relational ta,le that contains a collection

TE*T(+O99E+TIO-.F)#

In this dialog" we can see how to handle a table that contains a nested table 0collection1.
There is no standard buit:in to base a bloc! on a collection" but we will see how easy it is to
wor! with this sort of ob@ect ia the O-:xxx triggers.

Here is the description of the table 0,&TI+9E*1

CREATE TA-(E ARTIC(ES
( CO!E VARC:ARA(A0 -YTE),
(I-E((E VARC:ARA(100 -YTE),
PRI> N"M-ER(B,A),
CTETOT N"M-ER(B,0),
CASES TA-_TYP_CASE
)
NESTE! TA-(E CASES STORE AS CASES_NT
RET"RN AS VA("E

T,#(T52(+,*E is a table of ob@ects of type / T52(+,*E

3re/te or rep1/3e TYPE TYP_CASE AS O-DECT
(
EMP VARC:ARA(10),
CTE N"M-ER
)

In this sample" the first bloc! 0,&TI+9E*1 displays the standard columns of the ,&TI+9E
table and the second bloc! 0detail1 displays the columns of its nested table.

&opulate the detail ,loc+ 1nested ta,le2

The detail bloc! 0+,*E*1 is dynamically populated each time a master record change in a
6hen:-ew:&ecord:Instance of the master bloc!/

!e31/re
(C)Re? V/r35/rA(AEF)
-e2i#
I7 +ARTIC(ES8CO!E I$ #ot #%11 T5e#
.. !y#/'i3 ?%ery o7 $e3o#&/ry 01o3; ..
(C)Re? +, '(SE(ECT 3/$e$8EMP, 3/$e$8CTE 4ROM TA-(E ( SE(ECT 3/$e$ 4ROM
/rti31e$ W:ERE 3o&e , ''' GG +ARTIC(ES8CO!E GG ''') 3/$e$)'
*o_-1o3;('CASES' )
C1e/r_-1o3;
Set_Block_Property( 'CASES', !ER"_#A$A_S%!RCE_&A'E, LC$Re( ) ;
.. pop%1/te t5e 01o3; ..
E6e3%te_C%ery
*o_-1o3;('ARTIC(ES')
E1$e
*o_-1o3;('CASES' )
C1e/r_-1o3;
*o_-1o3;('ARTIC(ES')
E#& i7
E#&


#ecause it is not possible to create a new article with a -'99 collection" we hae to handle
the insertion into the ,&TI+9E table in a O-:I-*E&T trigger/

..............................................................
.. we /re &oi#2 /# e6p1i3it i#$ert 0e3/%$e t5e #ew re3or& ..
.. 3/##ot 3o#t/i# / N"(( 3o11e3tio# ..
..............................................................
INSERT INTO ARTIC(ES
(
CO!E,
(I-E((E,
PRI>,
CTETOT,
CASES
)
VA("ES
(
+ARTIC(ES8CO!E,
+ARTIC(ES8(I-E((E,
+ARTIC(ES8PRI>,
+ARTIC(ES8CTETOT,
$AB_$"P_CASE() )) insert *n empty collection
)


Indeed" if we insert a -'99 collection" it will be no longer possible to insert anything in the
nested table.

Then after" it is easy to manage the detail records with the O-:xxx triggers of the +,*E*
bloc!/

O-:I-*E&T/

.. I#$ert t5e row i# t5e 3o11e3tio# ..
INSERT INTO TA-(E
(
SE(ECT
3/$e$
4ROM
/rti31e$
W:ERE
3o&e , +ARTIC(ES8CO!E
)
V/1%e$
(
TYP_CASE( +CASES8EMP, +CASES8CTE )
)


O-:%E9ETE/

.. !e1ete row i# t5e 3o11e3tio# ..
!E(ETE 4ROM TA-(E
(
SE(ECT
3/$e$
4ROM
/rti31e$
W:ERE
3o&e , +ARTIC(ES8CO!E
) 3/$e$
W:ERE
3/$e$8e'p , +CASES8EMP


etc.


2.(.) *loc+ ,ased on multiple data sources

TE*T(%,T,(*O'&+E*.F)#

I this sample dialog" we can see how to base a bloc! on seeral tables that share an identical
structure.
0see the A,-.IE&" FE.&IE& and ),&* tables created by the install.sql script1

The list item is populated with the name of three tables that share the same structure/


Then" the source table of the bloc! is changed dynamically in the 6hen:9ist:+hanged trigger/

I7 +CTR(8C:OI> i$ #ot #%11 T5e#
+21o0/1835oi6 +, +3tr1835oi6
31e/r_7or'
+3tr1835oi6 +, +21o0/1835oi6
.. 35/#2e t5e C%ery !/t/ So%r3e ..
Set_Block_Property('$ES$+', !ER"_#A$A_S%!RCE_&A'E, ,glo-*l.C.%/0 );
2o_01o3;('TESTA')
e6e3%te_?%ery
E#& i7


2.(.3 *loc+ ,ased on an o,4ect ta,le that contains a collection of references

TE*T(O#AET*.F)#

9etBs see how to manage an ob@ect table that contains a collection of references.

This sample is based on the ob@ect table 0,&TI+9E(O#A1 that contains a collection of
references/

3re/te or rep1/3e TYPE RE4_TYP_EMP AS O-DECT
(
re7_e'p RE4 TYP_EMP
)

3re/te or rep1/3e TYPE TA-_RE4_TYP_EMP AS TA-(E O4 RE4_TYP_EMP

3re/te or rep1/3e TYPE TYP_ARTIC(ES AS O-DECT
(
CO!E VARC:ARA (A0),
(I-E((E VARC:ARA (100),
PRI> N"M-ER (B,A),
CTETOT N"M-ER (B),
REMP TA-_RE4_TYP_EMP .. 3o11e3tio#
)

CREATE TA-(E ARTIC(ES_O-D O4 TYP_ARTIC(ES
NESTE! TA-(E REMP STORE AS REMP_NT
RET"RN AS VA("E



The tip is the same that the one used to manage the relational table with nested table/

: , when:-ew:&ecord:Instance trigger on the master bloc! to populate the detail bloc! 0the
collection of references1/

!e31/re
(C)Re? V/r35/rA(AEF)
-e2i#
I7 +ARTIC(ES8CO!E I$ #ot #%11 T5e#
.. !y#/'i3 ?%ery o7 $e3o#&/ry 01o3; ..
(C)Re? +, '(SE(ECT e'p8re7_e'p8e'p EMP, e'p8re7_e'p8?te CTE
4ROM TA-(E( SE(ECT REMP 4ROM /rti31e$_o0< W:ERE CO!E , ''' GG
+ARTIC(ES8CO!E GG ''') e'p
W:ERE e'p8re7_e'p8/rt , ''' GG +ARTIC(ES8CO!E GG ''')'
*o_-1o3;('CASES' )
C1e/r_-1o3;
.. 35/#2e t5e C%ery !/t/ So%r3e N/'e ..
Set_Block_Property( 'CASES', !ER"_#A$A_S%!RCE_&A'E, LC$Re( ) ;
.. pop%1/te t5e 01o3; ..
E6e3%te_C%ery
*o_-1o3;('ARTIC(ES')
E1$e
*o_-1o3;('CASES' )
C1e/r_-1o3;
*o_-1o3;('ARTIC(ES')
E#& i7
E#&

: ,n O-:I-*E&T trigger to insert a new record with an empty collection/

.......................................................
.. We /re &oi#2 /# i'p1i3it i#$ert 0e3/%$e t5e #ew ..
.. re3or& 3/##ot 3o#t/i# / N"(( 3o11e3tio# ..
.......................................................
INSERT INTO ARTIC(ES_O-D
VA("ES
(
TYP_ARTIC(ES
(
+ARTIC(ES8CO!E,
+ARTIC(ES8(I-E((E,
+ARTIC(ES8PRI>,
+ARTIC(ES8CTETOT,
$AB_RE1_$"P_E'P()
)
)


The collection of references is managed with the corresponding O-:xxx trigger of the detail
bloc!/

O-:I-*E&T/

.. I#$ert / row (RE4) i# t5e 3o11e3tio# ..
!e31/re
(C)Re? V/r35/rA(AEF)
-e2i#
(C)Re? +, 'INSERT INTO TA-(E
( SE(ECT re'p 4ROM ARTIC(ES_O-D W:ERE 3o&e , ''' GG +ARTIC(ES8CO!E GG
''')
VA("ES
( RE4_TYP_EMP ( (SE(ECT RE4(/) 4ROM EMP_O-D / W:ERE /8ART , '''
GG +ARTIC(ES8CO!E GG ''' AN! /8EMP , ''' GG +CASES8EMP GG
''') ) )'

4or'$_!&1( (C)Re? )

E#&

O-:%E9ETE/

.. !e1ete t5e row (RE4) o7 t5e 3o11e3tio# ..
!E(ETE 4ROM TA-(E
( SE(ECT re'p 4ROM ARTIC(ES_O-D W:ERE 3o&e , +ARTIC(ES8CO!E ) e'p
W:ERE
e'p8re7_e'p8/rt , +ARTIC(ES8CO!E
A#&
e'p8re7_e'p8e'p , +CASES8EMP



2.) Items


2.).1 &rincipal items

TE*T(ITE)*.F)#

Here is a description of the main items.
+lic! eerywhere on each item to see some information messages and some particular
behaiours.


2.).2 5ist items

TE*T(9I*TE*.F)#

9etBs study and handle the three sorts of list item and also the different ways to populate
them.
In this sample" the three list items are synchroniCed. +hange the alue of the first list and it
will adapt the content of the second then the content of the third.

For each new list alue" the corresponding alue and label are displayed.

a1 The first list item is populated with the &?()OI* record group/

.. (i$t 1 ..
err3o&e +, Pop%1/te_*ro%p( 'R*_MOIS' )

C(EAR_(IST('-(OCA8(ISTE1')
P%P!LA$E_L/S$('BL%C+.L/S$E2', 'R3_'%/S' );
.. Se1e3t t5e 7ir$t H/1%e ..
+-(OCA8(ISTE1 +, *et_(i$t_E1e'e#t_V/1%e('-(OCA8(ISTE1', 1 )

b1 Then init the second list item

.. "p&/te t5e wee;$ 1i$t ..
err3o&e +, Pop%1/te_*ro%p( 'R*_SEMAINES' )

C(EAR_(IST('-(OCA8(ISTEA')
P%P!LA$E_L/S$('BL%C+.L/S$E+', 'R3_SE'A/&ES' );

.. Se1e3t t5e 7ir$t H/1%e ..
+-(OCA8(ISTEA +, *et_(i$t_E1e'e#t_V/1%e('-(OCA8(ISTEA', 1 )

c1 That finally init the third list item/

PROCE!"RE I#it_(i$teI IS
(C)! V/r35/rA(1A)
(C)!/y V/r35/rA(A0)
-E*IN
.. "p&/te t5e &/y$ 1i$t ..
(C)! +, '01J01JA00E'
C1e/r_(i$t( '-(OCA8(ISTEI' )

4or i IN 088F (oop
SE(ECT
to_35/r( To_&/te((C)!, '!!JMMJYYYY' ) @ (i @
((To_#%'0er(+-(OCA8(ISTEA).1) K L)), '4M!/y !! Mo#t5' )
I#to
(C)!/y
4ROM &%/1

A44_List_Element('BL%C+.L/S$E5', i 6 2, LC$#*y, LC$#*y ) ;

E#& 1oop

.. Se1e3t t5e 7ir$t H/1%e ..
+-(OCA8(ISTEI +, *et_(i$t_E1e'e#t_V/1%e('-(OCA8(ISTEI', 1 )

E63eptio#
W5e# Ot5er$ t5e#
N%11
EN!


2.).( Image items

,9#')(2HOTO.F)#

This dialog is the main part of the ensemble that allows to search" attach and display images.

5ou can build a photo album based on a one imageBs column table.

CREATE TA-(E P:OTOS
( (E*EN!E VARC:ARA(100 -YTE),
P.%$% BL%B &%$ &!LL E&ABLE,
4ORMAT VARC:ARA(E0 -YTE) NOT N"(( ENA-(E,
CRE!IT VARC:ARA(E0 -YTE) NOT N"(( ENA-(E,
(IEN VARC:ARA(100 -YTE),
I!ENTI4IANT N"M-ER(E,0) NOT N"(( ENA-(E,
NOM VARC:ARA(E0 -YTE),
CONSTRAINT P:OTO_PM PRIMARY MEY (I!ENTI4IANT) ENA-(E
)

It shows two ways to search a filename on the local machine with and without 6ebutil.


#y clic!ing on a picture" you can naigate on another canas to display the detail of the
picture/



+H,&?E(2HOTO.F)#

The get6file6name sample dialog is only a Dpure exercice of styleE " because it is so easy to
pic!:up a file with the "ile_#pen_$ialog( 6ebutil function.
This sample is interesting to see how to use the %#S&( and &'(&_)#( functions to get the
list of the local machine dries and their content.

+H,&?E(2HOTO(6E#'TI9.F)#

,nother dialog to store the picture and its properties.


2.).) 7a!a *ean component

TE*T(?&,2H.F)#

Here is a sample to demonstrate how to handle a bean area.
This dialog use the Oracle Forms?raph Aaa #ean that is part of the Oracle Forms demos.

5ou can download the Forms?raph.@ar file on the OT- page
http/<<www.oracle.com<technology<sample(code<products<forms<files<formsgraph(patch$00F.C
ip


2.).3 alculated items

TE*T*(+,9+'9.F)#

9etBs see how to use the calculated items.

The first calculated item use the /ummar' calculation mode/



The third one use a Formula calculation mode



2.3 8lerts

TE*T(,9E&TE*()E**,?E*.F)#

This dialog shows how to use the ,lert boxes to build the messaging engine of your Forms
application.

The message texts are read from the database then displayed ia ,lert boxes.
To reduce the number of messages needed in the application" some of them can ta!e from 1
up to 7 parmeters 0G1" G$ and G71. , pipe 0H1 character allows to split the message on
seeral lines.

The main bloc! is based on the M9//8:9/ table.

CREATE TA-(E MESSA*ES
( CO!E N"M-ER(E,0) NOT N"(( ENA-(E, .. %#i?%e i&e#ti7i/#t
TE>TE VARC:ARA(AEF) NOT N"(( ENA-(E, .. te6t o7 t5e
'e$$/2e
TITRE VARC:ARA(100), .. tit1e o7 t5e /1ert
STOP VARC:ARA(1) !E4A"(T 'N' NOT N"(( ENA-(E, .. S5/11 we $top t5e
pro3e$$ N (r/i$e 7or'_tri22er_7/i1%re)
A(ERTE VARC:ARA(1E), .. #/'e o7 t5e /1ert
0o6
CONSTRAINT MS*_PM PRIMARY MEY (CO!E) ENA-(E
)


This sample use the Affiche_*essage( procedure of the T;TO6FO<M/ pl<s>l library to
display the messages.
These messages can be displayed through the 7 alert boxes aailable in eery dialog of this
demo.

,9(E&&E'& wich is the simple DO;E alert box.
,9()*?(O'I(-O- wich is a yes<no alert box 0default yes1
,9()*?(-O-(O'I wich is a yes<no alert box 0default no1


2.= &ropert' classes and !isual attri,utes

TE*T(+9,**E*(2&O2.F)#

9etBs see some ways to use the property classes and the isual attributes to coloriCe and
highlight dynamically different ob@ects of the form 0alert" item" current record" etc.1.
2roperty classes and isual attributes are located in the O*76T;TO6FO<M/.ol, ob@ect
library.

2.> Forms internal triggering e!ents

TE*T(+5+9E*.F)#

This dialog allows you to understand what trigger fire and in what order when you use the
application.

#efore each particular action" you can clear the list of triggers window.
This window show you what trigger is firing in what order and from what bloc! and what item.



(. Installation steps

This sample dialog need database ob@ects to run.
,ll the necessary ob@ects are proided in the tutoforms10g.Cip file shipped with the article.


This Cip file contains $ sub directories/

?config that contains the configuration files.
?scripts that contains the *>l script files to create the database ob@ects.


%ownload the tutoforms10g.Cip file

'nCip the tutoforms10g.Cip file under your "D9%/;IT96@OM9$?forms? directory.

+reate a new user in your database

6ith *>lIplus or *>l%eeloper" run the ?scripts?install.sql script
note / because this demo use the 6ebutil functions" the Oracle user where you hae
created these ob@ects must hae the WE-"TI(_!- pac!age compiled or a grant
E3E+'TE to this pac!age if it is present in another schema.

'nder the ?tutoforms? directory compile all the source modules
5ou can use the compile6all.,at file located in the same directory to compile all
ob@ects at once.
e.g. 3o'pi1e_/11 %$erJp/$$wor&Oi#$t/#3e

Edit the ?tutoforms?config?tutforms10g.en! file to indicate your own settings 0in
blue in this example1

Joracle home adapt this alue to your own setting
O&,+9E(HO)EKD:ADe!10g<2

FO&)*(2,THKGO&,+9E(HO)EGLformsLtutoforms
O&,+9E(2,THKGO&,+9E(HO)EGLformsLtutoforms
FO&)*(T&,+E(2,THKGO&,+9E(HO)EGLformsLtutoforms
+9,**2,THKD:ADe!10g<2LformsL@aaLfrmwebutil.@arMGO&,+9E(HO)E
GL@libLdebugger.@arMGO&,+9E(HO)EGLformsLtutoformsLForms?raph.@arM
GO&,+9E(HO)EGLformsLtutoformsLmyIcons.@arM

J webutil config file path
6E#'TI9(+O-FI?KD:ADe!10g<2LformsLsererLwebutil.cfg

Edit the ?tutoforms?config? add6to6forms#e,.cfg file to set your own database
connect string 0in blue in this example1

...
loo!,ndFeelKOracle
color*chemeKblaf
logoKno
JdonNt forget to put your own database connexion
useridBtutoforms10g?tutoforms10gCD9

+opy the ?tutoforms?config?tutforms10g.en! to the ?forms?ser!er directory

add the ?tutoforms?config? add6to6forms#e,.cfg at the end of
your ?forms?ser!er?forms#e,.cfg file


Then" you can start the demo by indicating the new Otutoforms10gP formsweb.cfg
section.


http://machine:8890/forms/frmservlet?config=tutoforms10g

You might also like