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

C++Builder Discussion :

TDBGrid: libellé dynamique + largeur


Sujet :

C++Builder

  1. #1
    Membre averti
    Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Décembre 2004
    Messages : 35
    Par défaut TDBGrid: libellé dynamique + largeur
    Chers tous,

    j'ai une application qui affiche une grille de données en lecture seule (le sql est créé dynamiquement par le code, avec des filtres selon les écrans).
    Le titre de chaque colonne est déterminé lors de l'exécution selon la langue de l'utilisateur. Certaines colonnes sont cachées.

    Dans l'évènement AfterOpen de la requête, j'ai mis:
    Code : 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
    21
    22
    23
    24
    25
    26
    27
    void __fastcall TFStock::QDictAfterOpen(TDataSet *DataSet)
    {
    //Title Grid Captions
    int i;
    for (i=0;i<DBGridDict->Columns->Count;i++)
        DBGridDict->Columns->Items[i]->MinWidth=0;
    i=0;
    DBGridDict->Columns->Items[i++]->Width=0;
    DBGridDict->Columns->Items[i++]->Title->Caption=GDB->getCaption("CMSG_DATE");
    DBGridDict->Columns->Items[i++]->Title->Caption=GDB->getCaption("CMSG_PRODUCT");
    DBGridDict->Columns->Items[i++]->Title->Caption=GDB->getCaption("CMSG_REFERENCE");
    DBGridDict->Columns->Items[i++]->Title->Caption=GDB->getCaption("CMSG_VERSION");
    // cacher une colonne
    DBGridDict->Columns->Items[i]->Width=0;
    DBGridDict->Columns->Items[i++]->Title->Caption=GDB->getCaption("CMSG_ORIGIN");
    DBGridDict->Columns->Items[i++]->Title->Caption=GDB->getCaption("CMSG_QUANTITY");
    DBGridDict->Columns->Items[i++]->Title->Caption=GDB->getCaption("CMSG_QUANTITY");
    DBGridDict->Columns->Items[i++]->Title->Caption=GDB->getCaption("CMSG_DESTINATION");
    DBGridDict->Columns->Items[i++]->Title->Caption=GDB->getCaption("CMSG_QUANTITY");
    DBGridDict->Columns->Items[i++]->Title->Caption=GDB->getCaption("CMSG_TRIGRAM");
    DBGridDict->Columns->Items[i++]->Title->Caption=GDB->getCaption("CMSG_UNITPRICE");
    DBGridDict->Columns->Items[i++]->Title->Caption=GDB->getCaption("CMSG_CURRENCY");
    DBGridDict->Columns->Items[i++]->Title->Caption=GDB->getCaption("CMSG_UNITPRICEEURO");
    DBGridDict->Columns->Items[i++]->Title->Caption=GDB->getCaption("CMSG_TOTALPRICEEURO");
    DBGridDict->Columns->Items[i++]->Title->Caption=GDB->getCaption("CMSG_REASON");
    DBGridDict->Columns->Items[i++]->Title->Caption=GDB->getCaption("CMSG_SUBREASON");
    }
    La méthode GDB->getCaption renvoie un texte dans la langue de l'utilisateur.
    Ca fonctionne, mais j'ai néanmoins un souci:
    si l'utilisateur permute des colonnes dans la grille au run-time, ca marche sauf que lors d'un refresh (query->Close() puis query->Open()), les libellés et largeurs sont remis par rapport dans l'ordre de la grille et pas du select.
    On a donc
    * un titre qui ne correspond pas avec le contenu de la colonne
    * les libellés ne sont pas permutés,
    * ce n'est plus la bonne colonne qui est cachée.

    => Y a-t'il moyen de faire en sorte que
    1. la grille conserve l'ordre des colonnes et des libellés lors d'un "refresh" de la requête?
    2. la grille conserve la largeur des colonnes lors d'un "refresh" de la requête?
    3. je suppose que je ne devrai plus affecter ces libellés(valeurs + longueurs) lors de l'ouverture de la requête. A quel évènement dois-je l'associer dans ce cas.

    Merci.


    Merci,
    Alain

  2. #2
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut

Discussions similaires

  1. [WB16] Libellé dynamique onglet webdev
    Par Pascal26120 dans le forum WebDev
    Réponses: 3
    Dernier message: 28/09/2011, 19h15
  2. [VxiR2] Mode exploration et libellé dynamique
    Par IIPierreII dans le forum Webi
    Réponses: 2
    Dernier message: 08/07/2011, 09h31
  3. TDBGrid Colonne dynamique et Vista
    Par frantzgac dans le forum C++
    Réponses: 0
    Dernier message: 09/02/2011, 17h09
  4. Select multiple dynamique, largeur et scrollbar
    Par Orbiplanax dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 05/02/2009, 11h09
  5. [Delphi 6] Grille TDBGRID : Défilement dynamique
    Par Hell dans le forum Composants VCL
    Réponses: 6
    Dernier message: 18/11/2008, 11h49

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