IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Forms Oracle Discussion :

[Forms 6i] Open_Form à la fermeture


Sujet :

Forms Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de macben
    Inscrit en
    Mars 2004
    Messages
    546
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 546
    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

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    si le focus revient dans le bloc de la fenêtre parente ça suffit pas ?

  3. #3
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    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 862
    Par défaut
    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.

  4. #4
    Membre éclairé Avatar de macben
    Inscrit en
    Mars 2004
    Messages
    546
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 546
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Membre éclairé Avatar de macben
    Inscrit en
    Mars 2004
    Messages
    546
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 546
    Par défaut
    Oups apparemment j'ai assomé l'auditoire

  6. #6
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    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

  7. #7
    Membre éclairé Avatar de macben
    Inscrit en
    Mars 2004
    Messages
    546
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 546
    Par défaut
    En effet la proriété est celle-ci :

    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

  8. #8
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    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 ?

  9. #9
    Membre éclairé Avatar de macben
    Inscrit en
    Mars 2004
    Messages
    546
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 546
    Par défaut
    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

  10. #10
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    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'.

  11. #11
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    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 862
    Par défaut
    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.

  12. #12
    Membre éclairé Avatar de macben
    Inscrit en
    Mars 2004
    Messages
    546
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 546
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  13. #13
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Je pense qu'il serait beaucoup plus simple de ne pas ouvrir la forme enfant si l'enregistrement est verrouillé.

  14. #14
    Membre éclairé Avatar de macben
    Inscrit en
    Mars 2004
    Messages
    546
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 546
    Par défaut
    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

  15. #15
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760

Discussions similaires

  1. [Débutant] [vb.net] Desactiver la croix de fermeture d'1 Form
    Par Manix dans le forum Windows Forms
    Réponses: 8
    Dernier message: 10/01/2014, 12h31
  2. [VB.NET] thread interrompu lors d'une fermeture de form ?
    Par HULK dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/01/2006, 15h00
  3. [C#] attendre la fermeture d'1 form avant la reprise du code
    Par rastali dans le forum Windows Forms
    Réponses: 4
    Dernier message: 05/01/2006, 11h21
  4. Réponses: 6
    Dernier message: 17/06/2005, 14h40
  5. [Forms] : OPEN_FORM
    Par cafou33 dans le forum Forms
    Réponses: 13
    Dernier message: 16/03/2005, 15h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo