PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Copier liste dans un fichier
Copier liste dans un fichier
Débuté par BCog, 07 juil. 2024 14:57 - 3 réponses
Membre enregistré
4 messages
Posté le 07 juillet 2024 - 14:57
Bonjour,
Dans une fenêtre j'ai un champ liste (associé à un fichier) lorsque je clique sur le bouton valider, je souhaiterai sauvegarder dans le fichier les éléments qui se trouvent dans la liste. Si possible en évitant les doublons.

Quelques détails :
Lorsqu'il y a des éléments dans le fichiers ils sont affichés lors de l'ouverture de la fenêtre. Pas de PB
C'est lors de l'ajout qu'il y a des questions :
- Comment éviter les doublons dans la liste.
- Une fois l'ajout/suppression de nouveaux éléments comment sauvegarder la liste mise à jour dans le fichier associé.

Je ne pense pas que fichierversecran puis hmodifie fasse l'affaire.
Merci de vos retours.
Bruno
Membre enregistré
683 messages
Posté le 07 juillet 2024 - 16:02
Bonjour,
Si le nombre de valeurs dans la liste n'est pas trop important, le plus simple est de comparer la valeur à ajouter à chaque valeur existante (parcours).
Si la valeur à ajouter ne correspond à aucune autre, vous l'ajoutez dans le fichier et vous rafraichissez la liste (Attention aux doublons dus à une valeur avec majuscule et l'autre valeur avec une minuscule).
Cdlt
Membre enregistré
4 097 messages
Posté le 07 juillet 2024 - 19:50
Bonjour,
A ma connaissance, on ne peut pas modifier directement les valeurs des éléments d'un champ liste. L'enregistrement dans la table dont les données alimentent ton champ liste .se fait donc en amont du ListeAffiche.
Pourquoi dans ce cas ne pas alimenter ton champ Liste par une requête SELECT DISTINCT ?
En fonction de ce que doit afficher le champ liste, tu peux même envisager de déclarer la colonne concernée en AK.

--
Il y a peut être plus simple, mais, ça tourne
Quand tout a échoué utilise l'option RTFM.
Message modifié, 07 juillet 2024 - 19:52
Membre enregistré
683 messages
Posté le 08 juillet 2024 - 02:16
ci dessous un exemple simple de code avec gestion HFSQL des doublons (une gestion des erreurs serait préférable) :
FichierHFSQL.MaRubrique = Saisie1
HAjoute(FichierHFSQL, hVérifieDoublon)
ListeAffiche(MaListe)


ou sans gestion des doublons par HFSQL
i est un entier
POUR i = 1 _À_ MaListe.Occurrence()
SI MaListe[i] = Saisie1 ALORS
Info("Valeur existante")
RETOUR
FIN
FIN
FichierHFSQL.MaRubrique = Saisie1
HAjoute(FichierHFSQL)
ListeAffiche(MaListe)