Pages: 1
- Sujet précédent - [Map Basic] Incompatibilité avec le code source d'un workspace - Sujet suivant
#1 Fri 30 April 2010 19:41
- jean94
- Participant assidu
- Date d'inscription: 13 Aug 2009
- Messages: 436
[Map Basic] Incompatibilité avec le code source d'un workspace
Bonjour à tous,
Je suis en train de compiler un code Mapbasic qui créé des workspace à partir de nouvelles données. À ma grande surprise une ligne de code utilisé dans un worspace entraine une erruer lors de la compilation avec MapBasic.
voici le code:
Code:
shade 14 with EMISSIONS/SOUMISSIONS*100 ranges apply all use all Brush (2,3253076,16777215) 0: 33 Brush (2,14096668,16777215) Pen (2,2,16777215) , 33: 66 Brush (2,10934634,16777215) Pen (2,2,16777215) , 66: 100 Brush (2,3253076,16777215) Pen (2,2,16777215) default Brush (2,16777215,16777215) Pen (1,2,0) # use 0 round 1 inflect on Brush (2,16776960,16777215) at 2 by 0 color 1 #
Bref, ce code est utiliser dans un workspace pour établir les bornes d'une carte thématique. La compilation s'arrête au dièse "#" et émet l'erreur "unrecognized command"
Quelqu'un connait la cause de l'erreur? ou a quoi sert commande entre les 2 # ? ou comment éviter une erreur de compilation?
Je sais que j'abuse du forum mais je suis bloqué et ne trouve pas de solutions
Merci
JF
Hors ligne
#2 Fri 30 April 2010 21:04
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: [Map Basic] Incompatibilité avec le code source d'un workspace
Bonjour
Il faut passer par une commande interprétée:
Code:
dim cmd as string cmd="shade 14 with "+EMISSIONS+"/"+SOUMISSIONS+"*100 ranges apply all use all Brush (2,3253076,16777215) 0: 33 Brush (2,14096668,16777215) Pen (2,2,16777215) , 33: 66 Brush (2,10934634,16777215) Pen (2,2,16777215) , 66: 100 Brush (2,3253076,16777215) Pen (2,2,16777215) default Brush (2,16777215,16777215) Pen (1,2,0) # use 0 round 1 inflect on Brush (2,16776960,16777215) at 2 by 0 color 1 #" Run Command cmd
Ci dessus je suppose que EMISSIONS et SOUMISSIONS sont des variables...et je conserve les retours à la igne pour la lisibilité mais a priori il faut tout mettre sur la même ligne ou introduire des chr$(13)...
Hors ligne
#3 Fri 30 April 2010 21:46
- jean94
- Participant assidu
- Date d'inscription: 13 Aug 2009
- Messages: 436
Re: [Map Basic] Incompatibilité avec le code source d'un workspace
En fait c'est un carte thématique utilisant une expression, l'expression étant le champ emissions divisé par le champ soumission multiplié par 100..pour avoir une ratio.
Donc si j'ai bien comprit il faut insérer une commande en plein milieu de mon code pour pouvoir le compiler, je trouve sa bizzard qu'il y a des diffrentiation entre le scripts des Workspace et le language de Mapbasic
Merci! je l'essaie et redonne des nouvelles lundi
JF
Hors ligne
#4 Mon 03 May 2010 17:41
- jean94
- Participant assidu
- Date d'inscription: 13 Aug 2009
- Messages: 436
Re: [Map Basic] Incompatibilité avec le code source d'un workspace
Bonjour,
Finalement passer par des commande ne fonctionne pas dans mon cas, car les bornes sont des variables définit par un edittext d'un formulaire. Je ne comprends toujours pas pourquoi mapbasic ne prend pas le charactère "#" alors que le workspace le prend.
Quelqun à une autre solution
p.s. dans mon code les bornes sont les suivantes
BorneA1
BorneA2
BorneB1
BorneB2
BorneC1
BorneC2
Merci Jf
Hors ligne
#5 Mon 03 May 2010 17:59
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: [Map Basic] Incompatibilité avec le code source d'un workspace
Salut,
le # est interprété par Mapbasic mais pas de cette façon.
As tu regardé là dedans --> http://www.i-signum.com/Telechargement.html
--> Reference guide
A+
Joël
Hors ligne
#6 Mon 03 May 2010 19:10
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: [Map Basic] Incompatibilité avec le code source d'un workspace
Bonsoir
Je le redis: il FAUT passer par une commande interprétée, en mettant tout ce qui est variable en dehors des guillemets
Il est prudent de faire un Print cmd avant le Run Command cmd, pour vérifier qu'on ne s'est pas trompé
Noter aussi que chr$(34) = guillemets ...
ps: chaque langage est "bizarre" mais on ne peut qu'en respecter la syntaxe !
Hors ligne
#7 Mon 03 May 2010 21:29
- jean94
- Participant assidu
- Date d'inscription: 13 Aug 2009
- Messages: 436
Re: [Map Basic] Incompatibilité avec le code source d'un workspace
Un champ est-il considérer comme une variable le cas de mon emission et soumission qui sont des champ de colonnes?
Merci
JF
Hors ligne
#8 Mon 03 May 2010 22:48
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: [Map Basic] Incompatibilité avec le code source d'un workspace
I faut voir en détail comment le nom du champ est utilisé, mais il y a bien des chances que ce soit une variable...et il ne faut pas oublier que pour les noms de colonnes, il faut passer par des variables définies comme Alias
Hors ligne
#9 Tue 04 May 2010 20:34
- jean94
- Participant assidu
- Date d'inscription: 13 Aug 2009
- Messages: 436
Re: [Map Basic] Incompatibilité avec le code source d'un workspace
Je suis rendu ici mais je ne crois pas être sur la bonne piste
Code:
Open Table "H:\intranet\Ventes\Ratio_vente_soum\par_produit\2010\mars\Auto_autres_produits_mun.TAB" Interactive as table Map From table dim cmd as string dim borneA1 as string dim borneA2 as string dim borneB1 as string dim borneB2 as string dim borneC1 as string dim borneC2 as string dim numerateur as string dim denominateur as string numerateur = "table.emission" denominateur = "table.soumission" borneA1 = "0" borneA2 = "33" borneB1 = "33" borneB2 = "66" borneC1 = "66" borneC2 = "100" cmd="shade 1 with "numerateur"/"denominateur"*100 ranges apply all use all Brush (2,3253076,16777215)" borneA1":" borneA2 "Brush (2,14096668,16777215) Pen (2,2,16777215) ," borneB1":" borneB2 "Brush (2,10934634,16777215) Pen (2,2,16777215) ," borneC1":" borneC2 "Brush (2,3253076,16777215) Pen (2,2,16777215) default Brush (2,16777215,16777215) Pen (1,2,0) # use 0 round 1 inflect on Brush (2,16776960,16777215) at 2 by 0 color 1 #" Run Command cmd
Quelqu'un aurait de l'info supplémentaire que le MapBasic Reference Guide pour les commandes?
Merci
JF
Hors ligne
#10 Tue 04 May 2010 22:48
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: [Map Basic] Incompatibilité avec le code source d'un workspace
Sans rentrer dans les détails: éviter "table" comme nom de la table, introduisez un print pour vérifier (en comparant avec ce qui s'ecrit dans un wor qui marche), donnez la bonne définition aux variables (string ou smallint, etc...) suivant les cas
Code:
Open Table "H:\intranet\Ventes\Ratio_vente_soum\par_produit\2010\mars\Auto_autres_produits_mun.TAB" Interactive as bidule Map From bidule dim cmd as string dim borneA1 as smallint dim borneA2 as smallint dim borneB1 as smallint dim borneB2 as smallint dim borneC1 as smallint dim borneC2 as smallint dim numerateur as string dim denominateur as string numerateur = "emission" denominateur = "soumission" borneA1 = 0 borneA2 = 33 borneB1 = 33 borneB2 = 66 borneC1 = 66 borneC2 = 100 cmd="shade bidule with ("+numerateur+"/"+denominateur+")*100 ranges apply all use all Brush (2,3253076,16777215) "+chr$(10)+ borneA1+":"+borneA2+"Brush (2,14096668,16777215) Pen (2,2,16777215) , "+chr$(10)+ borneB1+":"+borneB2+ "Brush (2,10934634,16777215) Pen (2,2,16777215) , "+chr$(10)+ borneC1+":" +borneC2+ "Brush (2,3253076,16777215) Pen (2,2,16777215) "+chr$(10)+ "default Brush (2,16777215,16777215) Pen (1,2,0) "+chr$(10)+ "# use 0 round 1 inflect on Brush (2,16776960,16777215) at 2 by 0 color 1 #" print cmd run command cmd
Hors ligne
#11 Wed 05 May 2010 14:37
- jean94
- Participant assidu
- Date d'inscription: 13 Aug 2009
- Messages: 436
Re: [Map Basic] Incompatibilité avec le code source d'un workspace
Merci Maurice, sa fonctionne,
Ou peut on apprendre à utiliser les comande et quand les utilisers, je m'y intésesse mais je ne trouve pas d'information pertinante sur le web
JF
Hors ligne
#12 Wed 05 May 2010 18:52
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: [Map Basic] Incompatibilité avec le code source d'un workspace
Bien content...
Pour les ressources, regardez ce qui est épinglé en tête du forum
Je ne peux en dire beaucoup plus, m'étant formé sur le tas...aidé par Georezo
Hors ligne
Pages: 1
- Sujet précédent - [Map Basic] Incompatibilité avec le code source d'un workspace - Sujet suivant