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 Mon 16 September 2013 10:43

chanteclair
Participant assidu
Lieu: Pau
Date d'inscription: 3 Jan 2007
Messages: 726

ArcMap 10.0 - Casse

Bonjour à tous,
J'essaie de convertir la valeur d'un champ saisi en majuscule dans la table, pour l'affichage de mes étiquettes.
J'utilise ce code trouvé sur l'aide Esri sensé répondre à ma question dans lequel j'ai remplacé le nom du champ [NAME] par le nom de mon champ :

function FindLabel ( [NAME] )
{
var str = [NAME];
var iLen = String(str).length;
var upper = (str.substring(0,1)).toUpperCase();
var lower = (str.substring(1, iLen)).toLowerCase()
return upper + lower;
}

Seulement ArcMap me répond qu'il y a une erreur, sans autre précision.
Quelqu'un aurait-il une idée svp ?
Merci par avance.

Hors ligne

 

#2 Mon 16 September 2013 11:00

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: ArcMap 10.0 - Casse

Salut,

Ton code est en Jscript
As tu essayé en Vbscript:

Code:

Function FindLabel ( [NAME] )
FindLabel = UCase(Left([NAME],1)) & LCase(Right([NAME], Len([NAME]) -1))
End Function

A+
Joël

Hors ligne

 

#3 Mon 16 September 2013 11:03

chanteclair
Participant assidu
Lieu: Pau
Date d'inscription: 3 Jan 2007
Messages: 726

Re: ArcMap 10.0 - Casse

Oui j'ai essayé les 2 mais sans succès.

Hors ligne

 

#4 Mon 16 September 2013 11:21

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: ArcMap 10.0 - Casse

Es tu passé par la calculette esri pour modifier ton champ (si ton cahier des charges te permets de le faire)?
PS:Je demande à tout hasard smile --> Y'a t'il des cases à cocher avec Jscript ou Vbscript?
Auquel cas --> le code que tu colles est 'il en adéquation avec le language spécifié?

Dernière modification par Spacejo (Mon 16 September 2013 11:25)

Hors ligne

 

#5 Mon 16 September 2013 11:30

chanteclair
Participant assidu
Lieu: Pau
Date d'inscription: 3 Jan 2007
Messages: 726

Re: ArcMap 10.0 - Casse

Oui j'ai bien vérifié que la case "Analyseur" soit sur la bonne occurence selon le langage utilisé mais cela ne fonctionne pas.
Mais je ne peux pas modifier le contenu du champ.

Hors ligne

 

#6 Mon 16 September 2013 11:32

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

Re: ArcMap 10.0 - Casse

Bonjour,

Est-ce que cette procédure (en anglais) peut aider? http://support.esri.com/en/knowledgebas … tail/38592
C'est du Python mais ça peut donner des idées smile

EDIT :

Autre idée, à mettre dans le champ étiquette :  [NAME].lower()
(ne pas oublier de sélectionner Python)

Réf : http://docs.python.org/3.0/library/stdtypes.html

Dernière modification par Robin (Mon 16 September 2013 12:11)

Hors ligne

 

#7 Mon 16 September 2013 11:33

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: ArcMap 10.0 - Casse

Le message d'erreur ne spécifie pas un code erreur?

Hors ligne

 

#8 Mon 16 September 2013 12:01

dominique.lys
Participant assidu
Date d'inscription: 5 Oct 2006
Messages: 473
Site web

Re: ArcMap 10.0 - Casse

Il faut cocher "Avancé" pour pouvoir interpréter une fonction. Les codes Jscript et Vbscript fonctionnent très bien.

Hors ligne

 

#9 Mon 16 September 2013 12:10

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

Re: ArcMap 10.0 - Casse

Pour complément : les code [NAME].lower() ou [NAME].title() ne nécessitent pas de se mettre en mode avancé.
Comme le dit dominique, c'est à activer uniquement quand il y a des fonctions à interpréter.

Par contre, il faut bien spécifier quel langage est utilisé dans les deux cas.

Hors ligne

 

#10 Mon 16 September 2013 13:37

chanteclair
Participant assidu
Lieu: Pau
Date d'inscription: 3 Jan 2007
Messages: 726

Re: ArcMap 10.0 - Casse

Devant rendre mes travaux aujourd'hui, je contourne ce problème qui ne concerne que quelques étiquettes, en le traitant à la main.
J'y renviendrai ultérieurement et vous rendrai compte de mon avancée.
Merci à tous.

Hors ligne

 

#11 Tue 17 September 2013 10:02

chanteclair
Participant assidu
Lieu: Pau
Date d'inscription: 3 Jan 2007
Messages: 726

Re: ArcMap 10.0 - Casse

J'ai re-testé ce matin mon affichage d'étiquettes.
Pas mieux, j'obtiens toujours le message "L'expression contient une erreur. Modifiez l'expression et recommencez".
Voici ce que je copie en VB :
Function FindLabel ( [NomStructure] ) FindLabel = UCase(Left([NomStructure],1)) & LCase(Right([NomStructure], Len([NomStructure]) -1)) End Function
Ou bien c'est beaucoup plus complexe que je ne le pensais, ou bien c'est d'une telle évidence que je passe à côté.

Hors ligne

 

#12 Tue 17 September 2013 10:18

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: ArcMap 10.0 - Casse

Salut,

Essaye uniquement en minuscule:

Code:

Function FindLabel ( [NomStructure] )
 FindLabel = LCase([NomStructure])
End Function

A+
Joël

Dernière modification par Spacejo (Tue 17 September 2013 10:20)

Hors ligne

 

#13 Tue 17 September 2013 10:28

chanteclair
Participant assidu
Lieu: Pau
Date d'inscription: 3 Jan 2007
Messages: 726

Re: ArcMap 10.0 - Casse

Pas mieux...

Hors ligne

 

#14 Tue 17 September 2013 10:32

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: ArcMap 10.0 - Casse

Bizarre!!!
Avant que tu colles ton code dans la fenêtre ---> est 'elle vide (j'ai déjà eu la triste expérience)
Faire un "Ctrl A" dans la fenêtre puis un "Suppr"
Puis tu colles ton code

Hors ligne

 

#15 Tue 17 September 2013 10:51

chanteclair
Participant assidu
Lieu: Pau
Date d'inscription: 3 Jan 2007
Messages: 726

Re: ArcMap 10.0 - Casse

Avant de coller le code, il y a juste le nom du champ [NomStructure] puisque c'est sur lui que se fait l'affichage.
Je suis obligé de supprimer les retours à la ligne car ils ne sont pas acceptés, et ensuite j'ai le message précédemment cité. Dans le meilleur des cas, j'ai un message disant qu'aucune expression n'a été trouvée si le nom du champ n'est pas correct. Mais quand il l'est, j'ai le message d'erreur.

Dernière modification par chanteclair (Tue 17 September 2013 10:54)

Hors ligne

 

#16 Tue 17 September 2013 10:57

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: ArcMap 10.0 - Casse

Excuse la question mais tu as bien coché "avancé" et tu es bien dans la fenêtre "Expression"?

Hors ligne

 

#17 Tue 17 September 2013 11:03

chanteclair
Participant assidu
Lieu: Pau
Date d'inscription: 3 Jan 2007
Messages: 726

Re: ArcMap 10.0 - Casse

Oui c'est bien coché.
J'ai fait un test (par lequel j'aurais dû commencer, j'aurais gagné du temps)avec un autre champ et là, ça fonctionne ! Je ne sais pas ce que peut avoir celui sur lequel je veux réaliser l'affichage ! Si ce n'est que ça, je devrais pouvoir trouver une solution.
Merci à tous de votre aide et de votre patience .
Bonne journée.

Hors ligne

 

#18 Tue 17 September 2013 11:27

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

Re: ArcMap 10.0 - Casse

Bonjour,

Sans vouloir être insistant, la solution que je propose ne convient pas ?
Ca évite de voir définir une fonction, notamment...

Hors ligne

 

#19 Tue 17 September 2013 11:52

chanteclair
Participant assidu
Lieu: Pau
Date d'inscription: 3 Jan 2007
Messages: 726

Re: ArcMap 10.0 - Casse

Je l'ai testé aussi mais le calculateur plante sans arriver au bout.
J'avais créé un champ supplémentaire comme l'indique la procédure pour le remplir avec le résultat mais je n'ai pas pu le remplir.

Hors ligne

 

#20 Tue 17 September 2013 12:04

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: ArcMap 10.0 - Casse

Avec la calculette --> faire une copie de ton champ.
Puis sur cette copie --> utilise "NomPropre.zip" dans  ---> http://ressources.esrifrance.fr/form_ca … ract.aspx#

Dernière modification par Spacejo (Tue 17 September 2013 12:06)

Hors ligne

 

#21 Tue 17 September 2013 13:10

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

Re: ArcMap 10.0 - Casse

Je l'ai testé aussi mais le calculateur plante sans arriver au bout.


Oui, ça c'est la première solution, qui consiste à faire une modif en dur. La seconde consiste juste à changer [NAME] dans le champ Expression de l'étiquette pour le remplacer par [NAME].lower() (+sélectionner Python). Aucune modification en dur, ça ne modifie que l'affichage de l'étiquette.

Hors ligne

 

#22 Tue 17 September 2013 13:37

chanteclair
Participant assidu
Lieu: Pau
Date d'inscription: 3 Jan 2007
Messages: 726

Re: ArcMap 10.0 - Casse

Sauf que Robin, je n'ai le choix, dans le champ Expression qu'entre VB et Jscript, pas de python sauf erreur de ma part.

Hors ligne

 

#23 Tue 17 September 2013 13:42

chanteclair
Participant assidu
Lieu: Pau
Date d'inscription: 3 Jan 2007
Messages: 726

Re: ArcMap 10.0 - Casse

Au final ça marche en Vb et sur la copie du champ d'origine mais pas sur l'original.
Peu importe, le résultat est là.
Merci à tous.

Hors ligne

 

#24 Tue 17 September 2013 14:57

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

Re: ArcMap 10.0 - Casse

chanteclair a écrit:

Sauf que Robin, je n'ai le choix, dans le champ Expression qu'entre VB et Jscript, pas de python sauf erreur de ma part.


Ah, flûte. Ca ne doit marcher qu'à partir de la 10.1..mes excuses dans ce cas, j'ignorais hmm

Hors ligne

 

#25 Wed 18 September 2013 12:41

supernul
Participant actif
Date d'inscription: 31 Jan 2010
Messages: 103

Re: ArcMap 10.0 - Casse

Bonjour,

vous ne disposez pas du choix entre python et VBscript dans la calculatrice de valeur de champs dans la version 10.0 ?

Hors ligne

 

#26 Wed 18 September 2013 13:50

chanteclair
Participant assidu
Lieu: Pau
Date d'inscription: 3 Jan 2007
Messages: 726

Re: ArcMap 10.0 - Casse

Dans la calculatrice peut être mais je n'ai pas regardé. Mais là, les manip se situent dans les Propriétés de la couche/Etiquettes.

Hors ligne

 

#27 Wed 18 September 2013 16:32

supernul
Participant actif
Date d'inscription: 31 Jan 2010
Messages: 103

Re: ArcMap 10.0 - Casse

Au temps pour moi, j'ai zappé cette partie. En effet dans les propriétés seuls JS et VBS sont présents dans la 10.0

Hors ligne

 

Pied de page des forums

Powered by FluxBB