Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Forms
Forms Forum d'entraide sur Oracle Forms
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/10/2006, 09h50   #1
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 36
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 36
Points : 18
Points : 18
Par défaut [Forms]QUestion de conception sur ORACLE Form

Je souhaiterais développer d'une manière générale un menu sous form 9i (bientôt 10g) composé par exemple de A B C D et E
où A, B, C, D serait appelé avec un call_form permettant d'accéder à des écrans de mise à jour et avec un open_form. L'accès à E permettrait d'accéder à des consultations en parallèle avec les écrans de mise à jour.
Or quand je développe une pile d'écran avec call_form et que j'ouvre un autre écran avec open_form suivi d'un call_form à partir de ce dernier j'ai une erreur me précisant que je ne peux pas développer une autre pile FRM-41353.

Mon but est en fait de développer deux chaines d'écrans indépendantes.
Quelqu'un a t'il des idées ou a déjà rencontré ce problème ?
Merci.
groy1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2006, 09h59   #2
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
CALL_FORM ne permet aucune indépendance dans la mesure ou il est ouvert dans la même session que l'appelant et reste assujetti à ce dernier.
Le seul moyen de lancer une autre forme indépendente est d'utiliser OPEN_FORM().
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2006, 10h25   #3
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 36
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 36
Points : 18
Points : 18
Citation:
Envoyé par SheikYerbouti
CALL_FORM ne permet aucune indépendance dans la mesure ou il est ouvert dans la même session que l'appelant et reste assujetti à ce dernier.
Le seul moyen de lancer une autre forme indépendente est d'utiliser OPEN_FORM().
Effectivement le seul moyen est de faire un open_form mais à partir ce dernier écran ouvert avec un open_form et une nouvelle session il 'est pas possible d'effectuer à nouveau un call_form ?
groy1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2006, 10h41   #4
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
Citation:
Envoyé par groy1
Effectivement le seul moyen est de faire un open_form mais à partir ce dernier écran ouvert avec un open_form et une nouvelle session il 'est pas possible d'effectuer à nouveau un call_form ?
Si, bien sur.
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2006, 09h07   #5
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 36
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 36
Points : 18
Points : 18
Citation:
Envoyé par SheikYerbouti
Si, bien sur.
Dans ce cas ou je ne m'explique pas très bien ou je n'ai pas vu l'astuce mais j'ai trois écrans A, B, C appelés successivement par des call_form et l'écran C ouvre l'écran D avec un open_form. Jusque là pas de problème mais lorsque l'écran D fait un call_form pour appeler un écran E l'erreur suivante apparait :FRM-41353 Cannot start another call form tant que A, B et C ne sont pas fermés.
Merci
groy1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2006, 09h34   #6
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
La note 1023141.6 sur metalink explique très bien ce problème :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
Problem Description: 
==================== 
 
You are receiving the following error FROM Oracle Forms: 
 
FRM-41353:  Cannot start another call form. 
 
 
Problem Explanation: 
==================== 
 
A common cause of this error IS you went TO a peer form AND performed a call 
form.  FOR example, you performed a CALL_FORM FROM a form that was opened WITH 
the OPEN_FORM built-IN: 
 
    CALL_FORM() 
    OPEN_FORM() 
    OPEN_FORM()  
    CALL_FORM() -> FRM-41353: Cannot start another call form.  
 
 
[ Search Words: opening , calling ]
 
Solution Description: 
===================== 
 
FRM-41353 can occur because there are restrictions ON CALL_FORM -> OPEN_FORM 
interaction.  An open form cannot execute the CALL_FORM procedure IF a chain 
of called forms has been initiated BY another open form.   
 
When you invoke multiple forms WITH OPEN_FORM AND CALL_FORM IN the same 
application, there are certain restrictions you should be aware of:  
 
   Navigation:  
 
   Any attempt TO navigate programmatically TO a disabled form IN a call form 
   stack IS disallowed.  
 
   Calling Forms:  
 
   An open form cannot execute the CALL_FORM procedure IF a chain of called 
   forms has been initiated BY another open form.  
 
 
FOR Example: 
 
Form A executes CALL_FORM TO call Form B.  Form B then executes OPEN_FORM TO  
open Form C. Form C then opens Form D.  Form B then calls Form E.   
 
 
           Form A        Form C             > Form D  
             |             ^       
             |             |     OPEN_FORM  
 CALL_FORM   |             |  
             |             |  
             V             |  
           Form B  --------^  
             |     OPEN_FORM  
             |                
 CALL_FORM   |                  
             |             V   
             V                  ( CALL_FORM here would cause FRM-41353 ) 
           Form E        Form F 
 
 
Restrictions ON Navigation: 
---------------------------  
IN the above example, there are three active, navigable forms (E, C, AND D), 
AND two disabled, non-navigable forms (A AND B).  Any attempt TO navigate 
programmatically TO Form A OR Form B will raise an error.   
 
 
Restrictions ON Calling Forms: 
------------------------------ 
Together, Form A, Form B, AND Form E represent the current call form stack IN 
the application.  IF Form C attempted TO call a form WITH CALL_FORM, FRM-41353 
would occur because of the restriction that an open form cannot issue a 
CALL_FORM when there IS an existing stack of called forms that was initiated 
BY another form (Form A, IN this example).  
 
 
Solution Explanation: 
===================== 
 
When you invoke a modal form BY executing CALL_FORM, the calling form IS  
disabled until the operator exits the called form AND returns TO the calling  
form.  When a calling form IS disabled, its windows are grayed out, AND  
operators are unable TO SET focus TO items IN the form. A called form can IN  
its turn call another form.  The result IS three forms loaded IN memory, only  
one of which IS active AND available TO the operator. When successive forms  
are loaded via the CALL_FORM procedure this way, the resulting module  
hierarchy IS known AS the call form stack. 
 
These restrictions ON navigation AND calling additional forms within the call 
form stack are documented IN the Oracle Forms 4.5 Advanced Techniques Manual, 
Chapter 5. 
 
 
Additional Information: 
======================= 
 
Oracle Documentation: 
--------------------- 
Oracle Forms 4.5 Advanced Techniques Manual 
Chapter 5, Multiple-Form Applications 
USING CALL_FORM WITH OPEN_FORM
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2006, 10h37   #7
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 36
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 36
Points : 18
Points : 18
Citation:
Envoyé par plaineR
La note 1023141.6 sur metalink explique très bien ce problème :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
Problem Description: 
==================== 
 
You are receiving the following error FROM Oracle Forms: 
 
FRM-41353:  Cannot start another call form. 
 
 
Problem Explanation: 
==================== 
 
A common cause of this error IS you went TO a peer form AND performed a call 
form.  FOR example, you performed a CALL_FORM FROM a form that was opened WITH 
the OPEN_FORM built-IN: 
 
    CALL_FORM() 
    OPEN_FORM() 
    OPEN_FORM()  
    CALL_FORM() -> FRM-41353: Cannot start another call form.  
 
 
[ Search Words: opening , calling ]
 
Solution Description: 
===================== 
 
FRM-41353 can occur because there are restrictions ON CALL_FORM -> OPEN_FORM 
interaction.  An open form cannot execute the CALL_FORM procedure IF a chain 
of called forms has been initiated BY another open form.   
 
When you invoke multiple forms WITH OPEN_FORM AND CALL_FORM IN the same 
application, there are certain restrictions you should be aware of:  
 
   Navigation:  
 
   Any attempt TO navigate programmatically TO a disabled form IN a call form 
   stack IS disallowed.  
 
   Calling Forms:  
 
   An open form cannot execute the CALL_FORM procedure IF a chain of called 
   forms has been initiated BY another open form.  
 
 
FOR Example: 
 
Form A executes CALL_FORM TO call Form B.  Form B then executes OPEN_FORM TO  
open Form C. Form C then opens Form D.  Form B then calls Form E.   
 
 
           Form A        Form C             > Form D  
             |             ^       
             |             |     OPEN_FORM  
 CALL_FORM   |             |  
             |             |  
             V             |  
           Form B  --------^  
             |     OPEN_FORM  
             |                
 CALL_FORM   |                  
             |             V   
             V                  ( CALL_FORM here would cause FRM-41353 ) 
           Form E        Form F 
 
 
Restrictions ON Navigation: 
---------------------------  
IN the above example, there are three active, navigable forms (E, C, AND D), 
AND two disabled, non-navigable forms (A AND B).  Any attempt TO navigate 
programmatically TO Form A OR Form B will raise an error.   
 
 
Restrictions ON Calling Forms: 
------------------------------ 
Together, Form A, Form B, AND Form E represent the current call form stack IN 
the application.  IF Form C attempted TO call a form WITH CALL_FORM, FRM-41353 
would occur because of the restriction that an open form cannot issue a 
CALL_FORM when there IS an existing stack of called forms that was initiated 
BY another form (Form A, IN this example).  
 
 
Solution Explanation: 
===================== 
 
When you invoke a modal form BY executing CALL_FORM, the calling form IS  
disabled until the operator exits the called form AND returns TO the calling  
form.  When a calling form IS disabled, its windows are grayed out, AND  
operators are unable TO SET focus TO items IN the form. A called form can IN  
its turn call another form.  The result IS three forms loaded IN memory, only  
one of which IS active AND available TO the operator. When successive forms  
are loaded via the CALL_FORM procedure this way, the resulting module  
hierarchy IS known AS the call form stack. 
 
These restrictions ON navigation AND calling additional forms within the call 
form stack are documented IN the Oracle Forms 4.5 Advanced Techniques Manual, 
Chapter 5. 
 
 
Additional Information: 
======================= 
 
Oracle Documentation: 
--------------------- 
Oracle Forms 4.5 Advanced Techniques Manual 
Chapter 5, Multiple-Form Applications 
USING CALL_FORM WITH OPEN_FORM
Il n'y a donc pas d'autre solution que de fermer les écrans précédemment ouvert avec call_form. Ceci veut dire qu'on ne peut pas avoir deux branches distinctes d'écrans ouverts en 1er avec un open_form et ensuite avec call_form ?
groy1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2006, 10h54   #8
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Oui c'est exactement ça.
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h41.


 
 
 
 
Partenaires

Hébergement Web