IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Sélectionner première ligne d'une liste chargée par programmation [WD17]


Sujet :

WinDev

  1. #1
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut Sélectionner première ligne d'une liste chargée par programmation
    Bonjour à tous,

    j'ai un petit soucis qui me donne bien du fil à retordre. J'ai une liste que je charge par programamtion, ci-dessous le code de remplissage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    PROCEDURE chargeListeEtablissements()
     
    ListeSupprimeTout(LISTE_Etablissements)
     
    // je ne peux voir que les établissements dont je suis membre, où ceux qui sont dépannés par ceux dont je suis membre 
    // sauf si je suis admin (alors là je vois tout)
     
     
    Rs est une Source de Données
    Sql est une chaîne
     
    Sql = "SELECT etab_id, etab_nom FROM etab WHERE etab_id > 1 AND etab_nom LIKE '%" + Remplace(SAI_filtre, "*", "%") + "%'"
     
    SI PAS FEN_START.admin ALORS
     
    	Sql = Sql +
    			" AND (etab_id IN (SELECT membr_eid FROM membr WHERE membr_uid = " + FEN_START.uid + ") " +
    			" OR etab_id IN (SELECT dep_eid1 FROM dep WHERE dep_eid2 IN (SELECT membr_eid FROM membr WHERE membr_uid = " + FEN_START.uid + ")))"
    FIN
     
    Sql = Sql + " ORDER BY etab_nom"
     
    //trace(Sql)
     
    SI PAS HExécuteRequêteSQL(Rs,Cnx,hRequêteDéfaut ,Sql) ALORS
    	Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo()+ RC + RC + Sql)
    	RETOUR
    FIN
    SI HLitPremier(Rs) ALORS
    	TANTQUE PAS HEnDehors(Rs)
     
    		ListeAjoute(LISTE_Etablissements, Rs.etab_nom + gLien(Rs.etab_id))
    		HLitSuivant(Rs)
    	FIN
    FIN
    HLibèreRequête(Rs)
     
    gLienActive(LISTE_Etablissements)
     
    SI LISTE_Etablissements..Occurrence > 0 ALORS 
    	ListeSelectPlus(LISTE_Etablissements,-1)
    	ExécuteTraitement(LISTE_Etablissements,trtSélection)
    FIN
    Ce qui ne fonctionne pas c'est la toute fin de ma procédure. Après chargement des éléments de la liste, je voudrais que le premier élément se sélectionne automatiquement (comme quand on définit une liste par association à une requête ou une table via l'assistant) et que cela déclenche l'événement de sélection d'un élément de la liste. Comme cette sélection automatique du premier élément ne semble pas fonctionner, je dois la forcer. Mais le premier élément de ma liste n'a pas forcément le rang 1, surtout que j'utilise les gLien...

    Merci d'avance pour vos idées.

    bvadam
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  2. #2
    Membre régulier Avatar de Kaal
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2005
    Messages : 55
    Points : 95
    Points
    95
    Par défaut
    Bonjour
    Dans votre ListeSelectPlus(), vous mettez -1 en second paramètre (qui correspond au n° de l'élément que l'on veut sélectionner) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SI LISTE_Etablissements..Occurrence > 0 ALORS 
    	ListeSelectPlus(LISTE_Etablissements,-1)
    	ExécuteTraitement(LISTE_Etablissements,trtSélection)
    FIN
    Si vous voulez le 1er élément il faut mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListeSelectPlus(LISTE_Etablissements,1)
    Quelle est la différence entre un bon et un mauvais développeur ?

  3. #3
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    J'ai mis -1 parce que je ne peux justement pas mettre 1 !

    Le premier élément de ma liste n'a pas forcément le rang 1, ou l'indice, appelle ça comme tu veux

    dans l'aide de ListeSelectPlus, il est écrit que lorsqu'on donne -1 comme argument, il sélectionne automatiquement le premier élément de la liste

    sauf que moi je me trouve dans un cas particulier ...
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  4. #4
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    bon j'ai fermé WinDev et je l'ai rouvert, et recompilé mon projet

    et bizarrement cette fois, la sélection fonctionne

    je n'aurais pas du poster ce sujet

    désolé

    merci néanmoins kaal pour ta participation
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  5. #5
    Membre habitué
    Homme Profil pro
    *
    Inscrit en
    Avril 2012
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : *

    Informations forums :
    Inscription : Avril 2012
    Messages : 84
    Points : 128
    Points
    128
    Par défaut
    si tu met 1 il selectionnera ton premier élément de liste.
    dans le cas ou tu veux qu'il recherche ton id 1 alors la syntaxe serait :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListeSelectPlus(LISTE_Etablissements,ListeCherche(LISTE_Etablissements,1))

  6. #6
    Membre averti

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2010
    Messages : 125
    Points : 399
    Points
    399
    Par défaut
    Bonjour,

    As tu essayé simplement l'affectation directe? d'après ce que je crois comprendre, ta combo n'est pas avec saisie...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <Nom Combo> = Indice
    



    Comme le glien est actif, il va travailler sur la ValeurMemorisee, ça doit fonctionner car je pense que tu confonds le rang ou l'indice et la valeur mémorisée.

    sinon dernier recours, mais je ne pense pas que ce soit nécessaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Listeselectplus(MaCombo,ListeCherche(MaCombo,Mavaleur))
    Listecherche va te renvoyer l'indice de la ligne ayant pour valeurmemorisee '1', mais comme je l'ai dit, je ne pense pas que ce soit nécessaire

  7. #7
    Membre régulier Avatar de Kaal
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2005
    Messages : 55
    Points : 95
    Points
    95
    Par défaut
    J'ai vérifié dans l'aide de ListeSelectPlus (sur internet et sur windev 15) et je vois pas où ils parlent de -1.

    Par contre j'ai essayé avec 1 et ça fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ListeAjoute(LISTE_Etablissements, "TEST 02" + gLien(2))
    ListeAjoute(LISTE_Etablissements, "TEST 03" + gLien(3))
    ListeAjoute(LISTE_Etablissements, "TEST 01" + gLien(1))
    ListeSelectPlus(LISTE_Etablissements,1) // sélectionne la 1er ligne // peu importe si glien est coché
    LISTE_Etablissements = 3 // Sélectionne la 2ème ligne. // uniquement si glien est coché.
    Quelle est la différence entre un bon et un mauvais développeur ?

  8. #8
    Membre averti

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2010
    Messages : 125
    Points : 399
    Points
    399
    Par défaut
    Citation Envoyé par bvadam Voir le message
    bon j'ai fermé WinDev et je l'ai rouvert, et recompilé mon projet

    et bizarrement cette fois, la sélection fonctionne

    je n'aurais pas du poster ce sujet

    désolé

    merci néanmoins kaal pour ta participation
    Ok désolé le temps de répondre au tel et de finir d'éditer tu avais ta solution...

    Bizarre mais ça semble plus logique.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD17] Sélectionner première ligne d'une liste chargée par Fichier/requête
    Par franck34matlab dans le forum WinDev
    Réponses: 32
    Dernier message: 12/06/2014, 12h22
  2. Réponses: 5
    Dernier message: 08/01/2013, 17h03
  3. Réponses: 1
    Dernier message: 05/04/2011, 19h49
  4. Réponses: 5
    Dernier message: 12/03/2008, 18h16
  5. Désélectionner la première ligne d'une liste
    Par Mariboo dans le forum Access
    Réponses: 4
    Dernier message: 11/07/2006, 14h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo