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 Thu 23 April 2009 11:31

greg-gwened
Participant actif
Lieu: Vannes
Date d'inscription: 4 Oct 2007
Messages: 148

[MI 8.5] Affichage d'etiquette conditionné

Est-il possible de conditionné l'affichage d'étiquette?

En fait je dispose d'un réseau hydro sur lequel je voudrais afficher la longueur des troncons. Cependant, je souhaite que cette longueur ne s'affiche que sur les troncons dont le champ 'année' est rempli. Est-ce possible?

N'ayant pas trouvé de solution, j'ai tenté de créer un champ dans lequel la longueur des tronçon n'est renseigné que pour ceux dont le champ 'année' est rempli.
Ma pratique de MapInfo commençant à dater, je ne me souviens plus comment procéder.
Voici ce que j'ai tenté sous MapBasic:

UPDATE segment SET Long=Longueur_m_segment WHERE Annee <> ""

Msg : "impossible de realiser cette operation sur le champ Annee"

Merci d'avance,
Greg

Hors ligne

 

#2 Thu 23 April 2009 11:43

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

Re: [MI 8.5] Affichage d'etiquette conditionné

Salut Greg,

ton champs Année est en Texte ou en numérique?
A+
Joël

Hors ligne

 

#3 Thu 23 April 2009 11:45

greg-gwened
Participant actif
Lieu: Vannes
Date d'inscription: 4 Oct 2007
Messages: 148

Re: [MI 8.5] Affichage d'etiquette conditionné

En texte

Hors ligne

 

#4 Thu 23 April 2009 12:24

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

Re: [MI 8.5] Affichage d'etiquette conditionné

As tu essayé:
UPDATE segment SET Long=Longueur_m_segment WHERE Annee not like ""
A+
Joël

Hors ligne

 

#5 Thu 23 April 2009 13:00

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [MI 8.5] Affichage d'etiquette conditionné

Bonjour
- Update met a jour toute la table, sauf si on introduit LA SEULE CONDITION ADMISSIBLE Where RowID=xxxxx
- il faut donc faire une sélection "toto" sur la condition de votre choix PUIS faire porter le Update sur toto, sans Where...
- dans votre cas, tant qu'à faire la sélection...ajoutez toto par le contrôle des couches et mettez les étiquettes voulues à toto smile

Hors ligne

 

#6 Thu 23 April 2009 13:45

greg-gwened
Participant actif
Lieu: Vannes
Date d'inscription: 4 Oct 2007
Messages: 148

Re: [MI 8.5] Affichage d'etiquette conditionné

UPDATE segment SET Long=Longueur_m_segment WHERE Annee not like ""


Effectivement, cette condition ne fonctionne pas non plus....puisque seul Where RowID=xxxxx est admis par Update

ajoutez toto par le contrôle des couches et mettez les étiquettes voulues à toto


Merci du conseil, j'étais en train de me compliquer la vie hmm pour pas grand chose ...

Merci à vous,
@+
Greg

Dernière modification par greg-gwened (Thu 23 April 2009 13:45)

Hors ligne

 

#7 Thu 23 April 2009 13:59

matieu_dumo
Participant actif
Lieu: Questembert
Date d'inscription: 15 Mar 2006
Messages: 135
Site web

Re: [MI 8.5] Affichage d'etiquette conditionné

Bonjour,

je fonctionne de manière différente pour l'affichage conditionné d'étiquettes sur une couche. Le principe étant de créer une sélection des objets dont je souhaite leur attribuer une étiquette, dans le cas précis :

Code:

select * from réseau hydro where Annee not like "" into label_hydro

ajouter la couche label_hydro dans le contrôle des couches, jouer avec la superposition si nécessaire (généralement en dessous de la couche réseau hydro) et définir l'étiquette souhaitée.

Hors ligne

 

#8 Thu 23 April 2009 14:37

greg-gwened
Participant actif
Lieu: Vannes
Date d'inscription: 4 Oct 2007
Messages: 148

Re: [MI 8.5] Affichage d'etiquette conditionné

Oui, c'est justement la méthode proposé par Maurice ... avec toto au lieu de label_hydro wink

Hors ligne

 

#9 Thu 23 April 2009 14:45

matieu_dumo
Participant actif
Lieu: Questembert
Date d'inscription: 15 Mar 2006
Messages: 135
Site web

Re: [MI 8.5] Affichage d'etiquette conditionné

Effectivement, j'ai encore survolé le post trop rapidement

Hors ligne

 

#10 Thu 23 April 2009 15:04

jasper
Participant occasionnel
Lieu: Paris
Date d'inscription: 7 Mar 2007
Messages: 44

Re: [MI 8.5] Affichage d'etiquette conditionné

Bonjour à tous...

Une "petite" astuce, pour réellement créer une étiquette conditionnelle (sans ajout de colonnes ou de couches dans le ctrle des couches) : utiliser une expression d'étiquette...

Voici un exemple concret, à saisir dans l'expression de l'étiquette :
Left$(Str$(longueur_m),(Annee not like "")*254)

La logique est la suivante : si le critére retrourne True (c'est à dire 1), on affiche dans l'étiquette les 254 caractères de la colonne longueur ; si le critère retourne False (c'est à dire 0) on affiche 0 caractères de la colonne longueur...

Cordialement,
Jasper.

Hors ligne

 

#11 Thu 23 April 2009 15:55

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [MI 8.5] Affichage d'etiquette conditionné

Très séduisant...mais ça ne marche pas (même après correction de la faute de frappe Lef$ pour Left$, corrigée dans le post)
Je crains que ce soit FALSE ou TRUE qui soit retourné, et pas 0 ou 1...

Hors ligne

 

#12 Thu 23 April 2009 16:06

jasper
Participant occasionnel
Lieu: Paris
Date d'inscription: 7 Mar 2007
Messages: 44

Re: [MI 8.5] Affichage d'etiquette conditionné

Effectivement, j'ai oublié de convertir le True/False en entier dans mon précédent post...

Left$(Str$(longueur_m),Int(Annee not like "")*254)

Dernière modification par jasper (Thu 23 April 2009 16:08)

Hors ligne

 

#13 Thu 23 April 2009 16:17

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [MI 8.5] Affichage d'etiquette conditionné

Bien vu !! Je venais de trouver "le truc"...
Astuce à noter soigneusement smile
On peut utiliser les deux syntaxes, équivalentes:
Left$(Str$(longueur_m), Int(not Annee like "")*254) (je crois que MI "préfère" le not au début)
ou (plus clair ??):
Left$(Str$(longueur_m), Int(Annee <> "")*254)

Hors ligne

 

#14 Thu 23 April 2009 19:49

hanczyk
Participant assidu
Lieu: Châlons-en-Champagne
Date d'inscription: 21 Apr 2006
Messages: 596

Re: [MI 8.5] Affichage d'etiquette conditionné

Bonjour,

Left$(Str$(longueur_m), Int(not Annee like "")*254) (je crois que MI "préfère" le not au début)


ne marche pas :
Trouvé [254] pendant la recherche de [)]. Liste d'argument absente ou vide Sous-clause d'étiquette non valide ou incomplète

ou (plus clair ??): Left$(Str$(longueur_m), Int(Annee <> "")*254)


marche !

Pourquoi ? MI7.8

@+ jmh


Jean-Marc Hanczyk

Hors ligne

 

#15 Thu 23 April 2009 20:59

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [MI 8.5] Affichage d'etiquette conditionné

hanczyk a écrit:

...Pourquoi ? MI7.8


Je crains bien que oui:
- passé dans la FMB, Left$(Str$(longueur_m), Int(not Annee like "")*254) marche
- passé dans l'interface, on obtient ton message d'erreur et l'instruction s'inscrit dans la FMB
Left$(Str$(longueur_m), Int(not Annee like "")254*254)
Pourquoi cet ajout de 254... bug !!

Hors ligne

 

#16 Fri 24 April 2009 11:55

greg-gwened
Participant actif
Lieu: Vannes
Date d'inscription: 4 Oct 2007
Messages: 148

Re: [MI 8.5] Affichage d'etiquette conditionné

Merci à tous : problème résolu big_smile ... qui en soulève d'autres roll

Dernière modification par greg-gwened (Fri 24 April 2009 11:55)

Hors ligne

 

Pied de page des forums

Powered by FluxBB