XFRX.FR
Produits Contacts Divers

Manuel Excel

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 :

Texte
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.

Démonstration

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 ?

  1. 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

  2. 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.

  3. 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 : ou à l'éditeur : .
Reproduction totale ou partielle strictement interdite • KitWebWan AgainDesign or DeclineValid XHTML 1.0 Transitional