Thierry Seunevel Thierry 
Seunevel 
 Code en stock       
  Accueil   Réalisations Code en stock Téléchargement Curriculum Contact
Accueil > Code en stock > Excel Report

ExcelReport (6) : Compléments et astuces

. Principe
. 1er exemple
. Modèle Excel
. ExcelReport
. Compléments
. Nouveautés V1
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.



    Haut de page  Haut de page  Précédent  ExcelReport | Nouveautés V1  Suivant


©  Thierry Seunevel (2004) www.seusoft.com