#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@ 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@ 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