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

  1. #1
    Membre régulier
    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 ..........Programme VCL
    SGBD : Firebird 2.5
    générateurs Etats : FastReport, QuickReport
    OS : Window 7 64bit

  2. #2
    Rédacteur/Modérateur

    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

    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
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  3. #3
    Membre régulier
    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 ..........Programme VCL
    SGBD : Firebird 2.5
    générateurs Etats : FastReport, QuickReport
    OS : Window 7 64bit

  4. #4
    Membre régulier
    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 ..........Programme VCL
    SGBD : Firebird 2.5
    générateurs Etats : FastReport, QuickReport
    OS : Window 7 64bit

###raw>template_hook.ano_emploi###