Thierry
Seunevel |
Code en stock |
| Stockage du modèle |
L'exemple simpliste introduisant ExcelReport allait chercher le document modèle sur disque.
Dans une implémentation réelle, il est plus efficace de stocker ce modèle en tant qu'attachement dans un document Notes.
Il bénéficie ainsi des avantages offerts par ce support : déploiement par copie de la base, diffusion des modifications par réplication, indépendance par rapport au système de fichiers, et éliminations des problèmes d'appellations des unités partagées.
Dans ce mode de fonctionnement, avant d'instancier l'objet ExcelReport (méthode New), il faut accéder au document contenant le modèle et détacher le fichier dans un emplacement temporaire (disque local ou unité réseau paramètrée).
La méthode New est alors exécutée en indiquant l'emplacement de stockage temporaire.
Si plusieurs utilisateurs sont susceptibles d'exécuter simultanément des agents créant des instances d'ExcelReport, l'utilisation du disque local, par exemple c:\temp, peut s'avérer la meilleure solution.
La base de données exemple contient un agent, un masque et
une boite de dialogue qui permettent de gérer des documents
dans lequel on peut attacher les modèles Excel.
Les agents exemples utilisent ces documents.
Une bibliothèque de scripts (ComTools) fournit une
fonctions permettant de détacher les fichiers sur disque.
|
Echange de données |
La classe ExcelReport permet bien plus que la création d'états Excel.
Elle peut être utilisée par exemple dans un système de suivi commercial, pour gérer des devis.
A partir d'un document Notes correspondant à un devis à réaliser, on génère un fichier Excel copié d'un modèle choisi dans une liste, et alimenté automatiquement d'informations issues des documents commerciaux (nom et adresse client ...)
Le fichier Excel est sauvegardé sur disque, à un emplacement mémorisé dans le document Notes initial.
Il peut alors être complété par les métreurs au moyen d'Excel.
Quand le devis est achevé, il est réimporté à partir de Notes, des valeurs du devis peuvent être extraites du fichier en utilisant des noms prédéfinis, et alimenter des champs Notes, et le fichier Excel peut être attaché au document Notes associé.
Dans ce type de fonctionnement, à la seconde ouverture du fichier Excel, l'objet ExcelReport est créé en utilisant le fichier réél et non un modèle.
|
Création de champs Notes |
Si une valeur à afficher doit être dérivée d'un ou plusieurs champs d'un document Notes, et que l'utilisation de colonnes située hors de la zone d'impression ne permet pas d'obtenir le résultat souhaité, vous pouvez exécuter l'évaluation de la valeur cherchée dans le code Lotusscript et ajouter cette valeur comme nouveau champ au document transmis au rapport Excel.
Dans la mesure où le document Notes n'est pas sauvegardé, c'est la version en mémoire de ce document qui est seule modifiée, il n'y a pas d'impact sur la base de documents.
|
Clonage de documents |
Il peut dans certains cas être nécessaire d'utiliser plusieurs documents Notes de même type (même masque) pour alimenter plusieurs plages d'un rapport Excel en mode page.
Dans un exemple déjà cité, il pourrait être nécessaire de placer sur un état Excel deux adresses différentes, correspondant à deux acteurs distincts dans un workflow.
Les noms de champs des 2 documents étant les mêmes, il faut pouvoir fournir deux documents Notes dont les champs portent des noms différents.
Vous pouvez par exemple utiliser un premier document adresse et les noms de champs originaux pour un des acteurs, et créer un nouveau document Notes en mémoire en copiant tous les champs du second acteur sous un nouveau nom préfixé.
C'est ce document 'cloné' qui est envoyé à l'état Excel pour substitution des données, et ce document n'est pas sauvegardé.
|
Création de documents ad'hoc |
Dans certaines situations, les lignes
de l'état à produire ne correspondent pas directement
aux documents en entrée. Ce peut être la cas d'états
récapitulatifs, avec plusieurs niveaux de sous-totalisation,
des lignes de titre en début de groupe etc.
Pour traiter ces cas, il peut être
plus simple de créer un document Notes dans lequel on
positionne les valeurs à imprimer et qui sert de façon
répétitive pour chaque ligne.
|
Clonage de documents |
Excel permet de définir du
formatage conditionnel. Cette faculté peut être utilisée
par exemple pour mettre en évidence des lignes de totalisation
ou des valeurs particulières.
Une des solutions simples pour
utiliser une mise en forme variant suivant les niveaux de
totalisation est de définir dans la maquette Excel une colonne
supplémentaire, à l'intérieur de la plage
définissant la ligne d'insertion (LineField) mais en dehors de
la zone d'impression.
Ce champ peut être garni d'une valeur
simple correspondant au niveau (1, 2 ...) et le formatage
conditionnel peut tester le contenu de cette colonne pour
sélectionner le mise en évidence appropriée.
|
|
|
© Thierry Seunevel (2004) |
www.seusoft.com |
|
|
|
|