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é ?

#1 Thu 27 April 2017 14:46

evaporite
Participant actif
Date d'inscription: 30 Mar 2012
Messages: 54

Automatisation de mise en page

Bonjour,
Je n'ai jamais vraiment réussi à prendre le temps le temps de m'y mettre. Beaucoup de document date de plusieurs années, est ce qu'il sont toujours valable ? Y a-t-il eu de grosse modification sur le language ? j'ai une version map Info 12. Je réalise des cartes avec toujours les mêmes analyses thématiques, j'aimerai automatisé les mises en page. Je voudras faire des zomm en fonction du contenu des tables (l'équivalent des ctrl+K). Je ne sais pas trop comment m'y prendre ... Je ne sais pas par ou commencé ?
En ce moment je me forme au sql, au php et j'utilise maintenant MapInfo depuis 10 ans ...
J'ai déjà enregistré des légendes, mais en gros je voudrais indiquer les tables à inclure dans les cartes et que automatiquement les 4 analyses que je fais se fasse automatiquement sur les tables que je nomme toujours pareil ...
Tous conseils sera le bienvenu.
Merci
Aurélie


***********EDIT MODERATION*************
message en nouveau sujet (posté initialement ici : https://georezo.net/forum/viewtopic.php?id=53180)

Hors ligne

 

#2 Fri 28 April 2017 15:38

nicoboud
Membre
Lieu: Nantes
Date d'inscription: 12 Oct 2007
Messages: 860

Re: Automatisation de mise en page

Bonjour,
Le document "Initiation à la Fenêtre MapBasic (FMB)" doit toujours d'actualité (situé ici : https://georezo.net/forum/viewtopic.php?id=53180).

Pour automatiser vos mises en pages, vous avez également plusieurs méthodes expliquées ici :
- procédure de publipostage pour créer un wor d'automatisation : http://georezo.net/forum/attachment.php?item=4275
- sriptgen couplé à la fenêtre mapbasic : http://georezo.net/wiki/main/logiciels/ … /scriptgen
- post utile : http://georezo.net/forum/viewtopic.php?id=49934

La première méthode que j'ai utilisée vous permet d'adapter le seuil de zoom et l'emprise de la carte à chaque objet (pour un atlas communal par exemple).


Nicolas.


Co-modérateur du forum Mapinfo
Utilisateur Mapinfo et QGIS

Hors ligne

 

#3 Tue 02 May 2017 10:15

Raphaël_
Participant actif
Date d'inscription: 18 Jan 2016
Messages: 110

Re: Automatisation de mise en page

Salut !

En m'inspirant de la procédure de publipostage, j'ai réalisé un programme vba qui permet ce genre de manip, je cherche encore à le perfectionner mais pour l'instant il fonctionne très bien, je fais des tableaux avec toutes les données structurelles dont j'ai besoin (zoom, nom des tables à ouvrir, chemin de sauvegarde et pour l'autre : données attributaires en fonction de l'entité, calcul des bornes, titres...)

Puis avec une macro vba je remplace les lignes d'un .wor.

Ca peut générer des centaines de cartes en une seconde (pour l'impression pdf / jpg c'est un peu plus long selon le PC,mais c'est juste une ligne de code en plus)

Avec ça, il est possible de faire :
- une analyse identique pour plusieurs entités
- une analyse différente pour la même entité
- plusieurs analyses pour plusieurs entités

Le modèle est un peu long à réaliser (pour obtenir exactement les couleurs voulues c'était un peu long, mais une fois qu'on a la bonne palette...) mais en y allant pas à pas ça marche bien et ça permet de faire des cartes sobres et efficaces !

Hors ligne

 

#4 Tue 02 May 2017 10:39

Elise
Participant assidu
Lieu: Argentat (19)
Date d'inscription: 16 Oct 2005
Messages: 527
Site web

Re: Automatisation de mise en page

Bonjour,

Raphaël_ a écrit:

En m'inspirant de la procédure de publipostage, j'ai réalisé un programme vba qui permet ce genre de manip


Tu pourrais le mettre en pj ?

Merci,
Elise


Géoscope
  11 rue de l'Hospice - 19400 Argentat
  Tél. : 09 60 47 51 16

Hors ligne

 

#5 Tue 02 May 2017 11:11

Raphaël_
Participant actif
Date d'inscription: 18 Jan 2016
Messages: 110

Re: Automatisation de mise en page

Le programme en lui même n'est pas bien compliqué, il ne fait que remplacer les lignes du .wor (une ligne de code = une ligne sous excel)

C'est sous ce format là pour les bornes par exemple :

Code:

For i = 2 To DCol Step 2 'couleurs --> .wor
     With wstemp
        .Range("A70") = wsWor.Cells(3, i) 'range
        .Range("A71") = wsWor.Cells(4, i)
        .Range("A72") = wsWor.Cells(5, i)
        .Range("A73") = wsWor.Cells(6, i)
        .Range("A74") = wsWor.Cells(7, i)
        .Range("A75") = wsWor.Cells(8, i) '/range
    End With

Qui donnent

Code:

0:2 Brush (2,16777104,16777215) Pen (1,2,0),
2:3 Brush (2,16757091,16777215) Pen (1,2,0),
3:6 Brush (2,14646839,16777215) Pen (1,2,0),
6:8 Brush (2,13647900,16777215) Pen (1,2,0),
8:13 Brush (2,9764864,16777215) Pen (1,2,0),
13:13 Brush (2,5242880,16777215) Pen (1,2,0)

De simples boucles donc wink

Après mon programme est très spécifique à ce que je fais, donc difficile de le diffuser hmm

Dernière modification par Raphaël_ (Tue 02 May 2017 11:15)

Hors ligne

 

Pied de page des forums

Powered by FluxBB