#1 Mon 16 March 2009 14:37
- braden80
- Participant occasionnel
- Lieu: Stavanger
- Date d'inscription: 9 Feb 2009
- Messages: 12
Advanced labels
Bonjour,
Je souhaiterai pousser un peu plus loin les fonctions labels de ArcGIS 9.2 aussi je recherche un tuto pour apprendre la syntaxe et fonctions afin editer des labels sous forme de tableau, avec des couleurs et des fonctions "si label =1 alors ...", un comme presente dans le lien suivant:
http://www.esri.com/news/arcuser/1104/f … _label.pdf
En esperant avoir des news
Florian
Hors ligne
#2 Mon 16 March 2009 15:23
Re: Advanced labels
Hello,
Dans un premier temps, tu peux jeter un coup d'oeil à la page dans l'aide : Formatting tags available in ArcMap
Avec <FNT>, <CLR>, <CLR>, etc, pour mettre en page tes étiquettes (* Plus de détails ci dessous)
Si tu suis bien le script VB qui est donné en exemple, la "ligne" que tu vois et qui donne l'impression d'une tableau n'est qu'une astuce de mise en page avec des signes "_"
Code:
FindLabel = FindLabel & String(iMxLblSz + iMxValSz + iSpace, “_”) & _vbNewLine
Le couleur est obtenue via la classe <CLR> est une focntion de sélection en fonction de la donnée :
Code:
If (j(1) > 10000000) Then strGT10M1 = “<CLR red=’255’ green =’0’ blue=’0’>” Else strGT10M1 = “<CLR red=’0’ green =’0’ blue=’0’>” End If
* Les balises de mise en forme :
Font "<FNT name='Arial' size='18'>" & [LABELFIELD] & "</FNT>"
"<FNT name='Arial' scale='200'>" & [LABELFIELD] & "</FNT>"
Color "<CLR red='255' green='255' blue='255'>" & [LABELFIELD] & "</CLR>"
"<CLR cyan='100' magenta ='100' yellow='100' black='100'>" & [LABELFIELD] & "</CLR>"
Bold "<BOL>" & [LABELFIELD] & "</BOL>"
Italic "<ITA>" & [LABELFIELD] & "</ITA>"
Underline "<UND>" & [LABELFIELD] & "</UND>"
All capitals "<ACP>" & [LABELFIELD] & "</ACP>"
Small capitals "<SCP>" & [LABELFIELD] & "</SCP>"
Superscript "<SUP>" & [LABELFIELD] & "</SUP>"
Subscript "<SUB>" & [LABELFIELD] & "</SUB>"
Character spacing (0%=regular) "<CHR spacing='25'>" & [LABELFIELD] & "</CHR>"
Character width (100%=regular) "<CHR width='150'>" & [LABELFIELD] & "</CHR>"
Word spacing (100%=regular) "<WRD spacing='150'>" & [LABELFIELD] & "</WRD>"
Line leading (pts) "<LIN leading='12'>" & [LABELFIELD] & "</LIN>"
Un-Bold "<_BOL>" & [LABELFIELD] & "</_BOL>"
Un-Italic "<_ITA>" & [LABELFIELD] & "</_ITA>"
Un-Underline "<_UND>" & [LABELFIELD] & "</_UND>"
Un-Superscript "<_SUP>" & [LABELFIELD] & "</_SUP>"
Un-Subscript "<_SUB>" & [LABELFIELD] & "</_SUB
Hors ligne
#3 Mon 16 March 2009 15:50
- braden80
- Participant occasionnel
- Lieu: Stavanger
- Date d'inscription: 9 Feb 2009
- Messages: 12
Re: Advanced labels
merci pour ta reponse
Par exemple je suis entrain de faire ce label
Code:
Function FindLabel ( [NAME] , [RES] ) if ( [RES] =1) then FindLabel = "<CLR red='255' >" &"RES" & "</CLR>" end if if ( [RES] =4) then FindLabel = "<CLR green='255' >" &"RES" & "</CLR>" end if End Function
Je fais ce labelling un peu a taton et par exemple je ne sais comment ajouter l'option bold au "RES rouge" dans la phrase deja existante !?
Comme j'ai plein de question de ce type et que je ne vais pas tout poster sur le forum, voila pourquoi je souhaiterai trouver un tuto
Hors ligne
#4 Mon 16 March 2009 16:04
- braden80
- Participant occasionnel
- Lieu: Stavanger
- Date d'inscription: 9 Feb 2009
- Messages: 12
Re: Advanced labels
Je viens de resoudre mon probleme de bold
Function FindLabel ( [WELL_NAME] , [RES] )
if ( [RES] =1) then
FindLabel = "<BOL>" & "<CLR red='255' >" &"RES" & "</CLR>" & "</BOL>"
end if
if ( [RES] =4) then
FindLabel = "<CLR green='255' >" &"RES" & "</CLR>"
end if
End Function
Je tatonne mais je progresse!
Es ce que je peux mettre plusieurs "Function FindLabel" dans une meme fenetre?
Hors ligne
#5 Thu 19 March 2009 10:36
- braden80
- Participant occasionnel
- Lieu: Stavanger
- Date d'inscription: 9 Feb 2009
- Messages: 12
Re: Advanced labels
Voila g trouve une solution
Function FindLabel ( [NAME], [RES], [SR], [MIG_TIM], [SEAL], [GEOM], [COMMENTS] )
if ([RES]=1) then
stRes = ("<bol>" & "<CLR red='255'>" & "[RES]" & "</CLR>" &"</bol>")
Elseif ([RES]=2) then
stRes = ("<CLR green='255'>" & "[RES]" & "</CLR>")
Elseif ([RES]=3) then
stRes = ("<CLR blue='255'>" & "[RES]" & "</CLR>")
Elseif ([RES]=4) then
stRes = ("<CLR black='255'>" & "[RES]" & "</CLR>")
end if
if ([SR]=1) then
stSR = ("<bol>" & "<CLR red='255'>" & "[SR]" & "</CLR>" &"</bol>")
Elseif ([SR]=2) then
stSR = ("<CLR green='255'>" & "[SR]" & "</CLR>")
Elseif ([SR]=3) then
stSR = ("<CLR blue='255'>" & "[SR]" & "</CLR>")
Elseif ([SR]=4) then
stSR = ("<CLR black='255'>" & "[SR]" & "</CLR>")
end if
if ([MIG_TIM]=1) then
stMIG_TIM = ("<bol>" & "<CLR red='255'>" & "[MIG_TIM]" & "</CLR>" &"</bol>")
Elseif ([MIG_TIM]=2) then
stMIG_TIM = ("<CLR green='255'>" & "[MIG_TIM]" & "</CLR>")
Elseif ([MIG_TIM]=3) then
stMIG_TIM = ("<CLR blue='255'>" & "[MIG_TIM]" & "</CLR>")
Elseif ([MIG_TIM]=4) then
stMIG_TIM = ("<CLR black='255'>" & "[MIG_TIM]" & "</CLR>")
end if
if ([SEAL]=1) then
stSEAL = ("<bol>" & "<CLR red='255'>" & "[SEAL]" & "</CLR>" &"</bol>")
Elseif ([SEAL]=2) then
stSEAL = ("<CLR green='255'>" & "[SEAL]" & "</CLR>")
Elseif ([SEAL]=3) then
stSEAL = ("<CLR blue='255'>" & "[SEAL]" & "</CLR>")
Elseif ([SEAL]=4) then
stSEAL = ("<CLR black='255'>" & "[SEAL]" & "</CLR>")
end if
FindLabel = [NAME] & vbNewLine & "_____________________________" & vbNewLine &stRes & " | " & stSR & " | " & stMIG_TIM & " | " & stSEAL & vbNewLine & "_____________________________" & vbNewLine & "Comment: " & [COMMENTS]
End Function
Hors ligne
#6 Thu 19 March 2009 11:44
Re: Advanced labels
Joli,
Je viens de penser que tu peux aussi utiliser les instructions "Select Case" :
Validation vrai à chaque fois qu'il y a écrit Case (Valeur_n peut être un test booleen sur la Variable)
Code:
Select Case Variable Case Valeur1 Bloc d'instructions 1 Case Valeur2 Bloc d'instructions 2 ... Case Else Bloc d'instructions n End Select
Hors ligne
#7 Mon 23 March 2009 11:50
- braden80
- Participant occasionnel
- Lieu: Stavanger
- Date d'inscription: 9 Feb 2009
- Messages: 12
Re: Advanced labels
merci je vais regarder ca de plus pres!
Hors ligne