Je souhaiterais conserver une sorte d'historique de toutes les
modifications apportées par l'utilisateur sur le contenu de champs
(provenant de plusieurs fichiers) affichés dans une fenêtre.
La propriété « modifié » me permet de tester un champ ou une fenètre
mais je souhaiterais une sorte de boucle qui me test tous mes champs
et qui le cas échéant ajoute des infos dans un champ RTF. Je
souhaiterais ajouter une ligne précisant l'ancien et le nouveau
contenu du champ.
Ex :
Le DD/MM/YYYY à HH :MM Login a remplacé AncienContenu par
NouveauContenu dans le champ MonChamp.
Ma question comment fait on pour effectuer une opération sur tous les
champs d'une fenètre.
Merci d'avance
Stan
PS : Le Journal serait il une autre sorte de solution.
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,
voici une piste:
// code en entrée de fenêtre: i est un entier ValeurChamp est une chaine ValModif est une chaine NomTemp est ne chaine NomChamp est un tableau de xx chaines //xx=nombre de champs de ta fenetre, voire plus TypeChamp est un tableau de xx entiers i=1 boucle NomTemp=enumerechamp(nomfenetre,i) si Nomtemp="" sortir nomchamp[i]=nomtemp Typechamp[i]=typevar({nomtemp}) i++ fin i--
// code après lecture enregistrements X est un entier pour X=1 a I si typechamp[x]<>wlChaine alors Valchamp+=numeriqueverschaine({nomchamp}[i])+tab sinon valchamp+={nomchamp}[i]+tab fin // code après chaque modif X est un entier pour X=1 a I si typechamp[x]<>wlChaine alors ValModif+=numeriqueverschaine({nomchamp}[i])+tab sinon valModif+={nomchamp}[i]+tab fin pour x=1 a I si extraitchaine(valchamp,i)<>extraitchaine(valmodif,i) alors changement est une chaine=extraitchaine(valchamp,i)+" a changé pour "+extraitchaine(valmodif,i) + "le à" sortir fin enregistre(changement) valChamp=valmodif valmodif=""
// ça doit fonctionner "
Bonjour,
voici une piste:
// code en entrée de fenêtre:
i est un entier
ValeurChamp est une chaine
ValModif est une chaine
NomTemp est ne chaine
NomChamp est un tableau de xx chaines //xx=nombre de
champs de ta fenetre, voire plus
TypeChamp est un tableau de xx entiers
i=1
boucle
NomTemp=enumerechamp(nomfenetre,i)
si Nomtemp="" sortir
nomchamp[i]=nomtemp
Typechamp[i]=typevar({nomtemp})
i++
fin
i--
// code après lecture enregistrements
X est un entier
pour X=1 a I
si typechamp[x]<>wlChaine alors
Valchamp+=numeriqueverschaine({nomchamp}[i])+tab
sinon
valchamp+={nomchamp}[i]+tab
fin
// code après chaque modif
X est un entier
pour X=1 a I
si typechamp[x]<>wlChaine alors
ValModif+=numeriqueverschaine({nomchamp}[i])+tab
sinon
valModif+={nomchamp}[i]+tab
fin
pour x=1 a I
si extraitchaine(valchamp,i)<>extraitchaine(valmodif,i) alors
changement est une chaine=extraitchaine(valchamp,i)+" a changé pour
"+extraitchaine(valmodif,i) + "le à"
sortir
fin
enregistre(changement)
valChamp=valmodif
valmodif=""
// code en entrée de fenêtre: i est un entier ValeurChamp est une chaine ValModif est une chaine NomTemp est ne chaine NomChamp est un tableau de xx chaines //xx=nombre de champs de ta fenetre, voire plus TypeChamp est un tableau de xx entiers i=1 boucle NomTemp=enumerechamp(nomfenetre,i) si Nomtemp="" sortir nomchamp[i]=nomtemp Typechamp[i]=typevar({nomtemp}) i++ fin i--
// code après lecture enregistrements X est un entier pour X=1 a I si typechamp[x]<>wlChaine alors Valchamp+=numeriqueverschaine({nomchamp}[i])+tab sinon valchamp+={nomchamp}[i]+tab fin // code après chaque modif X est un entier pour X=1 a I si typechamp[x]<>wlChaine alors ValModif+=numeriqueverschaine({nomchamp}[i])+tab sinon valModif+={nomchamp}[i]+tab fin pour x=1 a I si extraitchaine(valchamp,i)<>extraitchaine(valmodif,i) alors changement est une chaine=extraitchaine(valchamp,i)+" a changé pour "+extraitchaine(valmodif,i) + "le à" sortir fin enregistre(changement) valChamp=valmodif valmodif=""
// ça doit fonctionner "
stanislas
Merci beaucoup, après quelques corrections et bidouillage votre méthode fonctionne parfaitement, je ne connaissais pas EnumèreChamp. Je vais voir ce que cela peut donner si j'ajoute un tableau sur ma fenêtre…
Stan
Merci beaucoup, après quelques corrections et bidouillage votre
méthode fonctionne parfaitement, je ne connaissais pas EnumèreChamp.
Je vais voir ce que cela peut donner si j'ajoute un tableau sur ma
fenêtre…
Merci beaucoup, après quelques corrections et bidouillage votre méthode fonctionne parfaitement, je ne connaissais pas EnumèreChamp. Je vais voir ce que cela peut donner si j'ajoute un tableau sur ma fenêtre…
Stan
farplus
Bonjour,
normal s'il y avait des erreurs, je ne l'ai pas testé. Pour ce qui est du tableau, s'il sert à lister les différentes valeurs (avant et après modification) n'oubliez pas de le sortir de la liste, si c'est un tableau relié à un fichier il faut vous construire une zone mem en parallèle pour tester les changements ou alors sauver l'ancienne valeur à l'entrée dans la zone et comparer les 2 à la sortie.
A+
Bonjour,
normal s'il y avait des erreurs, je ne l'ai pas testé.
Pour ce qui est du tableau, s'il sert à lister les différentes valeurs
(avant et après modification) n'oubliez pas de le sortir de la liste, si
c'est un tableau relié à un fichier il faut vous construire une zone mem en
parallèle pour tester les changements ou alors sauver l'ancienne valeur à
l'entrée dans la zone et comparer les 2 à la sortie.
normal s'il y avait des erreurs, je ne l'ai pas testé. Pour ce qui est du tableau, s'il sert à lister les différentes valeurs (avant et après modification) n'oubliez pas de le sortir de la liste, si c'est un tableau relié à un fichier il faut vous construire une zone mem en parallèle pour tester les changements ou alors sauver l'ancienne valeur à l'entrée dans la zone et comparer les 2 à la sortie.