Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour à tous!
Voila j'aimerais pouvoir modifier le titre du message d'erreur dans le cas d'un echec lors du test de validation d'un champs.
Pour le corps du message on peut le faire dans le painter, a l'emplacement "validation message" du champs; dans le code on peut le faire de cette facon :
dw_bdcde.modify("no_bc.ValidationMsg = '" + ls_err_message + "'")
Mais comment faire pour modifier le titre de cette message box qui est par defaut : "Datawindow error". Quelqu'un a une idée?
Hors ligne
Bon ben j'ai résolu seul mon problème
Alors je donne des explications car ca pourra peut être en aider d'autre.
On commence par créer une variable d'instance bouléenne, ib_ErrorHandled ou ib_ErreurPerso.
Dans la fonction ItemError de la datawindow où se trouve le champs, on place ce code:
if ib_ErrorHandled then ib_ErrorHandled = false Return 1 end if
La fontion itemerror est appelé lorsque l'item changed d'une dw retourne 1. Voici donc le code a placer dans l'itemchanged, lors de la modification du champs no_bc par exemple :
select count(*) into :nblignes from bon_commande where no_bc=:a_valeur; if nblignes=0 then dw_bdcde.setitem(1,"no_bc",a_valeur) retour = 2 else //MESSAGE PERSONALISE messagebox("Erreur de valeur","Ce N° de commande existe déjà") ib_ErrorHandled = true retour = 1 end if Return retour
Explications :
Lorsque la fonction ItemError sera appelé, si ErrorHandled est à true, elle ne declenchera aucune action si ce n'est de réinitialiser cette valeur a false. Si ErrorHandled est à false lors de l'appel a ItemError (par défaut si non précisé), aucun bout de code n'est executé donc le test de validation par defaut est executé mais il reste possible de personnaliser le validationmessage comme expliquer dans le post precedent.
A bientot!
Dernière modification par hellkinder (12-12-2006 10:17:47)
Hors ligne
hellkinder a écrit:
Bonjour à tous!
Voila j'aimerais pouvoir modifier le titre du message d'erreur dans le cas d'un echec lors du test de validation d'un champs.
Pour le corps du message on peut le faire dans le painter, a l'emplacement "validation message" du champs; dans le code on peut le faire de cette facon :Code: pb
dw_bdcde.modify("no_bc.ValidationMsg = '" + ls_err_message + "'")Mais comment faire pour modifier le titre de cette message box qui est par defaut : "Datawindow error". Quelqu'un a une idée?
tu peux essayer ca ?
dw_bdcde.Object.DataWindow.Message.Title = 'waaouuuuu'
Hors ligne
Donc effectivement cela fonctionne aussi
Merci bien Pick!
Quelqu'un voit t il une difference au final entre ma solution et celle de Pick???? car moi j'en trouve pas. Donc the "pick ouic's solution" me parait une bonne solution car bien plus courte.
Dernière modification par hellkinder (12-12-2006 11:01:53)
Hors ligne