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 :

[Forms6i]Modification du FORM_STATUS


Sujet :

Forms Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 119
    Par défaut [Forms6i]Modification du FORM_STATUS
    Bonjour,

    Est-il possible de modifier la valeur de FORM_STATUS ?
    Je travaille sur un bloc non basé et à partir des informations saisies dans mon bloc je fais une mise à jour des données dans le trigger KEY-COMMIT.
    Ainsi quand je clique sur l'icone sauvegarder, un UPDATE met a jour mes données en base en passant par le trigger KEY-COMMIT.
    Le probleme c'est que lorsque je ferme ma fenêtre avec la 'croix Windows', le processus de sauvegarde du KEY-COMMIT ne se déclenche pas, d'apres moi à cause de la valeur de FORM_STATUS.
    Qu'en est-il vraiment ?

  2. #2
    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
    Vous ne pouvez influer sur cette variable qu'indirectement.
    Le status de la forme dépend du statut des blocks qui dépend lui même du statut des enregistrements...

    vous pouvez, par contre, agir sur le statut d'un enregistrement avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set_Record_Property( ..., STATUS, 'new_status' ) ;
    ou
    new_status peut valoir:

    CHANGED_STATUS
    INSERT_STATUS
    NEW_STATUS
    QUERY_STATUS

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 119
    Par défaut
    Citation Envoyé par SheikYerbouti
    Vous ne pouvez influer sur cette variable qu'indirectement.
    Le status de la forme dépend du statut des blocks qui dépend lui même du statut des enregistrements...
    ah ok je savais pas, merci !
    Bon, par contre ca décalle mon problème à un autre endroit, puisque je jouais déjà dans mon code avec les status des enregistrement. Or il apparait que le status de cet enregistrement n'est pas toujours modifié, je m'explique :
    Dans un premier temps mon record_status est à INSERT. Mon but étant de le faire passer au status CHANGED, je dois d'abord le faire passer par le status QUERY (cf la matrice de changement de status) via un Set_Record_Property pour pouvoir ensuite accéder au status CHANGED. Dans mon cas, le record passe bien du status INSERT à QUERY, mais pas de QUERY à CHANGED alors que mes deux Set_Record_Property se succedent...
    Et en plus aucune erreur n'est levée...
    Bizarre non ??

    PS : encore plus bizarre, dans le debugger Forms, la variable system record_status ne change jamais de valeur et reste toujours à INSERT... Comme quoi effectivement y'a qq soucis avec le debugger Forms (voila qui fera plaisir à plaineR )

  4. #4
    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
    Citation Envoyé par lafouine
    PS : encore plus bizarre, dans le debugger Forms, la variable system record_status ne change jamais de valeur et reste toujours à INSERT... Comme quoi effectivement y'a qq soucis avec le debugger Forms (voila qui fera plaisir à plaineR )
    Et y en a qui continuent à utiliser le debugger de forms6i malgré tout...

    Pourquoi veux-tu passer ton record_status à changed ?
    NB : si ton enregistrement un un statut "insert", ta forms a statut "changed" (normalement).

    Citation Envoyé par lafouine
    Le probleme c'est que lorsque je ferme ma fenêtre avec la 'croix Windows', le processus de sauvegarde du KEY-COMMIT ne se déclenche pas, d'apres moi à cause de la valeur de FORM_STATUS.
    Qu'en est-il vraiment ?
    Normal, KEY-COMMIT ne se déclenche que si tu cliques sur la touche associée au commit ou si tu cliques sur un bouton dans lequel tu as mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    do_key ('commit_form');
    Par exemple si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    clear_block ('ask_commit');
    il ne passera pas dans le trigger KEY-COMMIT. Je pense que c'est le même problème que tu as (à moins que tu aies mis un do_key dans le trigger de fermeture de ta fenêtre).

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 119
    Par défaut
    Citation Envoyé par plaineR
    Citation Envoyé par lafouine
    PS : encore plus bizarre, dans le debugger Forms, la variable system record_status ne change jamais de valeur et reste toujours à INSERT... Comme quoi effectivement y'a qq soucis avec le debugger Forms (voila qui fera plaisir à plaineR )
    Et y en a qui continuent à utiliser le debugger de forms6i malgré tout...
    bah ca a quelques cotés pratiques qd meme

    Citation Envoyé par plaineR
    Pourquoi veux-tu passer ton record_status à changed ?
    Comme je l'ai dit dans mon premier message, je travaille sur un bloc non basé que je renseigne avec une LOV. Mon but est qu'un update des données soit réalisé quand on quitte la forme (en cliquant sur sauvegarder ou qd on ferme la fenetre). Or la sauvegarde ne se fait pas qd on ferme la fenetre et d'apres ce que je crois savoir, le "Do you want to save?" associé a une fermeture de la forme n'apparait que quand le FORM_STATUS est à CHANGED. Et pour modifier le FORM_STATUS, il faut modifier le RECORD_STATUS...

    Citation Envoyé par plaineR
    NB : si ton enregistrement un un statut "insert", ta forms a statut "changed" (normalement).
    bah c'est pas le cas chez moi. Une fois mes champs renseignes par ma LOV, mon FORM_STATUS est à Query, le BLOCK_STATUS est à QUERY et le RECORD_STATUS est à Insert

    Citation Envoyé par plaineR
    Normal, KEY-COMMIT ne se déclenche que si tu cliques sur la touche associée au commit ou si tu cliques sur un bouton dans lequel tu as mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    do_key ('commit_form');
    ah oui ca me revient maintenant !
    mais comment je fais pour que mon UPDATE se fasse quand on ferme la fenetre alors ??

  6. #6
    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
    Le trigger KEY-EXIT se déclenche quelle que soit la manière dont la fenêtre est fermée.

    C'est dans ce trigger qu'il vous faut placer le code de contrôle souhaité.

  7. #7
    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
    Je crois que tu te compliques la vie :
    1. Il me semble en effet que pour des blocs non basés les statuts ne sont pas gérés (il est donc normal que tu n'est pas le message "Do you want to save"), c'est à dire que même si ton enregistrement à le statut changed, le statut de ta form (voire de ton block ?) n'est pas modifié.

    2. Ne serait-il pas aussi simple de passer par une procédure UPDATE_MODIF que tu appelerais dans ton KEY-COMMIT et dans le trigger qui se déclenche lorsque tu fermes la fenêtre, ou de mettre dans ce trigger do_key ('commit_form') ?

    3. Comme je te l'ai dit dans mon précédent message, même si tu arrives à déclencher le message de demande d'enregistrement (ce qui me semble difficile puisque ton block n'est pas basé), il ne passera pas dans le trigger KEY-COMMIT (ton code serait plutôt à mettre dans le trigger PRE-COMMIT)

  8. #8
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 119
    Par défaut
    Citation Envoyé par SheikYerbouti
    Le trigger KEY-EXIT se déclenche quelle que soit la manière dont la fenêtre est fermée.

    C'est dans ce trigger qu'il vous faut placer le code de contrôle souhaité.
    Le truc c'est que :
    1/ Je souhaite que l'UPDATE ne soit commité que si l'utilisateur l'a voulu (soit en appuyant sur l'icone enregistrer, soit en ayant repondu 'oui' a la question 'voulez vous sauvegarder vos modifications ?') Or je ne sais pas si je serais capable de tester la reponde de l'utilisateur à la question 'voulez vous sauvegarder vos modifications ?' dans le trigger KEY-EXIT... C'est possible de faire ca ?
    2/ Pour le moment la question 'voulez vous sauvegarder vos modifications ?' n'apparait pas quand je ferme ma ferme ma fenetre (mon FORM_STATUS est à QUERY et ne veut pas passer à CHANGED). Comme je l'expliquais dans mon 2e message, le set_record_property ne parvient pas a faire passer le status de mon record à changed

  9. #9
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 119
    Par défaut
    Citation Envoyé par plaineR
    Je crois que tu te compliques la vie :
    oui, souvent

    Citation Envoyé par plaineR
    1. Il me semble en effet que pour des blocs non basés les statuts ne sont pas gérés (il est donc normal que tu n'est pas le message "Do you want to save"), c'est à dire que même si ton enregistrement à le statut changed, le statut de ta form (voire de ton block ?) n'est pas modifié.
    ahhh ok !!

    Citation Envoyé par plaineR
    2. Ne serait-il pas aussi simple de passer par une procédure UPDATE_MODIF que tu appelerais dans ton KEY-COMMIT et dans le trigger qui se déclenche lorsque tu fermes la fenêtre, ou de mettre dans ce trigger do_key ('commit_form') ?
    bah si ! le seul truc c'est que j'aurais bien aimé que UPDATE_MODIF ne soit appelé, en cas de fermeture de fenetre, que si l'utilisateur l'a choisi (ie : en ayant repondu Yes a la question "Do you want to save")

    Citation Envoyé par plaineR
    3. Comme je te l'ai dit dans mon précédent message, même si tu arrives à déclencher le message de demande d'enregistrement (ce qui me semble difficile puisque ton block n'est pas basé), il ne passera pas dans le trigger KEY-COMMIT (ton code serait plutôt à mettre dans le trigger PRE-COMMIT)
    ok bon je vais essayer de me depatouiller avec toutes ces infos, merci bcp ! et merci SheikYerbouti !

  10. #10
    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
    Tu peux créer une alerte qui pose la question (en français ).

  11. #11
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 119
    Par défaut
    Citation Envoyé par plaineR
    Tu peux créer une alerte qui pose la question (en français ).
    oui oui c'est bien ce que je comptais faire mais bon je trouvais ca un peu cra-cra
    finalement j'aurais du faire un bloc basé, la gestion aurait été plus propre !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur lors de modification d'une table
    Par seb.49 dans le forum SQL
    Réponses: 11
    Dernier message: 13/01/2003, 17h16
  2. [VB6] modification de menu
    Par rikko23 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 27/11/2002, 21h30
  3. [] Datagrid vide après modification des propriétés
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/09/2002, 16h37
  4. Modification de l'évènement OnClick
    Par MrJéjé dans le forum C++Builder
    Réponses: 9
    Dernier message: 22/08/2002, 12h52
  5. Réponses: 11
    Dernier message: 23/07/2002, 14h33

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