WDForge - Forum

Le forum des développeurs professionnels WinDev ®

Combo

Discussion sur WinDev®

Message non lupar malklan » Dim 18 Juin 2017 17:59

Bonjour je revient vers vous pour un nouveau problème je vous explique j'ai 5 combo identique
Mais je voudrais que quand ont choisir un élément d'une combo elle ne s'affiche plus dans les autre combo afin d’éviter deux fois le même résulta
les combo sont rempli manuellement merci d'avance.
malklan
Stagiaire WDF
 
Messages: 6
Enregistré le: Mar 30 Mai 2017 11:05

Message non lupar R_B » Mar 20 Juin 2017 17:33

Bonjour

Une solution consiste en la suppression dans les autres combo de la sélection courante.
Je vous invite à utiliser la valeur mémorisée de chacune d'entre elle... On utilise généralement le glien qui est une chaine.
Code: Tout sélectionner
ListeAjoute(Macombo_1,"libelle"+glien(valeur))


Afin de faciliter la programmation on va nommer toutes les combo "MaCombo_" + identifiant de 1 à 5
Attention au _ qui sert de séparateur.

Code: Tout sélectionner
// Sélection d'une combo
AutreComboSupprimer(val(ExtraitChaine(MoiMeme..nom,"_",2)),MoiMeme..ValeurMémorisée)

PROCEDURE AutreComboSupprimer(nCombo est un entier, sValeur est une chaine)
nInd est un entier
SI sValeur<>"" ALORS
   POUR i=1 _A_ 5
      Si i = nCombo ALORS CONTINUER
         nInd = ListeCherche("MaCombo_"+i,sValeur)
         SI nInd<>-1 alors ListeSupprime(("MaCombo_"+i,nInd)
      FIN
   FIN
SINON
   POUR i=1 _A_ 5
      Si i = nCombo ALORS CONTINUER
      // réalimente la combo "MaCombo_"+i
   FIN
FIN


Notez qu'on prévoit alors un premier libellé "Sélectionner" avec un glien("") pour illustrer une "désélection".
R_B
Stagiaire WDF
 
Messages: 2
Enregistré le: Mar 20 Juin 2017 17:15

Message non lupar malklan » Ven 30 Juin 2017 13:34

Bonjour merci de l'aide que tu m'apporte mais j'ai quelque souci a installer le code que tu ma fourni
j'ai crée une procédure local pour installer le bout code est ce j'ai eu raison de faire comme ceci
Code: Tout sélectionner
//
PROCEDURE AutreComboSupprimer(nCombo est un entier, sValeur est une chaîne)
nInd est un entier
SI sValeur<>"" ALORS
   POUR i=1 _A_ 5
      SI i = nCombo ALORS CONTINUER
      nInd = ListeCherche("COMBO_Prono_"+i,sValeur)
      SI nInd <>-1 ALORS ListeSupprime("COMBO_Prono_"+i,nInd)
      FIN
    :arrow:  ici j'ai du supprimer un fin sinon j'avais une erreur
SINON
   POUR i=1 _A_ 5
      SI i = nCombo ALORS CONTINUER
      // réalimente la combo "MaCombo_"+i
   FIN
FIN




se bout de code je l'ai installer dans la fenêtre
Code: Tout sélectionner
ListeAjoute(COMBO_Prono_1,"libelle"+  gLien ("valeur"))


et se code dans la combo mais extraichaine pose problème aucune syntaxe ne extraichaine ne corespond
Code: Tout sélectionner
[code]AutreComboSupprimer(val(ExtraitChaine(MoiMeme..nom,"_",2)),MoiMeme..ValeurMémorisée)[/code]
malklan
Stagiaire WDF
 
Messages: 6
Enregistré le: Mar 30 Mai 2017 11:05


Retourner vers WinDev

cron