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 :

Actualiser champs selon combo [WD18]


Sujet :

WinDev

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 265
    Points
    265
    Par défaut Actualiser champs selon combo
    Bonjour,
    j'ai une combo et des champs liés à des objets.
    Je peux changer la langue d'affichage de tous ces champs via un menu.
    Lors de ce changement, je fais en sorte que l'élément sélectionné dans la combo soit le même dans la nouvelle langue (combo..valeur): tout marche très bien, sauf que tous les autres champs de la fenêtre ne se mettent alors pas à jour ; il faut que sélectionne un autre élément de la combo, puis que je revienne sur l'élément pour avoir l'affichage dans la nouvelle langue (j'ai pourtant utilisé un SourceVersEcran() juste après le changement de langue).
    Comment actualiser les champs ?

  2. #2
    Membre habitué
    Avatar de jdsetls
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Décembre 2012
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2012
    Messages : 209
    Points : 164
    Points
    164
    Billets dans le blog
    1
    Par défaut Exige un réaffichage
    Bonjour,

    L'aide stipule qu'un réaffichage de la page en cours est nécessaire :

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Nation(<Constante de la langue>)
    PageAffiche(<Nom de la page>)
    Cependant, et je ne peux pas le vérifier sur ma machine, peut-être qu'un simple FenRepeint() fonctionnerait aussi.

    Bien cordialement,

    Jacques De Schryver
    Mon dernier livre Si c'est simple, c'est du Windev, version 2014, disponible sur Lulu.com, mot-clé Windev.
    http://www.lulu.com/shop/search.ep?t...ch=lulu.com&q=

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 265
    Points
    265
    Par défaut
    Mes champs se trouvent dans une fenêtre, non une page. Mais je vais essayer de la rafraîchir.

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 441
    Points
    2 441
    Par défaut
    Citation Envoyé par jacquesprogram Voir le message
    ... (j'ai pourtant utilisé un SourceVersEcran() juste après le changement de langue).
    Comment actualiser les champs ?
    Bonjour,

    Où se situe exactement ce "juste après" dans votre code ?
    Si vous nous montriez un peu de celui-ci (vieille rengaine, je sais), vous nous aideriez à mieux vous aider, plutôt que de nous forcer à tenter de deviner comme je vais le faire ci-dessous.

    La solution à votre problème se situe sans doute dans les traitements associés aux Combos : voir "A chaque modification" et/ou "Sélection d'une ligne".

    Bon travail

    Hemgé

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 265
    Points
    265
    Par défaut
    @jdsetls
    Je n'ai pas trouvé comment rafraîchir l'affichage de ma fenêtre.

    @Hemgé
    Sur l'évènement Sélection de l'option de menu servant à choisir la langue, la procédure MiseAJourLangueAffichee suivante est appelée:
    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
     
    PROCEDURE MiseAJourLangueAffichee()
    SELON Vrai
    	CAS MENU_Langues.OPT_Allemand..Cochée
    		gsLangue = "DE_DE"
    	CAS MENU_Langues.OPT_Anglais..Cochée
    		gsLangue = "EN_US"
    	CAS MENU_Langues.OPT_Francais..Cochée
    		gsLangue = "FR_FR"
    	CAS MENU_Langues.OPT_Italien..Cochée
    		gsLangue = "IT_IT"
    	AUTRE CAS
    		gsLangue = "Inconnue"
    FIN
    gnProdSelected = COMBO_GtabProduits..Valeur //Sauvegarde du Produit sélectionné dans la langue actuelle
    GetLocalizedStrings(gsLangue) // Récupère dans la bonne table les traductions des chaînes
    ListeAffiche(COMBO_GtabProduits,taInit) //Rafraîchissement de la combo
    ListeTrie(COMBO_GtabProduits,Vrai,ccOrdreLexicographique)
    SauveParamètre("LangueAffichage",gsLangue)
    COMBO_GtabProduits..Valeur = gnProdSelected //Restauration du produit sélectionné dans ma nouvelle langue
    SourceVersEcran(FEN_Principale)
    Le problème n'est pas la mise à jour de la combo - qui s'effectue correctement - mais du contenu de tous les champs de saisie, qui ne s'affichent dans la nouvelle langue que lorsque je sélectionne une autre ligne de la combo ; l'instruction COMBO_GtabProduits..Valeur = gnProdSelected ne provoque pas la mise à jour des champs de saisie.

  6. #6
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 441
    Points
    2 441
    Par défaut
    Si je comprends bien, l'affichage des champs de votre fenêtre est initié par la sélection d'un produit dans votre combo et cette procédure est appelée via un des traitements associés de la combo (sortie, Sélection ?).

    Dans ce cas, il faut simuler une sélection ou une saisie dans la combo pour repasser par le traitement (ce que vous faites en sélectionnant une autre ligne de la combo).

    Vous pouvez utiliser EnvoieTouche() à cet effet.
    Sauf erreur de ma part,
    19 : COMBO_GtabProduits..Valeur = gnProdSelected //Restauration du produit sélectionné dans ma nouvelle langue
    20: SourceVersEcran(FEN_Principale) // inutile
    20 : EnvoieTouche("{ENTREE}", COMBO_GtabProduits)
    Voyez l'aide.
    "{ENTREE}" ou "{TAB}" sans oublier les guillemets (chaîne de caractères).
    COMBO_GtabProduits..Valeur = gnProdSelected ou COMBO_GtabProduits = gnProdSelected

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 265
    Points
    265
    Par défaut
    Citation Envoyé par Hemgé Voir le message
    Si je comprends bien, l'affichage des champs de votre fenêtre est initié par la sélection d'un produit dans votre combo
    C'est tout à fait ça.

    L'emploi de EnvoieTouche, ne change rien => les champs de saisie ne sont pas mis à jour.

    Je viens d'essayer aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListeSelect(COMBO_GtabProduits,gnProdSelected)
    => même résultat

  8. #8
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 441
    Points
    2 441
    Par défaut
    Voulez-vous nous montrer ce code et nous dire où, dans quel traitement il se trouve ?
    Sinon, difficile d'avancer.

    Merci

  9. #9
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2013
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2013
    Messages : 91
    Points : 136
    Points
    136
    Par défaut
    bonjour

    essayer executetraitement(COMBO_GtabProduits,trtselect)

    et fenrepeint

    bon devs

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 265
    Points
    265
    Par défaut
    @Hemgé
    J'ai rajouté cette ligne à la fin de la procédure MiseAJourLangueAffichée.

    @digi12
    C'est l'instruction qui me manquait ! Ça marche nickel !

    Merci à tous.

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

Discussions similaires

  1. affichage des champs selon critère dans un formulaire
    Par emmablue dans le forum Access
    Réponses: 5
    Dernier message: 31/07/2006, 09h39
  2. [RAVE] champs selon conditions
    Par missmarion dans le forum Bases de données
    Réponses: 4
    Dernier message: 17/03/2006, 16h20
  3. Masquer un champ selon la page d'une frame
    Par ekinoxe dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/02/2006, 10h35
  4. [VBA] remplissage d'un champs selon une recherche
    Par Virgile59 dans le forum Access
    Réponses: 7
    Dernier message: 04/11/2005, 09h52
  5. [débutant]Faire apparaître X champ selon un nombreX
    Par Hastur dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 06/09/2005, 13h45

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