il existe :
SI SAI_NomClient..Modifié = Vrai ALORS
Mais ca marcha que si le champs a été modifié par l'utilisateur (saisie au clavier ou à la souris).
-
Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !Rejeter la notice
AIDE Détection automatique des modifications d'un champ saisie
Discussion dans 'Windev' créé par ProDev, Mar 9, 2018.
Tags:
"Comment peut-on fait pour que le champ de saisie va détecter automatiquement cette modification ?"
Supposant qu'il détecte automatiquement cette modification, il est supposé faire quoi après ?
Il y a quelque temps, j'ai écrit quelques procédures pour enregistrer les modifications des données dans une fenêtre. Si quelqu'un peut arranger les choses, c'est génial.
Pour lire les commandes lors de l'entrée dans la fenêtre:
Comparez les contrôles lors de la sauvegarde des données:Code (Windev):
PROCEDURE lee_controles(WIN_EditWindow)
nro_controles=0
tipo is int
i is int =1
ResControl is string
ResControl =Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(WIN_EditWindow, i)
WHILE ResControl <> ""
tipo = {ResControl,indControl}..Type
IF tipo =typText OR tipo =typDate OR tipo =typTime OR tipo =typComboWE OR tipo =typComboNE OR tipo =typNum THEN
ResControl = ResControl+";"+{ResControl,indControl}..DisplayedValue+CR
Desde_control=Desde_control+ResControl
nro_controles++
END
i++
ResControl =Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(esta_ventana, i)
END
Code (Windev):
PROCEDURE Compara_controles()
comparacion is string=""
bEstado is boolean
i is int
sLinea is string
sLinha is string
desde,hasta are string
tipo is int
ii is int =1
ResControl is string
ResControl =Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(MyInternalWindow, 1)
WHILE ResControl <> ""
ResControl =Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(MyInternalWindow, ii)
IF ResControl>"" THEN
tipo = {ResControl,indControl}..Type
IF (tipo =typText OR tipo =typDate OR tipo =typTime OR tipo =typComboWE OR tipo =typComboNE OR tipo =typNum) THEN
ResControl = ResControl+";"+{ResControl,indControl}..DisplayedValue+CR
Hasta_control=Hasta_control+ResControl
END
END
ii++
END
i=1
bCAMBIO is boolean = False
comparacion = "Usuario : "+Sinombre+" "+SiApellido+CR
comparacion = "Fecha movimiento: " +Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
()) +" "+Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
())+CR+comparacion+CR
desde=Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(Desde_control, i)
WHILE desde<>EOT
ResControl =Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(MyInternalWindow, i)
desde=Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(Desde_control, i)
hasta=Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(Hasta_control, i)
//if {ResControl}..State=ACTIVE THEN
IF desde<>hasta THEN
comparacion = comparacion + "Valor inicial "+ desde+CR+"Valor final "+hasta+CR+CR
bCAMBIO = True
END
//END
i++
END
comparacion=Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(comparacion,"COMBO_","")
comparacion=Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(comparacion,"EDT_","")
comparacion=Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(comparacion,";",": ")
IF bCAMBIO=True THEN
arch is int=Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
("controlesh",foReadWrite)
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(arch,comparacion)
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(arch)
END
Pour faire simple voici un exemple:
On commence par creer un timer systeme pour detecter le changement du ou des champs dans le code de la fenetre
TimerSys(TesteModification,10,1) // TestModification est la procedure de detection
// La procedure sera alors
Et voila.Code (Windev):
PROCEDURE TesteModification()
SI (Le nom du champs)..Modifié = [I]Vrai[/I] ALORS // dans cette exemple nous allons prendre comme nom du champs SAISIE1
(Le nom du champs)..Modifié = [I]Faux [/I]// la sera comme suite: Si saisie1..Modifié = [I]Vrai[/I] ALORS
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(("Modification detecter")) // saisie1..Modifié = [I]Faux[/I]
FIN
saisie1 = 1
// et la on ajoute une affectation au champs d'un changement d'etat
Saisie1..Modifié = [I]Vrai[/I]
** Remarque : il faut pas oublier de changer l'etat du champs..Modifié=Faux dans la procedure sinon le teste repondra indefinement par vrai
** Le timer systeme peut etre gerer selon le besoin est l'annuler ensuite.
Bonjour,
je modifie un champ de saisie en affectant une valeur par programmation...
Comment peut-on fait pour que le champ de saisie va détecter automatiquement cette modification ? J'ai essayé le traitement "A chaque modification de ..." mais rien n'est détecté.
MerciCliquez pour agrandir...
my 2 cents...
Voir la fonction Enregistrement Avant..Contenu=EnregistrementAprès..contenu