> Tech > CVTSPLSTMF : pour que les spoules soient encore plus simples

CVTSPLSTMF : pour que les spoules soient encore plus simples

Tech - Par iTPro.fr - Publié le 24 juin 2010
email

par Peter Clifford
De nouveaux paramètres rendent cet utilitaire de publication de rapports AS/400 encore plus polyvalent Dans un précédent article, " CVTSPLSTMF facilite les spoules ", NEWSMAGAZINE, octobre 2000, j'expliquais comment ma commande CVTSPLSTMF (Convert Spooled File to Stream File) pouvait aider à  publier des rapports AS/400 classiques dans les formats suivants : texte ASCII, HTML ou PDF (Portable Document Format) Adobe. Cet article a suscité des messages électroniques aussi nombreux qu'agréables, mais certains lecteurs ont relevé quelques soucis et limitations de CVTSPLSTMF.

Nombreux sont notamment ceux qui ont subi une corruption des sources de programmes pendant le téléchargement ou l'installation. Ceux qui ont eu du mal à  lire les fichiers PDF ou HTML créés par la commande CVTSPLSTMF, les indications figurant dans l'encadré " Corriger la corruption de la source de CVTSPLSTMF " pourront aider à  détecter et à  corriger ce problème.

Même si ma description originale de l'utilitaire évoquait clairement ses limitations, ces lacunes ont agacé certains lecteurs, suscitant cette nouvelle version de CVTSPLSTMF.
Ainsi, l'option permettant de convertir des rapports en PDF traite désormais correctement de larges rapports et des formats de page autres que A4 à  l'italienne.
La commande est aussi accompagnée d'un texte d'aide, grâce à  Jeff Kinzer.

On peut télécharger la nouvelle version de CVTSPLSTMF depuis le site Web de Systems Journal, à  l'adresse http://www.mysystemsjournal.com. Cet article résume certaines modifications, sans montrer le nouveau code. Important : pour le téléchargement du source en format PC ZIP, il faut lire ma mise en garde concernant la corruption du code source dans l'encadré " Corriger la corruption du source de CVTSPLSTMF ".

Corriger la corruption du source de CVTSPLSTMF

Si l'on a du mal à  ouvrir les fichiers PDF et HTML créés à  l'aide de CVTSPLSTMF, il est probable que le source à  partir duquel les programmes RPG ont été compilés, ait été corrompu pendant le téléchargement. PDF et HTML utilisent tous deux des caractères de contrôle spéciaux : des quotes dans PDF, et des parenthèses angulaires en HTML. Malheureusement, il y a un risque de traduction incorrecte de ces caractères quand on déplace le source entre PC et AS/400 (conversion ASCII-EBCDIC) ou entre AS/400 (conversion CCSID).
Pour vérifier la présence de ce problème, il faut ouvrir le source du programme ILE RPG dans SEU et regarder la ligne contenant la phrase :

/PDF /Text

Cette ligne doit apparaître ainsi :

CALLP WritePDF('[/PDF /Text]')

Autrement dit, la phrase /PDF /Text doit se trouver entre quotes. S'il y a autre chose qu'une paire de quote (un signe pourcent et un point d'exclamation, par exemple), le source a été corrompu.
On peut corriger ce problème de deux manières. On peut remplacer les caractères incriminés par les bons, en effectuant un scan/replace de tout le source du programme puis en recompilant. On peut également télécharger à  nouveau les programmes depuis http://www.mysystemsjournal.com. Je conseille de télécharger les programmes déjà  compilés dans un fichier de sauvegarde, on évitera ainsi très probablement le problème de mauvaise traduction du source.
PC

Les fonctions de CVTSPLSTMF ont été améliorées par l'ajout de paramètres

Les fonctions de CVTSPLSTMF ont été améliorées par l’ajout de paramètres.
Le paramètre PAGESIZE permet de définir la taille de la page quand on affiche
le rapport dans Adobe Acrobat. Par défaut, c’est *SPLF, pour que la commande essaie
de déterminer la taille de la page à  partir des attributs du fichier spoulé. Autres
options : *A4, *A5, *LEGAL, *LETTER et *EXEC (Executive). Le paramètre d’orientation
séparé peut être *LANDSCAPE ou *PORTRAIT. On peut aussi sélectionner une option
*CUSTOM, afin de pouvoir définir soi-même la taille de la page sur le nouveau
paramètre CUSTOMPAGE. Il faut indiquer la largeur et la longueur de la page en
pouces ou en millimètres dans le paramètre CUSTOMPAGE de la commande.

Notons que le programme n’essaie pas de diminuer ou d’augmenter la largeur du
rapport en fonction de la taille de page spécifiée, même s’il espace les lignes
selon la longueur de la page. On peut adapter un rapport pour une taille de page
différente en changeant de police au moyen du nouveau paramètre FONT.

Par défaut, le paramètre FONT est *CONVERT. Il demande au programme d’essayer
de faire correspondre la police AS/400 utilisée dans le rapport à  une police PDF
(Courier ou Times Roman) standard, selon que la police de l’AS/400 est fixe ou
proportionnelle, et de tirer la taille de la police de celle de la police AS/400.
Le fonctionnement de cette option n’est garanti que si l’on utilise l’un des identificateurs
de police IBM standard, comme documenté dans le CL Reference Manual (SC41-5722).

La dernière option de police consiste à  sélectionner l’une des polices standard
d’Acrobat. Les choix sont les suivants :

*COURIER Courier
*COURIERB Courier bold
*COURIERO Courier oblique
*COURIERBO Courier bold oblique
*HELVETICA Helvetica
*HELVB Helvetica bold
*HELVO Helvetica oblique
*HELVBO Helvetica bold oblique
*TIMES Times Roman
*TIMESB Times Roman bold
*TIMESI Times Roman italic
*TIMESBI Times Roman bold italic
*SYMBOL Symbol
*DINGBATS Zapf dingbats

Acrobat garantit que ces polices seront utilisables lors de la visualisation d’un
fichier PDF. Bien que l’utilisation des deux dernières soit plutôt rare, je les
ai incluses par souci d’exhaustivité parce qu’elles font partie de la spécification
PDF (et qu’elles peuvent égayer des rapports de gestion).

En sélectionnant l’une de ces polices standards, on peut aussi indiquer la taille
de police souhaitée (mesurée en points). La taille de police par défaut est *CALC.
La commande essaie alors de déterminer la taille de la police d’après la largeur
du fichier spoule et du nombre de caractères par pouce (CPI). Cependant, si *CALC
ne produit pas les résultats désirés, on peut indiquer soi-même une taille.

L’option la plus simple consiste à  choisir les valeurs par défaut et à  laisser
à  la commande le soin de choisir la correspondance la plus proche en taille de
papier et police :

CVTSPLSTMF PAGESIZE(*SPLF) +
FONT(*CONVERT)

Toutefois, si cela produit un texte trop pâle en Acrobat, on peut le foncer en
choisissant une police grasse (Courier gras par exemple). On peut aussi créer
une taille de papier différente afin que, par exemple, les utilisateurs puissent
imprimer le rapport d’Acrobat sur les imprimantes de leurs PC. Pour cela, on définit
:

CVTSPLSTMF PAGESIZE(*A4 *LANDSCAPE) +
FONT(*COURIERB 12)

Et si l’on veut admirer l’effet artistique des rapports Comptabilité fournisseurs
imprimés en Dingbats 16 points sur un A3 à  l’italienne, c’est tout aussi possible
:

CVTSPLSTMF PAGESIZE(*CUSTOM) +
CUSTOMPAGE(410 297 *MM) +
FONT(*DINGBATS 16)

Création de nouveaux objets CVTSPLSTMF
Voici la liste des types d’objets requis pour utiliser la commande CVTSPLSTMF
(Convert Spooled File to Stream File) mise à  jour, suivie des instructions
permettant de les créer.

Objet Type Commentaires
CVTSPLPDF *PGM Programme ILE RPG pour PDF
CVTSPLSTMF *PGM Programme de traitement de la commande CL
BOOKMARKS *PNLGRP Texte d’aide pour les options bookmark
CVTSPLSTMF *PNLGRP Texte d’aide pour la commande
CVTSPLSTMF *CMD La commande elle-même

Pour créer ces objets, il faut exécuter les commandes suivantes, où VotreBibObj
est le nom de la bibliothèque dans laquelle on désire créer la commande
de programme et VotreBibSrc est le nom de la bibliothèque contenant la source
(utiliser les noms de fichiers source standard pour ILE RPG, CL, UIM et
les sources de commande QRPGLESRC, QCLSRC, QPNLSRC et QCMDSRC).

1. Créer le programme ILE RPG CVTSPLPDF :

CRTBNDRPG VotreBibObj/CvtSplPDF +
SRCFILE(YourSrcLib/qrpglesrc) +
DFTACTGRP(*no)

2. Créer le programme ILE CL CVTSPLSTMF :

CRTBNDCL VotreBibObj/CvtSplStmf +
SRCFILE(YourSrcLib/qclsrc)

3. Créer les panel group Bookmarks :

CRTPNLGRP VotreBibObj/Bookmarks +
SRCFILE(VotreBibSrc/qpnlsrc)

4. Créer le panel group CVTSPLSTMF :

CRTPNLGRP VotreBibObj/CvtSplStmf +
SRCFILE(VotreBibSrc/qpnlsrc)

5. Créer la commande CVTSPLSTMF :

CRTCMD VotreBibObj/CvtSplStmf +
PGM(CvtSplStmf) +
SRCFILE(VotreBibSrc/qcmdsrc) +
HLPPNLGRP(CvtSplStmf) +
HLPID(*CMD)
PC

Téléchargez gratuitement cette ressource

Protection des Données : 10 Best Practices

Protection des Données : 10 Best Practices

Le TOP 10 des meilleures pratiques, processus et solutions de sécurité pour mettre en œuvre une protection efficace des données et limiter au maximum les répercutions d’une violation de données.

Tech - Par iTPro.fr - Publié le 24 juin 2010