Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 24 May 2006 17:37

Kizito
Juste Inscrit !
Date d'inscription: 24 May 2006
Messages: 9

étiquettes sans les zéros

Bonjour,


Je souhaite mettre en étiquettes les données de plusieurs champs numériques en les étiquant de la même manière sans afficher les zéros.

Quel est le code VB pour les exclure?

Merci de vos réponses.

Dernière modification par Kizito (Wed 24 May 2006 17:58)

Hors ligne

 

#2 Fri 26 May 2006 09:23

Guillaume Claire
Participant occasionnel
Date d'inscription: 5 Sep 2005
Messages: 27

Re: étiquettes sans les zéros

Il faut etiquetter en utilisant une expression avancee, pour cela:

Clic droit sur la couche => Proprietes ...
Aller dans l'onglet etiquettes
Dans le cadre "Chaine de texte" aller sur "Expression"
Dans la boite de dialogue qui s'ouvre "Proprietes de l'etiquette", aller
dans le cadre "Expression" et cocher "Avancee"
Copier la fonction suivante en remplacant NOM_CHAMP par le nom du champ a
etiquetter:

Function FindLabel ( [NOM_CHAMP] )
   If [NOM_CHAMP]  0 Then
      FindLabel = [NOM_CHAMP]
   End If
End Function

______________________________________________________
Claire GUILLAUME
DCSIT - Direction Information Géographique - Mairie de Nice
3 rue Raoul Bosio - 06364 NICE CEDEX 4
tel : 04 97 13 42 34  -  fax : 04 97 13 29 24
email : claire.guillaume@texte-a-enlever.ville-nice.fr

Hors ligne

 

#3 Mon 29 May 2006 14:38

Kizito
Juste Inscrit !
Date d'inscription: 24 May 2006
Messages: 9

Re: étiquettes sans les zéros

merci cela fonctionne très bien.

si je veux reproduire cette manipulation sur plusieurs champs
comment dois-je concaténer la fonction?

et 2ème question si je veux affecter un code couleur pour chaque champ?



en fait le résultat final que je souhaite afficher en étiquette est:

champ1 + champ 2 + champ3 + champ4 + champ5

en excluant les zéros et avec une couleur diiférente/champ

Merci d'avance

Hors ligne

 

#4 Mon 29 May 2006 17:05

Guillaume Claire
Participant occasionnel
Date d'inscription: 5 Sep 2005
Messages: 27

Re: étiquettes sans les zéros

Pour la couleur:
Si l'objectif est d'avoir (champ1 en vert) & (champ2 en rouge) & (champ3
en jaune) .... pour chaque objet
=> Je ne sais pas si c'est possible, mais peut-etre quelqu'un d'autre
sait?


Pour concatener quelque chose comme ca devrait marcher:

Function FindLabel ( [NOM_CHAMP1], [NOM_CHAMP2], [NOM_CHAMP3], ... )
   If [NOM_CHAMP1]  0 Then
      sTexte = sTexte  & [NOM_CHAMP1]
   End If

   If [NOM_CHAMP2]  0 Then
      sTexte = sTexte  & [NOM_CHAMP2]
   End If

   If [NOM_CHAMP3]  0 Then
      sTexte = sTexte  & [NOM_CHAMP3]
   End If

......

   FindLabel = sTexte
End Function

______________________________________________________
Claire GUILLAUME
DCSIT - Direction Information Géographique - Mairie de Nice
3 rue Raoul Bosio - 06364 NICE CEDEX 4
tel : 04 97 13 42 34  -  fax : 04 97 13 29 24
email : claire.guillaume@texte-a-enlever.ville-nice.fr

Hors ligne

 

#5 Mon 29 May 2006 17:56

dauzata
Juste Inscrit !
Lieu: Bruxelles
Date d'inscription: 14 Oct 2005
Messages: 7

Re: étiquettes sans les zéros

Pour la couleur, vous pouvez rajouter la ligne suivante :

Model CMYK : <CLR cyan=""xxx"" magenta=""xxx"" yellow=""xxx"" black=""xxx"">  : xxx pouvant prendre une valeur entre 0 et 100

ou

Model RGB : <CLR red=""xxx"" green=""xxx"" blue=""xxx""> : xxx pouvant prendre une valeur entre 0 et 255

Si je reprends l'exemple donné précedemment :



Function FindLabel ( [NOM_CHAMP1], [NOM_CHAMP2], [NOM_CHAMP3], ... )
eColor = "</CLR>"

   If [NOM_CHAMP1]  0 Then
      sColor = "<CLR cyan=""100"" magenta=""0"" yellow=""0"" black=""0"">"
      sTexte = sTexte  & sColor & [NOM_CHAMP1] & eColor
   End If

   If [NOM_CHAMP2]  0 Then
      sColor = "<CLR cyan=""0"" magenta=""100"" yellow=""0"" black=""0"">"
      sTexte = sTexte  & sColor & [NOM_CHAMP2] & eColor
   End If

   If [NOM_CHAMP3]  0 Then
      sColor = "<CLR cyan=""0"" magenta=""0"" yellow=""100"" black=""0"">"
      sTexte = sTexte  & sColor & [NOM_CHAMP3] & eColor
   End If

......

   FindLabel = sTexte
End Function


Il y a aussi moyen de jouer sur les fontes et taille de caratères. Pour plus d'information, taper CLR dans l'aide de ArcGIS.

André Dauzat
EUROCONTROL
European Organisation for the Safety of Air Navigation
Cartography Department

Hors ligne

 

Pied de page des forums

Powered by FluxBB