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 :

Enumérer les champ dans le champ disposition


Sujet :

WinDev

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 379
    Points : 40
    Points
    40
    Par défaut Enumérer les champ dans le champ disposition
    Bonjour
    Je veux énumérer les champs existant dans un champ disposition grâce à la fonction EnumèreChamp() , mais j'ai ce message "les valides sont comprises entre 1 et 0"

    Le champ disposition existe dans une fenêtre interne

    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
     
     
    sChamp est chaîne
    ligne est entier
    NomComplet est chaîne ="PI_MenuParametres.DISPOSITION"
    ligne ={NomComplet,indChamp}..Occurrence
    POUR i=1 _À_ ligne
     
    //sChamp=EnumèreSousElément(NomComplet,i)
     
    sChamp=EnumèreChamp({NomComplet,indChamp},i)
     
    Trace(sChamp)
     
    FIN
    Merci d'avance de me donner une idée

  2. #2
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 857
    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 857
    Points : 5 402
    Points
    5 402
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    1-La propriété Occurence sur un conteneur Disposition correspond au nombre de cellules.
    2-Pourquoi passer par une indirection ?

    Une solution est celle donnée dans la doc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    saInfoChamp est une chaîne
    nIndice est un entier
     
    nIndice=1
    saInfoChamp=EnumèreChamp(DISP_Disposition,1)
    TANTQUE saInfoChamp<>""
    	//Traitement du résultat ici trace
    	Trace(ExtraitChaîne(saInfoChamp,1,TAB))
     
    	nIndice++
    	saInfoChamp=EnumèreChamp(DISP_Disposition,nIndice)
    FIN
    Par contre tu ne peux pas énumérer les champs d'une cellule spécifique e.g. DISP_Disposition[2], une solution est de créer un groupe pour chaque cellule

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 379
    Points : 40
    Points
    40
    Par défaut
    Merci pour ton retour

    j'ai testé ton code mais toujours le même souci dans la ligne ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    saInfoChamp=EnumèreChamp(DISP_Disposition,1)
    EnumèreChamp renvoie le vide au champs saInfoChamp c'est-à-dire (saInfoChamp="")

    2 comment créer un groupe pour chaque cellule ?

    Merci de me donner encore des pistes je suis bloqué

  4. #4
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 857
    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 857
    Points : 5 402
    Points
    5 402
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Fmfib Voir le message
    saInfoChamp=EnumèreChamp(DISP_Disposition,1)
    C'est qu'il n'y a aucun champ dans ton layer DISP_Diposition
    Citation Envoyé par Fmfib Voir le message
    comment créer un groupe pour chaque cellule ?
    Les groupes de champ

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 122
    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 122
    Points : 9 547
    Points
    9 547
    Par défaut
    Ici, tu cumules 2 difficultés : énumérer des champs, et travailler sur une fenêtre interne.

    Pour moi, le rôle d'une fenêtre interne, c'est d'être une boite noire, autonome, le plus autonome possible.
    Idéalement, si tu fais des modifications lourdes dans ta fenêtre interne, il n'y a rien à changer dans la fenêtre externe.
    Ce que tu peux faire, c'est créer une procédure dans ta fenêtre interne, qui va renvoyer une chaine avec la liste recherchée, ou même, une procédure qui va faire tous les traitements que tu souhaites.
    Ainsi, dans ta fenêtre externe, tu dois juste appeler cette procédure.

    Et pour tester, c'est plus facile. Dans ta fenêtre interne, tu mets un bouton qui va lancer cette procédure. Ca te permet déjà de valider que la procédure marche correctement.
    Ensuite, tu supprimes ce bouton... et tu fais en sorte que l'appel soit fait par la fenêtre externe.

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 379
    Points : 40
    Points
    40
    Par défaut
    Merci pour tes retours

    J'ai résolu mon problème, en ajoutant [K]

    Par ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sChamp=EnumèreChamp({NomComplet,indChamp}[K],1)
    au lieu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sChamp=EnumèreChamp({NomComplet,indChamp},I)
    Tous les champs dans ma disposition est bien énuméré

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

Discussions similaires

  1. Enumérer les champs d'une table
    Par Daniel MOREAU dans le forum VBA Access
    Réponses: 6
    Dernier message: 28/09/2007, 13h18
  2. Tous les champs SAUF dans une table.
    Par Yepazix dans le forum Bases de données
    Réponses: 1
    Dernier message: 28/08/2005, 16h01
  3. Réponses: 5
    Dernier message: 25/07/2005, 14h03
  4. Les champs dans un composant ADOStorecProc
    Par ZIED dans le forum Bases de données
    Réponses: 3
    Dernier message: 22/06/2005, 11h32
  5. Comment voir les champs créés dans les tables?
    Par Missvan dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/02/2004, 10h27

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