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

VB.NET Discussion :

[VS2005][VB.Net] Custom Format dans un DataGridView


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Coordinateur Qualité
    Inscrit en
    Avril 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Coordinateur Qualité
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 62
    Points : 57
    Points
    57
    Par défaut [VS2005][VB.Net] Custom Format dans un DataGridView
    Bonjour,

    c'est la première fois que j'utilise un DataGridView lié à une base de données, donc sorry si ma question est simpliste.

    J'essaie d'utiliser le "CellStyle Builder" pour formater mes données (pour y accéder: sélectionner le DataGridView, éditer les Columns, choisir la colonne à éditer et éditer le DefaultCellStyle). Cette boîte de dialogue me permet d'encoder un format.

    Pour les dates et les valeurs numériques, aucun problème mais j'aimerais formater du texte. Exemple: si la valeur de la cellule est "T", j'aimerais que ce soit "Transfert" qui soit affiché. Et pouvoir ainsi spécifier plusieurs valeurs dans le format.

    J'avoue que je ne m'y retrouve pas dans l'aide Microsoft et que je ne trouve pas mon bonheur sur le web. Peut-être n'est-ce tout simplement pas possible ?

    Merci à qui pourra m'aider...

    a+
    Vonotar

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Effectivement, je ne vois pas trop comment il serait possible de definir un Format conditionnel dans une DataGridViewColumn avant même que les données soient chargées
    En tout cas le principe n'existait pas avnat avec le DataGrid, je doute que celà soit possible avec 2.0, mais quelqu'un de plus avancé que moi pourrait peut être réajuster ma réponse
    J'aurais donc tendance à intervenir après coup une fois le binding effectué en itérant sur les DataGridRows visibles et en executant mon formattage conditionnel sur la DataGridViewColumn concernée
    (Mais bien sûr ce n'est plus du mode design )

  3. #3
    Membre du Club
    Homme Profil pro
    Coordinateur Qualité
    Inscrit en
    Avril 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Coordinateur Qualité
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 62
    Points : 57
    Points
    57
    Par défaut
    Bonjour Neguib et merci pour ta réponse.

    Quand je vois les possibilités de formatage de dates et de nombres, je trouve ça aberrant qu'on n'aie pas droit à un formatage minimal de texte. Par exemple, pouvoir mettre un format du style {'T':'Transfert';'A':'En attente'}. Bref, quelque chose de très basique.

    J'attends jusque demain pour voir si quelqu'un a une solution et si ce n'est pas le cas, je le fais dans mon code.

    Bonne soirée,
    Vonotar

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Attention je n'ai pas dit qu'il n'était pas possible de formater du texte mais qu'il n'était pas dans ce cas conditionnel

  5. #5
    Membre du Club
    Homme Profil pro
    Coordinateur Qualité
    Inscrit en
    Avril 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Coordinateur Qualité
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 62
    Points : 57
    Points
    57
    Par défaut
    Euh... Je ne vois pas la différence...

  6. #6
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par Vonotar
    Euh... Je ne vois pas la différence...
    ah bon
    donc pour toi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SI machin = "T" ALORS machin ="Transfert"
    SINONSI machin = etc...
    C'est pareil que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     machin = machin.ToString(Format)

  7. #7
    Membre du Club
    Homme Profil pro
    Coordinateur Qualité
    Inscrit en
    Avril 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Coordinateur Qualité
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 62
    Points : 57
    Points
    57
    Par défaut
    Non, bien entendu.

    Mais il y a une syntaxe conditionnelle dans le cas de nombres par exemple où on peut choisir le format quand c'est positif, négatif ou égal à 0. Donc je me dis que ça devrait exister pour le texte.

  8. #8
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par Vonotar
    Non, bien entendu.

    Mais il y a une syntaxe conditionnelle dans le cas de nombres par exemple où on peut choisir le format quand c'est positif, négatif ou égal à 0. Donc je me dis que ça devrait exister pour le texte.
    Ah bon je ne savais pas tu peux me montrer le code généré automatiquement alors :

  9. #9
    Membre du Club
    Homme Profil pro
    Coordinateur Qualité
    Inscrit en
    Avril 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Coordinateur Qualité
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 62
    Points : 57
    Points
    57
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $#,##0.00;($#,##0.00);Zero
    19.95 donnerait $19.95,
    -19.95 donnerait ($19.95),
    0 donnerait Zero.

  10. #10
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 253
    Points
    28 253
    Par défaut
    je ne connaissais pas ce principe cool


    1- pourquoi dans ta requete sur ta db, tu ne fais pas un case-then qui remplacerai directement les A par En attente, T, transfert, etc?


    Sinon tu parles qu'une fonctionnalité "basique" pour toi, parce qu'elle correspond à tes besoins. Personnellement, j'ai plus de 500datagridview dans mon projet et si chaque fonctionnalité que j'ai bidouillé était intégré de base, le datagridview serait une usine à gaz et ne correspondrait pas forcément plus à tes attentes. En gros, comment ton cas pourrait etre "basique"?
    si on suit ton exemple, il faudrait un custom format de la forme
    "Transfert";"En attente" et la dgview devrait deviner que le premier parametre est pour la lettre T, la deuxieme pour la lettre A, etc.

    donc pour ma part, je ne vois pas comment resoudre ton probleme via un customformat

  11. #11
    Membre du Club
    Homme Profil pro
    Coordinateur Qualité
    Inscrit en
    Avril 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Coordinateur Qualité
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 62
    Points : 57
    Points
    57
    Par défaut
    Comme je ne connaissais pas VS.Net 2005, je me suis dis qu'ils avaient peut-être amélioré le système des Custom Format. J'ai dit "basique" parce que je pensais au format numérique que j'ai cité plus haut.

    Je voulais m'assurer qu'une méthode via Custom Format, et donc quasi instantanée au niveau développement (puisque je n'aurais pas eu à modifier une seule ligne de code), n'existait pas avant d'aller ajouter ma propre fonctionalité. "Un bon développeur est un développeur fainéant" comme me disait une prof lors de mes études.

    Pour la requête, je ne sais pas si FireBird supporte cette fonctionnalité: il faudrait que je vérifie mais merci pour le tuyau !

    a+
    Vonotar

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

Discussions similaires

  1. Custom object dans une Datagridview
    Par crystalgold dans le forum Windows Forms
    Réponses: 3
    Dernier message: 13/11/2009, 17h38
  2. custom format dans dateTimePicker
    Par olibara dans le forum C#
    Réponses: 2
    Dernier message: 23/04/2008, 20h38
  3. Réponses: 2
    Dernier message: 30/10/2006, 22h14
  4. Réponses: 3
    Dernier message: 07/06/2006, 14h40
  5. Réponses: 5
    Dernier message: 27/02/2006, 19h38

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