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 :

Rafraichir une liste et la repositionner sur le bon élément après un ajout/update


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 Rafraichir une liste et la repositionner sur le bon élément après un ajout/update
    Bonjour à tous,

    me revoici de nouveau à développer une GP en WinDev. Après avoir complétement perdu les sources de mon premier essai il y a un peu plus d'un an, je m'y recolle en essayant cette fois d'utiliser au maximum les standards de développement WinDev, les h fonctions, etc...

    Voici ma question : je commence par une bête gestion de fichier articles. Je travail en direct sur la table de bd (sql server) et j'ai une liste à gauche (alimentée par une requete qui me renvoie art_id et art_reference) qui me permet de voir toutes mes références d'articles et de pouvoir filtrer cette liste en fonction d'un champ de filtrage. Cette liste est donc complétement indépendante de ma table art.

    Dans le restant de l'interface j'ai tous mes champs de ma table article, qui pour le coup sont liés à l'article sélectionné dans la liste par ce bout de code attaché à l'événement "selection d'une ligne de LISTE_Articles" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    HFiltre(art,"art_id = " + LISTE_Articles..Valeur)
    HLitPremier(art)
    FichierVersEcran()
    HDésactiveFiltre(art)
    Et ça resemble à ça :



    Bon, maintenant quand je clique sur ajouter, j'ai une popup qui s'ouvre et me permet de saisir une référence d'article, là je teste si cette ref n'existe pas déjà dans ma base, et si tout va bien j'exécute le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // creation de l'article
    HRAZ(art)
    art.art_reference = ref
    art.art_um = 1
    art.art_designation = "Designation nouvel article"
    HAjoute(art)
     
    aid est un entier = art.art_id
     
    ListeAffiche(LISTE_Articles) // pour recharger la liste
    Mon problème c'est que j'aimerais que ma liste se rafraichisse et se positionne automatiquement sur la référence d'article qui vient d'être ajouté. Et ça je ne sais pas faire... Ca me servira également quand on enregistre, car si je modifie la reference, j'ai besoin de rafraichir aussi la liste (qui contiendrait alors une reference qui n'existe plus puisque son nom a changé) et de repositionner aussi sur la bonne ligne...

    Désolé pour la longueur, mais j'aime bien expliquer à fond quand je bloque sur un truc. Pouvez-vous m'aider svp ?

    Merci
    '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 émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    sur ta liste à gauche tu as art_id qui est ta colonne de parcours pour retrouver ta ligne. Donc tu stockes dans une variable ton id courant et lorsque tu reviens d'une autre fenêtre et que tu recharges ta liste, tu fais une recherche d'un art-id = à ta variable. Ensuite tu exécutes le code de sélection de la ligne en question.

    Ce qui fait que même si tu changes le libellé d'un article, de toute façon ton id ne va pas changer donc tu peux retrouver la ligne avec le nouveau libellé.
    Idem pour l'ajout d'un nouvel article, tu modifies la variable avant de recharger la liste avec l'id du nouvel article et lorsque tu recharges, tu pointes sur la ligne de ce nouvel article !

    bon courage,

    Nicolas

  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
    En fait je n'ai pas assez cherché dans l'api, j'ai trouvé juste après avoir posté . Moi je cherchais à rafraichir la liste, puis obtenir la position d'une chaine donnée (ma référence) et ensuite sélectionner cette position. Mais en fait on peut sélectionner une ligne de la liste en lui affectant directement l'id en question. Bon il faut quand même 2 instructions mais c'est pas bien grave :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // creation de l'article
    HRAZ(art)
    art.art_reference = ref
    art.art_um = 1
    art.art_designation = "Designation nouvel article"
    HAjoute(art)
    aid est un entier = art.art_id
     
    // refresh de la liste sur la bonne ligne
    ListeAffiche(LISTE_Articles)
    LISTE_Articles = aid
    ExécuteTraitement("FI_ARTICLES.LISTE_Articles",trtSélection)
    Merci
    '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

Discussions similaires

  1. [Syntaxe]rafraichir une liste avec internet explorer
    Par achos dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 27/02/2007, 17h26
  2. Rafraichir une liste deroulante dans un formulaire
    Par hellosct1 dans le forum IHM
    Réponses: 2
    Dernier message: 09/01/2007, 20h36
  3. rafraichir une liste déroulante
    Par zola dans le forum Général JavaScript
    Réponses: 26
    Dernier message: 27/04/2006, 16h34
  4. rafraichir une liste avec un <SELECT>
    Par karibouxe dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/02/2006, 09h05
  5. Rafraichir une liste déroualnte alimenter en php
    Par jenny50 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 25/01/2006, 13h23

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