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 :

Remplir une colonne table basée sur une requête [WD15]


Sujet :

WinDev

  1. #1
    Membre régulier
    Homme Profil pro
    developpeur
    Inscrit en
    Mai 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : developpeur
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2011
    Messages : 77
    Points : 80
    Points
    80
    Par défaut Remplir une colonne table basée sur une requête
    Bonjour à tous,

    J'ai une table basée sur une requête.
    j'ai crée une colonne complémentaire dans la table dans laquelle je veux remplir des données calculées sur la base des informations de chaque ligne. seule la première ligne affiche le résultat de la colonne crée.

    je ne comprends pas pourquoi ?.

    - j'ai tenté de faire une boucle de parcours de TOUTE LIGNE DE LA TABLE pour remplir la table. ça ne marche pas. (que ce soit lors de l'initialisation ou dans une bouton isolé).
    - Si je procède par remplissage après un TableAFFICHE (table,...,taReexcuteRequete), seul la première ligne affiche la première valeur de la colonne crée. le reste est vide.


    Merci de vos contribution.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    On ne vois pas ton code, donc difficile de dire où tu t'es trompé...
    Mais je vais tout de même donner deux pistes:
    1. Modifier la requête pour ajouter la colonne calculée
    2. Mettre le calcul dans la section "affichage d'une ligne" de la table.


    Tatayo.

  3. #3
    Membre régulier
    Homme Profil pro
    developpeur
    Inscrit en
    Mai 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : developpeur
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2011
    Messages : 77
    Points : 80
    Points
    80
    Par défaut
    Merci,

    Pour la deuxième option : Section affichage d'une ligne

    cas 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaTable.ColoneSolde = ProcédureCalcul(Table.ColoneNumeroCompte)
    cas 2 : je essayer de faire une boucle sur les lignes de la tables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    POUR TOUTE LIGNE DE MA TABLE
        Matable.ColoneSolde = ProcédureCalcul(Table.ColoneNumeroCompte)
    FIN
    Dans les deux cas seul le solde de la première ligne est rempli et est juste. le reste est vide.

    Dans la première option : Au fait la colonne est rempli par le résultat d'une procédure. J'avais pensé plus facile comme vous le suggérer de la mettre dans la requête, mais Windev refuse d'initier la requête contenant un procédure. J'ai tenté de verser tout le code dans la rubrique calculée, mais ça ne marche pas .

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    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 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Windev a une qualité , mas cette qualité s'avère être un défaut pour les débutants.
    Windev accepte la syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Matable.ColoneSolde = ProcédureCalcul(Table.ColoneNumeroCompte)
    Et il se débrouille, il modifie une ligne bien particulière de matable.
    Mais la ligne qu'il modifie n'est pas forcément celle que tu aurais voulu. Il faut bien maitriser Windev pour utiliser cette tolérance.


    La sécurité, la facilité aussi, c'est de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    n = tableoocurrence(matable)
    pour i = 1 a n
      Matable.colonneSolde[i] =  ProcédureCalcul(Table.ColoneNumeroCompte[i])
    fin
    Accessoirement, je suis surpris que ta procédure demande en paramètre un n° de compte, mais c'est un autre débat

    Une autre syntaxe existe, je crois que c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Pour toute ligne i de matable
      Matable.colonneSolde[i] =  ProcédureCalcul(Table.ColoneNumeroCompte[i])
    fin
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  5. #5
    Membre régulier
    Homme Profil pro
    developpeur
    Inscrit en
    Mai 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : developpeur
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2011
    Messages : 77
    Points : 80
    Points
    80
    Par défaut
    Salut,
    Le problème est résolu avec ta proposition. J'oubliais donc de préciser la ligne à modifier avec l'indice i. Mais les données de la colonne s'effacent à chaque sélection d'une ligne. Ce qui m'a obligé à désactiver la sélection d'une ligne malgré moi.

    Merci quand même pour l'assistance.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    n = tableoocurrence(matable)
    Pour i = 1  a n
      Matable.colonneSolde[i] =  ProcédureCalcul(Matable.ColoneNumeroCompte[i])
    Fin

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/02/2014, 20h16
  2. [AC-2007] Requête création de table basée sur une requête union
    Par etoileweb dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 26/08/2011, 20h09
  3. [XL-2003] Macro avec boucle sur une colonne et condition sur une autre
    Par Isabelle86 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/10/2010, 10h31
  4. Réponses: 1
    Dernier message: 03/05/2009, 06h40
  5. [VBA-Excel]Supprimer une colonne entiere basee sur une cellule
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/10/2006, 22h08

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