#1 Wed 15 September 2010 16:14
- jean94
- Participant assidu
- Date d'inscription: 13 Aug 2009
- Messages: 436
Text dans un Run command
J'ai un run command comme celle-ci a faire
Select NAME ( "Municipalité" ) , EMISSIONS ( "Émissions" ) , SOUMISSIONS ( "Soumissions" ) , Int ( EMISSIONS / SOUMISSIONS * 100 ) ( "Ratio" ) from produits_mun into Tableau noselect
Que j'ai réécrit comme suit
"Select "+NAME+" ( Municipalité ) , "+EMISSIONS+" ( Émissions ) , "+SOUMISSIONS+" ( Soumissions ) , Int ( "+EMISSIONS+" / "+SOUMISSIONS+" * 100 ) ( Ratio ) from "+produits_mun+" into Tableau noselect"
On me renvoit que Municipalité n'est pas définit (variable ou field) Municipalité, Émissions, Soumissions et ratio étant de nom à donné au nouveaux champs j'ai donc essayé ceci
"Select "+NAME+" ( ""Municipalité"" ) , "+EMISSIONS+" ( ""Émissions"" ) , "+SOUMISSIONS+" ( ""Soumissions"" ) , Int ( "+EMISSIONS+" / "+SOUMISSIONS+" * 100 ) ( ""Ratio"" ) from "+produits_mun+" into Tableau noselect"
Et on me renvoit la variable or field Sept not defined??? Je n'ai aucune idée pouruqoi Sept...
Évidament tout est sur la même lignes
À l'aide
JF
Hors ligne
#2 Wed 15 September 2010 16:53
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Text dans un Run command
Bonjour
Seul le mélange de variables et de constantes impose de passer par un Run Command
Si les noms de colonnes et celui de la table sont des constantes, la requête peut être directe
Select NAME "Municipalité", EMISSIONS "Émissions", SOUMISSIONS "Soumissions", Int (EMISSIONS*100/ SOUMISSIONS) "Ratio" from produits_mun into Tableau noselect
Sinon il faut passer par le Run Command en reprenant la requête qui marche et en mettant entre guillemets les parties constantes (en remplaçant dans celles-ci les éventuels guillemets originaux par chr$(34)...)
Et faire un print pour vérifier les fautes de frappe...
ps: le sept est peut être le résultat du ratio ??
Hors ligne
#3 Wed 15 September 2010 17:11
- jean94
- Participant assidu
- Date d'inscription: 13 Aug 2009
- Messages: 436
Re: Text dans un Run command
Bonjour Maurice,
Les nom évoqué tel que NAME, EMISSION, SOUMISSIONS sont les vrai nom de champs et non des variables j'essaie de passer par une run command car mon worspace ne semble pas vouloir effectuer la sélection...je p-e dans les patates
JF
Hors ligne
#4 Wed 15 September 2010 18:15
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Text dans un Run command
La requête telle que je l'ai mise en gras dans mon posts précédent , passée dans la FMB, ne marche pas ??
Hors ligne
#5 Wed 15 September 2010 19:14
- jean94
- Participant assidu
- Date d'inscription: 13 Aug 2009
- Messages: 436
Re: Text dans un Run command
Re
Avant de te répondre je vais ajouter quelques précision, en fait j'ai un code qui exécute des .xls, les convertits en table et crée un workspace avec une carte thématique et un browser sous la carte ce qui semble assez simple. Les dernières lignes de codes sont les suivantes :
Code:
Select table.NAME, table.EMISSIONS, table.SOUMISSIONS, table2.GHHDS2 from table, table2 where table.CODE_MUN = table2.CODE_MUN into Tableau noselect Select Tableau.NAME "Municipalité", Tableau.EMISSIONS "Émissions", Tableau.SOUMISSIONS "Soumissions", ( Tableau.EMISSIONS / Tableau.SOUMISSIONS * 100 ) "Ratio", Tableau.GHHDS2 "Nombre_Ménages" from Tableau into TableauQuery noselect Browse * From TableauQuery Position (0.03125,6.66667) Units "in" Width 6.58333 Units "in" Height 1.6875 Units "in" Row 22 Column 0 Set Window FrontWindow() Enhanced On Smooth Text Antialias Set Window FrontWindow() Title "Tableau - Ratio V/S" Set Window FrontWindow() Printer Name "GeoPrinter" Orientation Portrait Copies 1 Papersize 1 Save Workspace As WdevlPath
Donc je veut un browser avec 5 colonnes sélectionné seulement or, quand je réouvre le workspace le tableau voulu n'y est pas n'y même la sélection.
Dans la FMB les sélection fonctionne mais ne sont pas dans le .wor...
Je crois avoir vu un post à ce sujet dernièrement mais je le trouve pas
JF
Hors ligne
#6 Thu 16 September 2010 09:24
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Text dans un Run command
Rappel: seules sont conservées (enregistrées) dans un WOR les requêtes de premier niveau
Les requêtes qui utilisent un résultat d'une requête précédente fonctionnent mais ne sont pas enregistrables dans le WOR...
Faut faire avec !!
Hors ligne
#7 Thu 16 September 2010 14:25
- jean94
- Participant assidu
- Date d'inscription: 13 Aug 2009
- Messages: 436
Re: Text dans un Run command
Parfais Maurice j'ai règler mon problème en combinant les deux
Ex:
Code:
Select table1.NAME "Municipalité", table1.EMISSIONS "Émissions", table1.SOUMISSIONS "Soumissions", ( table1.EMISSIONS / table1.SOUMISSIONS * 100 ) "Ratio", table2.GHHDS2 "Nombre_de_Ménages" from table1, table2 where table1.CODE_MUN = table2.CODE_MUN into TableauQuery noselect
Deuxième problème...
J'ai deux fenêtre qui sont affiché et j'aimerais les renommer en fonction que s'il s'agit d'une Map ou un Browser voici mon bout de code que je pensais correcte mais affiche "Invalid window Identifier : 1"
Voici mon code
Code:
dim numwin as smallint numwin = 1 do while numwin < NumWindows() if WindowInfo(WindowID(numwin), WIN_INFO_TYPE) = 1 then Set Window numwin Title "Ratio Ventes/Soumissions - " + TitreCarte + " - " + "Année" + " " + VarStrAnnee else Set Window numwin Title "Tableau - Ratio V/S" end if numwin = numwin + 1 loop
J'avoue que j'ai encore de la difficulté à maitriser la gestion des fenêtre dans mapinfo
JF
Hors ligne
#8 Thu 16 September 2010 20:32
- jean94
- Participant assidu
- Date d'inscription: 13 Aug 2009
- Messages: 436
Re: Text dans un Run command
Re bonjour, J'ai pu trouver l'erreur de mon deuxième point voici les lignes magiques :
Code:
dim numwin as smallint numwin = 1 do while numwin <= NumWindows() print numwin print WindowInfo(WindowID(numwin), 1) if left$(WindowInfo(WindowID(numwin), 1), 5) = "Ratio" then Set Window WindowID(numwin) Title "Ratio Ventes/Soumissions - " + TitreCarte + " - " + "Année" + " " + VarStrAnnee end if if left$(WindowInfo(WindowID(numwin), 1), 5) = "Table" then Set Window WindowID(numwin) Title "Tableau - Ratio V/S" end if numwin = numwin + 1 loop
Or, si je reviens à mon premier point....mon "workspace" ne veut toujours pas enregistrer la ligne suivante
Code:
Select table1.NAME "Municipalité", table1.EMISSIONS "Émissions", table1.SOUMISSIONS "Soumissions", ( table1.EMISSIONS / table1.SOUMISSIONS * 100 ) "Ratio", table2.GHHDS2 "Nombre_de_Ménages" from table1, table2 where table1.CODE_MUN = table2.CODE_MUN into TableauQuery noselect
Je n'ai aucune idée pourquoi, car la commande fonctionne très bien dans la FMB
JF
Dernière modification par jean94 (Thu 16 September 2010 21:21)
Hors ligne
#9 Thu 16 September 2010 22:50
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Text dans un Run command
Hypothèse 1: table1 ou table2 est une table requête et pas une "vraie" table en dur...
Hypothèse 2: l'option "Préférences->Démarrage->Enregistrer les requêtes dans les documents" n'est pas cochée...
Hors ligne
#10 Fri 17 September 2010 14:33
- jean94
- Participant assidu
- Date d'inscription: 13 Aug 2009
- Messages: 436
Re: Text dans un Run command
Bonjour Maurice
Les deux tables sont sauvegardées en dur et la case « Enregistrer les requêtes dans les documents » est cochée. Donc, en terme scientifiques, les deux hypothèses sont rejetées. Bien que cela me reste perplexe, (je soupçonne le SQL) j'ai décidé de sauvegarder la requête en dur et de l'afficher en table. En fin d'année cela me donnera 288 tables inutiles mais plus de casse-tête. Si jamais une solution tombe du ciel je vous tiendrai au courant.
JF
Dernière modification par jean94 (Fri 17 September 2010 14:34)
Hors ligne