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 :

Calcul dans DBGrid avec SQLite


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué
    Homme Profil pro
    Dev informatique retraité
    Inscrit en
    Août 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev informatique retraité
    Secteur : Santé

    Informations forums :
    Inscription : Août 2005
    Messages : 221
    Points : 171
    Points
    171
    Par défaut Calcul dans DBGrid avec SQLite
    Bonjour à tous

    J’utilise une base SQLite pour une petite gestion de données bancaires.

    Je voudrait que le calcul dans les lignes de ma DBgrid se fasse automatiquement

    Tiers Debit Credit Solde
    Alimentation 52
    Versement 100


    Je sais faire sans problème la somme ou la différence si c’est un débit. Mais mon problème consiste à reporter le résultat dans la colonne Solde a chaque opérations.
    J’utilise une DBGrid du fournisseur TMS.

    Cela parait basique mais comme je teste SQLite c'est peut être cela mon problème.

    Par avance Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 175
    Points : 41 367
    Points
    41 367
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    Cela n'a rien à voir avec SQLite mais tout avec Delphi. (d'où le transfert) du moins en ce qui concerne DBGrid ou plutôt advDGrid puisque vous indiquez TMS.

    À moins que vous ne pensiez qu'un SQL puisse résoudre le problème (je pense que oui). Mais dans ce cas fournir la structure de la table serait une base de départ importante.

    Avec une table simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE PAIEMENTS (
        ID      INTEGER PRIMARY KEY AUTOINCREMENT,
        DEBIT NUMERIC(7,2),
        CREDIT NUMERIC(7,2)
    );
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT a.ID, a.DEBIT,a.CREDIT, (SELECT SUM(b.CREDIT-b.DEBIT) FROM PAIEMENTS B WHERE b.ID<=a.ID) SOLDE
    FROM PAIEMENTS a
    ORDER BY a.ID;

  3. #3
    Membre habitué
    Homme Profil pro
    Dev informatique retraité
    Inscrit en
    Août 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev informatique retraité
    Secteur : Santé

    Informations forums :
    Inscription : Août 2005
    Messages : 221
    Points : 171
    Points
    171
    Par défaut
    Merci Sergio pour ta réponse

    J'ai fait 2 tables : Une table compte et une table détails du comptes (maitre -détails)

    voici mes tables

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    CREATE TABLE Comptes (
      IdCpt INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
      NomCpt VARCHAR(50) NOT NULL,
      Banque VARCHAR(80) NOT NULL,
      SoldeInit FLOAT NOT NULL CHECK (SoldeInit >=0),
      Proprietaire VARCHAR(50) NULL
    );
     
    CREATE TABLE DetailsCpt (
      IdDetails INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
      IdCpt INTEGER NULL,
      Date DATE NOT NULL,
      Types VARCHAR(50) NOT NULL,
      NumChq VARCHAR(7) NULL,
      Tiers VARCHAR(80) NOT NULL,
      Debit FLOAT NULL,
      Credit FLOAT NULL,
      Solde FLOAT NULL,
      CONSTRAINT Comptes_DetailsCpt FOREIGN KEY (IdCpt) REFERENCES Comptes (IdCpt) ON DELETE RESTRICT ON UPDATE RESTRICT
    );

    Je pense que que je vais essayer ton code SQL dans le même esprit que celui que tu me proposes.
    Cela devrai marcher. Je vous tiens au courant.

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 175
    Points : 41 367
    Points
    41 367
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    autant le dire tout de suite deux trucs me choquent dans la table DetailsCpt
    1. l'utilisation du mot clé date comme nom de colonne, ça c'est futur sujet à problème
    2. le fait qu'il y ait les 3 colonnes Debit, Credit et Solde
      • Solde est, normalement, une colonne calculée (Credit-Debit) donc elle n'a rien à faire dans la table
      • Qu'il y ait deux colonnes debit et credit pour, en fait un seul montant avec un sens (D,C)
      • Que ces colonnes soient 'nullable' au lieu d'être à 0 par défaut (bon avec SQLite ça doit passer, même si je n'ai jamais essayé, mais cela me choque)

  5. #5
    Membre habitué
    Homme Profil pro
    Dev informatique retraité
    Inscrit en
    Août 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev informatique retraité
    Secteur : Santé

    Informations forums :
    Inscription : Août 2005
    Messages : 221
    Points : 171
    Points
    171
    Par défaut
    Merci Sergio pour tes précieux conseils

    Effectivement ils sont très judicieux et je vais les appliquer

    J'ai essayé ton code cela marche Super.

    Je marque donc mon post comme résolu

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

Discussions similaires

  1. Modification dans DBgrid avec sélection par Query
    Par vitch8 dans le forum Bases de données
    Réponses: 9
    Dernier message: 05/12/2009, 10h22
  2. calcul dans word avec espace insécable
    Par phoenix75 dans le forum Word
    Réponses: 2
    Dernier message: 23/05/2008, 23h51
  3. Calcul dans cellules avec code
    Par moilou2 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/01/2008, 10h24
  4. Champ calculé dans formulaire avec conditions
    Par applefield dans le forum IHM
    Réponses: 4
    Dernier message: 30/08/2007, 16h59

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