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

Delphi Discussion :

Coloriser uniquement les valeurs existe dans la deuxième table


Sujet :

Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 182
    Points : 84
    Points
    84
    Par défaut Coloriser uniquement les valeurs existe dans la deuxième table
    salut
    j'ai deux table dans la BD firebird
    table1: étudiantes (N_etud,Nom_etud)
    table2: suspendus(Date_susp,N_etud,cause)

    dans la form1 j'ai un dbgrid1 Contient les valeurs de requête suivantes (afficher tous les étudiantes)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM étudiantes
    Comment faire en sorte que les élèves qui sont existes uniquement dans la table: suspendus
    apparaissent toujours en bas de la liste avec leur lignes colorée en rouge, par exemple.
    remarque1 :
    en bas de la liste: (Sa signification Au début de la liste apparaissent les étudiants qui sont dans la table étudiantes, Puis les étudiants qui sont dans la table suspendus)


    remarque2: Si j'ai utilise un composant TDBAdvGrid en place de dbgrid1 Quelle serait la solution pour la coloration?
    Delphi installés : RAD Studio 10.4.1 ..........Programme VCL
    SGBD : Firebird 2.5
    générateurs Etats : FastReport, QuickReport
    OS : Window 10 64bit

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    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 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    pour répondre à la question 1, il y a plusieurs solutions toutes passant par le SQL avec JOINture et ordre (ORDER BY)

    tentative "à la volée" sans vérification
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT IIF(s.date_sup IS NULL,0,1)  AS SUSPENDUE,e.N_etud,e.Nom_etud 
    FROM étudiantes e LEFT JOIN suspendus s ON s.N_Etud=e.N_etud
    ORDER BY 1

    [Edit] vérifications faites, preuve par l'image
    Nom : Capture.PNG
Affichages : 131
Taille : 46,2 Ko
    N'empêche cette partie aurait plus sa place dans Firebird/SQL (avec script de création de tables et jeu d'essai)

    à la place du IIF on pourrait aussi envisager un IF EXISTS, à étudier. Il serait temps que vous vous penchiez sérieusement sur le SQL.

    la question 2 devient alors simple à résoudre puisque la condition est la colonne SUSPENDUE, il n'y a plus qu'à faire un tour dans la FAQ pour un DBGrid et dans la doc TMS pour le TadvDBGrid (que je n'utise quasiment pas donc cela ne me vient pas à l'esprit)

    Toutefois, je m'interroge sur ces suspensions !
    la date comme clé , pas de délai , une suspension serait donc définitive ! M'est avis qu'il y a comme un souci de structure de BDD

    pour le fun je trouve aussi qu'il y a un problème d'accord de genre si la table se nomme "étudiantes" (pour une fois la balance penche sur le féminin) alors elles peuvent être "supendues" .
    et pourtant :
    Au début de la liste apparaissent les étudiants qui sont dans la table étudiantes
    on a bien à faire a un tableau mixte
    Cela fait un moment que ce étudiantes me faisait de l'oeil, en général dans mes BDD j'évite tout ce qui peut être caractères accentués. C'est là ou l'anglais est pratique STUDENTS -> pas de genre
    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
    Étudiant
    Inscrit en
    Février 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 182
    Points : 84
    Points
    84
    Par défaut
    merci SergioMaster pour Vos conseils, alertes et assistance!!

    La deuxième question reste pour moi
    Je ferai la recherche À propos DBAdvGrid
    Delphi installés : RAD Studio 10.4.1 ..........Programme VCL
    SGBD : Firebird 2.5
    générateurs Etats : FastReport, QuickReport
    OS : Window 10 64bit

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 182
    Points : 84
    Points
    84
    Par défaut
    Après recherche, c'est la solution

    dans enlèvement OnGetCellColor
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if DBAdvGrid1.cells[1,arow]='1' then
         ABrush.Color:=clRed
    Delphi installés : RAD Studio 10.4.1 ..........Programme VCL
    SGBD : Firebird 2.5
    générateurs Etats : FastReport, QuickReport
    OS : Window 10 64bit

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/05/2019, 13h30
  2. Impossible d'afficher une valeur existe dans une autre table
    Par mcharmat dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 06/02/2013, 06h38
  3. [MySQL] Récupérer les valeurs définies dans un champ ENUM
    Par Huntress dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 03/07/2010, 18h55
  4. Réponses: 2
    Dernier message: 04/06/2010, 21h53
  5. Comment gérer les valeur Nulles dans une requête ?
    Par sondo dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/03/2005, 11h02

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