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 :

Booleen 3 états à 2 états


Sujet :

VB.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 158
    Points : 100
    Points
    100
    Par défaut Booleen 3 états à 2 états
    Bonjour,

    Est-il possible d'éliminer l'état indéterminé lorsque l'on fait une colonne booléenne comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Function CreerUneColonneBooleene(ByVal vNomColonne As String) As DataColumn
            Dim retour As New DataColumn()
            Try
                retour.DefaultValue = False
                retour.DataType = Type.GetType("System.Boolean")
                retour.ColumnName = vNomColonne
                Return retour
            Catch ex As Exception
                Throw New Exception("Une erreur est survenue dans la méthode " + New StackFrame().GetMethod.Name + vbCrLf + "L'erreur est :" + ex.Message)
            End Try
        End Function
    J'aimerais qu'il n'y ait que 2 états...

    Merci!

  2. #2
    Membre averti Avatar de Faladin
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2007
    Messages : 333
    Points : 305
    Points
    305
    Par défaut
    J'ai déjà eu ce problème.

    Dans un DGV j'enregistrais les valeurs, mais un checkbox non cliqué enregistrait rien, donc à la lecture de mes fichiers enregistrés j'Avais une erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                                        'Si le controle est bool, on s'assure qu'un état 1/0 est défini
                                        'Sinon il y a probleme à l'ouverture d'un bool qui est "nothing"
                                        If Control.CurrentCell.ValueType.Name = "Boolean" Then
                                            If Control.CurrentCell.Value = Nothing Then
                                                Control.CurrentCell.Value = False
                                            End If
                                        End If
    J'espère que ça t'aide
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    John F. Woods


    JP

    Pour commencer en VB.Net: PLASSERRE!

    ou traducteur-sms.com

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 158
    Points : 100
    Points
    100
    Par défaut Pas pour l'enregistrement
    Merci, mais mon problème est plutôt d'ordre "Interfacique", l'usager peut choisir de cocher, de ne pas cocher ou de griser le checkbox.

  4. #4
    Membre averti Avatar de Faladin
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2007
    Messages : 333
    Points : 305
    Points
    305
    Par défaut
    Pourquoi le laisser choisir alors de mettre l'état indéterminé si tu ne veux pas qu'il le fasse!!

    En mode desing, sur ton checkbox, tu as l'option 2 ou 3 state...
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    John F. Woods


    JP

    Pour commencer en VB.Net: PLASSERRE!

    ou traducteur-sms.com

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 158
    Points : 100
    Points
    100
    Par défaut Ce n'est pas un checkbox
    Salut,

    C'est un "checkbox", mais pas un vrai "checkbox". C'est une colonne de type booléen, ça fait en sorte que l'interface resemble à un checkbox. Mais ces checkbox n'ont pas les mêmes priorités.

  6. #6
    Membre averti Avatar de Faladin
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2007
    Messages : 333
    Points : 305
    Points
    305
    Par défaut


    Bon je sais pas trop quoi te dire de plus alors...

    alors si on résume tu ne veux pas qu'on ton état indéterminé existe. En créant la colonne tu veux donc que la valeur par défaut soit False. Qu'est ce qui ne fonctionnait pas dans ton premier sub?
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    John F. Woods


    JP

    Pour commencer en VB.Net: PLASSERRE!

    ou traducteur-sms.com

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 158
    Points : 100
    Points
    100
    Par défaut Cette ligne
    Bon matin,

    c'est cette ligne qui dit le type de la colonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    retour.DataType = Type.GetType("System.Boolean")
    Le problème c'est que ce type peut être True False ou Indéterminé(grisée)

  8. #8
    Membre averti Avatar de Faladin
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2007
    Messages : 333
    Points : 305
    Points
    305
    Par défaut
    En créant un type Boolean ta colonne peut être à 3 états soit: Vrai, Faux et Indéterminé?

    Je croyais que c'était obligatoirement que Vrai et Faux...

    Honnêtement je sais pas trop
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    John F. Woods


    JP

    Pour commencer en VB.Net: PLASSERRE!

    ou traducteur-sms.com

  9. #9
    Membre averti Avatar de Faladin
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2007
    Messages : 333
    Points : 305
    Points
    305
    Par défaut
    Les colonnes de type checkbox d'un DGV ont la propriété .ThreeState, ce qui ne semble malheureusement pas être le cas avec des colonnes de type DataColumn...

    je comprends pas
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    John F. Woods


    JP

    Pour commencer en VB.Net: PLASSERRE!

    ou traducteur-sms.com

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 158
    Points : 100
    Points
    100
    Par défaut
    La solution va être migré en VS2005. Je referai mon interface, mais avec un DGV. Ça va règlé le problème.

    Merci pour l'aide

  11. #11
    Membre averti Avatar de Faladin
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2007
    Messages : 333
    Points : 305
    Points
    305
    Par défaut
    Ah ben si ça règle le problème!
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    John F. Woods


    JP

    Pour commencer en VB.Net: PLASSERRE!

    ou traducteur-sms.com

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 158
    Points : 100
    Points
    100
    Par défaut Back to 2002
    Bon,

    après des problèmes de migration vers 2005. On retourne à la solution 2002. Est-ce que quelqu'un sait s'il faut mettre d'autres informations dans le code suivant afin qu'il soit impossible de d'avoir un état null?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim retour As New DataColumn()
            Try
                retour.DefaultValue = False
                retour.DataType = Type.GetType("System.Boolean")
                retour.ColumnName = vNomColonne
                retour.AllowDBNull = False
                Return retour
            Catch ex As Exception
                Throw New Exception("Une erreur est survenue dans la méthode " + New StackFrame().GetMethod.Name + vbCrLf + "L'erreur est :" + ex.Message)
            End Try
    Merci!

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 158
    Points : 100
    Points
    100
    Par défaut La solution!
    Ma colonne 0 est la seule qui n'est pas booléenne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim hti As DataGrid.HitTestInfo = Me.TableAssociationGroupeEtTypeDeGroupe.HitTest(e.X, e.Y)
            Try
                Me.activerBoutonOngletAssociation()
                If hti.Type = DataGrid.HitTestType.Cell AndAlso Not hti.Column = 0 Then
                    Me.TableAssociationGroupeEtTypeDeGroupe(hti.Row, hti.Column) = Not CBool(Me.TableAssociationGroupeEtTypeDeGroupe(hti.Row, hti.Column))
                End If
            Catch ex As Exception
                MessageBox.Show(ex.ToString())
            End Try
    Bonne journée!

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

Discussions similaires

  1. Affichage sous état dans état
    Par Ledaf dans le forum IHM
    Réponses: 9
    Dernier message: 26/03/2009, 19h17
  2. regroupement 15 états => 1 état
    Par lbar012001 dans le forum IHM
    Réponses: 2
    Dernier message: 29/09/2008, 10h31
  3. Réponses: 1
    Dernier message: 11/08/2008, 15h33
  4. Sous état dans état
    Par Daniel87000 dans le forum IHM
    Réponses: 1
    Dernier message: 10/12/2007, 23h59
  5. [CR] Rélier les paramétres d'un sous états à l'état principa
    Par sylviefrfr dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 14/03/2006, 11h50

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