Annonce
Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !
10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …
Retrouver nos membres bienfaiteurs
#1 Tue 20 July 2004 19:05
- Maud Gaide
- Invité
MapBasic valeur d'un menu deroulant
Bonjour,
j'ai cree des boites de dialogues avec des listes deroulantes, le choix fait par les utilisateurs est enregistre dans une table: le probleme est que c'est la valeur du choix qui est enregistre et non son nom.
par exemple le 2ieme choix de la liste est Amenagement, il m'enregistre 2 alors que je voudrais qu'il enregistre Amenagement dans ma table!
Comment dois je faire?
Merci d'avance
#2 Tue 20 July 2004 19:53
- Jacques Paris
- Invité
Re: MapBasic valeur d'un menu deroulant
Il n'y a qu'une facon de recuperer les noms de choix multiples, c'est de conserver une liste indexee de ces noms et de faire la traduction indice>nom une fois le choix fait.
Mais il y a deux facons de proceder. L'une consiste a passer les noms dans une variable = chaine de caracteres, disons s_noms
s_noms=nom1+";"+nom2+....
de l'utiliser dans la definition du dialogue
control multilistbox .... title s_noms ...
et de se servir de l'indice pour decouper s_noms de facon a retrouver le nom
L'autre consister a utiliser une variable vecteur de la dimension du nombre de noms
Dim v_noms(nombre-de-noms) as string
v_noms(1)=nom1
v_noms(2)=nom2
...
et de l'utiliser avec
control multiboxlist ... title from variable v_noms
Il suffit alors de recuperer le nom choisi par v_noms(indice-choisi)
Je pense que la deuxieme approche est de loin le plus econome. Si vous tenez a la premiere, regardez les fonctions ArrayToString() et StringToArray() qui pourraient vous etre utile dans www.paris-pc-gis/mb_r/fs/fs_start.htm
Jacques Paris
#3 Wed 21 July 2004 12:02
- Maud Gaide
- Invité
Re: MapBasic valeur d'un menu deroulant
Merci pour votre reponse, j'essaie la seconde solution mais j'ai un petit probleme
j'arrive a creer la variable et faire afficher les valeur dans mon popupmenu mais ensuite je n'arrive pas a recuperer la valeur choisi si j'ecrit
Update BDphoto Set Service = ReadControlValues(34) Where Rowid = tableinfo(BDphoto,TAB_INFO_NROWS)
la valeur est enregistre dans la table et non le nom et si j'ecrit Update BDphoto Set Service = n_service() Where Rowid = tableinfo(BDphoto,TAB_INFO_NROWS) comment recuperer l'indice choisi comme vous me l'avez dit?
Merci pour votre aide