From FAQ Filemaker

Tutoriel-Filemaker: Script d'impression

<==Un peu d'ordre ^ Scripts Sous scripts et paramètres==>

On ne va pas se contenter ici de faire un script d'une ligne, mais on va tenter d'élaborer un script pour générer le rapports avec sous-totaux que l'on avait fabriqué dans la section Modèles.

Description
Le script

Remarques

Bouton pour l'impression



Description


Pour rappel, pour générer ce rapport, on devait :

Comme c'était passablement laborieux, autant inclure toutes ces étapes dans un script ! Le script comprendra également le calcul automatique de l’année scolaire en cours, vérifiera que des enreg. sont trouvés, et terminera par un retour au mode normal « Utilisation ».

<pause philosophique>

Comme on vient de le faire, autant prendre l'habitude, avant d'attaquer un script, de décrire que qu'on attend de lui et ce qu'il doit faire. Bien entendu ce qu'il doit faire si tout va bien, mais surtout ce qu'il doit faire quand tout va mal... Un développeur FileMaker Pro américain dit ainsi que ce qu'il attend d'un script, ce n'est pas tellement qu'il fasse quelque chose, mais surtout qu'il ne plante jamais... A méditer !

</pause philosophique>

Le script


Dans notre fichier nous allons donc créer un nouveau groupe de scripts intitulé "Imp__Impressions" et un nouveau script intitulé "ImpressionRapport". Vous allez pouvoir utiliser l'entête que nous avons mis dans les scripts de travail (copier-coller, puis remplacer les commentaires). Ah, juste un truc utile. Quand on "colle" des lignes de scripts dans un script déjà existant, elles se placent à la fin ou juste après la ligne sélectionnée. Comme ScriptMaker ne permet de bouger (monter ou descendre) les lignes de scripts que une par une, plutôt que de le faire plusieurs fois (si par exemple vous voulez rajouter notre en-tête au début d'un script existant), le plus simple est de coller ces lignes juste après la première ligne existante. Il n'y aura que cette ligne à descendre, au lieu de remonter toutes les autres.

Voici le script

Voici également une version en pdf. Nous allons le détailler...

En-tête

Notre en-tête commence toujours par

En effet, il est nettement préférable de gérer soi-même les erreurs que peut rencontrer le script, plutôt que de laisser l'utilisateur face aux messages de l'application sans forcément qu'il sache quoi faire. De plus ceci nous permet d'interagir en cas d'erreur avec la suite du script que nous voulons au lieu de laisser la machine décider. Enfin seul cette instruction permet de définir une action de notre choix en cas d'erreur. Par contre, il implique de prévoir et gérer ces "erreurs" puisque les réactions automatiques de FileMaker sont alors inhibées.
Mais qu'est-ce qu'une erreur ? Toutes sortes d'évènements peuvent générer des codes dit d'erreur. Un exemple très simple que nous allons d'ailleurs exploiter ici : une recherche qui ne trouve pas d'enregistrements.

Idem, nous préférons gérer nous-même les conditions d'annulation du script, plutôt que de laisser l'utilisateur libre de le faire. Ainsi, nous pouvons décider en cas d'annulation de la suite du script. En cours d'écriture, on peut désactiver cette commande (// devant la ligne, qui devient un commentaire et n'est plus interprétée), ce qui nous permet, en cours de test, d'annuler, justement, si besoin l'exécution ou la poursuite du script. Cette commande sera réactivée lorsque notre script sera terminé et testé.

Viennent ensuite nos fameuses explications.

Recherche par script

Cas(

Mois ( Obtenir (DateActuelle)) > 9 ;
Annee (Obtenir (DateActuelle)) & "-" & (Annee ( Obtenir (DateActuelle)) +1) ;
Annee (Obtenir (DateActuelle)) - 1) & "-" & Annee ( Obtenir (DateActuelle) )
)

Arrêtons-nous un instant sur ces lignes qui comportent deux choses essentielles :

Modèle d'impression

Tri du rapport

Le tri se fait sur :

Impression

L'impression se déroule en 3 étapes au sein d'un script, la 1ère étant optionnelle :

  1. On se met d'abord en Mode Prévisualisation, afin que l'utilisateur puisse vois à l'écran la façon dont le rapport sera imprimé. Il faut bien sûr garder alors l'option de la pause, dont on sort en faisant "Enter".
  2. Avant de lancer l'impression, on appelle une Configuration d'impression, précisant par exemple l'orientation de la page.
  3. Enfin, on lance la commande Impression.

Quelques remarques sur le mode prévisualisation...
Nous permettons à notre utilisateur de vérifier si le document lui convient. Mais s'il ne lui convient pas, il faut qu'il puisse le signaler. En effet, si nous passons directement après la pause à l'impression, ce contrôle est purement formel.
Nous allons donc retrouver ici notre boîte de dialogue pour lui demande ce qu'il souhaite faire. Contrairement à notre première boîte de dialogue, purement informative, celle si propose un choix. Il faut donc interpréter ce choix pour la suite du script.

Fin du script

Même après la phase d'impression, nous sommes toujours en mode prévisualisation et sur le modèle d'impression. Il faut donc revenir au Mode Utilisation et on active un modèle utilisateur, INS_Fiche.

Remarques


Commentaires

Il est toujours intéressant d’ajouter des commentaires au sein du script, décrivant ce qu’on y fait (et éventuellement pourquoi). Ceci est simplement fait à l’aide la ommande Commentaire, que l'on retrouve en fin de liste des commandes.

Gestion des erreurs

Nous avons vu comment gérer les erreurs et que notre première ligne gestion des erreurs ( Oui) bloquait toute intervention de FileMaker lui-même.
On peut donc utilement placer une recherche de la dernière erreur juste après l’impression, avec boite de dialogue :

Remarque concernant l'impression par script

FMP possède un « effet mémoire » concernant les configurations d’impression, notamment l’orientation du papier. C’est pourquoi, avant de placer la commande Imprimer, il est utile de placer la commande Configuration impression, qui fixera les paramètres à utiliser.

Il en est de même pour la commande Impression, qui fixe la sélection à imprimer :

Ces deux commandes étant définies, elles ne changeront plus.

Bouton pour l'impression


Il faut noter que, grâce à la commande Activer Modèle [ INS_Fiche ] placée en début de script, ce script peut être placé sur n’importe quel bouton. En toute logique, on va placer ce bouton sur le modèle INS_Fiche :

Ainsi, un simple clic sur ce bouton génèrera le rapport correctement et lancera l'impression.

Ouf ! Voici de longues explications pour un seul script. Mais rassurez-vous, la méthode comprise, tout sera plus facile ensuite. Et nous avons abordé ici des notions fondamentales de recherche, interception de messages, si et fin de si etc.

D'ailleurs, reprenons notre fichier et passons au chapitre suivant pour améliorer encore (un tout petit peu) notre script...

<==Un peu d'ordre ^ Scripts Sous scripts et paramètres==>
Récupéré sur http://cqfd-fmp.fr/index.php?n=Tutoriel-Filemaker.Script-Impression
Page mise à jour le 18 février 2020 à 17h01