#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
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
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
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