|
Problème affectation Booléen |
Iniciado por Jeremy, nov., 26 2004 6:09 PM - 2 respostas |
| |
| | | |
|
| |
Publicado em novembro, 26 2004 - 6:09 PM |
Bonjour à tous,
Voiçi la déscription de mon soucis
J'utilise un fichier ayant cet allure là
NOM PRENOM DROIT1 DROIT2 DROIT3 DROIT4 ... DROIT10
Je souhaite modifier la valeur des DROIT qui sont tous des booléens pour vérifier si l'utilisateur posséde le droit ou non, sachant qu'il n'est possible d'avoir qu'un seul droit en même temps...
Voici mon code SELON Droit // Valeur de ma liste déroulante CAS 1 // UT = utlisateur SKUSER.CG = 0 SKUSER.DD = 0 SKUSER.AP = 0 SKUSER.RRH = 0 SKUSER.DOP = 0 SKUSER.DG = 0 SKUSER.CEO = 0 SKUSER.DRH = 0 SKUSER.ADMIN = 0 SKUSER.UT = 1 CAS 2 //CG = controlleur de gestion SKUSER.CG = 1 SKUSER.DD = 0 SKUSER.AP = 0 SKUSER.RRH = 0 SKUSER.DOP = 0 SKUSER.DG = 0 SKUSER.CEO = 0 SKUSER.DRH = 0 SKUSER.ADMIN = 0 SKUSER.UT = 0 CAS 3 //DD ... CAS 4 //ADP ... CAS 5 //RRH .. CAS 6 //DOP ... CAS 7 //DG ... CAS 8 //CEO ... CAS 9 //DRH SKUSER.DRH = 1 SKUSER.UT = 0 SKUSER.CG = 0 SKUSER.DD = 0 SKUSER.AP = 0 SKUSER.RRH = 0 SKUSER.DOP = 0 SKUSER.DG = 0 SKUSER.CEO = 0 SKUSER.ADMIN = 0 CAS 10 //ADMIN SKUSER.ADMIN = 1 SKUSER.UT = 0 SKUSER.CG = 0 SKUSER.DD = 0 SKUSER.AP = 0 SKUSER.RRH = 0 SKUSER.DOP = 0 SKUSER.DG = 0 SKUSER.CEO = 0 SKUSER.DRH = 0 Vous aurez compris le principe , même si l'opération est lourde, elle devrait fonctionné Or elle ne fonctionne que pour certaine valeur ( par exemple fontction pour CAS 1, mais fonctionne pas pour CAS 2 )
J'ai vérifié la structure de mon fichier et tout les champs ont exactement les même caractériques ...
Donc pour faire bref, je constate à l'aide du debogueur que lorsqu'on rentre dans la boucle et que le curseur passe sur MA_VARIABLE_BOOLEENE = 1 , MA_VARIABLE_BOOLEEN conserve la valeur FAUX... Alors que pour MA_VARIABLE_BOOLEENE_2 = 1 , MA_VARIABLE_BOOLEENE_2 prend la valeur VRAI...
Donc je me retrouve fasse à un gros mystère ...
Je vous remercie d'avance pour vos eventuel réponse...
Jérémy |
| |
| |
| | | |
|
| | |
| |
Publicado em novembro, 26 2004 - 6:44 PM |
Jeremy a exposé le 26/11/2004 :
Bonjour à tous,
Voiçi la déscription de mon soucis
J'utilise un fichier ayant cet allure là
NOM PRENOM DROIT1 DROIT2 DROIT3 DROIT4 .. DROIT10
Je souhaite modifier la valeur des DROIT qui sont tous des booléens pour vérifier si l'utilisateur posséde le droit ou non, sachant qu'il n'est possible d'avoir qu'un seul droit en même temps...
Voici mon code SELON Droit // Valeur de ma liste déroulante CAS 1 // UT = utlisateur SKUSER.CG = 0 SKUSER.DD = 0 SKUSER.AP = 0 SKUSER.RRH = 0 SKUSER.DOP = 0 SKUSER.DG = 0 SKUSER.CEO = 0 SKUSER.DRH = 0 SKUSER.ADMIN = 0 SKUSER.UT = 1 CAS 2 //CG = controlleur de gestion SKUSER.CG = 1 SKUSER.DD = 0 SKUSER.AP = 0 SKUSER.RRH = 0 SKUSER.DOP = 0 SKUSER.DG = 0 SKUSER.CEO = 0 SKUSER.DRH = 0 SKUSER.ADMIN = 0 SKUSER.UT = 0 CAS 3 //DD ... CAS 4 //ADP ... CAS 5 //RRH .. CAS 6 //DOP ... CAS 7 //DG ... CAS 8 //CEO ... CAS 9 //DRH SKUSER.DRH = 1 SKUSER.UT = 0 SKUSER.CG = 0 SKUSER.DD = 0 SKUSER.AP = 0 SKUSER.RRH = 0 SKUSER.DOP = 0 SKUSER.DG = 0 SKUSER.CEO = 0 SKUSER.ADMIN = 0 CAS 10 //ADMIN SKUSER.ADMIN = 1 SKUSER.UT = 0 SKUSER.CG = 0 SKUSER.DD = 0 SKUSER.AP = 0 SKUSER.RRH = 0 SKUSER.DOP = 0 SKUSER.DG = 0 SKUSER.CEO = 0 SKUSER.DRH = 0 Vous aurez compris le principe , même si l'opération est lourde, elle devrait fonctionné Or elle ne fonctionne que pour certaine valeur ( par exemple fontction pour CAS 1, mais fonctionne pas pour CAS 2 )
J'ai vérifié la structure de mon fichier et tout les champs ont exactement les même caractériques ...
Donc pour faire bref, je constate à l'aide du debogueur que lorsqu'on rentre dans la boucle et que le curseur passe sur MA_VARIABLE_BOOLEENE = 1 , MA_VARIABLE_BOOLEEN conserve la valeur FAUX... Alors que pour MA_VARIABLE_BOOLEENE_2 = 1 , MA_VARIABLE_BOOLEENE_2 prend la valeur VRAI...
Donc je me retrouve fasse à un gros mystère ...
Je vous remercie d'avance pour vos eventuel réponse... Comprends pas ton problème. Mais pour ma part je n'utilise jamais de booléens dans mes tables. Je préfère utiliser des integer de 2 dont 0. avec la valeur 0=non et 1=oui. Pourquoi ? Pour pouvoir utiliser des cases à cocher et puis si mon code évolue d'un booléen à un sélecteur (plus de 2 valeurs), je ne serais pas bloqué. En plus, les booléens d'une base à une autre, c'est différent.
Pour en revenir à ton pb, tes variables ne doivent pas toutes être typées de la mème façon.
Jérémy
-- Eric Webmaster des Wtablettes www.wtablettes.net |
| |
| |
| | | |
|
| | |
| |
Publicado em novembro, 29 2004 - 10:30 AM |
Bonjour,
Tout d'abord, merci pour votre réponse...
En fait je récupére un application qui avait déjà été developpée au 3/4 et de plus l'emploi de booléen dans l'histoire me parrait justifié puisqu'il s'agit de valeur qui prennent la valeur vrai ou faux...Assez pratique pour les tests logiques en sommes...
Quant au typage de mes variables, aucun soucis, elles prennent toutes la valeurs "vrai" ou "faux" dans le debugueur, ce qui me parrait suffisant pour savoir qu'elles sont toutes bien déclarées en booléens...
Une fois cela dit, le soucis reste identiques, l'affactation ne se réalise pas lorsque je regarde en mode execution pas à pas, " MON_BOOL = 1 "
MON_BOOL reste faux ...
Alors qu'un peu plus loin, une variable "MON_BOOL_2 = 1" , MON_BOOL_2 devient vrai...
Pourquoi cela marche-t-il pour l'un et pas pour l'autre ?
Jérémy |
| |
| |
| | | |
|
| | | | |
| | |
|