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 28/09/2005, 18h59   #1
Membre du Club
 
Inscription : mars 2005
Messages : 119
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 119
Points : 41
Points : 41
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 ?
lafouine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2005, 21h10   #2
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 534
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 534
Points : 6 471
Points : 6 471
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 :
Set_Record_Property( ..., STATUS, 'new_status' ) ;
ou
new_status peut valoir:

CHANGED_STATUS
INSERT_STATUS
NEW_STATUS
QUERY_STATUS
__________________
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 29/09/2005, 10h29   #3
Membre du Club
 
Inscription : mars 2005
Messages : 119
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 119
Points : 41
Points : 41
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 )
lafouine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2005, 10h49   #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 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 :
do_key ('commit_form');
Par exemple si tu fais :
Code :
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).
__________________
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 29/09/2005, 11h10   #5
Membre du Club
 
Inscription : mars 2005
Messages : 119
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 119
Points : 41
Points : 41
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 :
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 ??
lafouine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2005, 11h24   #6
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 534
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 534
Points : 6 471
Points : 6 471
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é.
__________________
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 29/09/2005, 11h30   #7
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
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)
__________________
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 29/09/2005, 11h33   #8
Membre du Club
 
Inscription : mars 2005
Messages : 119
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 119
Points : 41
Points : 41
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
lafouine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2005, 11h38   #9
Membre du Club
 
Inscription : mars 2005
Messages : 119
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 119
Points : 41
Points : 41
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 !
lafouine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2005, 11h42   #10
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
Tu peux créer une alerte qui pose la question (en français ).
__________________
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 29/09/2005, 11h43   #11
Membre du Club
 
Inscription : mars 2005
Messages : 119
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 119
Points : 41
Points : 41
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 !
lafouine 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 01h36.


 
 
 
 
Partenaires

Hébergement Web