Pourquoi un "trigger avant" qui intercepte une erreur et positionne donc
h.afaire à "A" ne fait pas retourner "Faux" aux fonctions HF le déclenchant
(HAjoute & co..)
Quelle est la solution ?
Je veux pouvoir utiliser mon trigger pour simplifier les controles de
saisie et assurer la coherence de mes donnees, et empecher la fermeture de
ma fiche si erreur avec un truc du style
si hajoute alors
ferme
sinon
reprisesaisie
fin
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
farplus
Bonjour, en Wd7.5 la fonction HdecritTrigger renvoi un booleen pour savoir si elle c'est bien ou mal déroulée; de plus dans le cas d'un trigger Avant on peut positionner l'h.afaire à A pour empecher l'exécution du trigger après. donc tu peux coder: res est un booleen res=hdecrittrigger(fichier,hajoute,proc,triggerAvant)
hajoute(fichier) si res alors ferme sinon rs() fin
à part ça je vois qu'actuellement PcSoft a (enfin) étendu les fonctions des triggers aux tables, chose demandée depuis plus de 2 ans. Etonnamment il a fait ça très discrètement - pas vu d'annonce !
A+
Bonjour,
en Wd7.5 la fonction HdecritTrigger renvoi un booleen pour savoir si elle
c'est bien ou mal déroulée; de plus dans le cas d'un trigger Avant on peut
positionner l'h.afaire à A pour empecher l'exécution du trigger après.
donc tu peux coder:
res est un booleen
res=hdecrittrigger(fichier,hajoute,proc,triggerAvant)
hajoute(fichier)
si res alors
ferme
sinon
rs()
fin
à part ça je vois qu'actuellement PcSoft a (enfin) étendu les fonctions des
triggers aux tables, chose demandée depuis plus de 2 ans.
Etonnamment il a fait ça très discrètement - pas vu d'annonce !
Bonjour, en Wd7.5 la fonction HdecritTrigger renvoi un booleen pour savoir si elle c'est bien ou mal déroulée; de plus dans le cas d'un trigger Avant on peut positionner l'h.afaire à A pour empecher l'exécution du trigger après. donc tu peux coder: res est un booleen res=hdecrittrigger(fichier,hajoute,proc,triggerAvant)
hajoute(fichier) si res alors ferme sinon rs() fin
à part ça je vois qu'actuellement PcSoft a (enfin) étendu les fonctions des triggers aux tables, chose demandée depuis plus de 2 ans. Etonnamment il a fait ça très discrètement - pas vu d'annonce !
A+
Benjamin Cabé
Bonjour,
Heu je suis pas d'accord... HDecritTrigger retourne un booleen qui indique si la *pose* du trigger s'est bien déroulée. Je ne teste ce booleen que lors de la pose, ds le code d'init du projet. Cependant, la solution temporaire que j'ai trouvée est un booleen global au projet que je mets à Faux si le trigger avant intercepte une erreur (tout en mattant h.afaire="A"). C'est pas trop mal comme solution sauf qu'on perd une partie de la simplification apportée par les triggers !!
Merci de ta réponse en tout cas, Benjamin
Bonjour, en Wd7.5 la fonction HdecritTrigger renvoi un booleen pour savoir si elle c'est bien ou mal déroulée; de plus dans le cas d'un trigger Avant on peut positionner l'h.afaire à A pour empecher l'exécution du trigger après. donc tu peux coder: res est un booleen res=hdecrittrigger(fichier,hajoute,proc,triggerAvant)
hajoute(fichier) si res alors ferme sinon rs() fin
à part ça je vois qu'actuellement PcSoft a (enfin) étendu les fonctions des triggers aux tables, chose demandée depuis plus de 2 ans. Etonnamment il a fait ça très discrètement - pas vu d'annonce !
A+
Bonjour,
Heu je suis pas d'accord... HDecritTrigger retourne un booleen qui indique
si la *pose* du trigger s'est bien déroulée. Je ne teste ce booleen que
lors de la pose, ds le code d'init du projet.
Cependant, la solution temporaire que j'ai trouvée est un booleen global au
projet que je mets à Faux si le trigger avant intercepte une erreur (tout
en mattant h.afaire="A"). C'est pas trop mal comme solution sauf qu'on perd
une partie de la simplification apportée par les triggers !!
Merci de ta réponse en tout cas,
Benjamin
Bonjour,
en Wd7.5 la fonction HdecritTrigger renvoi un booleen pour savoir si elle
c'est bien ou mal déroulée; de plus dans le cas d'un trigger Avant on peut
positionner l'h.afaire à A pour empecher l'exécution du trigger après.
donc tu peux coder:
res est un booleen
res=hdecrittrigger(fichier,hajoute,proc,triggerAvant)
hajoute(fichier)
si res alors
ferme
sinon
rs()
fin
à part ça je vois qu'actuellement PcSoft a (enfin) étendu les fonctions des
triggers aux tables, chose demandée depuis plus de 2 ans.
Etonnamment il a fait ça très discrètement - pas vu d'annonce !
Heu je suis pas d'accord... HDecritTrigger retourne un booleen qui indique si la *pose* du trigger s'est bien déroulée. Je ne teste ce booleen que lors de la pose, ds le code d'init du projet. Cependant, la solution temporaire que j'ai trouvée est un booleen global au projet que je mets à Faux si le trigger avant intercepte une erreur (tout en mattant h.afaire="A"). C'est pas trop mal comme solution sauf qu'on perd une partie de la simplification apportée par les triggers !!
Merci de ta réponse en tout cas, Benjamin
Bonjour, en Wd7.5 la fonction HdecritTrigger renvoi un booleen pour savoir si elle c'est bien ou mal déroulée; de plus dans le cas d'un trigger Avant on peut positionner l'h.afaire à A pour empecher l'exécution du trigger après. donc tu peux coder: res est un booleen res=hdecrittrigger(fichier,hajoute,proc,triggerAvant)
hajoute(fichier) si res alors ferme sinon rs() fin
à part ça je vois qu'actuellement PcSoft a (enfin) étendu les fonctions des triggers aux tables, chose demandée depuis plus de 2 ans. Etonnamment il a fait ça très discrètement - pas vu d'annonce !
A+
Benjamin Cabé
Bonjour,
Heu je suis pas d'accord... HDecritTrigger retourne un booleen qui indique si la *pose* du trigger s'est bien déroulée. Je ne teste ce booleen que lors de la pose, ds le code d'init du projet. Cependant, la solution temporaire que j'ai trouvée est un booleen global au projet que je mets à Faux si le trigger avant intercepte une erreur (tout en mattant h.afaire="A"). C'est pas trop mal comme solution sauf qu'on perd une partie de la simplification apportée par les triggers !!
Merci de ta réponse en tout cas, Benjamin
Bonjour, en Wd7.5 la fonction HdecritTrigger renvoi un booleen pour savoir si elle c'est bien ou mal déroulée; de plus dans le cas d'un trigger Avant on peut positionner l'h.afaire à A pour empecher l'exécution du trigger après. donc tu peux coder: res est un booleen res=hdecrittrigger(fichier,hajoute,proc,triggerAvant)
hajoute(fichier) si res alors ferme sinon rs() fin
à part ça je vois qu'actuellement PcSoft a (enfin) étendu les fonctions des triggers aux tables, chose demandée depuis plus de 2 ans. Etonnamment il a fait ça très discrètement - pas vu d'annonce !
A+
Bonjour,
Heu je suis pas d'accord... HDecritTrigger retourne un booleen qui indique
si la *pose* du trigger s'est bien déroulée. Je ne teste ce booleen que
lors de la pose, ds le code d'init du projet.
Cependant, la solution temporaire que j'ai trouvée est un booleen global au
projet que je mets à Faux si le trigger avant intercepte une erreur (tout
en mattant h.afaire="A"). C'est pas trop mal comme solution sauf qu'on perd
une partie de la simplification apportée par les triggers !!
Merci de ta réponse en tout cas,
Benjamin
Bonjour,
en Wd7.5 la fonction HdecritTrigger renvoi un booleen pour savoir si elle
c'est bien ou mal déroulée; de plus dans le cas d'un trigger Avant on peut
positionner l'h.afaire à A pour empecher l'exécution du trigger après.
donc tu peux coder:
res est un booleen
res=hdecrittrigger(fichier,hajoute,proc,triggerAvant)
hajoute(fichier)
si res alors
ferme
sinon
rs()
fin
à part ça je vois qu'actuellement PcSoft a (enfin) étendu les fonctions des
triggers aux tables, chose demandée depuis plus de 2 ans.
Etonnamment il a fait ça très discrètement - pas vu d'annonce !
Heu je suis pas d'accord... HDecritTrigger retourne un booleen qui indique si la *pose* du trigger s'est bien déroulée. Je ne teste ce booleen que lors de la pose, ds le code d'init du projet. Cependant, la solution temporaire que j'ai trouvée est un booleen global au projet que je mets à Faux si le trigger avant intercepte une erreur (tout en mattant h.afaire="A"). C'est pas trop mal comme solution sauf qu'on perd une partie de la simplification apportée par les triggers !!
Merci de ta réponse en tout cas, Benjamin
Bonjour, en Wd7.5 la fonction HdecritTrigger renvoi un booleen pour savoir si elle c'est bien ou mal déroulée; de plus dans le cas d'un trigger Avant on peut positionner l'h.afaire à A pour empecher l'exécution du trigger après. donc tu peux coder: res est un booleen res=hdecrittrigger(fichier,hajoute,proc,triggerAvant)
hajoute(fichier) si res alors ferme sinon rs() fin
à part ça je vois qu'actuellement PcSoft a (enfin) étendu les fonctions des triggers aux tables, chose demandée depuis plus de 2 ans. Etonnamment il a fait ça très discrètement - pas vu d'annonce !
A+
Benjamin Cabé
Bonjour,
Heu je suis pas d'accord... HDecritTrigger retourne un booleen qui indique si la *pose* du trigger s'est bien déroulée. Je ne teste ce booleen que lors de la pose, ds le code d'init du projet. Cependant, la solution temporaire que j'ai trouvée est un booleen global au projet que je mets à Faux si le trigger avant intercepte une erreur (tout en mattant h.afaire="A"). C'est pas trop mal comme solution sauf qu'on perd une partie de la simplification apportée par les triggers !!
Merci de ta réponse en tout cas, Benjamin
Bonjour, en Wd7.5 la fonction HdecritTrigger renvoi un booleen pour savoir si elle c'est bien ou mal déroulée; de plus dans le cas d'un trigger Avant on peut positionner l'h.afaire à A pour empecher l'exécution du trigger après. donc tu peux coder: res est un booleen res=hdecrittrigger(fichier,hajoute,proc,triggerAvant)
hajoute(fichier) si res alors ferme sinon rs() fin
à part ça je vois qu'actuellement PcSoft a (enfin) étendu les fonctions des triggers aux tables, chose demandée depuis plus de 2 ans. Etonnamment il a fait ça très discrètement - pas vu d'annonce !
A+
Bonjour,
Heu je suis pas d'accord... HDecritTrigger retourne un booleen qui indique
si la *pose* du trigger s'est bien déroulée. Je ne teste ce booleen que
lors de la pose, ds le code d'init du projet.
Cependant, la solution temporaire que j'ai trouvée est un booleen global au
projet que je mets à Faux si le trigger avant intercepte une erreur (tout
en mattant h.afaire="A"). C'est pas trop mal comme solution sauf qu'on perd
une partie de la simplification apportée par les triggers !!
Merci de ta réponse en tout cas,
Benjamin
Bonjour,
en Wd7.5 la fonction HdecritTrigger renvoi un booleen pour savoir si elle
c'est bien ou mal déroulée; de plus dans le cas d'un trigger Avant on peut
positionner l'h.afaire à A pour empecher l'exécution du trigger après.
donc tu peux coder:
res est un booleen
res=hdecrittrigger(fichier,hajoute,proc,triggerAvant)
hajoute(fichier)
si res alors
ferme
sinon
rs()
fin
à part ça je vois qu'actuellement PcSoft a (enfin) étendu les fonctions des
triggers aux tables, chose demandée depuis plus de 2 ans.
Etonnamment il a fait ça très discrètement - pas vu d'annonce !
Heu je suis pas d'accord... HDecritTrigger retourne un booleen qui indique si la *pose* du trigger s'est bien déroulée. Je ne teste ce booleen que lors de la pose, ds le code d'init du projet. Cependant, la solution temporaire que j'ai trouvée est un booleen global au projet que je mets à Faux si le trigger avant intercepte une erreur (tout en mattant h.afaire="A"). C'est pas trop mal comme solution sauf qu'on perd une partie de la simplification apportée par les triggers !!
Merci de ta réponse en tout cas, Benjamin
Bonjour, en Wd7.5 la fonction HdecritTrigger renvoi un booleen pour savoir si elle c'est bien ou mal déroulée; de plus dans le cas d'un trigger Avant on peut positionner l'h.afaire à A pour empecher l'exécution du trigger après. donc tu peux coder: res est un booleen res=hdecrittrigger(fichier,hajoute,proc,triggerAvant)
hajoute(fichier) si res alors ferme sinon rs() fin
à part ça je vois qu'actuellement PcSoft a (enfin) étendu les fonctions des triggers aux tables, chose demandée depuis plus de 2 ans. Etonnamment il a fait ça très discrètement - pas vu d'annonce !
A+
R&B
Benjamin Cabé wrote:
Bonjour/Bonsoir
Pourquoi un "trigger avant" qui intercepte une erreur et positionne donc h.afaire à "A" ne fait pas retourner "Faux" aux fonctions HF le déclenchant (HAjoute & co..) Quelle est la solution ? Je veux pouvoir utiliser mon trigger pour simplifier les controles de saisie et assurer la coherence de mes donnees, et empecher la fermeture de ma fiche si erreur avec un truc du style si hajoute alors ferme sinon reprisesaisie fin
Avec ce code je rècupère les valeur des rubriques Avant le hmodifie. Au passage profiter d'y être pou voir un peu plus ce que peut donner l'utilisation des sources de données.
Si cela a plus, merci de passer nous soutenir régulièrement. (Oui, C'est bien de la Pub !)
@+ R&B
Benjamin Cabé wrote:
Bonjour/Bonsoir
Pourquoi un "trigger avant" qui intercepte une erreur et positionne donc
h.afaire à "A" ne fait pas retourner "Faux" aux fonctions HF le déclenchant
(HAjoute & co..)
Quelle est la solution ?
Je veux pouvoir utiliser mon trigger pour simplifier les controles de
saisie et assurer la coherence de mes donnees, et empecher la fermeture de
ma fiche si erreur avec un truc du style
si hajoute alors
ferme
sinon
reprisesaisie
fin
Avec ce code je rècupère les valeur des rubriques Avant le hmodifie.
Au passage profiter d'y être pou voir un peu plus ce que peut donner
l'utilisation des sources de données.
Si cela a plus, merci de passer nous soutenir régulièrement.
(Oui, C'est bien de la Pub !)
Pourquoi un "trigger avant" qui intercepte une erreur et positionne donc h.afaire à "A" ne fait pas retourner "Faux" aux fonctions HF le déclenchant (HAjoute & co..) Quelle est la solution ? Je veux pouvoir utiliser mon trigger pour simplifier les controles de saisie et assurer la coherence de mes donnees, et empecher la fermeture de ma fiche si erreur avec un truc du style si hajoute alors ferme sinon reprisesaisie fin
Avec ce code je rècupère les valeur des rubriques Avant le hmodifie. Au passage profiter d'y être pou voir un peu plus ce que peut donner l'utilisation des sources de données.
Si cela a plus, merci de passer nous soutenir régulièrement. (Oui, C'est bien de la Pub !)
Avec ce code je rècupère les valeur des rubriques Avant le hmodifie. Au passage profiter d'y être pou voir un peu plus ce que peut donner l'utilisation des sources de données.
Si cela a plus, merci de passer nous soutenir régulièrement. (Oui, C'est bien de la Pub !)
Je te remercie de ta réponse, je connaissais déjà ton _excellent_ site. Malheureusement, le chouette article ne répond en rien à mon problème. Ainsi je vais continuer par passer par une variable globale au projet pour indiquer, dans le trigger avant, qu'une fonction H* a été shuntée.
Avec ce code je rècupère les valeur des rubriques Avant le hmodifie.
Au passage profiter d'y être pou voir un peu plus ce que peut donner
l'utilisation des sources de données.
Si cela a plus, merci de passer nous soutenir régulièrement.
(Oui, C'est bien de la Pub !)
Je te remercie de ta réponse, je connaissais déjà ton _excellent_ site.
Malheureusement, le chouette article ne répond en rien à mon problème.
Ainsi je vais continuer par passer par une variable globale au projet pour
indiquer, dans le trigger avant, qu'une fonction H* a été shuntée.
Avec ce code je rècupère les valeur des rubriques Avant le hmodifie. Au passage profiter d'y être pou voir un peu plus ce que peut donner l'utilisation des sources de données.
Si cela a plus, merci de passer nous soutenir régulièrement. (Oui, C'est bien de la Pub !)
Je te remercie de ta réponse, je connaissais déjà ton _excellent_ site. Malheureusement, le chouette article ne répond en rien à mon problème. Ainsi je vais continuer par passer par une variable globale au projet pour indiquer, dans le trigger avant, qu'une fonction H* a été shuntée.
Merci quand même, Benj
R&B
Benjamin Cabé wrote:
Bonjour/Bonsoir
Pourquoi un "trigger avant" qui intercepte une erreur et positionne donc h.afaire à "A" ne fait pas retourner "Faux" aux fonctions HF le déclenchant (HAjoute & co..) Quelle est la solution ? Je veux pouvoir utiliser mon trigger pour simplifier les controles de saisie et assurer la coherence de mes donnees, et empecher la fermeture de ma fiche si erreur avec un truc du style si hajoute alors ferme sinon reprisesaisie fin
Merci d'avance de votre aide, Benjamin
Ok, pardon pour le poste précédent...
pourquoi vouloir passer pas un trigger ? en effet dans da fiche ("empecher la fermeture de ma fiche si erreur") vois plustot du coté de RADEnregistre() qui est executée avant les hajoute() et hModifie() du boution de validation
avec le rad par défaut, si radenregistre() retourne faux tu devrais revenir en saisie
en tout cas tu peux modifier ce comportement sans problème (en surchargeant la classe RAD (ou, comme nous en copiant le tout et utilisant nos classes en lieu et place des classes originales)
ainsi, tes contrôles sont simplement à envoyer dans la proc locale RADEnregistre et non plus dans un trigger ou même dans une classe (qui n'est pas faite pour cela).
Nous, on a même monté un mécanisme qui permet d'utiliser une locale RADEnregistreAprès() pour déclacher des traitement lors des enregistrements.
@+ R&B
Benjamin Cabé wrote:
Bonjour/Bonsoir
Pourquoi un "trigger avant" qui intercepte une erreur et positionne donc
h.afaire à "A" ne fait pas retourner "Faux" aux fonctions HF le déclenchant
(HAjoute & co..)
Quelle est la solution ?
Je veux pouvoir utiliser mon trigger pour simplifier les controles de
saisie et assurer la coherence de mes donnees, et empecher la fermeture de
ma fiche si erreur avec un truc du style
si hajoute alors
ferme
sinon
reprisesaisie
fin
Merci d'avance de votre aide,
Benjamin
Ok, pardon pour le poste précédent...
pourquoi vouloir passer pas un trigger ?
en effet dans da fiche ("empecher la fermeture de
ma fiche si erreur") vois plustot du coté de RADEnregistre()
qui est executée avant les hajoute() et hModifie() du boution de validation
avec le rad par défaut, si radenregistre() retourne faux tu devrais
revenir en saisie
en tout cas tu peux modifier ce comportement sans problème (en
surchargeant la classe RAD (ou, comme nous en copiant le tout et
utilisant nos classes en lieu et place des classes originales)
ainsi, tes contrôles sont simplement à envoyer dans la proc locale
RADEnregistre et non plus dans un trigger ou même dans une classe (qui
n'est pas faite pour cela).
Nous, on a même monté un mécanisme qui permet d'utiliser une locale
RADEnregistreAprès() pour déclacher des traitement lors des enregistrements.
Pourquoi un "trigger avant" qui intercepte une erreur et positionne donc h.afaire à "A" ne fait pas retourner "Faux" aux fonctions HF le déclenchant (HAjoute & co..) Quelle est la solution ? Je veux pouvoir utiliser mon trigger pour simplifier les controles de saisie et assurer la coherence de mes donnees, et empecher la fermeture de ma fiche si erreur avec un truc du style si hajoute alors ferme sinon reprisesaisie fin
Merci d'avance de votre aide, Benjamin
Ok, pardon pour le poste précédent...
pourquoi vouloir passer pas un trigger ? en effet dans da fiche ("empecher la fermeture de ma fiche si erreur") vois plustot du coté de RADEnregistre() qui est executée avant les hajoute() et hModifie() du boution de validation
avec le rad par défaut, si radenregistre() retourne faux tu devrais revenir en saisie
en tout cas tu peux modifier ce comportement sans problème (en surchargeant la classe RAD (ou, comme nous en copiant le tout et utilisant nos classes en lieu et place des classes originales)
ainsi, tes contrôles sont simplement à envoyer dans la proc locale RADEnregistre et non plus dans un trigger ou même dans une classe (qui n'est pas faite pour cela).
Nous, on a même monté un mécanisme qui permet d'utiliser une locale RADEnregistreAprès() pour déclacher des traitement lors des enregistrements.