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 10g] When-New-Form-Instance Niveau Bloc


Sujet :

Forms Oracle

  1. #1
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 895
    Points : 1 058
    Points
    1 058
    Par défaut [Forms 10g] When-New-Form-Instance Niveau Bloc
    Je migre des forms de la 4.5 vers la 10g et dans certaines, j'ai un trigger When-New-Form-Instance au niveau bloc qui s'exécute au démarrage après celui du niveau Form.
    Avec la version 10g de Forms, ce trigger n'est plus exécute au runtime.
    Quelle stratégie pourrais-je adopter pour restituer cette fonctionnalité dans mes forms ?
    Entre nous, je trouve cette restriction pas très maline de la part d'Oracle !
    Merci pour vos réponses
    .

  2. #2
    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
    Points : 3 609
    Points
    3 609
    Par défaut
    Dans le trigger WHEN-NEW-FORM-INSTANCE, tu peux toujours testé le bloc sur lequel tu est avec :system.cursor_block.

    Entre nous je trouve bizarre un when-new-form-instance au niveau bloc

  3. #3
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 895
    Points : 1 058
    Points
    1 058
    Par défaut
    Et un when-new-item-instance niveau form te semble comment ?
    .

  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
    Points : 3 609
    Points
    3 609
    Par défaut
    Citation Envoyé par star
    Et un when-new-item-instance niveau form te semble comment ?
    Cela me semble logique, si tu veux pour tous les items de ta form avoir la même action. Cela t'évite de coder la même chose sur tous les WNII de tous tes champs.

  5. #5
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 895
    Points : 1 058
    Points
    1 058
    Par défaut
    Là c'est en quelque sorte la même chose :
    Mon trigger WNFI de niveau form est subclassé ce qui m'évite d'avoir à écrire le même code dans toute mes forms.
    Et pour compléter mes initialisations à l'appel d'une form, j'ai un trigger WNFI de niveau bloc sur le premier bloc navigable.
    Mais bon, ça ne règle pas mon problème !
    Comment pourrais-je contourner cette contrainte de la 10g ?
    Dans le trigger WHEN-NEW-FORM-INSTANCE, tu peux toujours testé le bloc sur lequel tu est avec :system.cursor_block.
    Je ne saisie pas très bien ce que tu essaye de me dire ?
    Merci de ton aide
    .

  6. #6
    Expert éminent sénior
    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
    Points : 11 862
    Points
    11 862
    Par défaut
    Utilisez un trigger When-New-Block-Instance en conjonction avec une variable globale qui indique si le code a déjà été exécuté.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If :global.blk1_executed <> 'true' Then
       -- le code a exécuter une fois
       ...
       :global.blk1_executed = 'true' ;
    End if ;

  7. #7
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 895
    Points : 1 058
    Points
    1 058
    Par défaut
    Merci SheikYerbouti pour ta solution qui est au demeurant susceptible de faire le boulot. Cependant, j'ai choisi de faire autrement :
    Finalement je préfère créer une procédure dans chacune de mes forms et l'appeler à partir du trigger When-New-Form-Instance de niveau form.
    La contrainte est que cette procédure doit être insérée dans toutes les forms utilisant un trigger When-New-Form-Instance subclassé.
    Par contre, cette solution a l'avantage de la clarté lorsque l'on veut retrouver la logique du traitement au moment de l'initialisation des forms.
    Dans le cas de l'utilisation d'un trigger When-New-Block-Instance en conjonction avec une variable globale sur le premier bloc navigeable, il faut parcourir le code PLSQL du trigger pour savoir s'il contient des instructions d'initialisation.
    En espérant que cela puisse servir la communauté
    .

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 22/08/2007, 13h41
  2. [Forms]raccouci d'ecran forms 10g
    Par ktano dans le forum Forms
    Réponses: 1
    Dernier message: 26/02/2007, 16h53
  3. [Forms]List Item properties Forms (10g)
    Par thunderblade dans le forum Forms
    Réponses: 3
    Dernier message: 23/12/2006, 13h52
  4. [Forms 10g]Compilation de Forms 10 g sous linux
    Par lido dans le forum Oracle
    Réponses: 2
    Dernier message: 31/01/2006, 09h08
  5. [Forms6i] : exit_form en when-new-form-instance
    Par patmaba dans le forum Forms
    Réponses: 3
    Dernier message: 29/07/2004, 14h56

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