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é ?

#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@texte-a-enlever.i2g.fr

 

Pied de page des forums

Powered by FluxBB