Pages: 1
- Sujet précédent - [MapBasic 9.x] Problème de table temporaire et de zoom sur sélection - Sujet suivant
#1 Fri 16 April 2010 10:09
- Cyril Chat
- Participant actif
- Lieu: Niort
- Date d'inscription: 14 Feb 2010
- Messages: 90
[MapBasic 9.x] Problème de table temporaire et de zoom sur sélection
Bonjour à tous,
J'en appelle à vous afin que vous puissiez m'aider !!! Mon problème concerne des communes.
Dans le code suivant, j'ai 2 problèmes :
- déjà je crée une table temporaire afin de pouvoir faire référence à celle ci, mais il ne me la reconnait pas, car lors du pochoir, il le fait bien sur ma table temporaire (une commune) mais pour le zoom, il le fait sur l'ensemble des entités (toutes les communes donc le département).
- ensuite je fais une boucle pour qu'il fasse toutes les communes. Il me fait bien le nombre de mise en page égal au nombre d'enregistrement, mais il garde toujours la géométrie de la première.
Code:
Fetch rec z from nomtable z = 1 Do while Not EOT(nomtable) 'on crée une table temporaire à partir du polygone sélectionné SELECT * FROM nomtable into monPolygone 'on crée une copie de la table d'où le polygone est sélectionné DIM maTable AS string maTable = selectioninfo(SEL_INFO_TABLENAME) 'dessine dans le Layout un cadre permettant l'affichage de la carte create frame into window WindowID(IdLayout) (0.63, 3.48) (41.37, 29.1) Pen(1,1,0) brush(1, 16777215, 16777215) FROM WINDOW WindowID(IdMap) fillframe on 'on défini le polygone en pochoir Fetch rec z from monPolygone SET Map Clipping Object monPolygone.obj 'on rajoute une couche avec le polygone sélectionné Add Map window WindowID(IdMap) Layer monPolygone 'on zoome sur cette couche SET Map Window WindowID(IdMap) Zoom Entire Layer monPolygone 'on supprime la couche avec le polygone sélectionné Remove Map Window WindowID(IdMap) Layer monPolygone 'on ferme la table monPolygone Close table monPolygone [...] Fetch next from nomtable Loop
Merci pour vos aides.
P.S. : le zoom fonctionné parfaitement avant que j'inclus la variable pour boucler...
Hors ligne
#2 Mon 19 April 2010 09:31
- Cyril Chat
- Participant actif
- Lieu: Niort
- Date d'inscription: 14 Feb 2010
- Messages: 90
Re: [MapBasic 9.x] Problème de table temporaire et de zoom sur sélection
Bonjour,
Quelqu'un pourrait il m'aider ou me donner une piste pour résoudre mon problème!!!
Merci
Hors ligne
#3 Mon 19 April 2010 11:40
- Damien BEAUSEIGNEUR
- Participant assidu
- Lieu: meyzieu
- Date d'inscription: 5 Sep 2005
- Messages: 425
Re: [MapBasic 9.x] Problème de table temporaire et de zoom sur sélection
Bonjour,
Il y a quand même un chose qui me dérange dans ce code, pourquoi avoir besoin de la table d'origine entière dans monPolygone?
juste l'enregistrement suffit, sélectionne l'enregistrement par son identifiant.
la table mon_polygone ne doit contenir qu'un seul enregistrement.
la position du z= 1 n'est pas correcte, elle devrait avoir lieu juste avant le fetch rec.
je suppose que le z est bien incrémenté et que le fetch rec z nomtable a bien lieu derrière...
cordialement.
Hors ligne
#4 Mon 19 April 2010 11:52
- Cyril Chat
- Participant actif
- Lieu: Niort
- Date d'inscription: 14 Feb 2010
- Messages: 90
Re: [MapBasic 9.x] Problème de table temporaire et de zoom sur sélection
Bonjour,
Merci pour votre réponse.
Pour monPolygone, c'est ce que je souhaite faire, prendre que l'enregistrement qui m'intéresse. le symbole *; c'est pour dire de prendre toutes les informations de l'enregistrement z.
A moins que je me trompe, et que cela ne se dit pas comme cela.
Mais ce que je ne comprend pas, c'est qu'il réalise correctement le pochoir, mais pas le zoom, c'est qu'il arrive à le lire quand même, non????
Pour le z=1, je l'avais supprimé en remplacant rec z par first, puis à la fin next, mais cela ne change rien, il me garde toujours la première géométrie.
Je vais donc essayer de placer z=1 avant.
Je vous tiens au courant, merci...
Hors ligne
#5 Mon 19 April 2010 11:57
- Cyril Chat
- Participant actif
- Lieu: Niort
- Date d'inscription: 14 Feb 2010
- Messages: 90
Re: [MapBasic 9.x] Problème de table temporaire et de zoom sur sélection
Non, malheureusement, même en plaçant le z = 1 avant, il me garde toujours la même géométrie...
Je n'arrive vraiment pas à trouver la solution à mes problèmes!!
Dernière modification par Cyril Chat (Mon 19 April 2010 11:58)
Hors ligne
#6 Mon 19 April 2010 13:44
- Damien BEAUSEIGNEUR
- Participant assidu
- Lieu: meyzieu
- Date d'inscription: 5 Sep 2005
- Messages: 425
Re: [MapBasic 9.x] Problème de table temporaire et de zoom sur sélection
explication
l'instruction suivante va sélectionner toute ta table nomtable dans monPolygone...
SELECT * FROM nomtable into monPolygone
pour en sélectionner un seul tu dois rajouter la clause where.
idPolygone = nomtable.id (vu le fetch rec z en fin de boucle et du début de boucle)
SELECT * FROM nomtable where id = idPolygone into monPolygone
Fetch rec z from monPolygone est inutile si il n'y a qu'un seul enregistrement.
Normalement il faut une fenêtre carte par cadre carte dans la ou les mises en page.
Hors ligne
#7 Mon 19 April 2010 13:49
- Cyril Chat
- Participant actif
- Lieu: Niort
- Date d'inscription: 14 Feb 2010
- Messages: 90
Re: [MapBasic 9.x] Problème de table temporaire et de zoom sur sélection
OK, merci pour l'explication.
Je viens donc d'essayer idPolygone = nomtable.id.
Il me retourne l'erreur : "Unrecognized command : .."
Savez vous pourquoi ne la reconnait il pas???
Hors ligne
#8 Mon 19 April 2010 15:00
- Damien BEAUSEIGNEUR
- Participant assidu
- Lieu: meyzieu
- Date d'inscription: 5 Sep 2005
- Messages: 425
Re: [MapBasic 9.x] Problème de table temporaire et de zoom sur sélection
attention tout de même, chacun de tes polygones doit avoir un identifiant unique pour que cela marche, dans ma supposition id était le champ de l'identifiant.
Quel est le champ unique pour tes polygones? Le champ qui identifie à coup sur tes polygones...
s'il n'existe pas il faut le créer en ajoutant un champ à la table d'origine et en le remplissant par rowid.
et bien sur idPolygone doit être une variable de même type que l'identifiant unique du polygone, pour rowid c'est de l'integer.
c'est nécessaire.
désolé si j'ai oublié des informations.
Hors ligne
#9 Mon 19 April 2010 15:42
- Cyril Chat
- Participant actif
- Lieu: Niort
- Date d'inscription: 14 Feb 2010
- Messages: 90
Re: [MapBasic 9.x] Problème de table temporaire et de zoom sur sélection
je sais bien que c'était à titre d'exemple votre 'id'.
J'avais donc essayer avec un champ "insee" qui a des identifiants uniques, car je ne possède pas d'ID allant de 1 jusqu'au nombre total. Insee comporte donc des nombres du style "79002, 79034...". Mais cela ne fonctionnait pas non plus.
J'ai donc tenter votre suggestion pour insérer un champ avec Rowid, mais je n'y arrive pas.
Quel code utilisé pour insérer un champ?
Merci
Hors ligne
Pages: 1
- Sujet précédent - [MapBasic 9.x] Problème de table temporaire et de zoom sur sélection - Sujet suivant