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 :

coloriser les lignes d'un resultat de requête SQL


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2010
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 192
    Points : 71
    Points
    71
    Par défaut coloriser les lignes d'un resultat de requête SQL
    Salut tous le monde, je voudrais savoir es possible de coloriser le résultat des lignes obtenue d'une requête SQL sur deux table exemple: les lignes de la table1 en couleur Jaune et les lignes de la table2 en couleur Bleu, es possible de le faire directement dans la requête sql ses ce que je cherche vraiment si non dans un dbgrid delphi.

    Base de données utiliser : ORACLE EDI: DELPHI 2010
    MERCI TOUS LE MONDE

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    Citation Envoyé par chemirikmohamed Voir le message
    je voudrais savoir s'il est possible de coloriser le résultat des lignes obtenues d'une requête SQL sur deux table exemple: les lignes de la table1 en couleur Jaune et les lignes de la table2 en couleur Bleu,
    est-ce possible de le faire directement dans la requête sql , ce que je cherche vraiment, si non dans un dbgrid delphi.
    Coloriser veut dire faire voir à l'écran , il n'est pas possible de mettre des couleurs dans un résultat (requête) non visible tel quel , mais visible via des composants visuels , donc c'est bien sur le composant visuel (Grid, Treeview) qu'il va falloir travailler pour l'affichage


    Cependant c'est sur les données, pour fournir les indications d'affichage, qu'il faut aussi se pencher. Surtout s'il s'agit d'une requête d'union par exemple en affectant une valeur (qui peut à l'occasion être un "entier Couleur"), il faudra également faire attention au tri

    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT 1 AS COULEUR,* FROM TABLE1
    UNION
    SELECT 2,* FROM TABLE2   
    ORDER BY CLECOMMUNE,COULEUR
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2010
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 192
    Points : 71
    Points
    71
    Par défaut coloriser les lignes d'un résultat de requête SQL
    Salut tous le monde et merci à sergio pour ça réponse mais je n'est pas compris cette solutions, mon bute est d’afficher sur un dbgrid les lignes de la table1 avec une couleur différente des lignes de la table2

    Select Rownum, (t.numassure||cle(t.numassure)) as No_assure,t.Nom,t.Prenom,t.Naissance,t.CodCentre From Table1 t.codassure like :ValHcode
    Union All
    Select Rownum, (t.numassure||cle(t.numassure)) as No_assure,t.Nom,t.Prenom,t.Naissance,t.CodCentre From Table2 t.codassure like :ValHcode
    les deux tables sont pareils sur certain colonnes et des différents sur d'autres.

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    C'est bien ce que je proposais , il suffit de rajouter une colonne dans la query

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Select Rownum, (t.numassure||cle(t.numassure)) as No_assure,t.Nom,t.Prenom,t.Naissance,t.CodCentre,1 as COLOR From Table1 t.codassure like :ValHcode
    Union All
    Select Rownum, (t.numassure||cle(t.numassure)) as No_assure,t.Nom,t.Prenom,t.Naissance,t.CodCentre,2 From Table2 t.codassure like :ValHcode

    cette colonne COLOR permettra de distinguer les tables .
    reste la question du tri , je ne suis pas sur que RowNum soit le critère prioritaire je mettrai en 1° par exemple le No_Assure, Rownum,puis COULEUR
    Ainsi sur la Grille on aurait tous les enregistrements de la table1 d'un assuré suivi de tous les enregistrements de la table2 du même assuré , etc...
    le tri peut se faire en changeant l'ordre des champs dans la Query ou en mettant une clause ORDER BY (selon le SGBD le temps de réponse pourrait alors différé)


    Puis de se mettre à la codification de l'évènement OnDrawColumnCell de la DBGrid selon la FAQ ici
    en simplifiant si c'est juste de l'affichage cela donnera

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    with (Sender as TDBGrid).Canvas do
    begin
     if Query1COULEUR.asInteger=1 then Brush.Color:=clYellow
                                           else Brush.Color:=clLime;
     (Sender as TDBGrid).DefaultDrawColumnCell(Rect,DataCol,Column,State);
    end;
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

Discussions similaires

  1. Page avec Tableaux de resultats de requêtes SQL
    Par twixi dans le forum Services
    Réponses: 1
    Dernier message: 12/11/2011, 20h19
  2. [AC-2003] Resultat de requête SQL avec des dates incorrect
    Par rockin-bones dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 19/05/2011, 14h35
  3. Comment éviter les messages d'erreur lors de requêtes SQL
    Par Pentos60 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/01/2011, 09h38
  4. [À télécharger] Coloriser les lignes d'une MSHFlexGrid
    Par SfJ5Rpw8 dans le forum Vos téléchargements VB6
    Réponses: 0
    Dernier message: 14/11/2010, 13h26
  5. Réponses: 5
    Dernier message: 24/06/2008, 13h07

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