PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → problème de recuperation de valeur d'un combo
problème de recuperation de valeur d'un combo
Iniciado por tazizpro987, 02,sep. 2019 15:38 - 1 respuesta
Publicado el 02,septiembre 2019 - 15:38
salut, j'ai un soucis !
j'utilise windev 20 pour creer une petite application avec des fiche pour effectuer des enregistrement et afficher la liste de ces information dans un champs table. mais voila ,il y a deux problème :
1- la valeur du combo ne s'affiche pas dans la table mais plutot l'indice de la valeur
ex: civilité: M. affiche dans la table 1
Mme 2
Mlle 3
2- a chaque fois que j'effectu un enregistrement celui ci ecrase l'enregistrement précédent ce qui fait qu"il n'y a qu'une et une seule ligne dans la table.
j'espere trouver de l'aide
cordialement...
Miembro registrado
4.361 mensajes
Publicado el 02,septiembre 2019 - 17:31
Bonjour,
Pour le 1°

Syntaxe 1
// Résumé : Remplit la Combo/Liste avec les valeurs initialisées dans la description et permet de renvoyer la valeur du texte affiché
// Dans la description de la Combo/Liste, la case on pensera à cocher la case "Retourne la valeur spécifiée par gLien" dans la partie "Détail"
// Cette syntaxe sera utilisée dans l'initialisation du champ

// Syntaxe :
//ListeAffichageCrée ( [<sListeValeur> est chaîne])
//
// Paramètres :
// sListeValeur (chaîne ANSI - valeur par défaut="") : Liste des valeurs (séparées par RC) spécifiées dans le champ.
// Valeur de retour :
// Aucune
//
// Exemple :
// ListeRenvoiAffichage()
// Avec les valeurs M, Mme, Mlle, la sélection de Mme renverra "Mme"
//
// Notes :
// Cette syntaxe a été créée afin d'utiliser ListeRenvoiAffichage("M."+RC+"Mme.") en omettant MoiMême (impossible dans la syntaxe 2)
Procedure ListeAffichageCrée(sListeValeur est chaîne="")
sValeurEnCours est une chaîne

MoiMême..Note="Avec gARécupérer"
ListeSupprimeTout(MoiMême)
SI sListeValeur="" ALORS
sListeValeur=MoiMême..ContenuInitial
FIN
POUR TOUTE chaîne sValeurEnCours de sListeValeur SEPAREE PAR RC
ListeAjoute(MoiMême,gARécupérer(sValeurEnCours))
FIN

Syntaxe 2
[code:wl]
// Résumé : Remplit la Combo/Liste avec les valeurs initialisées dans la description et permet de renvoyer la valeur du texte affiché
// Dans la description de la Combo/Liste, la case on pensera à cocher la case "Retourne la valeur spécifiée par gLien" dans la partie "Détail"
// Cette syntaxe sera utilisée dans hors du champ
//
// Syntaxe :
//ListeAffichageCrée ( [chNomChamp est champ,[<sListeValeur> est chaîne]])
//
// Paramètres :
// chNomChamp (champ - valeur par défaut = MoiMeme) : Nom du champ à initialiser
// sListeValeur (chaîne ANSI - valeur par défaut="") : Liste des valeurs (séparées par RC) spécifiées dans le champ.
// Valeur de retour :
// Aucune
//
// Exemple :
// Indiquez ici un exemple d'utilisation.
//
// ListeRenvoiAffichage(LISTE_Appel)
// Avec les valeurs M, Mme, Mlle, la sélection de Mme renverra "Mme"
// chNomChamp (champ) : Nom du champ à initialiser
Procedure ListeAffichageCrée(chNomChamp est Champ=MoiMême,sListeValeur est chaîne="")
sValeurEnCours est une chaîne

chNomChamp..Note="Avec gARécupérer"
ListeSupprimeTout(chNomChamp)
SI sListeValeur="" ALORS
sListeValeur=chNomChamp..ContenuInitial
FIN

POUR TOUTE chaîne sValeurEnCours de sListeValeur SEPAREE PAR RC
ListeAjoute(chNomChamp,gARécupérer(sValeurEnCours))
FIN


Avec son complément
// Résumé : Ajoute une valeur à sélectionner dans un champ défini "avec récupération d'affichage"
// Syntaxe :
//ListeAffichageAjoute (<chNomChamp> est champ, <sValeur> est chaîne [, <bDoublonsAutorisés> est booléen])
//
// Paramètres :
// chNomChamp (champ) : Champ à modifier
// sValeur (chaîne ANSI) : Valeur à ajouter
// bDoublonsAutorisés (booléen - valeur par défaut=0) : On autorise des doublons dans la liste

Procedure ListeAffichageAjoute(chNomChamp est Champ,sValeur est chaîne,bDoublonsAutorisés est un booléen=Faux)
sValeurUnitaire est chaîne
bEstListeAffichage est un booléen

SI chNomChamp..Note="Avec gARécupérer" ALORS
bEstListeAffichage=Vrai
FIN

//On prend en compte le passage de valeurs multiples, on ne passe pas directement la chaîne formatée pour contrôler les doublons
POUR TOUTE chaîne sValeurUnitaire de sValeur SEPAREE PAR RC
RemplirListe(chNomChamp,sValeurUnitaire,bDoublonsAutorisés)
FIN



PROCEDURE INTERNE RemplirListe(chChampListe est Champ,sNouvelleValeur est chaîne,bAvecDoublon est un booléen)
SI ((ListeCherche(chChampListe,sNouvelleValeur)<>-1) ET bAvecDoublon) ...
OU (ListeCherche(chChampListe,sNouvelleValeur)=-1) ALORS //La valeur existe mais on autorise les doublon, ou la valeur n'existe pas
SI bEstListeAffichage ALORS //Le contrôle est effectué pour éviter le panachage n° et valeur
ListeAjoute(chChampListe,gARécupérer(sNouvelleValeur))
SINON
ListeAjoute(chChampListe,sNouvelleValeur)
FIN
FIN
FIN


Pour le 2° il nous faudrait ton code

--
Il y a peut être plus simple, mais, ça tourne