Bonjour,
J'ai un soucis sur une condition dont les composantes peuvent être NULL.
En fait je compare une combo : 'Combo_Type' (Texte, avec l'option "renvoyer NULL si vide") à une rubrique d'un fichier : 'FIC.Type' (chaine, avec Null activé et en valeur par défaut)
Le problème c'est que pour les fichiers, windev met la propriété ..Null à vrai lorsque la rubrique est NULL. Hors pour la combo il semble que ce soit la valeur contenue qui soit NULL.
Donc quand je fais une condition :
Cela ne fonctionne jamais car FIC.Type vaut "" même si je l'affecte à Null (en gros l'affectation FIC.type=Null ne fonctionne pas)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Si COMBO_Type <> FIC.Type ALORS ...
Donc pour contrer cela je créé un variant vType :Mais lorsque je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part vType= FIC.type..Null=vrai? Null ELSE FIC.Typecela ne fonctionne pas non plus. Pourtant en mode débug on voit bien que COMBO_Type vaut <NULL> et vType vaut <NULL> également, mais la condition reste vrai et je rentre dans le SI...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Si COMBO_Type <> vType ALORS ...
Pourtant si je faiscela fonctionne !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part Si COMBO_Type=Null _ET_ vType<>Null ALORS ...
Quelqu'un aurait-il une solution car la j'ai relu l'aide plusieurs fois, je ne vois pas comment faire, j'ai dû fait une chose horrible à mon goût pour que cela fonctionne :
Mon but final étant de rentrer dans le SI uniquement si COMBO_Type et FIC.Type sont différents (NULL y compris)(dans le cadre d'une vérification après saisie)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 (COMBO_Type=Null _ET_ vType<> Null) _OU_... (COMBO_Type<>Null _ET_ vType=Null) _OU_... (COMBO_Type<>Null _ET_ vType<>Null _ET_ COMBO_Type<>vType) _OU_...
J’espère que PCSOFT à prévu une autre solution pour ce genre de cas...
Partager