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 :

[WD5.5]Récupérer un enregistrement dans une table par rapport à un bouton


Sujet :

WinDev

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 63
    Points : 34
    Points
    34
    Par défaut [WD5.5]Récupérer un enregistrement dans une table par rapport à un bouton
    Bonjour à tous !

    Je reconnais très volontier que le titre de mon post n'est pas très clair, c'est pourquoi je vais essayer de l'expliquer ici.

    J'ai une page qui contient un formulaire de saisie de produits. Elle ressemble à ceci : Page.

    Dans la première partie, je saisis donc les informations souhaitées et grâce au bouton vert "PLUS" en fin de ligne (colonne F12), je peux ouvrir une fenêtre supplémentaire contenant des informations sur le produit saisi sur la ligne concernée.
    Les boutons sont complètement indépendants de la table, ils sont juste "posés" sur la colonne F12.

    Ma question : comment récupérer le code du produit par exemple, en fonction du bouton sur lequel j'ai cliqué ?

    Exemple : Je rentre le produit de code 12345 dans la première ligne et je clique sur le PLUS situé sur cette ligne. Comment récupérer la ligne sur laquelle le bouton est situé pour ensuite récupérer le code du produit dans ma table fichier ?

    Merci d'avance pour votre aide.


  2. #2
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 615
    Points : 841
    Points
    841
    Par défaut
    Bonjour,
    Grace à la fonction tableposition tu peux savoir quelle est le numéro de la première ligne affichée. Ensuite en fonction du bouton "plus" choisi, il te suffit d'incrémenter ce numéro et tu auras le n° de ligne de ta table.
    Gancau

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 63
    Points : 34
    Points
    34
    Par défaut
    Merci ! C'est exactement ce que je cherchais et ça fonctionne parfaitement

    Grâce à TablePosition(), je récupère le numéro de la ligne (que j'incrémente si besoin) et je peux alors faire mon traitement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // Je récupère le numéro de ligne
    LIGNE = TablePosition("MA_TABLE") // incrémentation suivant la ligne du bouton
     
    SI MA_TABLE[LIGNE][1] <> "" ALORS // Si le champ qui m'intéresse dans la ligne n'est pas vide
    // Traitement
    FIN
    Voilà ! Encore merci gancau

    Reste plus qu'à faire passer mon numéro de produit dans la nouvelle fenêtre que j'ouvre !

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Cf "Fenêtre paramétrée"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ouvre(FenCalendrier, DateDuJour())
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    -- Déclaration des globales de la fenêtre FENCALENDRIER--
    PROCEDURE FenCalendrier (sDateSel)

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    927
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 927
    Points : 2 113
    Points
    2 113
    Par défaut
    Citation Envoyé par roms19
    Les boutons sont complètement indépendants de la table, ils sont juste "posés" sur la colonne F12.
    Salut,

    Je me demande comment tu as fais pour que dynamiquement (en fonction des produits contenus dans la table) tu "pose" un bouton sur une colonne. Avec la fonction qui duplique un champ (ChampClone()) peut-être ?

    Merci d'avance pour ta réponse.
    "If you can't teach it then you don't know it."

  6. #6
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 63
    Points : 34
    Points
    34
    Par défaut
    Je n'ai pas utilisé ChampClone() (que je ne connais pas d'ailleurs), j'ai simplement mis des boutons "en dur".

    En fait, j'ai 11 lignes affichées, j'ai disposé 11 boutons que j'ai appelés "PLUS_1", "PLUS_2", ... jusqu'à "PLUS_11" dans la colonne F12 que j'ai créé (elle sert uniquement d'endroit pour mettre les boutons en fin de ligne même si "F12" est aussi la touche d'appel pour l'ouverture de ma nouvelle fenêtre).

    Donc voilà, dès que j'ouvre la fenêtre, les 11 boutons sont présents.
    J'ajoute des produits au fur et à mesure et j'effectue juste un test pour que la fenêtre supplémentaire ne s'ouvre que si un produit a été saisi dans la ligne concernée.

    Voilà, j'espère que ça aura pu t'aider

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    927
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 927
    Points : 2 113
    Points
    2 113
    Par défaut
    Je crois que j'ai compris oui.

    Alors tu peux avoir autant de lignes que tu veux dans ta table vu qu'il n'y aura jamais que 12 lignes affichées à un moment donné (hauteur de la table) et donc il ne faut que 12 boutons plus.

    On ferait ça en Java ce serait pas bien du tout mais en WinDev je trouve ça astucieux, quoi que c'est peut-être faisable avec ChampClone().
    Merci,

    Aurevoir
    "If you can't teach it then you don't know it."

  8. #8
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    Le probleme c'est que champclone n'existe pas en Windev 55 !

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

Discussions similaires

  1. [MySQL] insérer des enregistrements dans une table par lot
    Par dreamover dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 23/06/2009, 08h59
  2. Réponses: 2
    Dernier message: 19/01/2009, 15h45
  3. Récupérer l'index d'un enregistrement dans une table
    Par lolita4882 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/04/2008, 21h33
  4. Récupérer chaque ligne de type enregistrement dans une table
    Par atporfi dans le forum Administration
    Réponses: 2
    Dernier message: 02/04/2008, 19h12
  5. Réponses: 11
    Dernier message: 20/07/2007, 15h32

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