Bienvenue! Inscrivez-vous et rejoignez notre communauté :)
  • Login:

Bienvenue sur Forum SIG - Systèmes d'Information Géographique et Géomatique.

Bienvenue sur le forumSIG. S'il s'agit de votre première visite, assurez vous de faire une recherche préalable dans les FAQ SIG. Vous devez vous inscrire avant de pouvoir poster.

Affichage des résultats 1 à 5 sur 5
  1. #1

    Date d'inscription
    septembre 2018
    Messages
    1

    Par défaut Affichage étiquettes multichamps et règles - valeurs null

    Bonjour,

    Petit souci pour afficher mes étiquettes qui contiennent des valeurs NULL.
    Mes etiquettes contiennent des valeurs par étage (10) , j'ai donc paramétrée 10 conditions mais dès qu'une valeur manque sur un étage, l’étiquette disparaît....
    C'est rageant, j'ai bricolé un peu sur la toile pour avoir une solution mais je suis dans l'impasse.

    Ci dessous un exemple de mon etiquette

    case when "rdc_6_22h_" >= 70.0000 AND "rdc_6_22h_" <= 200.0000 AND "Anteriorit" ='OUI'
    or "r+1_6_22h_">= 70.0000 and "r+1_6_22h_" <= 200.000 and "Anteriorit" ='OUI' .......
    then "assemblage"
    || '\n' || 'RDC - LAeq 6h-22h = ' || "rdc_6_22h_" || 'dB(A)'
    || '\n' || 'RDC - LAeq 22h-6h = ' || "rdc_22_6h_" || 'dB(A)'
    End

    la fonction marche tant qu'elle ne rencontre pas de valeur nulle, j'ai testé

    Merci de votre aide

  2. #2
    Chasseur de Bots
    Date d'inscription
    août 2011
    Localisation
    Paris > Strasbourg
    Emploi
    Chargé de mission SIG
    Âge
    34
    Messages
    1 473

    Par défaut Re : Affichage étiquettes multichamps et règles - valeurs null

    Code:
    case when COALESCE("rdc_6_22h_", 0) >= 70.0000 AND COALESCE("rdc_6_22h_", 0) <= 200.0000 AND COALESCE("Anteriorit", '') ='OUI' 
    or COALESCE("r+1_6_22h_", 0) >= 70.0000 and COALESCE("r+1_6_22h_", 0) <= 200.000 and COALESCE("Anteriorit", '') ='OUI' .......
    then "assemblage" 
    || '\n' || 'RDC - LAeq 6h-22h = ' || COALESCE("rdc_6_22h_", '') || 'dB(A)' 
    || '\n' || 'RDC - LAeq 22h-6h = ' || COALESCE("rdc_22_6h_", '') || 'dB(A)' 
    End

  3. #3
    Modérateur
    Date d'inscription
    novembre 2012
    Localisation
    Angers
    Messages
    676

    Par défaut Re : Affichage étiquettes multichamps et règles - valeurs null

    Bonjour,

    Oui, c'est le fonctionnement normal du pipe. Utilisez la fonction concat, comme suggéré dans le panneau aide de la fonction ||, dans la fenêtre du constructeur d'expression. Voir aussi https://docs.qgis.org/2.18/fr/docs/u...html#operators ou les exemples de https://docs.qgis.org/2.18/fr/docs/u...on-expressions

    - - MISE A JOUR - -

    SkåL, pourquoi tu "coalesces" la partie conditionnelle?
    Code:
    COALESCE("rdc_6_22h_", 0) <= 200.0000
    et
    Code:
    "rdc_6_22h_" <= 200.0000
    ne sont pas identiques lorsque le champ est NULL, il me semble.
    "Les maisons sont proches pour qu'on puisse aller chercher du feu." Proverbe Moba
    Avant de poster, lire au moins une fois : De la bonne manière de poser les questions

  4. #4
    Chasseur de Bots
    Date d'inscription
    août 2011
    Localisation
    Paris > Strasbourg
    Emploi
    Chargé de mission SIG
    Âge
    34
    Messages
    1 473

    Par défaut Re : Affichage étiquettes multichamps et règles - valeurs null

    En effet, seuls les coalesce de la partie texte servent.
    C'était pour plus de "propreté" dans le code, pour éviter un maximum les valeurs nulles dans les expressions.
    Mais si le champ "r+1_6_22h_" par exemple a comme valeur NULL, avec un coalesce il sera à 0 selon ma formule, et fera le même effet car de toutes les manières non supérieur à 70 000 !

  5. #5
    Modérateur
    Date d'inscription
    novembre 2012
    Localisation
    Angers
    Messages
    676

    Par défaut Re : Affichage étiquettes multichamps et règles - valeurs null

    En réalité, en y réfléchissant, je pense qu'il FAUT gérer la valeur du champ dans la condition aussi. Et tout dépend de ce que schnesschne considère comme valeur lorsque le champ n'est pas rempli: si c'est zéro, ta formule convient (tant qu'il n'y a pas à comparer avec une valeur négative ).
    Sinon, il faudra traiter de manière particulière les cas où un champ est vide car COALESCE("rdc_6_22h_", 0) <= 200.0000 renvoie toujours vrai si champ null alors que "rdc_6_22h_" <= 200.0000 renverra null donc pas vrai dans les mêmes conditions.
    "Les maisons sont proches pour qu'on puisse aller chercher du feu." Proverbe Moba
    Avant de poster, lire au moins une fois : De la bonne manière de poser les questions

 

 

Discussions similaires

  1. [QGIS 2.x] Affichage des étiquettes
    Par harry_tuttle dans le forum Assistance et Programmation
    Réponses: 1
    Dernier message: 08/04/2018, 14h26
  2. [QGIS 2.x] Changer le style d'étiquettes basé sur des règles (couleur, tampon, taille)
    Par SMPSS dans le forum Assistance et Programmation
    Réponses: 3
    Dernier message: 15/01/2017, 17h24
  3. [ArcGIS Server 9.x] API Javascript - valeurs "null"
    Par VincentF dans le forum Assistance Technique
    Réponses: 3
    Dernier message: 06/12/2011, 11h02
  4. [MapServer] WFS - réponse getfeature "<glm:null>missing</gml:null>
    Par slackeroner dans le forum Assistance et Programmation
    Réponses: 2
    Dernier message: 15/01/2008, 15h27
  5. [ArcGIS 9.x] Recherche des valeurs null pour un champ
    Par wahid.m dans le forum Programmation
    Réponses: 3
    Dernier message: 06/12/2007, 11h17

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •