#1 Thu 06 January 2005 13:31
- Champ Sébastien
- Invité
Mapbasic : afficher une liste des colonnes d'une table
Bonjour,
je souhaite cree une boite de dialogue permettant de selectionner une des
tables ouvertes puis de selectionner des colonnes de cette table.
J'arrive a avoir ma liste des tables (dans un control popupmenu). Mais
lorsque je selectionne ma table, et que j'essai de concerver l'info, cela ne
fonctionne pas. Into ne marche pas.
Premiere question :
Peut on recuperer la table selectionner dans le popupmenu avant de fermer la
boite de dialogue?
Est ce que Into ne donne de valeur qu'a la fermeture de la boite de
dialogue?
Deuxieme question
Comment faire une liste des colonnes d'une table?
Avec mon code j'ai un message d'erreur : Le type de l'argument est non
valide alors que j'ai bien regadre columninfo()
Merci a tous et Bonne Annee
Voila mon code mapbasic
Declare Sub L_tables
Declare Sub col
Dim i, Nb_Tab,Nb_col, tab as integer
dim tablelist(2), Colonnecaractliste,Colonnenumliste, test, temp, tabselect,
listeTables as string
sub L_Tables
Nb_tab = Numtables()
if numtables() 1 Then call L_tables end if
Dialog
Title Calcul de surperficie pour une donnee presente sur plusieurs
colonnes
Control statictext
Title Choisissez une table
! affiche la liste complete des tables ouvertes
Control Popupmenu
title + listeTables +
into tab
control Okbutton
title Continuez
calling col
Control cancelbutton
title annulez
Champ Sebastien
Charge de mission Cartographie & Base de Donnees
Reseau des reserves naturelles de Franche Comte
#2 Thu 06 January 2005 13:31
- Geo Maumet
- Invité
Re: Mapbasic : afficher une liste des colonnes d'une table
Bonjour
Effectivement la variable declaree dand le Into ne prend la valeur qu'a la
fermeture de la boite.
Pour votre pb, vous devez declencher une procedure sur le clic sur le popupMenu
avec le calling. la procedure doit lire le PopupMenu (readcontrolvalue) et
modifier un autre control (alter control).
un truc comme
Control Popupmenu
title listeTables
Id 10
calling ModifCol
into tab
Control ListBox
Id 11
title listeCol
into tab
Sub ModifCol
MaIdTab=ReadcontrolValue(10) 'Un entier
MaListCol='Traitement pour la liste des col de la tab select
Alter Control 11 Value MaListCol
end sub
Attention d'utiliser des Id dans la boite de dialogue pour lire et ecrire dans
les controles
Salut
Laurent
#3 Thu 06 January 2005 17:21
- Frédéric Renversez
- Invité
Re: Mapbasic : afficher une liste des colonnes d'une table
Bonjour,
Deuxieme question
Comment faire une liste des colonnes d'une table?
Avec mon code j'ai un message d'erreur : Le type de l'argument est non valide alors que j'ai bien regadre columninfo()
Sur quel ColumnInfo le message d'erreur a-t-il lieu ?
Si c'est sur le premier c'est bizarre, sinon effectivement le deuxieme
argument de ColumnInfo doit etre soit le nom de la colonne, soit
une chaine COL + i, i etant le numero de la colonne.
Frederic RENVERSEZ
Ingenieur Developpement / SIG
frederic.renversez@ i2g.fr