fermez cette fenêtre pour revenir au site de microrun

Plan de la page :



Impressions GDI sous windows :
Export EXCEL
Export WORD
Bibliothèque de fusion
Format RTF



Fonctions d'impression GDI ZIMP :

Bikini comporte des fonctions simples d'impression sous Windows via GDI, ou en mode Ascii [RAW], ainsi que des fonctions simples d'exportation de données Abal vers un tableau Excel.
Les fonctions d'impressions seront découpées en fonctions de bas niveau, décrites ci après, et fonctions de haut niveau (décrites plus bas), permettant de réaliser très facilement la fusion entre un document "modèle" au format Ascii, Excel ou Word, et les données du logiciel de gestion, rendant ainsi le logiciel utilisant Bikini indépendant du format d'impression ou d'exportation choisi par l'utilisateur.


1) Fonctions d'impression de bas-niveau:

1.1) Fonctions d'impression sous Windows

Il s'agit de fonctions qui impriment sous Windows un fichier de type ASCII OEM PROLOGUE contenant des semi-graphiques, en utilisant des polices proportionnelles.
e même fichier Ascii peut être imprimé en mode caractère ce qui le rend indépendant du système d'exploitation.

ZIMP_GETPRINTER: Appelle la boite de dialogue windows de choix de l'imprimante. On peut sélectionner par défaut le mode paysage. On peut également forcer le choix de l'imprimante par défaut de windows: Dans ce cas la boite de dialogue ne s'affiche pas. On doit passer à la fonction le nombre de caractères en largeur de l'édition à réaliser. En fonction des caractéristiques de l'imprimante sélectionnée par l'utilisateur, la fonction rend le nombre de lignes maximum par page, au delà duquel le logiciel devra réaliser un saut de page.
L'installateur est donc DISPENSE DE DECLARER LES IMPRIMANTES DANS LE CONFIGURATEUR ABAL.

ZIMP_IMPPRINT: Fonction associée à la précédente, dont le but est d'imprimer l'édition. L'édition est au format TEXTE OEM (Prologue) et peut contenir des tableaux semi-graphiques. La fonction identifie automatiquement les cellules des tableaux et utilise des polices proportionnelles pour les cellules "alpha", qui assurent un rendu WINDOWS et une police non proportionnelle pour les cellules contenant des nombres de manière à respecter les alignements horizontaux entre les nombres. Des indications de mise en page peuvent être incluses dans l'édition

Le but de ces 2 fonctions est de réaliser des éditions qui s'adaptent automatiquement en fonction de l'imprimante sélectionnée par l'utilisateur.

Fichier d'édition compatible mode caractère OEM (Prologue/msDos) :





Résultat une fois imprimé :

On remarquera d'une part l'emploi automatique d'une police proportionnelle (Arial), et d'autre part les chiffres dans les colonnes qui sont bien alignés.
Les caractères semi-graphiques ont été convertis en lignes.
Le tout donne une impression de qualité windows, à partir d'un simple fichier ascii au format Abal.





Une option permet d'imprimer l'édition en mode "brouillon". Dans ce cas l'édition est envoyée sans les attributs de haut niveau vers l'imprimante (typiquement Generic Text), les semi-graphiques sont automatiquement transcodés en caractères type "+" et "!". Ce type d'édition est réservé aux imprimantes matricielles.









ZIMP_IMPPREVIEW: Fonction de prévisualisation d'édition. Inclus une recherche de chaîne, une recherche de page ou d'une ligne donnée. On peut imprimer à partir de cet écran soit l'ensemble du document, soit une fourchette de pages.




début




1.2) Fonctions d'exportation vers Excel


ZIMP_EXCELPREVIEW: Fonction permettant de réaliser la fusion entre un tableau Excel préalablement défini (contenant typiquement la mise en forme mais des cellules vides) et un fichier Ascii généré par le logiciel de gestion contenant le contenu des cellules. Excel est appelé par la fonction afin de visualiser le résultat.

ZIMP_EXCELPRINT: Fonction identique à la précédente mais réalisant l'impression du tableau via Excel.
ZIMP_EXCELSAVE: Fonction enregistrant le fichier Excel, puis sortant d'Excel pour utilisation du tableau généré ultérieure.

A partir d'Excel 2007: Dans zimp_excelsave, Si le document résultat (3ième paramètre) est d'extension .PDF, la bibliothèque enregistrera le fichier au format PDF.
Fonction illustrée dans l'exemple EXBIKV17.



début




1.3) Fonctions d'exportation vers Word

ZIMP_WORDPREVIEW: Fonction permettant d'appeler Word en fournissant en entrée un fichier d'édition au format RTF. Word est appelé par la fonction afin de visualiser le résultat. Cette fonction doit être utilisée avec les fonctions de haut niveau bientôt décrites permettant de réaliser une impression au format RTF.

ZIMP_WORDPRINT: Fonction identique à la précédente mais réalisant l'impression via Word.
ZIMP_WORDSAVE: Fonction identique à la précédente mais sauvegardant le document généré pour utilisation ultérieure.

A partir de Word 2007: Dans zimp_wordsave: On peut ajouter après une virgule, dans le même paramètre, un document résultat .PDF, la bibliothèque enregistrera le fichier au format PDF.
exemple: zimp_wordsave("resultat.rtf,exemple.pdf") Fonction illustrée dans l'exemple EXBIKV17.




Le programme EXBIKV16.at illustre l'utilisation de ces fonctions.

début





2) Bibliothèque de fusion de documents :

Cette bibliothèque permet de réaliser des impressions sous Windows grâce à un principe de fusion entre des documents SOURCES dits MODELES D'IMPRESSIONS, et les données de votre programme (Criteria ou autre).
La bibliothèque produit un document CIBLE qui peut être de type Ascii (pour l'imprimante), Word (RTF), ou Excel (CSV).

Votre source d'impression EST LE MEME quelquesoit le format des documents source et cible.




La bibliothèque lit un document modèle d'impression, et vous donne la main dès qu'elle trouve un mot-clé que vous avez préalablement défini. Vous pouvez ensuite remplacer ce mot-clé par une chaîne, ou une valeur, et également retourner à un autre mot-clé du document pour boucler, et/ou interpréter des conditions.

Pas de limite dans la complexité de votre édition: Vous êtes maître de vos mots-clé et de votre manière de réaliser la fusion.

Vous devez écrire un automate (Voir EXBIKV17). ZF_IEXEC vous rends la main dès qu'un mot-clé préalablement défini dans le dictionnaire est trouvé.

Ensuite, en fonction du mot-clé, DEUX possibilités:

- Soit REMPLACER le mot-clé par une valeur. (ZF_IPRINT, ZF_IPRINTALPHA, ZF_IPRINTDIESE, ZF_IPRINTPOURC, ZF_IPRINTBCD, ZF_IPRINTDATE)
- Soit ALLER à un autre endroit du document pour continuer la fusion. (ZF_IROLLBACK ou ZF_IGOTO)

La fonction ZF_IPRINT remplace tout simplement le mot-clé trouvé par une chaîne de caractères. Les autres fonctions (ZF_IPRINTALPHA etc...) savent INTERPRETER LES FORMATS Abal à conditions qu'ils soient entre parenthèses et suivent le mot-clé. (par exemple "$CLIE_NOM(W40) )

ZF_IROLLBACK se positionne APRES LE MOT-CLE passé en argument, qui se trouve lui-même AVANT la position courante.
ZF_IGOTO se positionne APRES LE MOT-CLE passé en argument, qui se trouve lui-mˆme APRES la position courante.

Ces deux fonctions permettent de réaliser boucles (même imbriquées) et conditions. (voir exemples)

Lorsque vous rencontrez VOTRE MOT-CLE de fin de fusion, sortez de votre automate.

Deux possibilités:

* Soit prévisualiser l'impression (ZIMP_IMPPREVIEW, ZIMP_WORDPREVIEW..)
* Soit l'imprimer directement (ZIMP_IMPPRINT)

Tout ceci quelquesoit le format du document source.

Le programme EXBIKV17.at illustre l'utilisation de ces fonctions.

Il peut arriver, après un incident que le message "tmpDDE" apparaisse dans l'entrée dans Word. Dans ce cas, il faut supprimer le fichier "normal.dot" que l'on trouvera parès une recherche sur le disque système.


début





Annexe: Quelques mots sur le format RTF:

Le format RTF (Rich Text Format) est un format de stockage de documents traitement de texte d'origine Microsoft. Le fichier est de type Ascii, donc visible à l'aide de NOTEPAD. Il contient un succession d'ordres RTF (police, gras, tableaux, etc...) groupés dans des paquets encadrés par des parenthèses { et }. Même les bitmaps sont stockés dans ce format, sous une forme hexa-décimale.

PIEGES A EVITER:

Le format RTF permet de réaliser des fusions utilisant toute la puissance de présentation d'un traitement de texte, à condition d'éviter les 3 pièges suivants:

1) MOTS-CLE COUPES: Lors de l'enregistrement d'un fichier RTF, il arrive que vos mots-clé soient coupés par des ordres RTF. Par exemple, si une première moitié du mot-clé est en gras et pas la seconde partie. Dans ce cas, la bibliothèque de fusion ne peut pas trouver le mots-clé.
Dans ce cas, il est nécessaire d'éditer le fichier RTF via NOTEPAD par exemple, de rechercher tous les mots-clé afin de trouver ceux qui sont coupés.

Par exemple il faudra transformer:

...$CLIE_D}{\b OWN .... (le mot-clé $CLIE_DOWN est coupé par un ordre de gras)
en:

..$CLIE_DOWN...

2) REPETITION DE TABLEAUX: Il est possible, comme dans l'exemple EXBIKV17.RTF, de répéter un tableau pour imprimer des lignes. Se pose un problème: Word ne sait pas insérer des caractères (donc des mots-clé) A DROITE d'un tableau. Il faut donc mettre ce mot-clé en DESSOUS du tableau, en début de la ligne suivante, sur une ligne qui ne contient que ce mot-clé. Il est ensuite nécessaire d'éditer le fichier RTF (NotePad), et de supprimer le saut de ligne intempestif qui est présent juste avant notre mot-clé: Il est codé en RTF "\par".

Une fois cela fait, aucune difficulté, ni pour ouvrir le document RTF via Word, ni pour réaliser la fusion.

3) BOUCLES ET PARENTHESES: Pour les boucles, faire attention au problème suivant: Si une parenthèse ouvrante se trouve AVANT le mot-clé de début de boucle, et que la parenthèse fermante se trouve avant la fin de boucle, la boucle ne sera pas possible.
Ceci peut arriver si on opère une sélection commencant AVANT le mot clé de début de boucle et qui finit avant le mot clé de FIN de boucle.



début