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 05/07/2005, 14h37   #1
Membre éclairé
 
Avatar de macben
 
Inscription : mars 2004
Messages : 526
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : mars 2004
Messages : 526
Points : 379
Points : 379
Envoyer un message via AIM à macben Envoyer un message via MSN à macben
Par défaut [Forms 6i] Open_Form à la fermeture

Bonjour

Sous mon appli forms 6i je fais un qui ouvre donc la Forms demandée

Est-il possible que la fenêtre parent puisse détecter la fermeture de la fenêtre fille, et si oui comment :

Merci de votre aide
macben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2005, 14h42   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
si le focus revient dans le bloc de la fenêtre parente ça suffit pas ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2005, 14h49   #3
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
De plus, sauf erreur de ma part, le code est repris dans la fenêtre parente à l'endroit où il s'était arrêter, c'est à dire à l'ouverture de la fenêtre fille (juste après le open_form). Tu peux donc mettre un flag à cet endroit si la solution d'orafrance ne te convient pas.
__________________
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 05/07/2005, 14h49   #4
Membre éclairé
 
Avatar de macben
 
Inscription : mars 2004
Messages : 526
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : mars 2004
Messages : 526
Points : 379
Points : 379
Envoyer un message via AIM à macben Envoyer un message via MSN à macben
Orafrance : Non car l'utilisateur peut revenir dans la fenêtre parent pour ouvrir une seconde fenêtre fille

Résumé

J'ai donc mon écran parent qui propose une liste d'enregistrements parents. A partir de là un utilisateur peut ouvrir un écran enfant par enregistrement parent (à 1 parent correspond 1 et 1 seul enfant)

Mais il ne faut pas que 2 utilisateurs connectés sur le même écran parent (par 2 instances différentes de l'application) puisse ouvrir le même écran enfant. J'ai donc fait un
Code :
SELECT FOR UPDATE nowait;
dans l'écran parent lorsqu'un utilisateur se place sur un enregistrement enfant ce qui empêche le deuxième de s'y placer. Le problème est qu'il faut que l'utilisateur qui s'est positionné sur l'enregistrement enfant libère cet enregistrement lorsqu'il ferme la fenêtre enfant, alors qu'actuellement la levée du verrou sur l'enfant ne se fait que l'utilisateur ferme la fenêtre parent.

Seconde problème : je ne peux modifier que la fenêtre parent (par ex je ne peux lever le verrou sur l'enfant lorsque je ferme la fenêtre enfant, d'où le pourquoi je dois le détecter depuis la fenêtre parent)

Si vous n'avez rien compris cela ne m'étonnera pas
macben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2005, 09h35   #5
Membre éclairé
 
Avatar de macben
 
Inscription : mars 2004
Messages : 526
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : mars 2004
Messages : 526
Points : 379
Points : 379
Envoyer un message via AIM à macben Envoyer un message via MSN à macben
Oups apparemment j'ai assomé l'auditoire
macben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2005, 09h44   #6
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
c'est pas une proprièté du bloc qui permet de gérer les locks ? Fait une recherche sur le forum, il en a été question la semaine dernière
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2005, 10h38   #7
Membre éclairé
 
Avatar de macben
 
Inscription : mars 2004
Messages : 526
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : mars 2004
Messages : 526
Points : 379
Points : 379
Envoyer un message via AIM à macben Envoyer un message via MSN à macben
En effet la proriété est celle-ci :

Citation:
Mode de verrouillage spécifie à quel moment Forms tente de verrouiller l'enregistrement lors d'une modification dans l'interface.
Automatique ou Immédiat force le verrouillage dès que l'enregistrement est modifié dans la forme
Différé n'obtient le verrouillage de l'enregistrement que lors de la phase de Commit.
Cette propriété peut être fixée à l'exécution (Set_Block_Property(..., LOCKING_MODE)).
Trouvez ici.

Mais cela ne me va par en fait cette propriété bloque l'enregistrement toto si je modifie toto, or moi je veux bloquer l'enregistrement parent si quelqu'un modifie l'enregistrement enfant
macben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2005, 10h40   #8
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Si tu mets la ligne du bloc parent au status CHANGED au moment d'ouvrir l'enfant ça suffit pas avec le LOCKING_MODE sur le parent ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2005, 11h03   #9
Membre éclairé
 
Avatar de macben
 
Inscription : mars 2004
Messages : 526
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : mars 2004
Messages : 526
Points : 379
Points : 379
Envoyer un message via AIM à macben Envoyer un message via MSN à macben
Citation:
Si tu mets la ligne du bloc parent au status CHANGED au moment d'ouvrir l'enfant ça suffit pas avec le LOCKING_MODE sur le parent ?
Le problème reste le même car je ne peux détecter la fermeture de la forms qui modifie l'enfant, et donc je ne peux repasser le status du block parent à sa valeur initiale

Sinon pour information : un OPEN_FORM ouvre donc une autre forms désignée et le code s'arrête là. Mais lorsque la forms appelée est fermée le code sous OPEN_FORM n'est tout de même pas exécuté dans la forms appelante, ce qui me pose problème
macben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2005, 11h17   #10
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
Je ne suis pas certain d'avoir cerné la problématique.
du peu que j'en ai compris, mon écran parent serait basé sur une table contenant une colonne permettant de définir si la ligne est lockée ( RESERVE VARCHAR2(1) CHECK ('O', 'N'))
l'utilisateur ne peut ouvrir l'écran enfant que lorsque cette colonne est à 'N'. Dans ce cas, la colone est passée à 'O' et l'écran est appelé (OPEN_FORM) avec en paramètre la PK ou le rowid de cette colonne.
Lorsque l'utilisateur ferme l'écran enfant, le trigger POST-FORM remet cette colonne à 'N'.
__________________
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 06/07/2005, 11h57   #11
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, tu as raison avec le OPEN_FORM le code situé à la suite n'est pas exécuté. N'as-tu pas moyen d'appeler ton autre form via CALL_FORM ?
Car avec CALL_FORM le code situé ensuite est exécuté au retour.
__________________
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 06/07/2005, 14h30   #12
Membre éclairé
 
Avatar de macben
 
Inscription : mars 2004
Messages : 526
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : mars 2004
Messages : 526
Points : 379
Points : 379
Envoyer un message via AIM à macben Envoyer un message via MSN à macben
Donc la solution que je vais essayer de mettre en place est :

mettre un trigger dans la fenêtre parent avec dedans vérification par un
Code :
IS-OPEN (faut que je trouve le nom exact)
de si la fenêtre enfant est ouverte et donc ne libérer l'enregistrement parent que si la fenêtre enfant est fermée
macben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2005, 15h02   #13
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
Je pense qu'il serait beaucoup plus simple de ne pas ouvrir la forme enfant si l'enregistrement est verrouillé.
__________________
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 06/07/2005, 17h55   #14
Membre éclairé
 
Avatar de macben
 
Inscription : mars 2004
Messages : 526
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : mars 2004
Messages : 526
Points : 379
Points : 379
Envoyer un message via AIM à macben Envoyer un message via MSN à macben
Apparemment permet de déterminer si une commande Pipe est ouvert, mais on ne peut savoir par cette comande si un écran forms est ouvert ou pas

Connaissez vous une commande qui permet de savoir si l'écran Forms toto est ouvert :

Merci
macben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2005, 18h12   #15
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
__________________
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
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h48.


 
 
 
 
Partenaires

Hébergement Web