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 :

[WD28] Comment accéder à un champ d'une fenêtre interne dans un onglet dynamique ?


Sujet :

WinDev

  1. #1
    Nouveau membre du Club Avatar de leadri
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2005
    Messages : 56
    Points : 27
    Points
    27
    Par défaut [WD28] Comment accéder à un champ d'une fenêtre interne dans un onglet dynamique ?
    Bonjour,

    Je suis novice en WLANGUAGE.
    Je souhaite accéder un un champ (SAI_Référence) d'une fenêtre interne (FI_Commande) contenue dans un onglet dynamique (ALIAS_1) depuis un Champ Fenêtre interne" (CFI_Ligne_Commande) dans lequel se trouve un champ table (TABLE_Ligne_Commande) qui doit récupérer cette valeur.
    Je sais pas si je suis bien claire mais merci pour vos éclaircissements.
    J'ai consulté la documentation PCSOFT mais je trouve pas exactement ce dont j'ai besoin.

    Nom : commande.png
Affichages : 149
Taille : 8,8 Ko

  2. #2
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 384
    Points : 9 751
    Points
    9 751
    Par défaut
    Bonjour,

    Si ton code est dans la fenêtre interne, alors, c'est un accès direct au nom du champ.

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  3. #3
    Nouveau membre du Club Avatar de leadri
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2005
    Messages : 56
    Points : 27
    Points
    27
    Par défaut
    Bonjour,

    Justement non, ça serait plus simple mais le code est dans la sous Fenêtre Interne contenue dans la fenêtre interne principale, là où se trouve la table des lignes de commande.

  4. #4
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 384
    Points : 9 751
    Points
    9 751
    Par défaut
    Les 2 sont dans le même onglet dynamique ?
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  5. #5
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 808
    Points : 5 267
    Points
    5 267
    Billets dans le blog
    1
    Par défaut
    Tu souhaites donc passer la valeur de SAI_Commande à au champ table TABLE_LigneCommande.
    Dans un premier temps, pourquoi ne pas utiliser ta fenêtre FI_Commande comme détail de ton champ table cf afficher le détail d'une ligne.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  6. #6
    Nouveau membre du Club Avatar de leadri
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2005
    Messages : 56
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par Jon Shannow Voir le message
    Les 2 sont dans le même onglet dynamique ?
    l'onglet dynamique contient une fenêtre interne qui elle-même contient une autre fenêtre interne.

  7. #7
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 384
    Points : 9 751
    Points
    9 751
    Par défaut
    Citation Envoyé par leadri Voir le message
    l'onglet dynamique contient une fenêtre interne qui elle-même contient une autre fenêtre interne.
    Dans ce cas, est-ce que tu as essayé : NOM_CHAMP_FENETRE_INTERNE.NOM_CHAMP ou peut-être NOM_FENETRE_INTERNE.NOMCHAMP ?

    Voir l'aide en ligne de Windev sur le champ fenetre interne
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  8. #8
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 808
    Points : 5 267
    Points
    5 267
    Billets dans le blog
    1
    Par défaut
    1-Dans le cas où ton champ table est chargé statiquement dans ta CFI (i.e. via l'interface), dans le code de ta fenêtre FI_Commande (e.g. en sortie de champ)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TableAjouteLigne(CFI_LigneCommande.TABLE_LigneCommande,SAI_Commande)
    2-En cas de chargement dynamique
    Initialisation de FI_LigneCommande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    PROCÉDURE FI_LigneCommande(gsaNoCommande est chaîne="")
    SI gsaNoCommande<>"" ALORS
    	TableEnregistre(TABLE_LigneCommande)
    	TableAjouteLigne(TABLE_LigneCommande,gsaNoCommande)
    FIN
    Dans le code de ta fenêtre FI_Commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ChangeFenêtreSource(CFI_LigneCommande,FI_LigneCommande,SAI_NoCommande)
    Par ailleurs en supposant que SAI_Commande, SAI_Date et consorts soient liée à une table et que TABLE_LigneCommande à la même table ou à une requête qui utilise cette table, Les code deviennent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableAffiche(TABLE_LigneCommande)
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  9. #9
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Pour avoir des notations communes, j'essaie de résumer (j'espère que j'ai bien compris l'imbrication de toutes les fenêtres) :

    On a une fenêtre FEN0
    Cette fenêtre, contient un champ onglet ONGLET1
    Dans ONGLET1[1] on a un champ fenêtre interne CFI1 et dans ONGLET1[2] on a un champ fenêtre interne CFI2
    Dans CFI1, on a 'mappé' une fenêtre interne FI1
    Dans CFI2, on a 'mappé' une fenêtre interne FI2
    Et dans FI2, on a un champ de saisie SAI2
    Dans FI1, on a une portion de code, et on veut dans ce code récupérer la valeur saisie dans CFI2.SAI2

    Je créerais dans FEN0 une procédure fen0_recup_sai2() qui ferait ça. Donc j'essaierais dans un premier temps de récupérer le contenu de CFI2.SAI2 a partir d'un code lancé dans FEN0
    Puis j'essaierais de lancer cette procédure fen0_recup_sai2() à partir de ma fenêtre interne FI1.

    Ensuite, soit je garde ça comme ça, puisque ça marche, soit j'essaie de nettoyer mon code en zappant la procédure fen0_recup_sai2() et en téléscopant les 2 portions de code.

    Edit suite au message de Voroltinquo : Visiblement, j'ai faux.
    Si l'aide donnée jusque là ne suffit toujours pas, il faudrait que quelqu'un (Leadri idéalement) fasse une synthèse du besoin, avec des phrases très courtes, comme ci-dessus, ça devrait aider à la compréhension. Certes, cette façon de décrire la situation, ça manque un peu de poésie, mais c'est efficace.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  10. #10
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 808
    Points : 5 267
    Points
    5 267
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Dans ONGLET1[1] on a un champ fenêtre interne CFI1 et dans ONGLET1[2] on a un champ fenêtre interne CFI2
    Tout se passe dans le même volet
    cf
    l'onglet dynamique contient une fenêtre interne qui elle-même contient une autre fenêtre interne.
    Leadri veut faire passer des données des champs de sa FI "principale" vers un CFI contenu dans sa FI principale.
    La question peut se résumer en "Comment passer la valeur d'un champ d'une fenêtre à une FI contenue dans une CFI appartenant à la même fenêtre".
    Le fait que cette fenêtre soit une FI et serve à alimenter un volet dynamique d'un champ onglet est anecdotique
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/03/2019, 10h13
  2. [WD16] Comment énumérer les champs d'une fenêtre Fille MDI
    Par dvdbly dans le forum WinDev
    Réponses: 6
    Dernier message: 18/05/2012, 20h09
  3. Comment accéder aux données d'une Map contenue dans une autre Map
    Par leeti dans le forum Collection et Stream
    Réponses: 15
    Dernier message: 27/05/2011, 23h35
  4. Réponses: 1
    Dernier message: 09/10/2008, 19h04
  5. Accéder aux champs d'une fenêtre d'un autre logiciel
    Par Melodie dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 13/03/2008, 09h15

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