PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Pb important chez un client avec la saisie de texte dans des champs RTF
Pb important chez un client avec la saisie de texte dans des champs RTF
Débuté par guest, 11 jan. 2005 19:20 - 3 réponses
Posté le 11 janvier 2005 - 19:20
J'espère vraiment que quelqu'un va pouvoir m'aider.

J'ai créé une application pour saisir différents projets pour des enfants, et chaque projet peut avoir différentes rubriques.

Donc pour chaque enfant j'ai par exemple :

1) Enfant - Projet de l'élève (+ le texte du projet ) (correspond à un enregistrement)

2) Enfant - Projet Pédagogique - Rubrique Orhtoptie (+ le texte du projet)

3) Enfant - Projet Pédagogique - Rubrique A.V.J (+ le texte du projet)

J'ai donc ma fenêtre de saisie de projet où je peux choisir par combo :
- l'année scolaire
- l'enfant
- le projet
- la rubrique du projet

Et en dessous j'ai un champ rtf où on saisi le texte concernant le projet avec une mise en forme éventuelle (gras , italique, couleur..) ou bien s'il existe déjà j'affiche le texte.

Pour changer d'enfant soit je valide (ce qui met a jour l'enregistrement) soit j'annule (et je ne tiens pas compte des modifications apportées dans le champs de saisie)

Lorsque je valide où j'annule je remets mon champ de saisie RTF, mes variables .. à blanc (je réinitialise)

Il est obligatoire de valider ou d'annuler pour sélectionner une autre année, un autre enfant, un autre projet ou une autre rubrique.

Et pourtant il arrive (aléatoirement) chez mon client qu'après avoir saisie le texte d'un des projets et valider la saisie, le lendemain en revenant dans l'enregistrement il n'y a plus rien, le texte n'existe plus et de devoir le resaisir.

Autre cas qui survient aléatoirement, lorsque l'on revient dans un projet d'un enfant on retrouve parfois des caractères étranges (carré, lettre avec des accents....) enfin de texte et qui remplace une partie du texte qui avait été saisi.

Cela fait presque trois semaines que j'essaye de résoudre ce problème sans succès, et je desespère de trouver un jour une solution à ce problème.

Si quelqu'un à déjà rencontré ce genre de problème pourrait-il me conseiller ou m'aider car j'en ai grand besoin.

Merci d'avance.
Posté le 12 janvier 2005 - 00:57
Bonjour,

Quelques commentaires :

1. L'enregistrement ne peut pas exister puis disparaitre s'il y a eu inscription physique. L'erreur vient donc certainement d'une variable ou d'un champ qui est vidé alors qu'il ne le devrait pas lors de l'enregistrement.

2. Quand tu dis que tu réinitialises ton texte RTF par exemple tu utilises quelle fonction ? Si tu fais RAZ() tous les champs seront remis à 0. Vérifie si tous cela est correct ou pas et si certains champs ne devraient pas ne pas être vidés.

3. Fais-tu HRAZ pour initialiser avant un nouvel enregistrement ? Sinon peut être que l'enregistrement remplace une donnée stockée en mémoire ?

4. As tu testé d'autres install sur d'autres postes ? As tu essayé de voir si les enregistrements existaient vraiment dans la base ou pas (fichier .fic...) ?

Si tu pouvais transmettre plus de codes ou de modèles de procédure, je pourrais éventuellement t'aider.

Cordialement,

Jérôme
Posté le 12 janvier 2005 - 09:47
Pour initialiser mes variables je ne fais pas de RAZ() pour ne pas tout vider justement, ensuite mes champs à l'écran ne sont pas liés avec des données dans le fichier. Je récupère les valeurs de mes champs et je vérifie l'existence de l'enregistrement, s'il existe déjà je modifie l'enregistrement, s'il n'existe pas je créé l'enregistrement.

Voici le code de mon bouton valider :


---------------------------------------------------------
memoannee est une chaîne = ""
memoproj est une chaîne = ""
memorub est une chaîne = ""
memoidress est un entier = 0

idressources = Combo_Enfant.IDPersonne_Ressources
Annee = Combo1..ValeurAffichée
Code_projet = Combo_Projet.Cod_proj

SI Combo_Rubrique..ValeurAffichée = "" ALORS
Codrub = ""
SINON
Codrub = Combo_Rubrique.Code_rub
FIN

VideStructure()

//on vérifie si un projet existe déjà pour l'enfant (pour l'année, le projet, la rubrique sélectionnés)
HExécuteRequête(RechIDEnfantProjet,hRequêteDéfaut,Annee,Code_projet,Codrub,idressources)
HLitPremier(RechIDEnfantProjet)
SI HTrouve(RechIDEnfantProjet) ALORS

id_projenfant est une entier = RechIDEnfantProjet.IDEnfantProjet
HLitRecherche(EnfantProjet,IDEnfantProjet,id_projenfant)
SI HTrouve() ALORS
//on récupère les infos de la structure
memoannee = EnfantProjet.Annee_scolaire
memoproj = EnfantProjet.Cod_proj
memorub = EnfantProjet.Cod_rub
memoidress = EnfantProjet.IDPersonne_Ressources
TexteRappelProjet = EnfantProjet.TexteRappelProjet
TexteBilan = EnfantProjet.TexteBilanProjet

//On modifie l'enregistrement
EnfantProjet.Annee_scolaire = memoannee
EnfantProjet.Cod_proj = memoproj
EnfantProjet.Cod_rub = memorub
EnfantProjet.IDPersonne_Ressources = memoidress
EnfantProjet.TexteBilanProjet = TexteBilan
EnfantProjet.TexteRappelProjet = TexteRappelProjet
EnfantProjet.TexteProjet = ChampRTF.SaisieTexte
HModifie(EnfantProjet)
FIN

SINON
CreationRessourcesProjet()
FIN

RAZChamps()

ModifAppliquee = Vrai
ChampRTF..Visible = Faux
Rappel..Visible = Faux
Valide..Visible = Faux
Annuler..Visible = Faux

//on débloque les champs de sélection
DeBloqueChampsSelect()
----------------------------------------------------------------------------------------------------

VideStructure() :


EnfantProjet.Cod_proj = ""
EnfantProjet.Cod_rub = ""
EnfantProjet.Annee_scolaire = ""
EnfantProjet.IDPersonne_Ressources = 0
EnfantProjet.TexteProjet = ""
EnfantProjet.TexteRappelProjet = ""
EnfantProjet.TexteBilanProjet = ""

------------------------------------------------------------------------------------------------------

CreationRessourcesProjet() :


idressources = Combo_Enfant.IDPersonne_Ressources
Annee = Combo1..ValeurAffichée
Code_projet = Combo_Projet.Cod_proj

SI Combo_Rubrique..ValeurAffichée = "" ALORS
Codrub = ""
SINON
Codrub = Combo_Rubrique.Code_rub
FIN

EnfantProjet.Annee_scolaire = Annee
EnfantProjet.Cod_proj = Code_projet
EnfantProjet.IDPersonne_Ressources = idressources
EnfantProjet.TexteProjet =ChampRTF.SaisieTexte
EnfantProjet.TexteRappelProjet = ""
EnfantProjet.TexteBilanProjet = ""
EnfantProjet.Cod_rub = Codrub

HAjoute(EnfantProjet)
Posté le 12 janvier 2005 - 12:41
Bonjour,

1. Essaye une affectation directe de ton champs RTF vers ta base pour voir
2. Verifie le format de ta base pour les champs qui posent des problèmes
3. Vérifie sur le poste utilisateur si les donnés sont bien physiquement inscrites ou pas.
4. Dans la structure de ton code il serait judicieux de mettre sous la forme d'une procédure tous les codes permettant de vérifier si les champs nécessaires sont rempli ou pas (avec valeur booléenne négative renvoyer en cas de non conformité). Ainsi, tu pourras mieux isoler certains problèmes
5. Il serait mieux peut être que tu fasse des HRAZ() afin qu'il ne soit pas garder en mémoire la valeur du projet précédent. Vérifie si les erreurs arrivent dès le premier projet ou alors lors de la saisi/modif du deuxième... Si tel est le cas, t'as trouver le problème.

En espérant t'aider

Jérôme