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

Bases de données Delphi Discussion :

[Champs Calculer] manupulation des Champs


Sujet :

Bases de données Delphi

  1. #1
    Membre actif Avatar de touhami
    Inscrit en
    Avril 2002
    Messages
    327
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 327
    Points : 264
    Points
    264
    Par défaut [Champs Calculer] manupulation des Champs
    Bonjour a tous,
    Voila mon problème expliquer par un exemple ci dessous :
    j'ai une table Paradox qui contient 2 champs ( Total1 et Total2 les deux de type Currency (Monétaire))
    vu a mon besoin j'ai crée une requette suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       Select Total1,Total2
       From MaTable
    j'ai ajouté a ma requête un champs Calculer appeler Montant de type Currency ,

    et dans l'événement OnCalcFields Voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.Query1CalcFields(DataSet: TDataSet);
    begin
        Query1Montant.AsCurrency := (Query1Total1.AsCurrency * Query1Total2.AsFloat) * i ;
        i := i +1 ;
    end;
    la valeur initial de i est 0 ;
    et Voici mon résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Total1     Total2    Montant
     ====      ====    ======
    12           10          0
    10           5          150
    4             2          16
    3             3           27
    jusqu'ici Tous va très bien a l'exécution seulement quand je je navigue mon DBgrid à l'aide de mon DBNavgateur Mon Champs calculer Montant prend d'autre valeur (c-a-d la méthode OnCalcFields est appeller chanque fois que je navigue mon DbGrid.
    y a t il une solution

  2. #2
    Membre habitué Avatar de abdelghani_k
    Inscrit en
    Octobre 2002
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Octobre 2002
    Messages : 184
    Points : 150
    Points
    150
    Par défaut
    Peux-tu nous préciser c quoi l'indice i ?

    Dans le cas ou Montant = Total1*Total2 voici une solution plus simple.

    Il vaux mieux réécrire ta requête comme suit :

    Select Total1,Total2, Total1*Total2 as Montant
    From MaTable

    que d'ajouter un évent CalFields à une requête SQL.
    Je te conseille lire un peu le langage SQL pour résoudre ce genre de pbs.
    Réussir c'est faire le bon choix.

    Voici ma supper fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fonction ChercherSolution(User_id:login in www.developper.com):Vrai;

  3. #3
    Membre actif Avatar de touhami
    Inscrit en
    Avril 2002
    Messages
    327
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 327
    Points : 264
    Points
    264
    Par défaut
    Bonjour,
    Merci abdelghani_k pour ta reponse mais ma question n'est sur l'indice i mais sur le champs calculer.
    la methode OnCalcField quand est elle appellée ? quand la requette est actve ou bien quoi?

Discussions similaires

  1. Champ calculé depuis un champ calculé
    Par djibouli dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 06/02/2014, 01h05
  2. TCD avec champ calculé sur des champs nombre
    Par Scrabblouille dans le forum Excel
    Réponses: 0
    Dernier message: 06/10/2011, 20h16
  3. calcul sur des champs
    Par Tierisa dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/01/2006, 12h55
  4. tri sur des champs calculés
    Par Thib dans le forum Bases de données
    Réponses: 10
    Dernier message: 18/10/2005, 17h24
  5. Calcul dans des champs de saisie
    Par leeloo076 dans le forum ASP
    Réponses: 4
    Dernier message: 07/04/2004, 10h09

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