1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. 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.

  1. ProDev

    ProDev Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 11, 2018
    Messages:
    371
    J'aime reçus:
    372
    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é.

    Merci
     
  2. channibal

    channibal Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 22, 2018
    Messages:
    210
    J'aime reçus:
    277
    Bonjour,

    Bah après l'affectation par programmation lance le Traitement voulu du champs de saisi en question

    Code (Windev):

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (SAI_nomdechamps,trtModification)
     
  3. ProDev

    ProDev Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 11, 2018
    Messages:
    371
    J'aime reçus:
    372
    Merci

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    mais ça marche pas!!!

    qui dit mieux??
     
  4. channibal

    channibal Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 22, 2018
    Messages:
    210
    J'aime reçus:
    277

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Merci

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    mais ça marche pas!!!

    qui dit mieux??
    Cliquez pour agrandir...
    si ça doit marcher!! sinon, peut être que t'as mal exposé le problème!
     
  • michel

    michel Well-Known Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    174
    J'aime reçus:
    598
    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).
     
  • channibal

    channibal Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 22, 2018
    Messages:
    210
    J'aime reçus:
    277
    "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 ?
     
  • vicent54

    vicent54 Member

    Inscrit:
    Jan 25, 2018
    Messages:
    41
    J'aime reçus:
    15
    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:
    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
     
    Comparez les contrôles lors de la sauvegarde des données:
    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
     
     
  • ProDev

    ProDev Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 11, 2018
    Messages:
    371
    J'aime reçus:
    372
    Merci pour vos réponses!!

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    en Vb ça marche sans soucis en windev non!!

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    Je vais essayer de comprendre votre code.. merci
     
  • mofa.dz

    mofa.dz New Member

    Inscrit:
    Mai 30, 2018
    Messages:
    3
    J'aime reçus:
    4
    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
    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]
     
    Et voila.

    ** 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.
     
  • irobot

    irobot Active Member
    MEMBRE WX

    Inscrit:
    Jan 10, 2018
    Messages:
    140
    J'aime reçus:
    131

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    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é.

    Merci
    Cliquez pour agrandir...
    quel code du champ doit intercepter la modif ? a chaque modif ? ( trtmodification) à la sortie ? ( trtsortie ?) le mieux, c'est de mettre le traitement à effectuer dans une fonction et de l'appeler de l'endroit ou tu veux l'executer ( le code qui modifie ta valeur et/ou le code de traitement de la fonction ).

    my 2 cents...
     
  • Mohamed

    Mohamed Active Member

    Inscrit:
    Jan 15, 2018
    Messages:
    304
    J'aime reçus:
    59
    Voir la fonction Enregistrement Avant..Contenu=EnregistrementAprès..contenu
     
  • Partager cette page

    Chargement...