Changements récents - Rechercher:

Tutoriel Filemaker

  1. Structure
  2. Modèles
  3. Opérations diverses
  4. Calculs
  5. Scripts
  6. Privilèges d'accès

Filemaker avancé

  1. Partage des données
  2. Astuces et Exemples
  3. Développement

Règles de nommage

Versions de FileMaker Pro

Liens utiles Contact Commentaires

edit SideBar

Sous scripts et paramètres

<==Impression ^ Scripts Recherche avec variable==>

Bien, on ouvre notre fichier et dans ScriptMaker, nous allons commencer par dupliquer notre Script ImpressionRapport. Il suffit de le sélectionner et de le copier-coller (en 9).

Cette copie nous servira de sauvegarde, si jamais nos modifications s'avéraient catastrophiques. Ouvrons notre script ImpressionRapport.

En le relisant, nous nous apercevons que si nous n'avons aucun enregistrement trouvé, nous terminons de façon un peu abrupte notre script. On pourrait s'assurer qu'il retourne sur le bon modèle et qu'il soit en mode utilisation. Rien de plus simple. Nous sélectionnons ces deux commandes qui existent déjà dans le script,

On sélectionne la ligne "Ouvrir boite de dial. person. ["Recherche" ; "Aucun enregistrement n'a été trouvé" ], on colle et elles se mettent juste après.

Mais que remarque-t-on ? trois fois dans notre script, nous avons les deux lignes que nous venons de coller. L'occasion est trop belle pour éviter ces répétitions. Allez hop, on crée un nouveau script qu'on appelle UtilRetour par exemple (comme mode utilisation et retour au modèle), dans lequel on colle nos deux lignes. Un script de deux lignes se contentera d'une ligne de commentaire en en-tête pour expliquer ce qu'il fait.

Dans notre script ImpressionRapport, nous allons ajouter avant nos deux lignes une commande Exécuter script [<inconnu>], puis en cliquant sur "Définir", lui indiquer d'exécuter le script UtilRetour.
On colle cette commande aux deux autres emplacements où elle est nécessaire. Puis on supprime nos deux lignes devenus inutiles (dans les trois emplacements où on les trouve encore).

Bien. Autre remarque, nous avons dit que, comme nous activions en début de script le bon modèle pour la recherche, on pouvait le placer sur n'importe quel modèle de départ. Mais il serait peut-être bien de pouvoir revenir à ce modèle. Nous allons tout de suite voir l'avantage de notre sous-script pour une série de commandes répétitives...

Enregistrons nos modifications de scripts et repassons sur le modèle INS_Fiche sur lequel nous avons mis notre bouton d'impression, en mode modèle. On double clique sur le bouton pour ouvrir la fenêtre de configuration, et on clique sur "Définir". Nous avons bien notre commande d'exécution du script "ImpressionRapport". Nous allons simplement lui transmettre en paramètre le nom du modèle sur lequel est notre bouton. Dans "Paramètre de script facultatif :", on clique sur "Modifier..." et on va dans les fonctions d'obtention pour sélectionner "Obtenir ( NomModèle )"

Ainsi, à l'exécution, notre script va pouvoir récupérer le nom du modèle sur lequel il doit retourner par la commande Activer Modèle, nom de modèle par calcul (que nous avons déjà utilisée précédemment). Mais voilà, comment lui dire puisque ce n'est plus notre script ImpressionRapport qui est lancé, mais UtilRetour ?
Tout simplement, c'est dans ce dernier script que nous allons indiquer ce qu'il faut faire. Ouvrons-le et sur la commande "Activer modèle", nous allons dans définir pour indiquer "Nom de modèle par calcul".
Quel calcul ??? et bien tout simplement, ce que nous cherchons à récupérer, c'est-à-dire non pas le nom du modèle, mais ce qui le contient, c'est à dire le paramètre du script : Obtenir (ParamètreScript).

Récapitulons, notre script d'impression va "embarquer" le nom du modèle, ce script, va exécuter un sous-script qui doit récupèrer le paramètre embarqué... Nous ouvrons à nouveau notre script "ImpressionRapport". Sur chaque ligne "Exécuter script [ "UtilRetour" ], on clique dans "Définir..." et on voit qu'on peut à nouveau transmettre un paramètre de script ! Quel paramètre ? Très logiquement celui que nous avons embarqué au départ, c'est-à-dire, mais non, pas le nom du modèle, mais l'endroit où nous l'avons bien précieusement conservé... oui, dans Obtenir (ParamètreScript).

Reste à tester... En mode modèle, on va copier coller notre bouton "Impression Rapport" sur deux ou trois modèles fiche ou liste. Et en mode utilisation, on peut jouer en annulant l'impression à divers moments (pas la peine d'imprimer 15 fois notre rapport). Ça fonctionne !!!!!

Sauf un truc, quand même, c'est que en mode prévisualisation, il y a ce bouton "Annuler" pendant que le script est en pause, et là, quand on clique dessus, c'est la cata !

Remédions à cela. Dans notre script ImpressionRapport, nous allons réactiver la commande "Autor. annulation utilisateur [Non]". Ce bouton disparait pendant la pause.

Et puis, nous allons aussi dire que lorsqu'on retourne au modèle, en cas d'annulation ou de fin de script, nous voulons afficher tous les enregistrements et activer le dernier saisit. Comme nous avons notre sous-script, nous n'aurons à le faire qu'une fois au lieu de trois. Dans UtilRetour, il suffit de rajouter en fin de script les deux lignes suivantes :

Reste à faire un peu de ménage et d'enjoliver tout cela, d'indiquer dans nos scripts les paramètres attendus et de les ranger. On peut aussi supprimer notre script de réserve ImpressionRapport 2... et à jouer avec notre fichier à jour.

<==Impression ^ Scripts Recherche avec variable==>
Éditer - Historique - Imprimer - Changements récents - Rechercher
Page mise à jour le 22 novembre 2017 à 04h42