Thierry
Seunevel |
Code en stock |
| Les modes de substitution |
Deux modes de substitution sont possibles, et peuvent être combinés dans un même document Excel :
-
Un mode page, dans lequel on va insérer des valeurs issues d'un document Notes dans des cellules Excel placées à des emplacements fixes.
Dans ce mode, on utilise un seul document Notes d'un type (masque) donné pour alimenter le modèle Excel.
Par contre, on peut utiliser plusieurs documents de types (masques) différents. Ainsi, si on a un document représentant les données d'un contrat, et un document comportant les champs d'adresse du souscripteur, on pourra successivement substituer des cellules du fichiers Excel avec les champs issus de chacun des deux documents Notes
- Un mode ligne, dans lequel on va insérer dans le fichier Excel une ligne pour chaque document Notes.
Dans ce mode, on parcourt généralement une vue et on traite successivement les différents documents.
Le fichier Excel résultant s'agrandit en fonction du nombre de documents Notes qui lui sont associés.
Les deux modes peuvent se combiner dans un même rapport Excel.
Les informations à indiquer en tête de page sont issues d'un document comportant par exemple les paramètres de la sélection, chaque ligne comportant des données issues d'un document détail différent.
Les lignes d'en-tête c'est à dire le haut de page jusqu'aux en-tetes des colonnes peuvent être définies dans les options de mise en page comme lignes à répéter en haut pour la section titres à imprimer (Menu Fichier>Mise en page).
Les 2 modes se distinguent également par la manière dont est menée la substitution :
En mode page, les cellules nommées sont garnies en utilisant le nom.
En mode ligne, les noms sont exploités dans la phase d'initialisation pour y associer des emplacements relatifs, et ce sont ces emplacements qui sont utilisés lors des substitutions successives.
|
Maquette Excel |
La création des rapports repose sur la définition d'un modèle Excel.
Les considérations suivantes détaillent quelques caractèristiques importantes de ces modèles.
Feuilles multiples.
Un classeur Excel peut comporter plusieurs feuilles, matérialisées en édition par des onglets et nommées par défaut Feuil1, feuil2 …
Certaines méthodes de la classe ExcelReport ne concernent que la feuille courante, c'est à dire par défaut la première, ou bien une feuille désignée dans le code.
Les méthodes qui ne s'appliquent qu'à une feuille sont preView et printOut c'est à dire la prévisualisation et l'impression.
Les autres méthodes s'appliquent à l'ensemble du classeur, de même que l'échange de données qui est fondé sur les noms qui forment une collection commune à toutes les feuilles du classeur.
Définition de la ligne courante de l'état.
La plage nommée par défaut REPORTLINE définit la partie qui va être substituée (et insérée) pour chaque document détail du rapport.
Dans le cas où seul le mode page est utilisé, donner la valeur *NONE à cette plage, en utilisant la propriété LineField (par exemple report.LineField="*NONE").
La plage définissant la ligne courante peut comporter des champs nommés (avec un nom correspondant à un nom de champ du document Notes associé), une référence à une colonne de la vue dont est issu le document Notes (à condition que la lecture se fasse depuis une vue), et en utilisant une référence au numéro de colonne visible (vCol.x) ou de colonne absolue (aCol.x) ou des formules Excel.
Les noms de champs ou références de colonnes sont analysés lors de l'initialisation et associés avec leur position relative dans la plage définie par REPORTLINE. C'est cette position relative qui est ensuite utilisée lors des substitutions.
Pour permettre la définition de caractéristiques différentes pour la première ligne et/ou la dernière ligne du rapport, la maquette doit comporter 3 lignes détail.
C'est la seconde ligne détail qui définit la ligne courante, la première et la troisième ligne n'ayant comme fonction que de permettre un formatage spécifique pour la première et la dernière lignes du rapport.
Les lignes au-delà de la troisième ligne forment les lignes de fin de l'état.
Elles peuvent contenir des formules, et en particulier des sommes des valeurs de colonne. Pour définir une somme de colonne, englober les 3 lignes définissant la ligne courante.
Il est possible de définir pour la ligne courante une plage plus large que la zone d'impression. Les cellules placées hors de la zone d'impression peuvent être utilisées pour des résultats intermédiaires, formules, constantes nécessaires aux calculs mais qu'on ne veut pas afficher.
Ainsi, pour compter les lignes d'un rapport, on peut définir dans la ligne courante et hors de la zone d'impression une colonne avec une formule =1. Cette colonne peut être sommée et son résultat être affiché dans la zone d'impression, en fin de rapport. Elle peut aussi être sommée en bas de la colonne, et ce résultat peut être utilisé pour calculer une moyenne affichée dans la zone d'impression.
|
|
|
© Thierry Seunevel (2004) |
www.seusoft.com |
|
|
|
|