Exemple d'utilisation des techniques avancées dans les Reports.

 

Principe

Un report est imprimé, et, à chaque page imprimée, une compteur est affiché, indiquant le numéro de la page en cours.

Les techniques utilisées sont :

Utilisation de l'exemple

Décompressez le fichier CREPO.ZIP dans un répertoire quelconque. Ouvrez & lancez la fiche FICH.FSL.

Cliquez sur le premier bouton (Report Test-1). Le report s'affiche. Cliquez alors sur le bouton >| (dernière page). Vous devez alors voir la fiche-compteur s'afficher pour chacune des 22 pages imprimées à l'écran (notez que l'affichage est volontairement ralenti par le script). A la fin, fermez le script.

Le deuxième bouton fonctionne un peu différemment : grâce à l'utilisation d'une librairie, la fiche-compteur est ouverte une fois au début, puis simplement mise à jour à chaque page. Cependant cette technique ne marche qu'en mode impression (et non en mode visualisation). Désactivez votre imprimante, si vous voulez économiser du papier.

Le Script (SC.SSL)

method run(var eventInfo Event)
 var
     f form
     spag string
 endvar

 f.open("MsgN.fsl")   ; ouverture de la fiche
 spag=readEnvironmentString("PAGE")     ; récup numéro de page

 f.COMPTEURCHAR="Page Numéro"     ; écriture
 f.COMPTEURNUM=format("W6,EZ",smallint(spag))

 sleep(500)     ; délai d'attente
 formReturn(" ")     ; obligatoire pour champ calculé d'un état
 sleep( )
 f.close( )
endMethod

Ce script sera appelé par le report, il doit retourner une valeur (formReturn).

Etat (Rep.rsl) : champs spéciaux

Ouvrez ce report en mode conception. Les champs particuliers sont (dans l'ordre) :

Vous remarquerez que le positionnement dans la bande-de-page (en-tête) entraîne l'appel du script une fois par page, au début de la construction de la page. Si on le positionne dans le pide de page, l'appel se fera après la construction de la page. Si on le met en bas du document, l'appel du script se fera en fin du report.

Il est possible de mettre l'appel dans l'enregistrement. Le script s'exécutera alors à chaque ligne. Cela donne aux reports une flexibité extrème. A ma connaissance, aucun autre système de report n'offre de telles possibilités d'intégration.

Le seul défaut peut venir de la vitesse (ouvertures-fermetures- etc.). Pour pallier à cela, j'ai complété la démarche, comme suit :

Le 2e Bouton

Sur la fiche FICH.FSL, le 2e bouton fonctionne un peu différemment : il ouvre une librairie ; c'est cette librairie qui ouvre la fiche, contrôle l' affichage, et ferme la fiche en fin.

Ainsi, le fiche reste ouverte durant toute la préparation.de l'état. L'affichage est continu. La vitesse d'exécution est nettement plus rapide.

Le script (SC2.SSL) se content d'ouvrir la librairie, et d'appeler l'affichage.

Malheureusement, cette méthode est mal compatible avec la visualisation d'un report. Il faut imprimer.

Support / Prestations

Ce logiciel est fourni "tel quel", sans aucune garantie. Tout support demandé, toute assistance, demande de renseignement ou d'explications, seront considérés comme une prestation, facturable. Un devis sera fourni sur demande.

Il est demandé à toute personne diffusant cette production de ne pas ôter aucune des publicités et/ou références à Michel Claveau Informatique.

Cliquer ici pour télécharger le fichier (crepo.zip : 183 Ko)