#1 Thu 27 March 2008 13:28
- Daniel
- Membre
- Lieu: Victoriaville, Québec
- Date d'inscription: 6 Sep 2005
- Messages: 2028
Affichage d'étiquette
Bonjour
Je ne sais pas si c'est moi mais je ne trouve pas la solution à mon problème. Je règle souvent des problèmes plus complexe mais là, j'allume pas.....
Dans une couche de routes, j'avais une colonne qui indiquait les numéros de routes. Cette colonne était en texte avec des numéro comme 00010, 00208, 69875. J'ai transformé ma colonne de texte en numérique entier pour avoir seulement des chiffres comme 10, 208, 69875. Seulement, les numéros de routes au Québec ont des chiffres jusqu'à 999. Les chiffre plus grand que 1000 sont des codes utilisés par le ministère des Transports. Je veux simplement afficher les codes plus petit que 1000. Je vais donc dans ma couche, étiquette, et j'entre l'expression no_route < 1000. Voilà, rien ne s'affiche. Je suis certain que c'est quelque chose de simple mais ma petite lumière ne s'allume pas!!!!!
Est-ce que quelqu'un pourrait me donner un petit coup de main s.v.p.
Daniel
De retour à la géomatique
Hors ligne
#3 Thu 27 March 2008 14:28
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Affichage d'étiquette
Bonjour
Pas normal: tu devrais obtenir F pour FALSE partout où la condition no_route < 1000 est fausse et T pour TRUE partout où elle est respectée ....ce qui n'est pas, je pense, l'objectif visé
Tu peux:
- soit étiqueter une sélection
- soit utiliser une "bonne" expression genre val(Left$(str$(no_route),3))
Hors ligne
#4 Thu 27 March 2008 14:49
- Daniel
- Membre
- Lieu: Victoriaville, Québec
- Date d'inscription: 6 Sep 2005
- Messages: 2028
Re: Affichage d'étiquette
Bonjour
Merci à Robin et Maurice. Pour répondre à Maurice, j'avais pensé à étiquetter une sélection mais je voulais éviter d'avoir une couche "inutile". Pour ce qui est de l'expression, je ne suis pas certain si elle va correspondre à ce que je veux. Pour répondre en même temps à Robin, voici un extrait des routes. Il y a une colonne no_route.
Merci du coup de main...
Daniel
De retour à la géomatique
Hors ligne
#5 Thu 27 March 2008 15:09
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Affichage d'étiquette
... l'expression, je ne suis pas certain si elle va correspondre à ce que je veux.....
Ca dépend comment on doit comprendre 66 552: 66 (+552) ou 665 (+52) ??
L'expression marche pour la seconde hypothèse
Pour la première....c'est plus dur (s'il le faut je cherche )
Mais une sélection, qu'il n'est pas besoin d'enregistrer et qui ne prendra donc pas de place sur le disque, n'est pas une couche "inutile" et sera conservée dans le WOR si les bonnes options sont cochées...
Hors ligne
#6 Thu 27 March 2008 15:32
Re: Affichage d'étiquette
Hello,
Quand on rentre l'expression :
no_route < 1000
, Mapinfo affiche bel et bien quelque chose en étiquetage : T ou F, True ou False... Et oui, il affiche le résultat booléen de la condition.
Solution : D'abord tu sélectionne les n° de route qui correspondent à tes critères, et ensuite tu étiquette cette sélection
Voilou,
Robin.
EDIT :
j'avais pensé à étiqueter une sélection mais je voulais éviter d'avoir une couche "inutile"
Oups, pas vu... Pas d'idée du coup
REEDIT : Zut, Maurice est trop rapide
Pas normal: tu devrais obtenir F pour FALSE partout où la condition no_route < 1000 est fausse et T pour TRUE partout où elle est respectée ....ce qui n'est pas, je pense, l'objectif visé
Décidemment...
Hors ligne
#7 Thu 27 March 2008 15:42
- Daniel
- Membre
- Lieu: Victoriaville, Québec
- Date d'inscription: 6 Sep 2005
- Messages: 2028
Re: Affichage d'étiquette
Bonjour
Merci à vous deux. Je crois que je vais y aller avec la sélection. C'est la méthode la plus simple mais je croyais qu'une expression serait la solution.
Merci
Daniel
De retour à la géomatique
Hors ligne
#8 Sat 29 March 2008 10:45
- Carto Gratte
- Juste Inscrit !
- Date d'inscription: 7 Feb 2006
- Messages: 5
Re: Affichage d'étiquette
Bonjour,
je pense comprendre que l'idée est d'étiqueter les routes répondant au critère no_route < 1000
le plus efficace est souvent de faire une sélection SQL et d'étiqueter la "couche SQL". comme le suggéraient Maurice et Robin.
l'actualisation se fera à chaque ouverture du document.
Avec une expression :
no_route < 1000 renvoie effectivement T ou F
mais il faut savoir que int(expression) renvoie 1 ou 0...
en utlisant cette propriété, on peut étiqueter de manière conditionelle en utilisant des fonctions telles que left$. exemple :
d'étiqueter les routes répondant au critère no_route < 1000 avec leur nom :
left$(nom;50*int(no_route < 1000))
si vrai : on étiquette les 50 caractères de gauche du nom, sinon les 0 caractère de gauche : pas d'étiquette.
nom peut êtree remplacé par une expression +/- complexe, du moment que le résultat est alphanumérique. si on veut utiliser un code de route numérique (quelle idée ! les codes alpha sont plus logiques et la manip aurait tout aussi bien marché :
left$(no_route_alpha;50*int(no_route_alpha < "1000")) ...)
penser à utiliser une fonction qui rend alpha le code numérique :
left$(str(no_route);50*int(no_route < 1000))
ou
left$(format$(no_route,"0 000");50*int(no_route < 1000)) par ex.
Bonne journée à vous tous
Hors ligne