|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éclairé
![]() |
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 |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
si le focus revient dans le bloc de la fenêtre parente ça suffit pas ?
|
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() Chef de projet en SSII Inscription : janvier 2004 Messages : 2 866 ![]() |
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. |
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() |
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 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 |
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() |
Oups apparemment j'ai assomé l'auditoire
|
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
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
|
|
|
00
|
|
|
#7 | |
|
Membre éclairé
![]() |
En effet la proriété est celle-ci :
Citation:
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 |
|
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
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 ?
|
|
|
00
|
|
|
#9 | |
|
Membre éclairé
![]() |
Citation:
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 |
|
|
|
00
|
|
|
#10 |
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 533 ![]() |
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 |
|
|
00
|
|
|
#11 |
|
Expert Confirmé
![]() Chef de projet en SSII Inscription : janvier 2004 Messages : 2 866 ![]() |
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. |
|
|
00
|
|
|
#12 |
|
Membre éclairé
![]() |
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) |
|
|
00
|
|
|
#13 |
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 533 ![]() |
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 |
|
|
00
|
|
|
#14 |
|
Membre éclairé
![]() |
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 |
|
|
00
|
|
|
#15 |
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 533 ![]() |
__________________
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 |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com