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 :

calcul dans une colonne table


Sujet :

WinDev

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 72
    Points : 40
    Points
    40
    Par défaut calcul dans une colonne table
    bonjour à tous,

    j'aimerai savoir s'il est possible de trouver une somme dans une colonne de table ?

    ex: j'ai une colonne débit et une crédit.
    je souhaiterais que dans une colonne SOLDE s'affiche le résultat de crédit moins débit et que la colonne SOLDE soit mise à jour automatiquement lorsque les chiffres changent.

    merci.

    Cordialement

  2. #2
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Bonjour

    Tu peux utiliser le traitement "Affichage d'une ligne" de la table

    Ce traitement est appelé au premier affichage de chaque ligne ou lors d'une modification

    Avec un code du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    col_Colonne3 = col_Colonne1 - col_Colonne2

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 72
    Points : 40
    Points
    40
    Par défaut calcul dans colonne de table
    bonsoir,

    j'avais fait la même chose et cela ne fonctionnait pas

    ex: (dans mon cas c'est: Col_Solde= Col_Crédit-Col_Débit)

    j'ai essayé de mettre cela dans "Affichage d'une ligne" de la table, sans succès, puis dans les différentes lignes des colonnes "Débit" puis "Crédit" et enfin "Solde" mais rien n'y fait.

    Il ne faut pas oublier que le solde évolue à chaque ligne et par conséquent le calcul "Crédit - Débit" ne me semble pas adéquat.

    Si une âme charitable pouvait se pencher sur le problème !

    merci

    Cordialement

  4. #4
    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,
    Est-ce que tu veux faire un calcul de solde par ligne, ou un solde total (total des crédits - total des débits) ?

    Quand tu dis "sans succès", est-ce que le total est faux, ou est-ce qu'il ne se mets pas à jour ?

    Tatayo.

  5. #5
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Je t'ai donné le principe de la mise à jour d'une colonne par rapport à d'autres colonnes de la même ligne
    Pour un solde progressif il faudra parcourir toutes les lignes pour mettre à jour le solde et là le traitement d'affichage d'une ligne ne te servira à rien

    Fais une procédure qui parcourt toutes les lignes de ta table et qui met à jour ce solde (en utilisant une variable que tu alimentes petit à petit).
    Tu appelles cette procédure une fois après avoir remplit ta table.
    Ensuite cette procédure doit être appelée à chaque fois qu'une modification est faite dans ta table.
    Par exemple dans le traitement de sortie d'une ligne de table tu testes si TaTable..Modifié est à VRAI
    Si c'est le cas tu appelles ta procédure de recalcul du solde et tu n'oublies pas de mettre TaTable..Modifié à Faux (ceci peut être fait dans la procédure de recalcul par exemple)

    Ensuite ce traitement peut être un peu optimisé : en effet, on n'est pas obligé de recalculer le solde pour toutes les lignes de la table mais uniquement à partir de la ligne qui a été modifiée (donc la ligne actuellement sélectionnée)

    Voilà, ça devrait te donner de bonnes pistes

  6. #6
    Membre régulier Avatar de NetLandGim
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Mars 2011
    Messages : 97
    Points : 113
    Points
    113
    Par défaut
    A la sortie de ta table
    tu creer un boucle de calcul
    avec des colonnes type nombre (entier, reel...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    POUR i=1 _A_ Tableocurrence (maTable)
    COL_SOLDE[i]=(COL_D[i]-COL_C[i])
    FIN

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 72
    Points : 40
    Points
    40
    Par défaut Toujours pas compris et pas de résultats
    bonjour,

    quelqu'un pourrait-il me faire parvenir l'exemple " Mes Comptes "de l'Autoformation de Windev 15.

    Mon fichier semble corrompu. J'ai plein d'erreurs. Voici ce que j'ai au lancement du projet. Il me renvoie aux fenêtres.

    Nom : erreur windev.png
Affichages : 1976
Taille : 21,7 Ko


    j'utilise la version EXPRESS de Windev 15. Moi, je possède la 7.5 qui ne fonctionne pas sur les machines modernes dépourvues de port imprimante.


    Merci beaucoup.

    Cordialement

  8. #8
    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,

    Ce que tu veux faire est compliqué. Tu n'a pas été bien compris.

    S'il s'agissait de calculer Crédir -débit pour chaque ligne, ça n'aurait pas été compliqué.

    Mais dans ton cas, Tu veux un solde cumulé par ligne :
    ( Solde ligne en cours =somme des soldes antérieurs de la colonne solde + crédit_ligne en cours -débit_ligne encours ).

    C'est ce qu'on voit sur les relévés bancaires.

    De m^me s'il s'agissait de calculer le solde de toute la table, c'est bien un parcours de 1 à Tableoccurence ou Pour Tout sur le fichier.

    Moi je te propose un code qui permettra de calculer le solde cumulé à chaque sortie de la ligne de table pour un nouveau enrrégistement. on verra comment faire pour un cas de modification.


    créer un variable qui fait la somme des soldes du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AncienSolde, nouveausolde, crédit et débit sont des monétaires.
    Dans le code d'entré d' une ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ProcédureCalculesolde ()
    Pour tout fichierMouvement
    crédit += Fichier.crédit
    débit  += Fichier.débit
    Soldeancien =crédit-débit     // tu trouve le solde avant le nouvel nrégistrement
    Fin
    Renvoyer Soldeancien

    A chaque sortie de la ligne en cours

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Colonnesolde = ProcédureCalculsolde +(ColonneCrédit-ColonneDébit)
    // c'est le cumul

    Peut être que la Procédure Calculsolde() doit être globale.

    Cela marchera, je crois bien ,si non c'est la procédure financière,

    Si l'enrégistrement dans le fichier se fait uatomatiquement à chaque sortie de la ligne, Je ne sais pas si il ya aura problème à toi de vérifier

    Est ce que ta colonne table est liée à un rubrique du fichier ( ou stocké), ou bien c'est pour affichage seulement

    à plus

  9. #9
    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,


    Dans une perspective d'optimisation , comment procéder pour ne pas recommencer le calcul des soldes cumulés depuis le début du fchier ?


    fin

    à plus

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    914
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 914
    Points : 1 496
    Points
    1 496
    Par défaut
    Bonsoir
    J'ai vu une astuce pour répondre à ton besoin sur un autre forum.
    Si tu peux attendre que je le traduise, je le fais dès que possible

  11. #11
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Transports

    Informations forums :
    Inscription : Février 2012
    Messages : 3
    Points : 4
    Points
    4
    Par défaut calcule solde
    bonjour tlm,
    moi aussi j'ai le même problème merci de nous aider, c'est très importent pour moi de terminer cette application.
    j'ai une FEN pour la saisie avec BUT De validation (code :EcranVersFichier( ))
    et une table ( N° Order,date, Libellé,Débit,Crédit,Solde) quand je rempli les chans de la FEN les donnees s'affiche directement sur la table j'ai creer un BUT (valider) avec le code : (sai_solde= sai_solde+sai_debite-sai_credit) sachons que le chans sai_solde sur la FEN_SAISIE est seulement en affichage çamarche surla table, mais il fais pas le cumule des soldes ce que je veux fair moi c'est :
    solde= solde + debite- credit car quand le debit est = 0 dans une operation j'aurais pas un montant negatif mais j'arrive tjr pas a le fair en cumul.
    merci de nous aider.

  12. #12
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 72
    Points : 40
    Points
    40
    Par défaut calcul dans colonne de table
    Bonjour,

    Une partie de mon problème est résolue.
    j'ai utilisé ceci comme procédure dans ma fenêtre Mouvements

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    PROCEDURE calcsolde()
    
    sdebit,sajoute sont des réels=0
    HlitPremier (MOUVEMENT,IDMOUVEMENT)
    TANTQUE PAS H.Endehors
    sdebit+=MOUVEMENT.Débit
    sajoute+=MOUVEMENT.Crédit
    HLITSuivant(MOUVEMENT,IDMOUVEMENT)
    Solde_Total=sajoute-sdebit
    FIN
    puis j'ai ajouté dans la ligne de prise de focus de Fen_Table_Mouvement:
    calcsolde

    cela fonctionne.

    Par contre, il ne faut pas Supprimer ou Insérer une ligne dans la table car le solde n'est plus bon.
    Là, il faut un recalcul.

    Alors, si quelqu'un a la solution, elle serait la bien venue...
    Je lui tirerai mon chapeau.

    Merci à tous

    Cordialement

  13. #13
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 72
    Points : 40
    Points
    40
    Par défaut
    Bonjour,

    voici ce que j'utilise pour trouver le solde par ligne:
    Code mis dans Affichage d'une ligne de Table_Mouvement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SI TABLE_MOUVEMENT=1
    Col_solde=Col_Crédit-Col_Débit
    Sinon
    Col_Solde=Col_Solde[Table_Mouvement-1]+Col_Crédit-Col_Débit
    Fin
    Cela fonctionne, mais, après plusieurs saisie de données, fermetures et réouvertures de la fenêtre où se trouve la Table_Mouvement, les chiffres sont faux. Calcul bizarre. Si je double clique sur la cellule, le chiffre redevient correct. Idem pour toutes les autres cellules.
    Donc, j'ai décidé de m'en passer et de me contenter du seul solde Total au bas de la fenêtre.

    Par contre, j'aimerai savoir pourquoi lorsque ma fenêtre où se trouve la Table_Mouvement est ouverte, que je clique sur le bouton nouveau qui m'ouvre la fenêtre de saisie (l'autre fenêtre est toujours ouverte), les données saisies ne s'affichent pas automatiquement dans la TABLE. Il faut que je ferme les 2 fenêtres puis que j'ouvre à nouveau la fenêtre où se trouve la Table_Mouvement pour voir les nouvelles données affichées ?

    Cordialement

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 6
    Points : 7
    Points
    7
    Par défaut requête ayant pour paramètre la date
    dans l'évènement "affichage d'une ligne", exécute une requête qui va prendre en paramètre la date de la ligne "d'opération" si c'est cela et qui va renvoyer la somme des opérations de débit aux dates inférieurs ou égales à la date du paramètre indiqué , puis une autre requête qui similaire qui va renvoyer la somme des opérations de crédit et après tu fais : solde=som_credit -som_dédit

Discussions similaires

  1. Calcul dans une colonne d'une table
    Par gvolny dans le forum Requêtes
    Réponses: 4
    Dernier message: 26/04/2012, 15h59
  2. Update calcul dans une colonne petite probleme
    Par mihaispr dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/12/2009, 10h24
  3. [XL-97] Ecrire résultat calcul dans une colonne déterminée
    Par Bocage dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/04/2009, 18h24
  4. Réponses: 3
    Dernier message: 14/06/2007, 13h35
  5. [VB.NET] Calculs dans une colonne d'un datagridview
    Par boulete dans le forum Windows Forms
    Réponses: 3
    Dernier message: 31/03/2006, 15h11

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