Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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é ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Tue 11 May 2010 16:32

Fabius
Participant actif
Date d'inscription: 19 Mar 2008
Messages: 130

Mise en Page Conditionelle

Bonjour à tous,

Je reviens aujourd'hui avec un sujet quie me turlupine. En effet je souhaitre creer un programme qui automatise des analyses thematique par identifiant en fonction d'un champ dans une table. Jusque l'a tout fonctionne tres bien. Le seul soucis qui se pose c'est la légende.
Je récupere dans une selection les noms des valeurs de l'analyse thematique et par la meme occasion le nombre de valeurs par carte.
Dans l'exemple présent j'ai 18 valeurs sur ma premiere carte , 10 autres sur la seconde. Je souhaiterais créer dans ma fenetre mise en page un cadre calé en bas de page dont la taille varierais en fonction du nombre de valeurs présentes. Le soucis c'est que je n'arrive pas a bien comprendre le fonctionnement des création de rectangle dans la fenetre mise en page. J'ai essaé aec l'instruction Create Rect en lui donnant une couleur noir et des valeurs tres grande mais cela ne me resors rien.

Quelqu'un aurait il une solution ou une methode plus a propos pour la réalisation de mon projet


Merci d'avance

Fabius

Hors ligne

 

#2 Mon 17 May 2010 19:49

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

Re: Mise en Page Conditionelle

Bonjour,

Peux-tu envoyé le code qui nous intéresse?

JF

Hors ligne

 

#3 Tue 18 May 2010 11:11

Fabius
Participant actif
Date d'inscription: 19 Mar 2008
Messages: 130

Re: Mise en Page Conditionelle

Bonjour ,

En fait la est mon probleme. En effet, je n'arrive pas a sortir un bout de code pour pouvoir Creer un rectangle blanc dans lequel dans un second temps je dois creer des rectangle avec mes couleurs et le nom associé. J'ai compris le fonctionnement avec les 4 coordonnées pour caler ce grand rectangle. En fait une seul va varier et sera fonction du nombre de valeurs (18 ou 10 dans mon exemple) multiplié par l'espacement entre les carrés de légende.

Pour l'instant mon code sur cette partie est juste le suivant avec la récupération du nombre de valeur

Code:

nbrval=tableinfo(Q1,TAB_INFO_NROWS)
Y2=29-nbrval*0.7
Create RECT Into Window LAYOUTWINDOWID (X1,X2) (Y1, Y2)

Mon premier probleme réside donc dans la création du rectangle puisque meme en créant un rectangle avec des coordonnées "bidon" je ne vois pas ce dernier se créer sur ma fenetre carte.

Cordialement,

Fabius

Hors ligne

 

#4 Tue 18 May 2010 14:55

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

Re: Mise en Page Conditionelle

Bonjour
Moi sa fonctionne bien avec ceci

Code:

Map From ta_table
'Ouvre un mapwindow de la table que tu veux dans ton layout (Q1)
Layout
Set CoordSys Layout Units "in"
Create Frame (0.5,2.7765) (8,8.2235) Pen (1,2,0) Brush (2,16777215,16777215) Title "Tatable Map" FillFrame On
Set CoordSys Earth Projection 1, 0

A+

Hors ligne

 

#5 Tue 18 May 2010 15:52

Fabius
Participant actif
Date d'inscription: 19 Mar 2008
Messages: 130

Re: Mise en Page Conditionelle

Re-bonjour,

Je viens de tester ca ne fonctionne pas pour moi sad

En fait pour poursuivre mon explication, j'ai deja une fenetre mise en page avec de nombreuses tables et une analyse sur laquelle je veux apposer la legende dans cette fenetre. Mais impossible de creer un rectangle a fond blanc (meme simple, sans introduire ma formule pour la dimenssioner conditionnelement aux données étudiées)

Pourtant lorsque je fais ca , ca fonctionne tres tres bien...

Code:

Create Text Into Window LayoutWindowID

Hors ligne

 

#6 Tue 18 May 2010 20:03

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

Re: Mise en Page Conditionelle

Bonjour si sa peu t'aider

Code:

Layout
Set CoordSys Layout Units "cm"
Create Rect (3,6) (8,12) Pen (1,2,0) Brush (2,16777215,16777215)
Set CoordSys Earth Projection 1, 0

Colle ce code dans ton mapbasic, il faut toujours definir une proj. même pour les objet a toi d'ajouter des variable au lieu des valeures maintenant

JF
SVP, envoie le code finale

Hors ligne

 

Pied de page des forums

Powered by FluxBB