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 Mobile Discussion :

Récupérer la sélection d'une ligne d'une liste remplie par programmation


Sujet :

Windev Mobile

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 15
    Points : 12
    Points
    12
    Par défaut Récupérer la sélection d'une ligne d'une liste remplie par programmation
    Bonjour,

    Version : Windev Mobile 17
    Plateforme : Android

    Mon problème
    Je souhaite récupérer la valeur d'une ligne sélectionnée dans une liste remplie par programmation.

    Explications
    Dans une fenêtre principale (Catégories), j'ai une liste (Liste_Cat) remplie par un fichier requête (affiche toutes les catégories) avec mémorisation sur la rubrique ID. A la sélection d'une ligne de cette liste, j'ouvre une autre fenêtre (Sous-Catégories) qui m'affiche les Sous-Catégories selon l'ID de la catégorie mémorisée.

    Jusque là tout va bien.

    Maintenant je voudrais ouvrir une autre fenêtre (Questions), qui affichera toutes les questions liées à la sous-catégories sélectionnée. Ce qui me pose problème, c'est que je ne sais pas comment mémoriser l'ID de la sous-catégorie (la sous-catégorie a aussi un champ ID) qui a été sélectionnée, car cette liste a été remplie par programmation, ce n'est pas comme pour une liste remplie par Fichier/Requete où l'on déclare la rubrique mémorisée.

    Si vous avez des pistes je suis preneur.

    S'il vous manque des infos pour la compréhension dîtes le moi.

    Merci.
    Thamis

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 276
    Points : 739
    Points
    739
    Par défaut
    Bonjour,

    Vous pouvez utiliser la fonction gLien (elle semble être disponible sous Android).
    (voir la doc : http://doc.pcsoft.fr/fr-FR/?3029043)

    Dans la description de la liste, il faut cocher "retourne la valeur spécifiée avec la fonction gLien" (dans l'onglet "Détail").
    Et dans le ListeAjoute, vous ajouter la fonction gLien avec l'ID en paramètre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ListeAjoute(LISTE_MaListe, "Catégorie 1" + gLien(ID1))
    ListeAjoute(LISTE_MaListe, "Catégorie 2" + gLien(ID2))
    De cette façon, l'appel au champ liste renverra ce qui est spécifié par gLien.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Merci djejackk,

    C'est sympa d'avoir répondu si vite. Ta réponse m'a mis un peu sur le bon chemin, mais comme souvent la réadaptation est moins limpide.

    Tu me donnes comme code exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListeAjoute(LISTE_MaListe, "Catégorie 1" + gLien(ID1))
    Si je retranscrits par rapport à mon projet, ça donne la ligne du dessous, sachant que le remplissage de la liste est fait par une requête Code SQL executée à l'initialisation de la fenêtre par la commande HExécuteRequête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListeAjoute(LISTE_SsCat,REQ_SsCat.name + gLien(REQ_SsCat.id))
    Je ne sais pas si c'est possible de mettre en glien ce que j'ai mis. En tout cas si c'est possible je ne sais pas comment appeler ce qui est mémorisé dans le gLien pour pouvoir l'utiliser comme paramètre dans la requête pour récupérer les questions.

    Thamis

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 276
    Points : 739
    Points
    739
    Par défaut
    Je ne suis pas sûr d'avoir compris au final.

    Le champ LISTE_SsCat est remplie par programmation ou est basé sur une requête ?
    Vous semblez utiliser une requête ("REQ_SsCat") pour la liste "LISTE_SsCat".
    Pourquoi passer par programmation ?

    Vous pouvez très bien indiquer directement que la liste "LISTE_SsCat" est basé sur la requête "REQ_SsCat".
    Ensuite, pour la mettre à jour en fonction du choix dans la liste principale, il suffit d'utiliser ListeAffiche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    -- Code de sélection d'une ligne de la liste principale
     
    // Définit le paramètre de la requête des sous-catégories
    REQ_SsCat.pIDCatégorie = LISTE_Cat
     
    // Actualise la liste des sous-catégories
    ListeAffiche(LISTE_SsCat, taRéExécuteRequête)
    Pour répondre au gLien, il suffit d'appeler directement le champ, exactement comme pour une valeur mémorisée sur une liste fichier. Si je reprends mon exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ListeAjoute(LISTE_MaListe, "Catégorie 1" + gLien(ID1))
    ListeAjoute(LISTE_MaListe, "Catégorie 2" + gLien(ID2))
     
    ...
     
    Info(LISTE_MaListe) // La boite d'info affichera la valeur de ID1 ou de ID2 selon la sélection
    J'espère avoir été clair.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Allez je reprends depuis le début pour être le plus clair possible

    J'ai une table s_kb_category, dans laquelle j'ai trois champs id, parent_id et name. Le champ id est incrémental, parent_id permet une classification sous forme de sous-catégories.

    • Les parent_id des catégories ont pour valeur 0
    • Les parent_id des sous-catégories ont pour valeur l'id de leur catégorie


    Une fenêtre FEN_Categories avec un champ List_Categories qui est alimentée par une requête basée sur s_kb_category, requête crée par l'assistant de requête. Je mémorise la rubrique ID de ce champ liste.

    Cette requête me renvoie toutes les catégories dans ma liste. Dans le code Sélection d'une ligne List_Categories, je mémorise dans une variable (sParamid ) l'ID de la catégorie sélectionnée, puis j'ouvre une fenêtre FEN_SsCategories, ce qui me permet de réutiliser sParamid dans ma FEN_SsCategories.

    Dans ma FEN_SsCategories, j'ai une liste List_SsCategories qui doit m'afficher toutes les sous-catégories de la catégorie sélectionnée précédemment.
    Pour ce faire j'ai crée une requête en code SQL cette fois ci, qui utilise le paramètre sParamid.

    La requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT s_kb_category.id AS id, s_kb_category.parent_id AS parent_id, s_kb_category.name AS name FROM  s_kb_category WHERE  s_kb_category.parent_id <>0 AND s_kb_category.parent_id = {sParamid}
    Jusque là c'est tout bon, j'ai bien mes Sous-categories. Mais c'est à la dernière étape que je coince.

    Lorsque je vais sélectionner une ligne de la liste List_SsCategories, je souhaite ouvrir une fenêtre FEN_Questions avec un champ List_Questions, qui va contenir toutes les questions en rapport avec cette sous-catégorie. Cela implique que je puisse mémoriser dans une variable sSsCatid l'ID de la sous-catégorie sélectionnée pour l'utiliser dans la requête qui va alimenter ma liste List_Questions.

    Je pense que la bonne route à prendre est celle de gLien, mais pour le moment je ne maîtrise pas cette fonctionnalité.

    Avant de me lancer dans la dernière étape, je fais juste une vérification par :
    sur Sélection d'une ligne de List_SsCategories pour être sûr que je récupère bien la bonne valeur.

    J'espère avoir apporté plus de clarté sur mon besoin.

    Thamis

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Bien en fait c'était très simple, en écrivant le déroulé et en lisant tranquillement l'aide de la fonction gLien et de Valeur mémorisée, j'ai trouvé qu'il faut simplement pour mon exemple, coder de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Mise en variable de la valeur mémorisée par gLien
    sSscatid = LISTE_SsCat..ValeurMémorisée
    // Affichage de la valeur de la variable
    Info(sSscatid)
    Si je veux passer la variable à ma fenêtre FEN_Questions, il me suffit d'ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OuvreFille(FEN_Questions)
    Merci djejackk de l'aide indirect que vous m'avez apporté, vous m'avez mis sur la voie. Je vais prendre le temps aussi d'étudier la solution avec Listeaffiche et taRéExécuteRequête qui me semble bien plus optimisé que la mienne. Je débute alors je voudrais aller au bout de mon projet et ensuite travailler sur l'optimisation du produit fini.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/01/2015, 18h30
  2. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  3. Récupérer une information d'une ligne dans une table
    Par Lebas dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/04/2013, 10h24
  4. [WD16] Récupérer la valeur d'une colonne d'une table d'une ligne précise
    Par elghers_hocine dans le forum WinDev
    Réponses: 16
    Dernier message: 06/05/2011, 18h11
  5. Réponses: 4
    Dernier message: 15/10/2009, 13h33

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