Jump to content
  • entries
    69
  • comments
    18
  • views
    6047

Pour faire bonne impression : le foliotage, ou la pagination facile !

Sign in to follow this  
David Julot

461 views

Cette semaine, c’est pratiquement relâche ! En effet, cela va être ma chronique la plus courte depuis que j’écris sur ce blog.

Pour terminer, temporairement vu le nombre record de lecteurs intéressés par l’impression scripté dans FileMaker, je vais vous montrer comment mettre en place une pagination sur vos documents imprimés. Et pour celles et ceux qui souhaitent savoir comment mettre le nombre total de pages, vous avez la réponse à la fin de cette chronique.

Depuis longtemps, FileMaker Pro intègre une série de symboles, que l’on peut comparer à des variables d’environnement, utilisables dans les modèles :

  • // symbole de la date : qui permet d’afficher la date en cours ;
  • :: symbole de l’heure : qui permet d’afficher l’heure en cours ;
  • || symbole du nom : qui permet d’afficher le nom de la session ou le nom personnalisé saisi dans les préférences de FileMaker Pro ;
  • ## symbole du numéro de page : qui permet d’afficher le numéro de la page en cours en mode prévisualisation ou à l’impression ;
  • @@ symbole du numéro d’enregistrement : qui permet d’afficher le numéro de l’enregistrement en cours.

Ces symboles s’insèrent en mode modèle dans un bloc texte.

Mais si vous remarquez bien la liste des symboles proposée par FileMaker Pro, il n’y a rien pour afficher le nombre total de pages que comporter une impression, et c’est pourtant la demande la plus récurrente des utilisateurs de notre logiciel fétiche.

 

Connaître le nombre total de pages lors d’une impression

Avez-vous remarqué le point d’interrogation qui apparaît dans la zone d’état lorsque vous vous mettez en mode prévisualisation ? En fait, FileMaker Pro, pour éviter de prendre trop de temps de calcul pour afficher les pages en mode prévisualisation, calcule uniquement la première page, et pour nous dire qu’il ne connaît pas à l’avance le nombre total de pages à imprimer, il affiche un point d’interrogation dans la zone d’état.

Je pense que c’est pour cette raison, du moins c’est celle qui me semble la plus logique, que FileMaker ne propose pas de symbole nombre total de pages dans le menu Insertion. Car FileMaker construit les pages au fur et à mesure de l’impression.

D’ailleurs, lorsque vous êtes en mode prévisualisation, pour connaître le nombre total de pages qui seront imprimées, il faut déplacer le curseur du calepin complètement à droite.

Mais ceci ne nous explique pas comment mettre en place un foliotage complète sur le modèle.

 

Passer par un script pour la pagination

Il va donc falloir passer par un script pour automatiser le foliotage complet d’un document que vous souhaitez imprimer avec FileMaker Pro. Mais avant, il faut créer une rubrique de type globale. Rappelez-vous que les valeurs sont stokée dans des rubriques dans FileMaker.

Pourquoi ne pas utiliser une variable ? Tout simplement parce qu’une variable ne peut être placée sur un modèle.

Donc, on crée une rubrique de type nombre avec comme option le type global, si vous avez une version 7 ou supérieure de FileMaker Pro. Ou créer une rubrique de type globale avec comme type de donnée nombre, si vous avez une version 6 ou inférieure de FileMaker Pro.

Ensuite, créer le script dont l’analyse est la suivante :

  • On ouvre une nouvelle fenêtre (pour éviter de perturber le travail en cours de l'utilisateur) ;
  • On active le modèle souhaité ;
  • On paramètre les paramètres d'impression (orientation, format) ;
  • On active le mode prévisualisation ;
  • On active, et on bloque, la zone d'état ;
  • On active la dernière page ;
  • On récupère le numéro de la page courante ;
  • On active la première page ;
  • On interdit l'annulation (l'arrêt) du script en cours par l'utilisateur ;
  • On se met en mode pause ;
  • On demande à l'utilisateur s'il souhaite imprimer le document en cours ;
  • SI l'utilisateur souhaite imprimer le document
    • ALORS  On imprime le document ;
  • Fin de la condition ;
  • On referme la fenêtre active.

Ce qui donne le script suivant :

Gestion erreurs [Oui]
Nouvelle fenêtre []
Activer modèle ["Impression"]
Configuration impression [Rétablir; Sans fenêtre]
Mode Prévisualisation []
Afficher/masquer zone dtat [Verrouiller, Afficher]
Afficher enreg/requête/page [Dernièr(e)]
Définir rubrique [Table::nb_total_pages; Obtenir(NuméroPage)]
Afficher enreg/requête/page [Premièr(e)]
Autor. annulation utilisateur [Non]
Suspendre/reprendre script [Indéfiniment]
Ouvrir boîte dial. person. ["Souhaitez-vous imprimer le document en cours ?"]
# avec en bouton par défaut : Non, en bouton 2 : Oui.
Si [Obtenir(DernierChoixMessage) = 2 ]
  Imprimer [Rétablir]
Fin de si
Fermer fenêtre [Fenêtre active]


Il faut, bien évidemment, placer dans le modèle, soit dans l’entête, soit dans le pied de page, enfin où vous voulez, un bloc texte de type :

page ## sur <<nb_total_pages>>

 

C’est tout pour aujourd’hui

Je vous l’ai dit, c’est ma plus courte chronique ! En attendant, je vous souhaite de passer un très bon réveillon lundi soir, et au plaisir de se retrouver dimanche prochain pour ma dernière chronique de l’année !

Comme d’habitude, n’hésitez pas à commenter cette chronique, sur le blog si possible.

Sign in to follow this  


0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...