Thierry Seunevel Thierry 
Seunevel 
 Code en stock       
  Accueil   Réalisations Code en stock Téléchargement Curriculum Contact
Accueil > Code en Stock > Excel Report Version FR
Version 1
Mai 2005
  ExcelReport : Rapports Excel à partir de Lotus Notes (1)

Il est difficile d'obtenir des impressions de qualité à partir des applications Notes/Domino.
En s'appuyant sur un modèle, la bibliothèque Lotusscript présentée ici apporte une solution simple pour produire des états de qualité au moyen d'Excel. Cette classe et sa base de données exemple sont téléchargeables gratuitement.
. Principe
. 1er exemple
. Modèle Excel
. ExcelReport
. Compléments
. Nouveautés V1
Nouveau    AnyDocForm
Un outil Notes pour modifier les champs de tous les documents
Detail
Principe
La totalité des exemples que j'ai eu l'occasion de consulter dans des publications papier ou sur le Net créent un nouveau document Excel, et le garnissent au moyen des verbes OLE.

Cette méthode est laborieuse. Elle implique en particulier de coder dans le programme toutes les instructions concernant la présentation du document Excel que l'on veut produire.

Si vous souhaitez utiliser des bordures, des couleurs de fond, des polices et des tailles de caractères, et figer les premières lignes en tant qu'en-tête de page, le script doit permettre l'appel de toutes ces méthodes en utilisant les verbes OLE correspondants.
L'adressage doit être réalisé en utilisant les coordonnées lignes et colonnes, et toute insertion ou suppression de ligne ou de colonne peut remettre en cause le code existant.

La démarche et le script décrits dans ce document sont tout autres :

  • On crée au moyen d'Excel, une maquette du document à réaliser.
    On peut ainsi utiliser les différentes fonctions de présentation d'Excel, des totalisations de colonnes, définir les lignes à utiliser comme en-têtes de pages etc...
    On attribue aux cellules que l'on veut garnir à partir de Notes des noms correspondant aux noms de champs des documents Notes, puis on sauvegarde le fichier Excel.

  • L'agent d'exécution a simplement à instancier un objet en lui fournissant le nom du fichier modèle, à appeler une méthode pour chaque document Notes dont les champs doivent être reportés sur l'état Excel, puis à commander l'affichage, l'impression ou la sauvegarde du classeur.
Un premier exemple
Ce premier exemple démontre la simplicité d'utilisation de la classe ExcelReport.

Voici successivement un image montrant une vue Notes affichant des documents représentants des CD de Jazz, puis cette même vue sous forme d'une impression Excel.

Exemple vue Lotus Notes

Vue Lotus Notes


Exemple etat Excel produit par ExcelReport

Etat Excel réalisé depuis la vue précédente


L'agent Lotusscript
Dernier élément, un agent Lotusscript comportant le code suivant :

Dans la section des Options :
1
Option Public
Option Explicit
Use "excelreport_1"         ' version 1
Dans la procédure Initialize :
 
Sub Initialize
	
Dim session As New NotesSession
Dim db As NotesDatabase
Dim vw As NotesView
Dim doc As NotesDocument
2
Dim report As ExcelReport								
Set db = session.currentDatabase
Set vw = db.getView("cdbytitre")
3
Set report = New ExcelReport("l:\notes\modeles\discotk.xls")  	
Set doc = vw.getFirstDocument
While Not doc Is Nothing
4
	report.fillReportLine doc	
	Set doc = vw.getNextDocument(doc)
Wend
5
report.Preview						
End Sub
Comme on peut le voir, 5 lignes de Lotusscript suffisent pour produire l'état Excel.
  1. La première instruction dans la section des options demande l'inclusion du module ExcelReport

  2. Le module ExcelReport est développé en mode OO (orienté objet). Il convient donc de déclarer un objet du type ExcelReport et lui donner un nom de variable, ici report.

  3. L'objet doit être instancié en utilisant la procédure New, et en lui fournissant le nom du fichier Excel contenant le modèle de l'état à réaliser.

  4. Dans la boucle de lecture des documents sélectionnés, pour chaque document on appelle la méthode fillReportLine en lui passant en paramètre le document courant. ExcelReport va insérer une nouvelle ligne, et substituer les contenus des champs dans les plages de même nom.

  5. L'état étant rempli, on appelle la méthode preview qui équivaut à l'aperçu avant impression. Le document Excel est affiché, et peut être imprimé à la demande.
    On aurait aussi bien pu faire appel à la méthode printOut pour obtenir une impression directe, ou saveAs avec un nom de fichier pour sauvegarder le fichier Excel sur disque.

C'est tout !

ou presque, car le modèle Excel a du aussi être défini. Son contenu est présenté dans la page suivante.

    Haut de page  Haut de page    | 1er exemple Suivant


©  Thierry Seunevel (2004) www.seusoft.com Dernière mise à jour : 23/09/2004