Produits
XFRX
Télécharger
Demo
Commander
Manuel
Licence
Contributions
PDF Library
Télécharger
Demo
Commander
Manuel
Licence
Contributions
Espace Clients
Contacts
Editeur
Distributeur
Divers
FAQ
Evénements
Liens

|
XFRX
Génération de documents XLS (Excel) : Manuel
|
La génération d'un fichier au format Excel, depuis un rapport vfp, est tout à fait
différent des autres formats traités par XFRX. Les autres formats utilisent des
"Textboxes" en position absolue, pour chaque "label" et
"TextBox" des rapports. La sortie en XLS, pour sa part, met le texte produit
directement dans les cellules sur la feuille d'Excel et fixe la taille des lignes et la
largeur des colonnes pour réaliser la disposition désirée. Les lignes et les
rectangles, aussi, sont ajoutés comme bordure des cellules, plutôt que graphiques
au-dessus de la feuille. Il y a beaucoup d'avantages dans cette approche : les documents
produits sont plus petits et beaucoup plus faciles à être modifiés - tous les champs
numériques peuvent être employés dans les calculs, il n'est aucun problème pour
ajouter des lignes ou des colonnes, changer des attributs de cellules, etc...
Il y a, cependant, des inconvénients, aussi :
Les champs ne peuvent pas se recouvrir comme cela :

sinon le rapport ne se convertira pas correctement, et, comme chaque cellule Excel a
une marge intérieure de qui ne peut pas être supprimé, la largeur de quelques champs
doit être forcée un peu pour s'adapter au contenu entier.
Quoiqu'il soit possible de créer des "textboxes" ayant une position absolues
dans Excel, de la même manière que cela fonctionne pour le format Word ou PDF, nous
avons pensé qu'il ne semblerait pas très judicieux de faire cela, car l'utilisateur ne
tirerait pas bénéfice de la génération Excel.
Pour une génération XLS avec XFRX, les rapports auront probablement besoin d'être
adaptés, mais le résultat sera un document Excel normal, comme si quelqu'un l'a créé
manuellement. |
Demo
|
Le document suivant se compose de plusieurs feuilles : La première feuille montre la
liste de clients, les feuilles suivantes contiennent des informations détaillées sur les
factures de chaque client. Exemple
de Feuille Excel
Ce rapport est inclu avec la version d'évaluation de XFRX. (Voir
Télécharger). |
Comment cela fonctionne ?
|
XFRX se sert de la possibilité de fusionner plusieurs cellules ensemble.
Là où un texte ou un champ commence ou fini, XFRX crée une rangée et une colonne. Pour
réaliser un meilleur résultat, c'est une bonne chose d'aligner les textes et les champs
verticalement et horizontalement - le résultat est un document plus clair avec peu de
rangées et de colonnes. (voir le paragraphe ci-dessous : Comment obtenir
les meilleurs résultats ?) |
Au sujet des sauts de pages
|
Dans la conversion en document XLS, XFRX n'ajoute pas de saut de page contrairement à
la manière de générer les documents Word ou PDF - ce qui signifie que le résultat est
une feuille aussi longue qu'elle doit être. Si plusieurs de rapports sont traités,
chaque rapport est créé dans une feuille différente du document. |
Comment appeler la création du document XLS ?
|
Cela ressemble aux autres formats : local loSession, lnRetval
loSession=EVALUATE([xfrx("XFRX#INIT")])
loSession.initLog()
lnRetVal = loSession.SetParams("output.xls",,,,,,"XLS")
If lnRetVal = 0
loSession.SetOtherParams("NEXT_SHEET_NAME","first")
loSession.ProcessReport("report1")
loSession.SetOtherParams("NEXT_SHEET_NAME","second")
loSession.ProcessReport("report2")
loSession.finalize()
ENDIF
Cet exemple créé un classeur XLS de deux feuilles. Comme vous pouvez voir, la
méthode SetOtherParams() peut être employée pour définir les noms des feuilles.
Si elle n'est pas appellée, les noms de défaut sont "sheet1",
"sheet2", etc... |
Comment obtenir les meilleurs résultats ?
|
- Alignez les champs.
Consulter le document suivant : xls1.xls.
Les colonnes B et C sont presque invisibles (si vous les rendez plus larges, vous pouvez
voir que les noms de client commencent à la colonne B, le début du titre "de liste
de client" à la colonne C et le soustritre "client" commence à la colonne
D - qui est quelque chose que nous ne notons pas dans le rapport normal, mais nous
pourrions avoir un meilleur résultat dans le XLS si les champs étaient alignés), la
rangée 4 est très étroite, et entre chaque client, on ajoute une rangée très mince,
aussi. La "réparation" de ceci est très simple en alignant : titre, sous titre
et champs, en déplaçant les lignes un peu plus haut.
Le document résultant paraît bien mieux : xls2.xls
- Problème avec la largeur des textes
La taille d'un texte ne peut pas être modifiée dans le générateur de rapport - elle
prend toujours la taille du texte écrit. Cependant, comme nous avons mentionné avant,
les cellules d'excel ont de petites marges d'intérieur, ainsi si nous créons une cellule
aussi large que le texte et mettons le texte dedans, le texte entier ne rentre pas, le
dernier caractère disparait !
XFRX prend soin de ceci et rend la cellule un peu plus large, mais ceci peut apporter un
autre problème - s'il y a une autre texte ou un champ près du bord droit du texte,
l'augmentation de la largeur peut créer un recouvrement d'un autre texte ou champ, alors
le résultat serait la disparition de l'un des deux textes (car il ne peut y avoir
seulement qu'une chose à l'intérieur d'une cellule). Ainsi, veuillez faire attention à
ce sujet et vous assurer qu'il y a assez d'espace entre les textes ou champs.
- Largeur variable des textes (label)
La largeur des textes (label) dépend du contenu, nous ne pouvons donc pas aligner les
bords gauches et droits de plusieurs textes, parfois il pourrait être meilleur de
remplacer des textes (label) par des champs (textbox)
Par exemple, s'il y a beaucoup de texte dans une colonne, alignée à gauche comme ceci :
Lors de la création du document Excel,
XFRX créera une colonne pour le bord droit de chaque étiquette :

Cependant, si les textes (label) sont convertis en champ (textbox),
alors nous pouvons les aligner :

Et le résultat parait mieux :

Il est actuellement très facile de convertir toutes les textes (label) en boîtes à
textes (textbox), simplement en ouvrant le rapport dans FoxPro et remplacer le type
d'objet :
USE report.frx
REPLACE objtype WITH 8 ALL FOR objtype = 5
USE
|
Faites nous savoir
|
Votre "feedback" est très important pour nous. Merci de nous faire savoir
vos impressions, sur cette fonctionnalité, ou si vous avez un problème avec votre
rapport, envoyez-le :
au distributeur Français : xfrx@dord.com ou à
l'éditeur : support@eqeus.com. |
«EQEUS» |