PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WEBDEV 2024 → Problème affectation Booléen
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