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 9i] détecter que l'utilisateur a modifié une valeur


Sujet :

Forms Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut [forms 9i] détecter que l'utilisateur a modifié une valeur
    Bonjour.

    Je développe sous forms 9i un écran dans lequel l'utilisateur peut modifier des items qui peuvent aussi être chargés (via le code) par d'autres items.

    Pour un quelconque item, je voudrais pouvoir détecter - i.e. positionner un booléen TRA_UPDATED_USER := 'TRUE' - quand l'utilisateur a modifié une valeur et SEULEMENT quand c'est l'utilisateur qui a effectué cette modification.
    Autrement dit, quand c'est le programme qui a déterminé cette valeur alors la valeur du booléen doit être 'FALSE'.

    Actuellement, je procède de cette manière :
    1/ je créée un trigger WHEN-NEW-ITEM-INSTANCE sur cet item :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    :GLOBAL.GC_old_value := :B1.TRA_IC;
    2/ je créée un trigger WHEN-VALIDE-ITEM sur cet item :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DEFAULT_VALUE('NULL','GLOBAL.GC_old_value');
    IF :GLOBAL.GC_old_value <> 'NULL' THEN
    	:B1.TRA_UPDATED_USER := 'O';
    END IF;
    ERASE('GLOBAL.GC_old_value');
    Je fais donc appel à vos services afin d'avoir votre avis sur ma manière de procéder.
    Le fait d'utiliser une SEULE variable globale et un SEUL item (i.e. le booléen) pour détecter que l'utilisateur a modifié une valeur m'expose t'il à des effets de bord ou autres ?

    Merci d'avance de vos réponses.

    PS : je procède de cette manière pour factoriser mon code étant donné le nombre d'items que je dois "surveiller"

  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
    A priori, cela devrait marcher si le nom de l'item changé manuellement n'a pas d'importance.

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Citation Envoyé par SheikYerbouti
    A priori, cela devrait marcher si le nom de l'item changé manuellement n'a pas d'importance.
    Peu importe lequel de ces N items l'utilisateur a modifié.
    Donc tu confirmes le fonctionnement de mon procédé.

    Je te remercie.

  4. #4
    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
    J'ajoute que si l'item par lui-même n'a aucune importance, il suffit d'un seul trigger de niveau module pour gérer tous les items de la forme.

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Mais je ne veux déclenchez ce code que pour 20 des 30 items (environ) du bloc.
    Il faut donc que j'écrive alors un IF colossal où je teste l'item validé, non ?

  6. #6
    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
    Salut Magnus,

    Moi je trouve cela un peu lourd à mettre en place comme méthode.

    Il suffit de faire quand c'est le programme qui charge la valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set_item_property ('monItem', item_is_valid, property_true);
    pour que le trigger when-validate-item ne se déclenche pas.

    Autre idée : quand c'est le programme qui indique les valeurs, remettre le block status à query (ou à new). Après tu n'as qu'à tester ton record status, s'il est à INSERT ou CHANGED, c'est que l'utilisateur a modifié une valeur .

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/01/2011, 10h28
  2. Détecter que chaque mot commence par une majuscule ou un chiffre
    Par bubulemaster dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 21/06/2010, 09h40
  3. [Batch] Modifier une valeur dans un fichier par interaction utilisateur
    Par Sperafico dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 09/06/2010, 12h33
  4. CF 1.0 modifier une valeur d'une form a une autre
    Par maxmarie dans le forum Windows Mobile
    Réponses: 2
    Dernier message: 11/09/2007, 18h09
  5. vérifier que l'utilisateur entre bien une heure
    Par youp_db dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/11/2006, 11h15

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