#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
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