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é ?

#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

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

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 smile

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

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

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

 

Pied de page des forums

Powered by FluxBB