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

GEODATA DAYS 2024

#1 Mon 19 March 2007 11:51

icadedt
Participant assidu
Lieu: ici et là
Date d'inscription: 21 Jul 2006
Messages: 478

nom de la colonne pour couche thematique mapbasic

bonjour je souhaite savoir comment faire pour recuperer le nom de la colonne de la couche ayant servi à creer une analyse thematique


merci

Hors ligne

 

#2 Mon 19 March 2007 12:17

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

Re: nom de la colonne pour couche thematique mapbasic

Bonjour,
Je ne connais pas d'autre méthode que d'aller chercher l'information dans la chaine de caractères produite par
WindowInfo ( window_spec ,  WIN_INFO_CLONEWINDOW )
Pas trivial....!!

Hors ligne

 

#3 Mon 19 March 2007 13:51

Cartosig
Participant assidu
Date d'inscription: 16 Oct 2006
Messages: 222

Re: nom de la colonne pour couche thematique mapbasic

il suffit de trouver l'integer qui identifie votre couche thématique en faisant une boucle sur tous les layers de la fenetre carte avec la fonction LayerInfo( VotreCouche, LAYER_INFO_NAME ).
Ensuite vous utilisez ColumnInfo ( VotreCouche, NumeroDeLaColonne, COL_INFO_NAME ).

Cordialement

Hors ligne

 

#4 Mon 19 March 2007 14:36

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

Re: nom de la colonne pour couche thematique mapbasic

Cartosig a écrit:

il suffit de trouver l'integer qui identifie votre couche thématique en faisant une boucle sur tous les layers de la fenetre carte avec la fonction LayerInfo( VotreCouche, LAYER_INFO_NAME ).


Vous oubliez le premier terme Window_id dans LayerInfo
Et si vous demandez LayerInfo(Window_id, VotreCouche, LAYER_INFO_NAME) vous obtendrez seulement le nom de la table sur laquelle est construit le layer.
Pour une analyse thématique de la table ma_table vous aurez...ma_table(1)
Et donc rien sur la colonne qui a servi à cette analyse sad

Hors ligne

 

#5 Mon 19 March 2007 15:45

Cartosig
Participant assidu
Date d'inscription: 16 Oct 2006
Messages: 222

Re: nom de la colonne pour couche thematique mapbasic

exact pour LayerInfo smile

Concernant LAYER_INFO_NAME, je supose que notre posteur a un niveau suffisant en MB pour déduire qu'il ne faudra pas mettre le nom de la colonne dans la fonction ColumnInfo mais l'integer qu'il aura récupéré dans la boucle faite sur les noms de couches... !

Edit : pour etre plus explicite : la boucle interroge les noms de couches mais la variable de boucle est bien sur le Nombre de couches

Dernière modification par Cartosig (Mon 19 March 2007 15:47)

Hors ligne

 

#6 Mon 19 March 2007 16:26

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

Re: nom de la colonne pour couche thematique mapbasic

Votre solution ne peut pas marcher
LayerInfo ne renvoie pas un integer mais une chaine de caractère = le nom de la table...et rien d'autre, si ce n'est un chiffre entre parenthèses pour le numéro d'ordre de l'analyse thématique
Donc rien pour renseigner ensuite le NumeroDeLaColonne que vous évoquiez dans ColumnInfo
J'en reste donc à la solution évoquée dans ma réponse...

Hors ligne

 

#7 Mon 19 March 2007 17:33

Cartosig
Participant assidu
Date d'inscription: 16 Oct 2006
Messages: 222

Re: nom de la colonne pour couche thematique mapbasic

Concernant LAYER_INFO_NAME, je supose que notre posteur a un niveau suffisant en MB pour déduire qu'il ne faudra pas mettre le nom de la colonne dans la fonction ColumnInfo mais l'integer qu'il aura récupéré dans la boucle faite sur les noms de couches... !


lorsque je dis "l'integer récupéré" il s'agit de la valeur de la variable de boucle qui va tester le nom de chaque layer un à un.
Peu importe de toute façon il y a plus simple (si il n'y a qu'une seule couche thématique dans votre fenetre carte) :

Code:

For i =1 to MapperInfo(VotreFenetreCarte, MAPPER_INFO_NUM_THEMATIC)
'Boucle sur le nombre de couche thematiques

VotreCouche = LayerInfo(VotreFenetreCarte, i, LAYER_INFO_NAME)
'Recupere le nom de la couche thématique

Next

NomDeLaColonne = ColumnInfo(VotreCouche, 1, COL_INFO_NAME)
'Recupère le nom de la 1ere colonne, dans le cas d'une couche thématique il faut vérifier s'il n'y en a qu'une

Evidement il faudra un peu adapter mais ça doit marcher !

Dernière modification par Cartosig (Mon 19 March 2007 17:34)

Hors ligne

 

#8 Mon 19 March 2007 23:47

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

Re: nom de la colonne pour couche thematique mapbasic

Une dernière fois avant abandon...
Cette solution proposée par Cartosig ne marchera que dans le cas très limité où l'analyse thématique est faite sur la première colonne d'une table
Si on a affaire à une colonne quelconque (de numéro d'ordre inconnu) ou à une expression mélangeant des colonnes... cf. mon premier post pour la seule (jusqu'à preuve du contraire) solution possible: l'exploitation de la chaine caractère produite par WindowInfo ( window_spec ,  WIN_INFO_CLONEWINDOW )

ps: vous en pensez quoi de ce code sur fond noir ?? le bon vieux blanc ne vous manque pas ??

Hors ligne

 

Pied de page des forums

Powered by FluxBB