Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Forms
Forms Forum d'entraide sur Oracle Forms
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/03/2006, 19h27   #1
Membre éprouvé
 
Avatar de star
 
Inscription : février 2004
Messages : 450
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 450
Points : 417
Points : 417
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
.
star est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2006, 09h41   #2
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
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 866
Points : 3 448
Points : 3 448
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
__________________
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.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2006, 18h41   #3
Membre éprouvé
 
Avatar de star
 
Inscription : février 2004
Messages : 450
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 450
Points : 417
Points : 417
Et un when-new-item-instance niveau form te semble comment ?
.
star est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2006, 09h22   #4
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
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 866
Points : 3 448
Points : 3 448
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.
__________________
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.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2006, 03h21   #5
Membre éprouvé
 
Avatar de star
 
Inscription : février 2004
Messages : 450
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 450
Points : 417
Points : 417
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 ?
Citation:
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
.
star est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2006, 16h36   #6
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 530
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 530
Points : 6 460
Points : 6 460
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 :
1
2
3
4
5
IF :global.blk1_executed <> 'true' Then
   -- le code a exécuter une fois
   ...
   :global.blk1_executed = 'true' ;
End IF ;
__________________
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
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2006, 21h22   #7
Membre éprouvé
 
Avatar de star
 
Inscription : février 2004
Messages : 450
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 450
Points : 417
Points : 417
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é
.
star est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h42.


 
 
 
 
Partenaires

Hébergement Web