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 Mon 21 June 2010 10:51

Simon AILLAUD
Participant occasionnel
Date d'inscription: 11 Jun 2010
Messages: 23

[MapBasic 7.5] Sélectionner les valeurs d'une colonne

Bonjour,

J'aimerais créer une ListBox à partir des valeurs d'une colonne de ma table.
J'arrive à le faire par exemple si je veux faire une ListBox à partir de mes tables ouvertes, comme suit :

Code:

    For I = 1 To Numtables()
        tableauTAble(I) = TableInfo(I,TAB_INFO_NAME)
    Next

    choixT = ""
    For I = 1 To Numtables()
        choixT = choixT + tableauTable(I) + ";"
    Next

    '----------Boite de dialogue:
    Dialog
        Title "Choix de la Table"

        Control ListBox
            Title choixT
            Calling verificateur
            ID 1
            Value 1
            Into tableChoisie
            Position 5,25

Mais je n'arrive pas à l'adapter à mon problème.

Quelqu'un a-t-il une idée?

Merci!

Hors ligne

 

#2 Mon 21 June 2010 11:30

Simon AILLAUD
Participant occasionnel
Date d'inscription: 11 Jun 2010
Messages: 23

Re: [MapBasic 7.5] Sélectionner les valeurs d'une colonne

Personne n'a d'idée pour m'aider à créer une liste à partir des valeurs d'une colonne?....
Ou dans un premier temps m'indiquer comment retourner la valeur d'une reqûete SQL dans un Note,
car je m'aperçois que pour ça aussi je bloque...
Merci

Hors ligne

 

#3 Mon 21 June 2010 11:50

Simon AILLAUD
Participant occasionnel
Date d'inscription: 11 Jun 2010
Messages: 23

Re: [MapBasic 7.5] Sélectionner les valeurs d'une colonne

Pour information, si cela peut un jour aider quelqu'un, voici la solution que j'ai trouvé :

Code:

        Fetch First From Regions
    For I = 1 To TableInfo(0, TAB_INFO_NROWS)
        tableauReg(I)=Regions.NOM_REG
        Fetch Next From Regions
    Next
    
    choixReg = ""
    For I = 1 To TableInfo(0, TAB_INFO_NROWS)
        choixReg = choixReg + tableauReg(I) + ";"
    Next
    
    Dialog
        Title "Choix de la Région"

        Control ListBox
            Title choixReg

Hors ligne

 

#4 Mon 21 June 2010 12:01

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [MapBasic 7.5] Sélectionner les valeurs d'une colonne

Bonjour
Merci pour le suivi...
nb: pourquoi ne oas utiliser directement tableauReg avec
        Control ListBox
            Title From Variable tableauReg
et se dispenser de choixReg et de son "remplissage" ... ??

Hors ligne

 

#5 Mon 21 June 2010 13:45

Simon AILLAUD
Participant occasionnel
Date d'inscription: 11 Jun 2010
Messages: 23

Re: [MapBasic 7.5] Sélectionner les valeurs d'une colonne

En effet, je viens de le tester, et ça marche parfaitement.
(Et du coup, ça raccourci un peu le code^^).

Par contre, dans les option de la ListBox, lorsque je fais Into regChoisie,
cela stocke le numéro de position dans la liste (1, 2, ..., n).

Est-il possible de récupérer le texte de la liste? A savoir dans mon cas le nom de la région.

Merci.

Hors ligne

 

#6 Mon 21 June 2010 14:33

jean94
Participant assidu
Date d'inscription: 13 Aug 2009
Messages: 436

Re: [MapBasic 7.5] Sélectionner les valeurs d'une colonne

Oui il est possible...

en fait choixReg devrait donner quelque chose comme champ1;champ2;champ3;champ4;

Et si tu veux récupérer le nom de id3 par exemple il te faudra un code du genre pour extraire la chaine entre le 2ieme et 3ieme pts virgule

Code:

sintPVcount = 3
strTemp = choixReg
strRight = ""
strRegion = ""
do while sintPVcount < intColChoix + 1
   i = InStr(1, strTemp, ";") 
   strTemp =  Right$(strTemp, len(strTemp) - i)
   strRight = strTemp
   sintPVcount = sintPVcount + 1
loop

i = InStr(1, strTemp, ";") 
strTemp =  left$(strTemp, i - 1)

strRegion = strTemp

J'espère que mon pseudo code n'as pas trop d'erreur masi j'imagine que tu vois le style
JF

Dernière modification par jean94 (Mon 21 June 2010 14:39)

Hors ligne

 

#7 Mon 21 June 2010 15:07

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [MapBasic 7.5] Sélectionner les valeurs d'une colonne

Simon AILLAUD a écrit:

...st-il possible de récupérer le texte de la liste? A savoir dans mon cas le nom de la région...


Bien sûr:
Si regChoisie = k alors le nom de la région est tableauReg(k)

Hors ligne

 

#8 Wed 23 June 2010 16:08

V. Girault
Participant actif
Lieu: Clermont-Ferrand
Date d'inscription: 22 Sep 2005
Messages: 106

Re: [MapBasic 7.5] Sélectionner les valeurs d'une colonne

Bonjour @ tous !

Je rebondis sur cet intéressant post, voulant également de mon côté mettre à profit le résultat d'un champ dans une requête. J'ai bien essayé de ne faire aucune boulette dans mon code ci-dessous, mais je me heurte à un message de MapBasic qui me signale une erreur lorsque j'affecte mes variables à mon tableau. J'ai bien essayé de chercher la solution mais pour l'instant je n'ai pas trouvé. J'ai par contre un doute quant à la construction de la valeur du champ attaqué qui provient d'une expression. Ne serait-ce pas çà qui poserait souci ? le champ en lui-même n'atteint au final que 64 caractères.... La première valeur de variable passe dans mon note, mais après j'obtiens le message d'erreur...

Code:

    NbCol2=TableInfo(name, TAB_INFO_NCOLS)
    For NBC2 = 1 to NbCol2
        Cname2=ColumnInfo(name, "COL"&NBC2, COL_INFO_NAME)
        If Cname2="OPERATION" then
            Alias_Ope = name & "." & Cname2
            note Alias_Ope
            Fetch First From name
            For I = 1 To TableInfo(0, TAB_INFO_NROWS)
                tableauOperations(I)=Alias_Ope               'Valeur hors limite
                Fetch Next From name
            Next
        End If
    Next

Si l'un d'entre-vous à une idée, elle sera la bienvenue...

Merci beaucoup d'avance

Hors ligne

 

#9 Wed 23 June 2010 21:00

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [MapBasic 7.5] Sélectionner les valeurs d'une colonne

Bonjour
Ce TableInfo(0, TAB_INFO_NROWS) ne serait-il pas plus "sur" en TableInfo(name, TAB_INFO_NROWS)
D'autre part, avez vous dimensionné tableauOperations() ??
Sinon un Redim tableauOperations(TableInfo(name, TAB_INFO_NROWS)) s'impose...la variable liste non dimensionnée ayant une "capacité" de zéro elle déborde hors limite dès la première valeur !!

Hors ligne

 

#10 Fri 25 June 2010 08:58

V. Girault
Participant actif
Lieu: Clermont-Ferrand
Date d'inscription: 22 Sep 2005
Messages: 106

Re: [MapBasic 7.5] Sélectionner les valeurs d'une colonne

Bonjour à tous !

Effectivement... Merci beaucoup Maurice, la liste fonctionne. big_smile

Hors ligne

 

Pied de page des forums

Powered by FluxBB