#1 Thu 07 April 2005 16:14
- Melissa Gaudreault
- Invité
Etiquette multiples avec le nom des colonnes
Voici mon probleme:
Nous avons une table mapinfo avec plusieurs colonnes contenant des donnees
en small integer. Les nom des colonnes sont des especes de poissons. Il y
a environ une dizaine de colonnes qui constituent les especes de poissons.
Pour chaque enregistrement(stations), il y a un nombre de poissons
inscrits. Certains enregistrements de certaines colonnes ne contiennent
aucune donnees. Nous voudrions faire afficher dans la carte une etiquette
a chaque station qui representerait la liste des especes presentes a cette
station, soit le nom des colonnes pour lesquelles il y a une donnee
d'inscrite. Comment lui dire que si la valeur est differente de 0, affiche
le nom de la colonne, sinon n'affiche rien.
Si vous avez une piste, ca me serait certainement utille,
Merci
#2 Fri 08 April 2005 08:25
- Maurice Nadal
- Invité
Re: Etiquette multiples avec le nom des colonnes
De: Maurice Nadal
Bonjour,
Si vous n'avez pas MapBasic, je ne vois pas d'autre bricolage que:
- creer une colonne texte nommee 'Etiket' qui recevra le nom des especes presentes
- faire une selection sur la premiere colonne ayant un nom d'espece (disons que c'est la colonne 3 et que toutes les autres se suivent)
Select * from matable where COL30 into Selection
- la premiere fois faire un update de la selection tel que
Update Selection Set Etiket = ColumnInfo(''Selection'',''COL3'',1)
- les 9 ou 10 fois suivantes, apres avoir refait une selection ou seul le numero de colonne change
Select * from matable where COL40 into Selection
refaire un update un peu different (on insere l'existant et une virgule juste pour la beaute du futur contenu) ou le numero de colonne change
Update Selection Set Etiket = Etiket + '', '' + ColumnInfo(''Selection'',''COL4'',1)
- enregistrer la table mise a jour et etiqueter sur le champ 'Etiket'
Bon courage
#3 Fri 08 April 2005 11:54
- Francois Biju-Duval
- Invité
Re: Etiquette multiples avec le nom des colonnes
Ou aussi, directement avec une expression d'etiquetage dans le controle
des couches :
Left(ColumnInfo( A , COL1 , 1), Int(COL10)*254)+Left(Chr(10), Int(COL10)*254)+
Left(ColumnInfo( A , COL2 , 1), Int(COL20)*254)+Left(Chr(10), Int(COL20)*254)+
...............+
Left(ColumnInfo( A , COL10 , 1), Int(COL100)*254)
ou A est le nom de la table
NB : s'il n'y a pas assez de place dans la boite de dialogue de
MapInfo, ou on tape l'expression, ecrire celle-ci dans le .wor avec un
editeur de texte a la clause 'Label with'