PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Photo/Image
Photo/Image
Débuté par Franck, 10 sep. 2019 09:48 - 27 réponses
Membre enregistré
88 messages
Posté le 10 septembre 2019 - 09:48
Bonjour,

J'ai un fichier qui contient des jeunes, j'ai un champs photo de ces jeunes.
Sur la fenêtre création l'ajout de photo ne pose aucun problème.
Ensuite en cas de modification, je reviens sur cet enregistrement via une fenêtre consultation et modification, tout apparait bien, même la photo. J'ai un groupe de champs, si modification sur un des champs, le bouton modifier modifie l'enregistrement. Jusque la tout va bien.
Mais, concernant la photo si elle n'a pas bougé, elle est effacé, et si je veux la changer, je sélectionne la nouvelle photo, et pareil, il efface l'ancienne et ne la remplace pas.

SI GR_GroupemodifJ..Modifié=Vrai ALORS

HModifie(Jeunes)
FIN


j'ai essayé d'exclure le champs image du groupe et du coup de le redéfinir dans la modification

SI IMG_photojeune..Modifié = Vrai ALORS
Jeunes.Photo=IMG_photojeune
HModifie(Jeunes.Photo)
FIN



Ca change rien, à tout les coup j'efface la photo, et impossible d'en rajouter une

Merci

--
Merci ;) Franck
Posté le 10 septembre 2019 - 11:05
Bonjour,
Dans un premier temps, il y a une erreur de syntaxe au niveau de HModifie. La syntaxe est :
HModifie([<Nom du fichier> [, <Numéro d'Enregistrement> [, <Options>]]])

Dans un deuxième temps, la partie de code à l'intérieur du test est elle exécutée ? (si tu n'as pas eu de message d'erreur ça m'étonnerai, a moins que tu gères tes erreurs et exceptions via CAS ERREUR:, CAS EXCEPTION)
Que donne :
SI IMG_photojeune..Modifié = Vrai ALORS
Trace("Condition exécutée")
Jeunes.Photo=IMG_photojeune
SI HModifie(Jeunes) ALORS
Trace("Enregistrement modifié")
SINON
Trace("Pas de modification")
Trace(HErreurInfo)
FIN
FIN
Membre enregistré
3 844 messages
Popularité : +227 (347 votes)
Posté le 10 septembre 2019 - 11:25
Bonjour,
Que donne
SI IMG_photojeune..Modifié = Vrai ALORS
Trace("Condition réalisée")
Jeunes.Photo=IMG_photojeune
SI HModifie(Jeunes) ALORS
Trace("Modification effectuée")
SINON
Trace("Erreur dans le modification")
Trace(HErreurInfo)
FIN
SINON
Trace("Condition non réalisée)
FIN


--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
88 messages
Posté le 10 septembre 2019 - 11:38
cela me donne "condition non realisée"

:(

--
Merci ;) Franck
Membre enregistré
88 messages
Posté le 10 septembre 2019 - 11:40
j'ai inséré ce code en bloquant tout le reste pour voir si cela venait d'une autre partie des fonctions que j'ai attribué au bouton valider.

cela me donne le meme resultat "condition non réaliséeé

--
Merci ;) Franck
Membre enregistré
88 messages
Posté le 10 septembre 2019 - 11:42
en fait j'ai deux soucis,

si je modifie d'autres champs sans toucher à la photo, ca la vire quand meme, il faudrait que j'associe mon hmodifie juste aux champs modifiés, cela doit etre possible mais je ne sais pas comment

et le second soucis est la photo elle meme, qui s'efface et refuse de se remettre

--
Merci ;) Franck
Membre enregistré
88 messages
Posté le 10 septembre 2019 - 11:48
En tout cas ravi de vous recroiser Voroltinquo :merci:

--
Merci ;) Franck
Message modifié, 10 septembre 2019 - 11:49
Membre enregistré
3 844 messages
Popularité : +227 (347 votes)
Posté le 10 septembre 2019 - 11:58
Je pense que cela vient de ..Modifié. Si mes souvenir sont bons, il ne passe à vrai que lors d'une saisie "physique" (clavier ou souris) et non lors d'une modification par programmantion, comme c'est souvent le cas dans l'affectation d'un champ Image.
Il suffit de forcer cette valeur à vrai lors de l'affectation de l'image.
sCheminImage est une chaîne

sCheminImage=fSélecteurImage(fRepDonnées,"","Sélectionnez la photo de l'adhérent")
SI sCheminImage<>"" ALORS
IMG_Photo=sCheminImage
IMG_Photo..Modifié=Vrai
SINON
ToastAffiche("Aucune nouvelle photo sélectionnée",cvMilieu,RougeClair)
FIN


--
Il y a peut être plus simple, mais, ça tourne
Message modifié, 10 septembre 2019 - 12:18
Membre enregistré
88 messages
Posté le 10 septembre 2019 - 12:10
ok, je vais tenter ca.

et d'ailleurs meme sans modification d'image, il faut que je force pour qu'il laisse l'image du coup ?

--
Merci ;) Franck
Membre enregistré
88 messages
Posté le 10 septembre 2019 - 12:11
enfin je vais tenter ca, je vais d'abord chercher comment on fait ca :D

--
Merci ;) Franck
Membre enregistré
3 844 messages
Popularité : +227 (347 votes)
Posté le 10 septembre 2019 - 12:19
Il y a eu un croisement entre ta réponse et la modification de mon post, j'ai ajouté un bout de code.
Souvent celui là je le met dans "Clic sur Image"

--
Il y a peut être plus simple, mais, ça tourne
Message modifié, 10 septembre 2019 - 12:21
Membre enregistré
88 messages
Posté le 10 septembre 2019 - 13:31
Oui ca s'est croisé

donc ok pour l'insertion de l'image, cela devrait regler une partie du probleme.

Mais est ce que si je consulte une fiche, et que je ne fais rien du tout sur la photo, cela evitera qu'elle s'efface a chaque que j'enregistre une modification sur un autre champs. car jusqu'a présent ca l'efface, alors je n'y ai même pas touché.

en clair : je suis sur une table comprenant la liste de mes jeunes, je sélectionne une ligne, j ouvre la fenêtre consultation modification, la photo s'affiche, je change par exemple le numéro de téléphone, j'appuie sur enregistrer les modification a travers hmodifie, et vlan ca m'efface la photo.

du coup je reviens sur la fiche pour reintegrer la photo et c'est la que je vais ton code, dans le bouton choisirphoto() que j'utilisais. Logiquement cela va la reintegrer ce coup ci

--
Merci ;) Franck
Membre enregistré
88 messages
Posté le 10 septembre 2019 - 13:39
j 'ai finalement viré le bouton choisir photo, et integre ton code dans le clic image, ca marche nickel.

par contre c'est comme je le pensais, lorsque je rentre sur une fiche pour modifier un autre champs au moment de valider ca efface la photo.

:(

--
Merci ;) Franck
Membre enregistré
3 844 messages
Popularité : +227 (347 votes)
Posté le 10 septembre 2019 - 14:07
Peux tu poster ton code de validation ?

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
88 messages
Posté le 10 septembre 2019 - 14:21
HRAZ(Jeunes)
EcranVersFichier()
SI GR_GroupemodifJ..Modifié=Vrai ALORS

HModifie(Jeunes)
FIN



SI IMG_photojeune..Modifié=Vrai ALORS
Trace("condition réalisée")
Jeunes.Photo=IMG_photojeune
SI HModifie(Jeunes) ALORS
Trace("modification effectuée")
SINON
Trace("erreur dans la modification")
Trace(HErreurInfo)
FIN
SINON
Trace("condition non réalisée")

FIN







IDSession est un entier
IDSession = EmailOuvreSessionOutlook("outlook")
RendezVousRAZ()

SI SAI_OPP..Modifié=Vrai ALORS

mRendezVous.Objet = SAI_OPP..Libellé+ " / " + SAI_JNomPrenom
mRendezVous.DateDébut = SAI_OPP+"080000"
mRendezVous.DateFin =SAI_OPP+"083000"
mRendezVous.RappelAuto = Oui
mRendezVous.RappelAvant =40320
SI RendezVousAjoute(IDSession) = Vrai ALORS
Info("OPP ajoutée")
SINON
Erreur("Erreur lors de l'ajout", ErreurInfo())
FIN
FIN



SI SAI_OPP..Modifié=Vrai ALORS
mRendezVous.Objet = "RE / " + SAI_JNomPrenom
mRendezVous.DateDébut = SAI_OPP+"080000"
mRendezVous.DateFin =SAI_OPP+"083000"
mRendezVous.RappelAuto = Oui
mRendezVous.RappelAvant =80640

SI RendezVousAjoute(IDSession) = Vrai ALORS
Info("RE Ajoutée")
SINON
Erreur("Erreur lors de l'ajout RE", ErreurInfo())
FIN
FIN

SI SAI_PPE..Modifié=Vrai ALORS
mRendezVous.Objet = SAI_PPE..Libellé+ " / " + SAI_JNomPrenom
mRendezVous.DateDébut = SAI_PPE+"080000"
mRendezVous.DateFin =SAI_PPE+"083000"
mRendezVous.RappelAuto = Oui
mRendezVous.RappelAvant =40320

SI RendezVousAjoute(IDSession) = Vrai ALORS
Info("PPE Ajouté")
SINON
Erreur("Erreur lors de l'ajout PPE", ErreurInfo())
FIN
FIN

SI SAI_CMU..Modifié=Vrai ALORS
mRendezVous.Objet = SAI_CMU..Libellé+ " / " + SAI_JNomPrenom
mRendezVous.DateDébut = SAI_CMU+"080000"
mRendezVous.DateFin =SAI_CMU+"083000"
mRendezVous.RappelAuto = Oui
mRendezVous.RappelAvant =40320

SI RendezVousAjoute(IDSession) = Vrai ALORS
Info("CMU Ajoutée")
SINON
Erreur("Erreur lors de l'ajout ", ErreurInfo())
FIN
FIN

SI SAI_dirr..Modifié=Vrai ALORS
SI SAI_dirr<>"" ALORS
mRendezVous.Objet = SAI_dirr..Libellé+ " / " + SAI_JNomPrenom
mRendezVous.DateDébut = SAI_dirr+"080000"
mRendezVous.DateFin =SAI_dirr+"083000"
mRendezVous.RappelAuto = Oui
mRendezVous.RappelAvant =40320
SI RendezVousAjoute(IDSession) = Vrai ALORS
Info("La DIRRECTE ajoutée")
SINON
Erreur("Erreur lors de l'ajout", ErreurInfo())
FIN
FIN
FIN


TableAffiche(FEN_listjeune.TABLE_REQ_jeuneactifheberge,taCourantEnreg)


RAZ()

Ferme(FEN_ModificationJeune)




J'ai laissé ton tracer pour verifier, c'est ok quand je modifie la photo, c'est non realisée quand je modifie tout sauf la photo

--
Merci ;) Franck
Membre enregistré
3 844 messages
Popularité : +227 (347 votes)
Posté le 10 septembre 2019 - 14:51
Le champ table est à priori alimenté par une requête, avant le rafraîchissement, il faut ré exécuter la requête pour avoir les données à jour.
En fonction du mode de remplissage, c'est un taInit ou taRéExécuteRequête. Ça ne va peut être pas totalement résoudre le problème, mais ça en fera déjà un de moins .

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
88 messages
Posté le 10 septembre 2019 - 14:54
oui exact. j'ai corrigé deja ca

--
Merci ;) Franck
Membre enregistré
3 844 messages
Popularité : +227 (347 votes)
Posté le 10 septembre 2019 - 15:59
As-tu réintégré l'image dans ton groupe ?
Ton image est-elle reliée au fichier de données?

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
88 messages
Posté le 10 septembre 2019 - 17:25
Oui j ai réintégré au groupe
Et oui elle est relié et comme il faut car quand j ouvre la fiche et que je modifie la photo ca marche. Par contre si j ouvre la fiche et que je modifie autre chose sans toucher a la photo le reste se modifie mais ca m efface la photo .

--
Merci ;) Franck
Membre enregistré
165 messages
Popularité : +12 (12 votes)
Posté le 10 septembre 2019 - 20:24
Bonjour;

Mettez la première ligne en commentaire et testez.

// HRAZ(Jeunes)


Bon Dev.
Membre enregistré
3 844 messages
Popularité : +227 (347 votes)
Posté le 11 septembre 2019 - 08:49
En effet, le HRAZ avant une modif, n'est pas vraiment une bonne idée dans la mesure où il met à 0 les données de l'enregistrement en mémoire et comme dans notre cas, la modif se fait sous 2 conditions différentes, si l'une et l'autre ne sont pas vérifiées, on ne récupère qu'une partie des infos.
On va quand même remettre de l'ordre dans notre code.
Dans l'affectation de l'image, comme IMG_Photo est dans le groupe, il suffit de dire que le groupe a été modifié, ça ne nous fera plus qu'un test.
De même, comme l'image est reliée à la rubrique, il est inutile de faire une affectation manuelle, FichierVersEcran fait le boulot.
Pour récapituler :
Clic sur Image :
sCheminImage est une chaîne

sCheminImage=fSélecteurImage(fRepDonnées,"","Sélectionnez la photo de l'adhérent")
SI sCheminImage<>"" ALORS
IMG_Photo=sCheminImage
GR_GroupemodifJ..Modifié=Vrai //Normalement, le fait que IMG_Photo..Modifié passe à vrai doit faire passer GR_... à vrai, mais on applique ceinture + bretelles
SINON
ToastAffiche("Aucune nouvelle photo sélectionnée",cvMilieu,RougeClair)
FIN


Modification :
//Penser à intégrer les test de validité
SI GR_GroupemodifJ..Modifié=Vrai ALORS
EcranVersFichier()
HModifie(Jeune)
HModifie(Jeunes)
FIN


--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
88 messages
Posté le 11 septembre 2019 - 09:07
Bonjour

d'avoir enlevé le hraz à réglé le problème, la photo ne s'efface plus. ce qui est déjà un grand pas en avant pour si peu de lettre :)
pour le clic image j'ai donc rajouté la ligne sur le groupe, car hier j'avais déjà intégré ton code avec juste la notion image.

pour l instant je laisse ton tracer pour voir comme il réagit.

--
Merci ;) Franck
Membre enregistré
88 messages
Posté le 11 septembre 2019 - 09:10
Maintenant mon soucis, c'est le groupe , car j'ai intégré dans ce groupe 4 champs, qui sont analysés dans la suite du code, en cas de modification je lui demande d'ecrire dans l'agenda outlook. mais du coup la notion de vrai etant forcé sur le groupe ca me réécrit à tout les coups dans l'agenda

--
Merci ;) Franck
Membre enregistré
88 messages
Posté le 11 septembre 2019 - 09:12
dans le clic image, si j'ajoute ou change une photo ca me force en vrai, et du coup il réécrit tout.

je dois donc ou enlever dans le clic image toutes notions de groupe, ou crée un autre groupe pour les champs qui declenchent l'ecriture outlook ?

--
Merci ;) Franck
Membre enregistré
3 844 messages
Popularité : +227 (347 votes)
Posté le 11 septembre 2019 - 10:33
Pourquoi ne pas créer un groupe (GR_DonnéesTexte) sans l'image, les 2 contextes sont indépendants donc la modif du groupe initial n'influera pas dans GR_DonnéeTexte

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
88 messages
Posté le 11 septembre 2019 - 10:37
oui pourquoi pas, mais est ce utile que dans le clic image il y est la notion du groupe en vrai. puisque l'image passe en vrai seulement si modification et comme elle est integre au groupe deja, elle va se renseigner vrai seulement en cas de modification. d'autant que depuis que j'ai enleve le hraz , il n'efface plus l'ancienne photo.

--
Merci ;) Franck
Membre enregistré
3 844 messages
Popularité : +227 (347 votes)
Posté le 11 septembre 2019 - 10:42
ça permet uniquement de factoriser le code, il sera plus facile à reprendre dans 2 ans
ça évitera, le "bon sang, pourquoi je teste la modif de la photo"
Là c'est simple, une donnée concernant le jeune a changé, on modifie la base

Une donnée "administrative du jeune a changé", dans ce cas en plus on gère les mails

--
Il y a peut être plus simple, mais, ça tourne
Message modifié, 11 septembre 2019 - 10:44
Membre enregistré
88 messages
Posté le 11 septembre 2019 - 10:55
oui excellente idée

--
Merci ;) Franck